采用Signature Scheme v2签名方式的APK预置失败

在N版本设备上,尝试使用传统方式预置采用Signature Scheme v2签名的APK会导致预置失败。该问题涉及到APK签名的更新和设备的兼容性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[DESCRIPTION]
     Google在N上引入了一项新的应用签名方案Signature Scheme v2,它能提供更快的应用安装时间和更多针对APK文件更改的保护

      在N上预置APK时,如果APK是采用的Signature Scheme v2签名,采用原有的预置应用方式预置APK会失败:

Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES: Failed to collect certificates fr
om /data/app/vmdl1483607312.tmp/base.apk: META-INF/CERT.SF indicates /data/app/v
mdl1483607312.tmp/base.apk is signed using APK Signature Scheme v2, but no such
signature was found. Signature stripped?]

[SOLUTION]
经过BUILD_PREBUILT后的apk与原apk是有差异的,因为v2是对apk整体签名,所以这个差异导致签名失效。
1、app预置到到工程中,用android.mk编译之后的APK是有区别的,android编译系统会用zipalign对APK进行字节对齐等操作
2、APK Signature Scheme v2这个是Google在N上新引入的签名方式。v2 签名将验证归档中每个文件的已压缩文件内容,如有任何自定义任务篡改 APK 文件或对其进行后处理(无论以任何方式),那么v2 签名会有作废的风险

在预置APK build进系统时候不让其走编译流程,在其他模块的android.mk加入下面的cp脚本:
$(shell cp $(LOCAL_PATH)/***/*.apk $(TARGET_OUT)/vendor/operator/app)
 
APK能通过PMS扫描安装成功,可能还会报so找不到的问题,可以参考:N上预置APK失败提示找不到so文件








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值