美文网首页
采用Signature Scheme v2签名方式的APK预置进

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

作者: roc_wx | 来源:发表于2018-04-25 17:32 被阅读0次

    在8.0和8.1 平台 上面预置 可卸载APP 时  如果不显示或者不成功

    需要判断是否是V2 签名 如果是V2签名 请将app放在vendor/haocheng/proprietary/data/app_v2 这个目录下面

    其次 debug 验证app预置是否能够正常运行时  push 到vendor/operator/app  重启没显示的话 请恢复出厂设置

    [DESCRIPTION]

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

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

    [SOLUTION]

    经过BUILD_PREBUILT后的apk与原apk是有差异的,因为v2是对apk整体签名,所以这个差异导致签名失效;

    1、放入到工程用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是不是采用Signature Scheme v2签名?

    可参考:http://blog.bihe0832.com/android-v2-signature.html

    可以使用附件jar包检查apk是不是v2签名

    java -jar ./CheckAndroidV2Signature.jar ××××.apk {"ret":0,"msg":"ok","isV2":false,"isV2OK":true}

    在预置apk之前可以先把apk push到vendor/operator/app文件下看是否运行正常,

    如果报错提示如下log信息

    01-01 13:12:13.350 4400 4400 W com.telcel.imk: type=1400 audit(0.0:512): avc: denied { read } for name="libsqlite3.so" dev="mmcblk0p22" ino=417870 scontext=u:r:untrusted_app:s0:c512,c768 tcontext=u:object_r:system_data_file:s0 tclass=file permissive=0

    01-01 13:12:13.356 1574 1574 V DisplayEventReceiver: call nativeScheduleVsync mReceiverPtr = -1449357200

    01-01 13:12:13.357 4400 4400 E Database: Cannot load native library

    可以先用eng版本手动测试:adb shell setenforce 0 后是否运行正常

    如果解决问题做如下修改

    Add the policy to alps/device/mediatek/common/sepolicy/basic|bsp|full/untrusted_app.te

    #====================== untrusted_app.te ======================

    allow untrusted_app system_data_file:file r_file_perms;

    相关文章

      网友评论

          本文标题:采用Signature Scheme v2签名方式的APK预置进

          本文链接:https://www.haomeiwen.com/subject/unmylftx.html