Check device owner by callingUid in ActivityStarter
Bug: 129565838
Test: atest ActivityStarterTests
Change-Id: Ic75a3198f7de34078ba3b9c794db893779e7bb77
diff --git a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java
index b64abdb..9717757 100644
--- a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java
+++ b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java
@@ -632,7 +632,7 @@
private FontScaleSettingObserver mFontScaleSettingObserver;
- private String mDeviceOwnerPackageName;
+ private int mDeviceOwnerUid = Process.INVALID_UID;
private final class FontScaleSettingObserver extends ContentObserver {
private final Uri mFontScaleUri = Settings.System.getUriFor(FONT_SCALE);
@@ -5829,15 +5829,12 @@
|| mWindowManager.mRoot.isAnyNonToastWindowVisibleForUid(uid);
}
- boolean isDeviceOwner(String packageName) {
- if (packageName == null) {
- return false;
- }
- return packageName.equals(mDeviceOwnerPackageName);
+ boolean isDeviceOwner(int uid) {
+ return uid >= 0 && mDeviceOwnerUid == uid;
}
- void setDeviceOwnerPackageName(String deviceOwnerPkg) {
- mDeviceOwnerPackageName = deviceOwnerPkg;
+ void setDeviceOwnerUid(int uid) {
+ mDeviceOwnerUid = uid;
}
/**
@@ -7283,9 +7280,9 @@
}
@Override
- public void setDeviceOwnerPackageName(String deviceOwnerPkg) {
+ public void setDeviceOwnerUid(int uid) {
synchronized (mGlobalLock) {
- ActivityTaskManagerService.this.setDeviceOwnerPackageName(deviceOwnerPkg);
+ ActivityTaskManagerService.this.setDeviceOwnerUid(uid);
}
}