04-27 16:44:17.734311 1169 2191 I ActivityManager: START u0 {act=android.intent.action.VIEW dat=content://com.google.android.bluetooth.fileprovider/bluetooth/bluetooth/豆瓣FM3.2.0-1.apk typ=application/vnd.android.package-archive flg=0x10000000 cmp=com.google.android.packageinstaller/com.android.packageinstaller.PackageInstallerActivity} from uid 10084 on display 0 04-27 16:44:17.734475 1169 2191 W PackageManager: checkUidPermission(): android.permission.START_ANY_ACTIVITY of 10084 is denied. 04-27 16:44:17.748716 1169 2191 V ActivityManager: Broadcast: Intent { act=android.intent.action.ap.check flg=0x10 (has extras) } ordered=false userid=0 callerApp=ProcessRecord{3a5f18b 5271:com.android.shell/2000} 04-27 16:44:17.750541 1169 2191 V WindowManager: Looking for focus: 17 = Window{83b6081 u0 StatusBar}, flags=-2122055608, canReceive=false 04-27 16:44:17.750590 1169 2191 V WindowManager: findFocusedWindow: No focusable windows. 04-27 16:44:17.761600 1169 1187 V SettingsProvider: packageValueForCallResult, name = null, value : Bundle[{_track_generation=android.util.MemoryIntArray@5b, value=null, _generation_index=2, _generation=16}] 04-27 16:44:17.779096 1169 2281 W PackageManager: checkUidPermission(): android.permission.INTERACT_ACROSS_USERS of 10028 is denied. 04-27 16:44:17.829337 1169 2280 I ActivityManager: START u0 {act=android.intent.action.VIEW dat=content://com.google.android.bluetooth.fileprovider/bluetooth/bluetooth/豆瓣FM3.2.0-1.apk typ=application/vnd.android.package-archive flg=0x10000000 cmp=com.google.android.packageinstaller/com.android.packageinstaller.PackageInstallerActivity} from uid 10084 on display 0 04-27 16:44:17.829457 1169 2280 W PackageManager: checkUidPermission(): android.permission.START_ANY_ACTIVITY of 10084 is denied. 04-27 16:44:17.842241 1169 2280 V ActivityManager: Broadcast: Intent { act=android.intent.action.ap.check flg=0x10 (has extras) } ordered=false userid=0 callerApp=ProcessRecord{3a5f18b 5271:com.android.shell/2000} 04-27 16:44:17.844197 1169 2280 V WindowManager: Looking for focus: 17 = Window{83b6081 u0 StatusBar}, flags=-2122055608, canReceive=false 04-27 16:44:17.844245 1169 2280 V WindowManager: findFocusedWindow: No focusable windows. 04-27 16:44:17.874274 1169 1344 W ActivityManager: Permission Denial: opening provider android.support.v4.content.FileProvider from ProcessRecord{a16870f 9056:com.google.android.packageinstaller/u0a28} (pid=9056, uid=10028) that is not exported from uid 1002 04-27 16:44:17.885623 1169 2182 W ActivityManager: Force finishing activity com.google.android.packageinstaller/com.android.packageinstaller.PackageInstallerActivity
这个问题是我一个同事咨询我的一个谷歌packageinstall报错问题,然后看当前log,我就问题是不是对方测试机 通过蓝牙发送一个apk过来,然后在蓝牙保存的目录直接安装导致的。 我说是。
然后这个问题可以看得出来 Permission Denial: opening provider android.support.v4.content.FileProvider from ProcessRecord{a16870f 9056:com.google.android.packageinstaller/u0a28} (pid=9056, uid=10028) that is not exported from uid 1002
这里报错,然后是 com.google.android.packageinstaller/u0a28去打开 1002的FileProvider导致的出错。
然后可以去event log中去找到 1002是 com.android.bluetooth/.btservice.AdapterService
然后我们就去找到.btservice.AdapterService的AndroidManifest.xml找到该provider,然后把这个provider的 android:exported="false"改成true 。