Prevent system uid component from running in an app process

Bug: 21669445
Change-Id: I11d0bc5301d7e2a64972221f54f3cbd611f8e404
(cherry picked from commit 44368567f8)
This commit is contained in:
Wale Ogunwale
2015-06-11 12:44:47 -07:00
parent 5e50e00c66
commit dd673a63a6

View File

@@ -2695,9 +2695,14 @@ public final class ActivityManagerService extends ActivityManagerNative
// should never happen).
SparseArray<ProcessRecord> procs = mProcessNames.getMap().get(processName);
if (procs == null) return null;
final int N = procs.size();
for (int i = 0; i < N; i++) {
if (UserHandle.isSameUser(procs.keyAt(i), uid)) return procs.valueAt(i);
final int procCount = procs.size();
for (int i = 0; i < procCount; i++) {
final int procUid = procs.keyAt(i);
if (UserHandle.isApp(procUid) || !UserHandle.isSameUser(procUid, uid)) {
// Don't use an app process or different user process for system component.
continue;
}
return procs.valueAt(i);
}
}
ProcessRecord proc = mProcessNames.get(processName, uid);