[RK3399][Android7.1] 除錯筆記 --- Sending non-protected broadcast ...
阿新 • • 發佈:2018-11-19
Platform: RK3399
OS: Android 7.1
Kernel: v4.4.83
使用自定義的廣播,然後用命令列測試的時候出現如下warning:
1300 D AndroidRuntime: Calling main entry com.android.commands.am.Am 01-01 08:00:36.945 610 1072 E ActivityManager: Sending non-protected broadcast android.intent.action.SHOW_NAVIGATION_BAR from system uid 0 pkg null 01-01 08:00:36.945 610 1072 E ActivityManager: java.lang.Throwable 01-01 08:00:36.945 610 1072 E ActivityManager: at com.android.server.am.ActivityManagerService.checkBroadcastFromSystem(ActivityManagerService.java:18137) 01-01 08:00:36.945 610 1072 E ActivityManager: at com.android.server.am.ActivityManagerService.broadcastIntentLocked(ActivityManagerService.java:18704) 01-01 08:00:36.945 610 1072 E ActivityManager: at com.android.server.am.ActivityManagerService.broadcastIntent(ActivityManagerService.java:18795) 01-01 08:00:36.945 610 1072 E ActivityManager: at android.app.ActivityManagerNative.onTransact(ActivityManagerNative.java:499) 01-01 08:00:36.945 610 1072 E ActivityManager: at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:2909) 01-01 08:00:36.945 610 1072 E ActivityManager: at android.os.Binder.execTransact(Binder.java:565) 01-01 08:00:36.957 1300 1300 D AndroidRuntime: Shutting down VM 01-01 08:00:37.284 1167 1227 D RKUpdateService: WorkHandler::handleMessage() : To perform 'COMMAND_CHECK_LOCAL_UPDATING'. 01-01 08:00:37.284 1167 1227 D RKUpdateService: getValidFirmwareImageFile() : Target image file path : /data/media/0/update.zip 01-01 08:00:37.284 1167 1227 D RKUpdateService: getValidFirmwareImageFile() : Target image file path : /storage/emulated/0/update.zip
原因:
系統對自定義廣播做了保護限制,對廣播做了保護限定之後,只有一定許可權的使用者才可以使用。否則用一次就會列印一次warning,並且儲存異常資訊到檔案中。
解決方法:
framework/base目錄: diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml index 45086c0..d8f3a9a 100644 --- a/core/res/AndroidManifest.xml +++ b/core/res/AndroidManifest.xml @@ -495,6 +495,10 @@ <!--for cec--> <protected-broadcast android:name="com.rockchip.hdmicec.power_status_changed" /> + <protected-broadcast android:name="android.intent.action.HIDE_NAVIGATION_BAR" /> + <protected-broadcast android:name="android.intent.action.SHOW_NAVIGATION_BAR" /> + + <!-- ====================================================================== --> <!-- RUNTIME PERMISSIONS --> <!-- ====================================================================== -->
參考:
Android受限廣播(protected-broadcast)
[Q]Sending non-protected broadcast問題分析
protected-broadcast 規範使用系統應用元件自定義廣播
protected-broadcast 的一些細節