Merge "Fix IsolatedUidAllocator for non-primary users." into qt-qpr1-dev am: 074d6fbd3f

Change-Id: I5694831cc81fe5e1b90740d369d6148971ac617c
This commit is contained in:
Automerger Merge Worker
2020-01-17 14:54:26 +00:00
2 changed files with 13 additions and 4 deletions

View File

@@ -433,9 +433,7 @@ public final class ProcessList {
@GuardedBy("ProcessList.this.mService")
void freeIsolatedUidLocked(int uid) {
// Strip out userId
final int appId = UserHandle.getAppId(uid);
mUidUsed.delete(appId);
mUidUsed.delete(uid);
}
};

View File

@@ -346,10 +346,21 @@ public class ActivityManagerServiceTest {
verifyUidRangesNoOverlap(range, range2);
verifyIsolatedUidAllocator(range2);
// Free both, then try to allocate the maximum number of UID ranges
// Free both
allocator.freeUidRangeLocked(appInfo);
allocator.freeUidRangeLocked(appInfo2);
// Verify for a secondary user
ApplicationInfo appInfo3 = new ApplicationInfo();
appInfo3.processName = "com.android.test.app";
appInfo3.uid = 1010000;
final IsolatedUidRange range3 = allocator.getOrCreateIsolatedUidRangeLocked(
appInfo3.processName, appInfo3.uid);
validateAppZygoteIsolatedUidRange(range3);
verifyIsolatedUidAllocator(range3);
allocator.freeUidRangeLocked(appInfo3);
// Try to allocate the maximum number of UID ranges
int maxNumUidRanges = (Process.LAST_APP_ZYGOTE_ISOLATED_UID
- Process.FIRST_APP_ZYGOTE_ISOLATED_UID + 1) / Process.NUM_UIDS_PER_APP_ZYGOTE;
for (int i = 0; i < maxNumUidRanges; i++) {