apk签名生成器安卓版_安卓apk签名生成器
1.Android studio怎么生成签名apk
2.android开发 怎么给apk文件用已有的签名文件进行签名,不用eclipse
3.Android开发对apk文件进行签名
4.Android apk 系统签名
5.Android开发之通过apksigner对apk进行v2签名
6.手机怎么给APK签名
通过签名可以确保数据来源的可靠性和数据的不可篡改性
对 Apk 进行签名,也就是在 Apk 中写入一个指纹,写入指纹后,Apk 中有任何修改,都会导致这个指纹无效,Android 系统在安装 Apk 进行签名校验时就会不通过,进而无法安装该 Apk
如上图:
通常的签名验签过程中,接收方收到消息后,会先向 CA 机构验证证书的合法性,再进行签名校验。但 Apk 的证书通常由开发者自己制作,没有向 CA 机构申请,Android 系统在安装 Apk 时也并没有校验证书本身的合法性,只是从证书中提取公钥和加密算法,因此,如果对第三方 Apk 重新签名,也能安装到没有安装过这个 Apk 的系统中
keystore 文件包含私钥、公钥和数字证书,分为很多种,Android 使用的是 Ja 标准 keystore 格式 JKS(Ja Key Storage)
Android App Bundle:用于通过 Google Play 发布的应用,需要升级到AS 3.2 以上版本才支持App Bundle 格式;
APK:用于创建可部署到设备上的签名 APK
点击 Finish 就会生成签名文件与签名后的 Apk
当我们需要升级 Apk 版本的时候,需要再次对 Apk 文件进行签名,可以通过配置 build.gradle 让其自动生成签名后的 Apk
如果你的项目是开源的,需要把你的签名信息写在 local.properties 中,然后在 .gitignore 配置文件中加入 local.properties ,这样 local.properties 就不会提交到开源项目中,签名信息也就不会被人获取
local.properties:
/build.gradle:
有时候我们的 apk 中某些功能需要系统签名,例如静默安装。测试系统签名的 apk,需要 root 权限,而带 Google APIs 的模拟器不能 root,因此要注意不能选择带 Google APIs 的模拟器
下面执行的操作都是在 Linux 中,如果 apk 是 window 中生成的,需要拷贝到 linux 操作,再将生成的系统签名过得 apk 再拷贝到 window,比较麻烦,可以考虑后面的自动系统签名,还是需要在 linux 操作一次,不过之后就可以只在 window 操作了
这两个文件在目录 aosp/build/target/product/security 下,如下图
在目录 aosp/prebuilts/sdk/tools/lib 下,如下图
将前面获取的 platform.pk8 、 platform.x509.pem 和 signapk.jar 文件放到需要签名的 apk 同一个目录,执行以下命令
如果出现上面的错误:Failed to load any of the given libraries: [conscrypt_openjdk_jni-linux-x86_64, conscrypt_openjdk_jni-linux-x86_64-fedora, conscrypt_openjdk_jni]
解决方法:
到目录 aosp/prebuilts/sdk/tools/linux/lib64 下,复制 libconscrypt_openjdk_jni.so 文件到需要签名 apk 的同一个目录,并将命令改为
自动进行系统签名的原理是:先生成一个 system.jks 文件,使用 keytool-importkeypair 对 system.jks 文件进行系统签名,再 build.gradle 和 local.properties 进行配置,直接使用带有系统签名的 system.jks 对 apk 进行签名,这样编译生成的apk文件就自带系统签名了
按照前面的方法,生成一个 system.jks 文件,此时是在 window 系统中操作的
进入 keytool-importkeypair 目录,将 system.jks、platform.pk8、platform.x509.pem 文件拷贝进来,拷贝之后的目录结构为
使用 linux 中修改过的带有系统签名的 system.jks 文件将 window 中最开始生成的 system.jks 覆盖掉,再像前面的自动签名部分一样,修改 build.gradle 和 local.properties 的配置,之后生成的 apk 就是系统签名过的了
测试方法是,在 AndroidManifest.xml 中添加 android:sharedUserId="android.uid.system" 后安装到 非 Google APIs 的模拟器上 , Google APIs 的模拟器不能 root,无法安装
会发现只有使用 system.jks 文件签名后才能安装,否则安装失败,会报以下的错误:
Android studio怎么生成签名apk
一、可以使用如APKTool之类的反编译工具,使用方法网上有介绍,反编译完成后修改所有引用包名的地方及对应的文件夹,然后重新编译为新的APK,最后再用签名工具签名就行。
二、第一步是用命令行的形式进行的,如果不愿意进行繁琐的配置过程,可以使用一些可视化的APK修改工作,如APK改之理、VTS(Virtuous Ten Stdio)等,但主要修改的地方更第一步是一致的。
android开发 怎么给apk文件用已有的签名文件进行签名,不用eclipse
1、生成你自己的jks文件
如果没有的就新建,点击Create New ... ?设置密码(123456)
然后Next -- Finish
2、使用keytool-importkeypair对jks文件引入系统签名
把platform.x509.pem、platform.pk8和上一部生成的jks文件统一放到一个文件夹下,比如我的是放在工程目录的signAPK目录下
将下载好的keytool-importkeypair配置一下,其实主要就是配置一下环境变量,不熟悉的可以阅读官方文档,然后使用下面这条命令(需要在linux下,用windows的可以去在linux下生成jks,然后复制出新的jks回原目录也可以)对jks文件引入系统签名
./keytool-importkeypair -k [jks文件名] -p [jks的密码] -pk8 platform.pk8 -cert platform.x509.pem -alias [jks的别名]
例如我的对应的就是:./keytool-importkeypair -k SignDemo.jks -p 123456 -pk8 platform.pk8 -cert platform.x509.pem -alias SignDemo
运行完这条命令之后,我们就得到了有系统签名的jks
3、配置gradle()
在在android区域下(与defaultConfig同级)添加signingConfigs配置:
依次填写jks的路径,密码,别名等
详情介绍
Android开发对apk文件进行签名
给apk文件签名主要分三步:
1、创建证书
2、签名
3、优化(可选)
1)使用jdk的keytool工具生成签名用的证书> keytool -genkey -v -alias CERT -keyalg RSA -keysize 2048 -validity 10000 -keystoreCERT.keystore 创建过程需要输入一些标识信息和密码,一些重要的参数值说明如下(根据自己的需要要进行相应的修改): CERT.keystore ---- 证书保存的文件名 CERT ---- 证书的别名 10000 ---- 10000天的有效期 2048 ---- 默认为 bits,Android 建议使用2048 bits或更高其他的详细信息可以使用keytool -help查看帮助 证书生成后使用如下命令可以查看证书的信息:> keytool -list -alias CERT -keystore CERT.keystore
2)使用jdk的jarsigner工具对apk文件签名> jarsigner -verbose -keystore CERT.keystore to_sign.apk CERT 签名过程需要输入证书的密码,一些重要的参数值说明如下(根据自己的需要要进行相应的修改): CERT.keystore ---- 证书保存的文件名 CERT ---- 证书的别名 待签名的apk文件根根目录下如果有文件夹“META-INFO”,请先删除(重新签名就需要这样做)。如果不想创建过程输出太多信息,可以删除“-verbose” 。上述签名会直接覆盖原来的文件,如果不想被覆盖而签名为另外的新文件 signed.akp,只需将 to_sign.apk 改为 -signedjar to_sign.apk signed.akp 即可。签名后可以使用如下命令验证是否签名成功: > jarsigner -verify to_sign.apk 如果需要查看更详细的验证信息,可修改为:> jarsigner -certs -verbose -verify to_sign.apk
3)使用android sdk的zipalign工具优化已签名的apk文件> zipalign -v 4 unaligned.apk aligned.apk 注意要在签名后再zipalign。这个工具不是jdk自带的,而是在%ANDROID_HOME%\tools\zipalign.exe。
Android apk 系统签名
对apk签名的步骤(适用于找回apk,对空包进行签名)
1.复制ja的jdk,bin目录的绝对路径(如果是默认安装应该和我的路径差不多)C:\Program Files\Ja\jdk1.8.0_111\bin
2.进入cmd窗口,进入bin目录(如果是新手,输入cd C:\Program Files\Ja\jdk1.8.0_111\bin)
输入命令 ? jarsigner -verbose -keystore d:\project\360Wallpaper.keystore -signedjar d:\qihusign.apk d:\Qihuunsign.apk QIHU360
将签名修改成自己签名的路径 ,生成的apk文件的名字路径修改一下,再输入需要签名的apk文件路径,最后输入自己签名的别名就可以
(新手,欢迎指正)
Android开发之通过apksigner对apk进行v2签名
因工作需要对系统的wifi和以太网进行配置,需要获取到系统权限以后才能进行操作,因此研究了下对apk 进行系统签名以获取系统权限,其实本来打算如果root可以的话直接通过root的方式(设备已经root),后来找了半天发现没有api进行修改,无奈只能进行系统签名了,有童鞋知道root方式修改不妨告诉我一下。
这些文件可以问系统厂商获取,如果是原生系统可以到系统源码目录下获取。
如果报以下的错误 ,这时候就用到准备的libconscrypt_openjdk_jni.so 文件
为了检测我们的应用是否已经签名成功 可以获取系统权限,看看能否获取到。
结果:
在上一种方式中,我们成功对我们的apk进行了系统签名,并且能使用系统权限,但是必须每次打包出apk再进行签名 对调试很不方便,下面我们可以生成带有系统签名的签名文件,在项目中使用,就不需要每次手动进行签名。
bubble可以替换为自己喜欢的名称,这一步要输入密码,我尝试输入其他不行,只能输入android。
bubble 可替换为自己喜欢的password和alias
到这里 两种对进行系统签名的方式完成,如有不足,欢迎指出.
手机怎么给APK签名
在 Android 7.0 Nougat 中引入了全新的 APK Signature Scheme v2签名方式,美团也推出相应的 Android渠道包生成工具Walle 。
360加固后需要重新签名,借助360官方提供的 签名工具qihoo apk signer ,是用的7.0以前的v1签名,这时再通过walle打渠道包,是无法成功往apk写入渠道号的。这时我们就必须借助 Android SDK提供的apksigner 工具对已经打包好的apk进行v2签名。
Android官方文档已经对 apksigner的使用 有比较详细的解释。下面说说实际的操作步骤:
zip对齐,因为APK包的本质是一个zip压缩文档,经过边界对齐方式优化能使包内未压缩的数据有序的排列,从而减少应用程序运行时的内存消耗 ,通过空间换时间的方式提高执行效率(zipalign后的apk包体积增大了100KB左右)。
打开cmd,把目录切换到SDK的build-tools目录下(例如 E:\SDK\build-tools\25.0.2\ ),执行:
zipalign命令选项不多:
-f : 输出文件覆盖源文件
-v : 详细的输出log
-p : outfile.zip should use the same page alignment for all shared object files within infile.zip
-c : 检查当前APK是否已经执行过Align优化。
另外上面的数字4是代表按照4字节(32位)边界对齐。
这个工具位于SDK目录的build-tools目录下。必须说明的是,v2签名方式时在Android7.0后才推出的,所以只有 版本>25 的SDK\build-tools\中才能找到apksigner.jar。
打开cmd,把目录切到SDK\build-tools\版本号\lib下(例如 E:\SDK\build-tools\25.0.2\lib ),执行:
示例:
apksigner还支持另外的一些选项, 详情点击这里 。包括指定min-sdk版本、max-sdk版本、输出详细信息、检查apk是否已经签名等等。
例如检查apk是否已经签名:
zipalign + apksigner,两步走完成对apk包的v2签名。且以上工具位于AndroidSDK目录的build-tools中。
经常在手机端修改Android软件的同学肯定知道,在APK被修改之后就需要重新来签名,否则是无法正常安装的。既然是手机党,自然接触电脑的机会就少了很多,小编也不去教大家如何在电脑上给APK签名了,咱们就说说如何用天天握在手上的手机怎么签名APK文件吧。
这里需要用到手机端签名的工具ZipSigner,这个工具不仅可给APK签名,还支持zip及jar格式。自己修改过ROM包后也可用它来进行签名。大伙先在手机上安装好。
去除APK原签名文件
我们把修改完成的APK在电脑上用解压缩软件打开,打开到META-INF文件夹,把里面的几个签名文件都删除,这个步骤是为了提高签名的成功率,通常不做也可以。
APK签名
ZipSigner安装后打开界面如图,默认的签名文件为SD卡上的unsigned.zip,可以把需要签名的APK改成这个名字,放到SD卡根目录,进行签名,签名后把signed.zip后缀名改成APK就可以了。也可以不用改名,把需要签名的APK文件放到SD卡根目录,然后点“选择输入/输出文件”,找到要签名的APK,程序里的ZipSigner输入/输出文件名也自动会相应更改了。文件选择好后点“签名选择文件”很快签名就完成了。
签名后安装
我们验证下签名后的APK程序是否能正常安装,用文件管理器在SD卡找到刚签名生成的APK,进行安装,果然可以正常安装了,好了,可以收工了。
签名其实就是一个很简单的过程,只不过我们可以用程序把他简单化。当然大家记住一个原则,无论是修改了APK的什么元素,只要是APK的结构产生了变化,就一定需要重新签名才能正常使用。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。