加固apk后,在android11上安装失败

因为要适配android11版本,targetSdkVersion修改为 30后,进行加固apk,在android11上安装失败。
失败原因:加固apk后,v2签名没了,需要重新签v2.
在这里插入图片描述
我们可以使用Android SDK自带的apksigner.jar 对APK进行签名操作,apksigner.jar 存放在\Android\Sdk\build-tools\27.0.3\lib目录下。在这里插入图片描述

cmd编辑,打开指定目录

cd C:\Users\18745\AppData\Local\Android\Sdk\build-tools\27.0.3\lib

查看apk签名情况

这是安装失败的apk文件路径 C:\Users\18745\Desktop\DNP_3.3.96.2(6.1.8)_psigned.apk

java -jar apksigner.jar verify -v C:\Users\18745\Desktop\DNP_3.3.96.2(6.1.8)_psigned.apk

通过执行命令返回的结果可以看到V1与V2的签名情况
这是未签名的APK返回的的结果:

DOES NOT VERIFY
ERROR: Missing META-INF/MANIFEST.MF

这是v1签名的APK返回的的结果:

Verifies
Verified using v1 scheme (JAR signing): true
Verified using v2 scheme (APK Signature Scheme v2): false

这是v1v2都签名的APK返回的的结果:

Verifies
Verified using v1 scheme (JAR signing): true
Verified using v2 scheme (APK Signature Scheme v2): true

例子

java -jar apksigner.jar sign --ks [签名路径] --ks-key-alias [alias名称] --ks-pass pass:[密码] --key-pass pass:[密码] --out [签名后的新包路径] [待签名的包路径]
java -jar apksigner.jar sign --ks D:\ruanjian\AndroidPath\DeepiotPatrol\app\jks\deep.jks --ks-key-alias deep --ks-pass pass:123456 --key-pass pass:123456 --out C:\Users\18745\Desktop\DNP_3.3.96.2(6.1.8)_加固.apk C:\Users\18745\Desktop\DNP_3.3.96.2(6.1.8)_psigned.apk

生成签名后再次执行已确认v2签名是否成功

java -jar apksigner.jar verify -v C:\Users\18745\Desktop\DNP_3.3.96.2(6.1.8)_加固.apk
Verifies
Verified using v1 scheme (JAR signing): true
Verified using v2 scheme (APK Signature Scheme v2): true

新的apk可以安装在Android 11手机上了

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值