第一步:
adb logcat 取出log
11-02 10:34:59.306 5568 5568 D AndroidRuntime: Shutting down VM 11-02 10:34:59.306 5568 5568 E AndroidRuntime: *** FATAL EXCEPTION IN SYSTEM PROCESS: main 11-02 10:34:59.306 5568 5568 E AndroidRuntime: java.lang.IllegalStateException: Signature|privileged permissions not in privapp-permissions whitelist: {com.xxx.app.activation (/system/priv-app/MyApk): android.permission.CHANGE_COMPONENT_ENABLED_STATE, com.xxx.app.activation (/system/priv-app/MyApk): android.permission.READ_PRIVILEGED_PHONE_STATE, com.xxx.app.activation (/system/priv-app/MyApk): android.permission.PACKAGE_USAGE_STATS} 11-02 10:34:59.306 5568 5568 E AndroidRuntime: at com.android.server.pm.permission.PermissionManagerService.systemReady(PermissionManagerService.java:4674) 11-02 10:34:59.306 5568 5568 E AndroidRuntime: at com.android.server.pm.permission.PermissionManagerService.access$500(PermissionManagerService.java:182) 11-02 10:34:59.306 5568 5568 E AndroidRuntime: at com.android.server.pm.permission.PermissionManagerService$PermissionManagerServiceInternalImpl.systemReady(PermissionManagerService.java:4757) 11-02 10:34:59.306 5568 5568 E AndroidRuntime: at com.android.server.pm.PackageManagerService.systemReady(PackageManagerService.java:21707) 11-02 10:34:59.306 5568 5568 E AndroidRuntime: at com.android.server.SystemServer.startOtherServices(SystemServer.java:2236) 11-02 10:34:59.306 5568 5568 E AndroidRuntime: at com.android.server.SystemServer.run(SystemServer.java:623) 11-02 10:34:59.306 5568 5568 E AndroidRuntime: at com.android.server.SystemServer.main(SystemServer.java:429) 11-02 10:34:59.306 5568 5568 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method) 11-02 10:34:59.306 5568 5568 E AndroidRuntime: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:612) 11-02 10:34:59.306 5568 5568 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:975) 11-02 10:34:59.309 5568 5568 I PowerHalWrapper: <NotifyAppCrash> pack: ,pid: == myPid:5568 11-02 10:34:59.310 5568 5568 I DropBoxManagerService: add tag=system_server_crash isTagEnabled=true flags=0x2 11-02 10:34:59.314 5568 5568 W AES : Exception Log handling... 11-02 10:34:59.315 5568 5568 D AES : ExceptionLog: notify aed, process:system_server pid:5568 cause:system_server_crash
從log中可以看出是沒有添加權限導致的問題。
第二步
添加權限,文件地址:frameworks/base/data/etc/privapp-permissions-platform.xml
</permissions> .......................... <privapp-permissions package="com.xxx.app.activation"> <uses-permission name="android.permission.RECEIVE_BOOT_COMPLETED"/> <uses-permission name="android.permission.READ_PHONE_STATE"/> <uses-permission name="android.permission.FOREGROUND_SERVICE"/> <uses-permission name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission name="android.permission.ACCESS_WIFI_STATE"/> <uses-permission name="android.permission.INTERNET"/> <uses-permission name="android.permission.CHANGE_NETWORK_STATE"/> <uses-permission name="android.permission.CHANGE_COMPONENT_ENABLED_STATE"/> <uses-permission name="android.permission.PACKAGE_USAGE_STATS"/> </privapp-permissions> </permissions>
這些權限都是這個應用在AndroidManifest.xml中申請的權限。