Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fbff8c1c authored by Michal Karpinski's avatar Michal Karpinski Committed by Android (Google) Code Review
Browse files

Merge "Whitelisting remote bugreport finished broadcast" into nyc-dev

parents 6cb95582 7367ed84
Loading
Loading
Loading
Loading
+12 −2
Original line number Diff line number Diff line
@@ -499,6 +499,9 @@ public final class ActivityManagerService extends ActivityManagerNative
    private static final int PERSISTENT_MASK =
            ApplicationInfo.FLAG_SYSTEM|ApplicationInfo.FLAG_PERSISTENT;
    // Intent sent when remote bugreport collection has been completed
    private static final String INTENT_REMOTE_BUGREPORT_FINISHED =
            "android.intent.action.REMOTE_BUGREPORT_FINISHED";
    // Delay to disable app launch boost
    static final int APP_BOOST_MESSAGE_DELAY = 3000;
@@ -16797,10 +16800,12 @@ public final class ActivityManagerService extends ActivityManagerNative
            HashSet<ComponentName> singleUserReceivers = null;
            boolean scannedFirstReceivers = false;
            for (int user : users) {
                // Skip users that have Shell restrictions
                // Skip users that have Shell restrictions, with exception of always permitted
                // Shell broadcasts
                if (callingUid == Process.SHELL_UID
                        && mUserController.hasUserRestriction(
                        UserManager.DISALLOW_DEBUGGING_FEATURES, user)) {
                                UserManager.DISALLOW_DEBUGGING_FEATURES, user)
                        && !isPermittedShellBroadcast(intent)) {
                    continue;
                }
                List<ResolveInfo> newReceivers = AppGlobals.getPackageManager()
@@ -16867,6 +16872,11 @@ public final class ActivityManagerService extends ActivityManagerNative
        return receivers;
    }
    private boolean isPermittedShellBroadcast(Intent intent) {
        // remote bugreport should always be allowed to be taken
        return INTENT_REMOTE_BUGREPORT_FINISHED.equals(intent.getAction());
    }
    final int broadcastIntentLocked(ProcessRecord callerApp,
            String callerPackage, Intent intent, String resolvedType,
            IIntentReceiver resultTo, int resultCode, String resultData,