Loading services/core/java/com/android/server/am/ActivityManagerService.java +13 −6 Original line number Original line Diff line number Diff line Loading @@ -7819,7 +7819,7 @@ public final class ActivityManagerService extends ActivityManagerNative } } if (!allowed) { if (!allowed) { Slog.w(TAG, caller + ": caller " + callingUid Slog.w(TAG, caller + ": caller " + callingUid + " does not hold GET_TASKS; limiting output"); + " does not hold REAL_GET_TASKS; limiting output"); } } return allowed; return allowed; } } Loading Loading @@ -12040,16 +12040,23 @@ public final class ActivityManagerService extends ActivityManagerNative public List<ActivityManager.RunningAppProcessInfo> getRunningAppProcesses() { public List<ActivityManager.RunningAppProcessInfo> getRunningAppProcesses() { enforceNotIsolatedCaller("getRunningAppProcesses"); enforceNotIsolatedCaller("getRunningAppProcesses"); final int callingUid = Binder.getCallingUid(); // Lazy instantiation of list // Lazy instantiation of list List<ActivityManager.RunningAppProcessInfo> runList = null; List<ActivityManager.RunningAppProcessInfo> runList = null; final boolean allUsers = ActivityManager.checkUidPermission(INTERACT_ACROSS_USERS_FULL, final boolean allUsers = ActivityManager.checkUidPermission(INTERACT_ACROSS_USERS_FULL, Binder.getCallingUid()) == PackageManager.PERMISSION_GRANTED; callingUid) == PackageManager.PERMISSION_GRANTED; int userId = UserHandle.getUserId(Binder.getCallingUid()); final int userId = UserHandle.getUserId(callingUid); final boolean allUids = isGetTasksAllowed( "getRunningAppProcesses", Binder.getCallingPid(), callingUid); synchronized (this) { synchronized (this) { // Iterate across all processes // Iterate across all processes for (int i = mLruProcesses.size() - 1; i >= 0; i--) { for (int i = mLruProcesses.size() - 1; i >= 0; i--) { ProcessRecord app = mLruProcesses.get(i); ProcessRecord app = mLruProcesses.get(i); if (!allUsers && app.userId != userId) { if ((!allUsers && app.userId != userId) || (!allUids && app.uid != callingUid)) { continue; continue; } } if ((app.thread != null) && (!app.crashing && !app.notResponding)) { if ((app.thread != null) && (!app.crashing && !app.notResponding)) { Loading @@ -12073,7 +12080,7 @@ public final class ActivityManagerService extends ActivityManagerNative //Slog.v(TAG, "Proc " + app.processName + ": imp=" + currApp.importance //Slog.v(TAG, "Proc " + app.processName + ": imp=" + currApp.importance // + " lru=" + currApp.lru); // + " lru=" + currApp.lru); if (runList == null) { if (runList == null) { runList = new ArrayList<ActivityManager.RunningAppProcessInfo>(); runList = new ArrayList<>(); } } runList.add(currApp); runList.add(currApp); } } Loading Loading
services/core/java/com/android/server/am/ActivityManagerService.java +13 −6 Original line number Original line Diff line number Diff line Loading @@ -7819,7 +7819,7 @@ public final class ActivityManagerService extends ActivityManagerNative } } if (!allowed) { if (!allowed) { Slog.w(TAG, caller + ": caller " + callingUid Slog.w(TAG, caller + ": caller " + callingUid + " does not hold GET_TASKS; limiting output"); + " does not hold REAL_GET_TASKS; limiting output"); } } return allowed; return allowed; } } Loading Loading @@ -12040,16 +12040,23 @@ public final class ActivityManagerService extends ActivityManagerNative public List<ActivityManager.RunningAppProcessInfo> getRunningAppProcesses() { public List<ActivityManager.RunningAppProcessInfo> getRunningAppProcesses() { enforceNotIsolatedCaller("getRunningAppProcesses"); enforceNotIsolatedCaller("getRunningAppProcesses"); final int callingUid = Binder.getCallingUid(); // Lazy instantiation of list // Lazy instantiation of list List<ActivityManager.RunningAppProcessInfo> runList = null; List<ActivityManager.RunningAppProcessInfo> runList = null; final boolean allUsers = ActivityManager.checkUidPermission(INTERACT_ACROSS_USERS_FULL, final boolean allUsers = ActivityManager.checkUidPermission(INTERACT_ACROSS_USERS_FULL, Binder.getCallingUid()) == PackageManager.PERMISSION_GRANTED; callingUid) == PackageManager.PERMISSION_GRANTED; int userId = UserHandle.getUserId(Binder.getCallingUid()); final int userId = UserHandle.getUserId(callingUid); final boolean allUids = isGetTasksAllowed( "getRunningAppProcesses", Binder.getCallingPid(), callingUid); synchronized (this) { synchronized (this) { // Iterate across all processes // Iterate across all processes for (int i = mLruProcesses.size() - 1; i >= 0; i--) { for (int i = mLruProcesses.size() - 1; i >= 0; i--) { ProcessRecord app = mLruProcesses.get(i); ProcessRecord app = mLruProcesses.get(i); if (!allUsers && app.userId != userId) { if ((!allUsers && app.userId != userId) || (!allUids && app.uid != callingUid)) { continue; continue; } } if ((app.thread != null) && (!app.crashing && !app.notResponding)) { if ((app.thread != null) && (!app.crashing && !app.notResponding)) { Loading @@ -12073,7 +12080,7 @@ public final class ActivityManagerService extends ActivityManagerNative //Slog.v(TAG, "Proc " + app.processName + ": imp=" + currApp.importance //Slog.v(TAG, "Proc " + app.processName + ": imp=" + currApp.importance // + " lru=" + currApp.lru); // + " lru=" + currApp.lru); if (runList == null) { if (runList == null) { runList = new ArrayList<ActivityManager.RunningAppProcessInfo>(); runList = new ArrayList<>(); } } runList.add(currApp); runList.add(currApp); } } Loading