问题背景
前置操作:
替换原system/priv-app 目录下已有的应用包未未签名的debug版本,然后重启。
现象:
无法正常开机,卡在开机动画,并且pm没有起来,因为执行adb install 命令是返回“cmd: Can't find service: package”。
应用信息:
跟Settings系统应用在同一进程。
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
coreApp="true"
package="com.demo.unit"
android:sharedUserId="android.uid.system">
<uses-sdk android:minSdkVersion="28" />
日志分析
//按size值依次添加应用包
11-12 16:36:42.139 3310 3310 D PERF/BehaviorHuber: addPackage-> uid=10059, pkg=com.android.soundpicker, type=643777, size=143
11-12 16:36:42.140 3310 3310 D PERF/BehaviorHuber: addPackage-> uid=2000, pkg=com.android.shell, type=128001, size=144
11-12 16:36:42.144 3310 3310 D PERF/BehaviorHuber: addPackage-> uid=10078, pkg=com.google.android.tag, type=644995, size=146
很明显zygote进程都没跑起来
11-12 16:36:42.146 3310 3310 I PackageManager: /system/priv-app/DemoUnit changed; collecting certs
11-12 16:36:42.149 3310 3310 I Watchdog: Resuming HandlerChecker: main thread for reason: packagemanagermain. Pause count: 0
11-12 16:36:42.149 3310 3310 E System : ******************************************
11-12 16:36:42.149 3310 3310 E System : ************ Failure starting system services
11-12 16:36:42.149 3310 3310 E System : java.lang.IllegalStateException: Signature mismatch on system package com.demo.unit for shared user SharedUserSetting{73b98d7 android.uid.system/1000}
11-12 16:36:42.149 3310 3310 E System : at com.android.server.pm.ReconcilePackageUtils.reconcilePackages(ReconcilePackageUtils.java:284)
11-12 16:36:42.149 3310 3310 E System : at com.android.server.pm.InstallPackageHelper.addForInitLI(InstallPackageHelper.java:3988)
11-12 16:36:42.149 3310 3310 E System : at com.android.server.pm.InstallPackageHelper.installPackagesFromDir(InstallPackageHelper.java:3797)
11-12 16:36:42.149 3310 3310 E System : at com.android.server.pm.InitAppsHelper.scanDirTracedLI(InitAppsHelper.java:463)
11-12 16:36:42.149 3310 3310 E System : at com.android.server.pm.InitAppsHelper.scanSystemDirs(InitAppsHelper.java:418)
11-12 16:36:42.149 3310 3310 E System : at com.android.