Merge "Use killUid instead of killApplication to kill app" into rvc-dev am: 7f5a592d65 am: 16fd0097c7

Change-Id: I8e69ab676941ce0f35239f310e4352336b808c24
This commit is contained in:
TreeHugger Robot
2020-05-29 16:31:18 +00:00
committed by Automerger Merge Worker
3 changed files with 18 additions and 23 deletions

View File

@@ -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,
UserHandle.getAppId(uid),
UserHandle.getUserId(uid),
PermissionManager.KILL_APP_REASON_PERMISSIONS_REVOKED);
} catch (RemoteException ignored) {
}
public void killUid(int uid) {
PermissionManagerService.killUid(
UserHandle.getAppId(uid),
UserHandle.getUserId(uid),
PermissionManager.KILL_APP_REASON_PERMISSIONS_REVOKED);
}
}
@@ -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 {

View File

@@ -747,7 +747,7 @@ public class CrossProfileAppsServiceImplRoboTest {
}
@Override
public void killUid(String packageName, int uid) {
public void killUid(int uid) {
mKilledUids.add(uid);
}
}

View File

@@ -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,
UserHandle.getAppId(uid),
UserHandle.getUserId(uid),
PermissionManager.KILL_APP_REASON_PERMISSIONS_REVOKED);
} catch (RemoteException ignored) {
}
public void killUid(int uid) {
PermissionManagerService.killUid(
UserHandle.getAppId(uid),
UserHandle.getUserId(uid),
PermissionManager.KILL_APP_REASON_PERMISSIONS_REVOKED);
}
}
}