如何给apk手动重新打上签名

[QUESTION]
如何给apk手动重新打上签名

[ANSWER]

有时,为了验证特定功能,获取必要权限,需要手动给apk打上需要的签名,步骤如下:

1.首先需要有java环境

2.需要打签名的工具,该工具的源码位于android源码的build/tools/signapk目录下,linux系统编译生成的位置在out/host/linux-x86/framework/signapk.jar

3.需要所打签名的公钥和私钥,对于各个厂家自己的签名,不同厂家具体位置不同,google默认位置为build/target/product/security目录,该目录下为debug版本的签名,后缀为pem的文件代表公钥,后缀为pk8的文件表示私钥。

4.打签名方法:

java  -jar 路径/signapk.jar    路径/公钥   路径/私钥    source.apk     target.apk

路径: 表示signapk.jar,公钥,私钥所在的路径

公钥:签名的公钥,例如platform.x509.pem

私钥:签名的私钥,例如platform.pk8,注意公钥和私钥要匹配,成对出现

source.apk:需要手动打签名的apk

target.apk:重新打签名后的apk

示例:

java -jar out/host/linux-x86/framework/signapk.jar build/target/product/security/platform.x509.pem build/target/product/security/platform.pk8 QQ.apk QQ_resign.apk

5.验证:

可以先安装原始的apk,例如 QQ.apk,然后再次通过adb方式安装重新打签名的apk:QQ_resign.apk,如果因为签名不一致导致的安装失败,说明打签名成功。

//安装原始apk

adb install QQ.apk Success

//安装重新打签名的apk

adb install -r QQ_resign.apk Failure [INSTALL_FAILED_UPDATE_INCOMPATIBLE]

 

PS:apk之所以需要签名,是出于安全考虑的认证方式,apk没有签名或者前后签名不一致都无法安装。任何对apk的篡改,都需要重新对apk签名才能安装,由于篡改者是无法获取原始apk的秘钥信息,因此篡改后的apk由于签名不一致是无法替换原始apk的,这样既保证了apk的安全性,同时也保证了手机的安全和稳定性。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值