方法一:使用自己的Android签名工具给apk重新签名:
- 使用自己的Android签名工具给apk重新签名:
/build/target/product/security
该目录下有 media.pk8、media.x509.pem、platform.pk8、platform.x509.pem、shared.pk8、shared.x509.pem、testkey.pk8、testkey.x509.pem等签名文件,不同的签名文件,对应不同的权限。Android默认的签名文件为testkey.pk8、testkey.x509.pem。
signapk.jar
signapk.jar是Android源码包中的一个签名工具。
代码位于:Android源码目录下,signapk.jar 可以编译build/tools/signapk/ 得到。
使用signapk.jar签名时需要提供签名文件,我们可以使用安卓源码中提供的testkey.pk8与testkey.x509.pem,他们位于Android源码build/target/product/security目录。
使用android自带的签名工具signapk.jar 以及源码中的testkey.x509.pem,testkey.pk8 对apk进行重新签名。
执行:java -jar signapk.jar testkey.x509.pem testkey.pk8 old.apk new.apk 执行后new.apk即为签名后的文件。
(注:执行命令时所有文件这里放在同一目录下,如果不在同一目录请修改路径)。
含义:通过signapk.jar这个可执行jar包,以testkey.x509.pem这个公钥文件和testkey.pk8这个私钥文件对old.apk进行签名,签名后的文件保存为new.apk。
方法二:通过Android源码编译成签名apk:
- 编写Android.mk
1 | LOCAL_PATH := $(call my-dir) |
- 将apk放入.mk同目录(命名为app.apk),配置好sdk编译环境后执行mm指令,签名apk生成在:out/target/product/xxxx/system/priv-app/app/app.apk 。
方法三:Android studio配置签名工具:
- 生成本地key

- 下载keytool-importkeypair工具
1 | ./keytool-importkeypair -k [jks文件名] -p [jks的密码] -pk8 platform.pk8 -cert platform.x509.pem -alias [jks的别名] |
实质是运行 Sdk\build-tools\27.0.3\lib\apksigner.jar 进行签名:
java -jar apksigner.jar sign //执行签名操作
–ks 你的jks路径 //jks签名证书路径
–ks-key-alias 你的alias //生成jks时指定的alias
–ks-pass pass:你的密码 //KeyStore密码
–key-pass pass:你的密码 //签署者的密码,即生成jks时指定alias对应的密码
–out output.apk //输出路径
input.apk //被签名的apk
