Android恢复出厂设置后应用签名突然不对的问题

Kernel: v3.0.36

Device: rk3188

Platform Version: Android 4.4.2

前言:

最近遇到一个奇怪的问题,恢复出厂设置后,在/system/priv-app/下的一个应用突然启动不了,查看日志发现导致启动不了得原因是签名不匹配。

分析过程:

应用特点

  1. 该应用在恢复出厂设置之前是正常启动,也没报签名不对。
  2. 该应用是在AndroidManifest.xml中使用了android:sharedUserId=”android.uid.system”。
  3. 该应用是使用了系统签名的。

应用经历了什么?

恢复出厂设置之前,应用原本是经过系统编译进升级包中并使用的系统签名,后来经过Anroidstudio编译使用debug签名进行了调试,并push到/system/priv-app/,之后应用一直正常使用,也未报签名有问题。

理论上使用debug签名调试,签名就应该已经有问题了,应用根本就启动不了,但实际上应用正常调试,并未出问题。

猜测

  1. 应用启动时,apk被解压加载,签名被解析进dalvik-cache中。后面使用debug签名调试时,使用的还是之前dalvik-cache中的签名。

  2. 恢复出厂设置之后,dalvik-cache中的签名被删除,apk被重新解压,此时系统启动应用时,识别出debug签名不能使用sharedUserId,因此应用启动不了。

验证

后续上验证结果。

转载请注明出处:http://www.wolfnx.com/2019/04/15/SignatureAfterFactoryReset

作者 : wolfnx
邮箱 : wolfnx@outlook.com
邮箱2 : lostnx@gmail.com

Click Me