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

Commit 797ae050 authored by Kholoud Mohamed's avatar Kholoud Mohamed Committed by Android (Google) Code Review
Browse files

Merge "Changed INTERACT_ACROSS_PROFILES appop to be set per UID" into sc-dev

parents 551a988b 4670d1d8
Loading
Loading
Loading
Loading
+10 −10
Original line number Diff line number Diff line
@@ -506,16 +506,16 @@ public class CrossProfileAppsServiceImpl extends ICrossProfileApps.Stub {
            // this particular app-op to be modified without the broader app-op permissions.
            mInjector.withCleanCallingIdentity(() ->
                    mInjector.getAppOpsManager()
                            .setMode(OP_INTERACT_ACROSS_PROFILES, uid, packageName, newMode));
                            .setUidMode(OP_INTERACT_ACROSS_PROFILES, uid, newMode));
        } else {
            mInjector.getAppOpsManager()
                    .setMode(OP_INTERACT_ACROSS_PROFILES, uid, packageName, newMode);
                    .setUidMode(OP_INTERACT_ACROSS_PROFILES, uid, newMode);
        }
        // Kill the UID before sending the broadcast to ensure that apps can be informed when
        // their app-op has been revoked.
        maybeKillUid(packageName, uid, hadPermission);
        sendCanInteractAcrossProfilesChangedBroadcast(packageName, uid, UserHandle.of(profileId));
        maybeLogSetInteractAcrossProfilesAppOp(packageName, newMode, logMetrics, uid);
        sendCanInteractAcrossProfilesChangedBroadcast(packageName, UserHandle.of(profileId));
        maybeLogSetInteractAcrossProfilesAppOp(packageName, newMode, logMetrics);
    }

    /**
@@ -533,7 +533,7 @@ public class CrossProfileAppsServiceImpl extends ICrossProfileApps.Stub {
    }

    private void maybeLogSetInteractAcrossProfilesAppOp(
            String packageName, @Mode int newMode, boolean logMetrics, int uid) {
            String packageName, @Mode int newMode, boolean logMetrics) {
        if (!logMetrics) {
            return;
        }
@@ -541,7 +541,7 @@ public class CrossProfileAppsServiceImpl extends ICrossProfileApps.Stub {
                .createEvent(DevicePolicyEnums.SET_INTERACT_ACROSS_PROFILES_APP_OP)
                .setStrings(packageName)
                .setInt(newMode)
                .setBoolean(appDeclaresCrossProfileAttribute(uid))
                .setBoolean(appDeclaresCrossProfileAttribute(packageName))
                .write();
    }

@@ -557,10 +557,10 @@ public class CrossProfileAppsServiceImpl extends ICrossProfileApps.Stub {
    }

    private void sendCanInteractAcrossProfilesChangedBroadcast(
            String packageName, int uid, UserHandle userHandle) {
            String packageName, UserHandle userHandle) {
        final Intent intent =
                new Intent(ACTION_CAN_INTERACT_ACROSS_PROFILES_CHANGED).setPackage(packageName);
        if (appDeclaresCrossProfileAttribute(uid)) {
        if (appDeclaresCrossProfileAttribute(packageName)) {
            intent.addFlags(
                    Intent.FLAG_RECEIVER_INCLUDE_BACKGROUND | Intent.FLAG_RECEIVER_FOREGROUND);
        } else {
@@ -577,8 +577,8 @@ public class CrossProfileAppsServiceImpl extends ICrossProfileApps.Stub {
                .queryBroadcastReceiversAsUser(intent, /* flags= */ 0, userHandle);
    }

    private boolean appDeclaresCrossProfileAttribute(int uid) {
        return mInjector.getPackageManagerInternal().getPackage(uid).isCrossProfile();
    private boolean appDeclaresCrossProfileAttribute(String packageName) {
        return mInjector.getPackageManagerInternal().getPackage(packageName).isCrossProfile();
    }

    @Override