OSDN Git Service

Ignores protected broadcasts if not priv-app
authorPatrick Baumann <patb@google.com>
Thu, 8 Feb 2018 17:16:21 +0000 (09:16 -0800)
committerPatrick Baumann <patb@google.com>
Thu, 8 Feb 2018 18:11:47 +0000 (10:11 -0800)
Change-Id: I5bd2bf3bd7c38fd9cc563a02b24bc569495d79ed
Fixes: 65423991
Test: manual - system starts without issue
Test: manual - wrote test app to verify only priv-app protected-broadcast can block broadcasts of non-system apps

services/core/java/com/android/server/pm/PackageManagerService.java

index a0cb722..60c7dcb 100644 (file)
@@ -10737,8 +10737,6 @@ Slog.e("TODD",
                     ~ApplicationInfo.PRIVATE_FLAG_DEFAULT_TO_DEVICE_PROTECTED_STORAGE;
             pkg.applicationInfo.privateFlags &=
                     ~ApplicationInfo.PRIVATE_FLAG_DIRECT_BOOT_AWARE;
-            // clear protected broadcasts
-            pkg.protectedBroadcasts = null;
             // cap permission priorities
             if (pkg.permissionGroups != null && pkg.permissionGroups.size() > 0) {
                 for (int i = pkg.permissionGroups.size() - 1; i >= 0; --i) {
@@ -10747,6 +10745,8 @@ Slog.e("TODD",
             }
         }
         if ((scanFlags & SCAN_AS_PRIVILEGED) == 0) {
+            // clear protected broadcasts
+            pkg.protectedBroadcasts = null;
             // ignore export request for single user receivers
             if (pkg.receivers != null) {
                 for (int i = pkg.receivers.size() - 1; i >= 0; --i) {