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

Commit af5ef4e0 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Use killUid instead of killApplication to kill app" into rvc-dev am:...

Merge "Use killUid instead of killApplication to kill app" into rvc-dev am: 7f5a592d am: 16fd0097 am: d3ff9239 am: ea0c01d4

Change-Id: I4c5b8e123acee88705915b4fd3dbbf136107e9e9
parents 6ab07b7d ea0c01d4
Loading
Loading
Loading
Loading
+11 −12
Original line number Diff line number Diff line
@@ -61,6 +61,7 @@ import com.android.internal.util.ArrayUtils;
import com.android.internal.util.FunctionalUtils.ThrowingRunnable;
import com.android.internal.util.FunctionalUtils.ThrowingSupplier;
import com.android.server.LocalServices;
import com.android.server.pm.permission.PermissionManagerService;
import com.android.server.wm.ActivityTaskManagerInternal;

import java.util.ArrayList;
@@ -479,9 +480,11 @@ public class CrossProfileAppsServiceImpl extends ICrossProfileApps.Stub {
            mInjector.getAppOpsManager()
                    .setMode(OP_INTERACT_ACROSS_PROFILES, uid, packageName, 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(userId));
        maybeLogSetInteractAcrossProfilesAppOp(packageName, newMode, userId, logMetrics, uid);
        maybeKillUid(packageName, uid, hadPermission);
    }

    /**
@@ -496,7 +499,7 @@ public class CrossProfileAppsServiceImpl extends ICrossProfileApps.Stub {
        if (hasInteractAcrossProfilesPermission(packageName, uid, PermissionChecker.PID_UNKNOWN)) {
            return;
        }
        mInjector.killUid(packageName, uid);
        mInjector.killUid(uid);
    }

    private void maybeLogSetInteractAcrossProfilesAppOp(
@@ -823,15 +826,11 @@ public class CrossProfileAppsServiceImpl extends ICrossProfileApps.Stub {
        }

        @Override
        public void killUid(String packageName, int uid) {
            try {
                ActivityManager.getService().killApplication(
                        packageName,
        public void killUid(int uid) {
            PermissionManagerService.killUid(
                    UserHandle.getAppId(uid),
                    UserHandle.getUserId(uid),
                    PermissionManager.KILL_APP_REASON_PERMISSIONS_REVOKED);
            } catch (RemoteException ignored) {
            }
        }
    }

@@ -873,7 +872,7 @@ public class CrossProfileAppsServiceImpl extends ICrossProfileApps.Stub {

        int checkComponentPermission(String permission, int uid, int owningUid, boolean exported);

        void killUid(String packageName, int uid);
        void killUid(int uid);
    }

    class LocalService extends CrossProfileAppsInternal {
+1 −1
Original line number Diff line number Diff line
@@ -747,7 +747,7 @@ public class CrossProfileAppsServiceImplRoboTest {
        }

        @Override
        public void killUid(String packageName, int uid) {
        public void killUid(int uid) {
            mKilledUids.add(uid);
        }
    }
+6 −10
Original line number Diff line number Diff line
@@ -32,7 +32,6 @@ import android.content.pm.PermissionInfo;
import android.content.pm.ResolveInfo;
import android.os.Bundle;
import android.os.IBinder;
import android.os.RemoteException;
import android.os.UserHandle;
import android.os.UserManager;
import android.permission.PermissionManager;
@@ -42,6 +41,7 @@ import android.util.SparseArray;
import com.android.internal.util.FunctionalUtils.ThrowingRunnable;
import com.android.internal.util.FunctionalUtils.ThrowingSupplier;
import com.android.server.LocalServices;
import com.android.server.pm.permission.PermissionManagerService;
import com.android.server.wm.ActivityTaskManagerInternal;

import org.junit.Before;
@@ -696,15 +696,11 @@ public class CrossProfileAppsServiceImplTest {
        }

        @Override
        public void killUid(String packageName, int uid) {
            try {
                ActivityManager.getService().killApplication(
                        packageName,
        public void killUid(int uid) {
            PermissionManagerService.killUid(
                    UserHandle.getAppId(uid),
                    UserHandle.getUserId(uid),
                    PermissionManager.KILL_APP_REASON_PERMISSIONS_REVOKED);
            } catch (RemoteException ignored) {
            }
        }
    }
}