diff options
author | Louis Chang <louischang@google.com> | 2023-01-06 00:56:15 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2023-01-06 00:56:15 +0000 |
commit | f83968c4c5a19648e86971ef53a58a6d3a783e75 (patch) | |
tree | 3fd556cc38bc65631cd7f52d4237923efd7df69d | |
parent | 4a3603ed0ace91c9ee0ac06ad0a7ab37f1908da8 (diff) | |
parent | 53a76608e5d8fc068e9425eb8c653adb3accfed8 (diff) | |
download | base-f83968c4c5a19648e86971ef53a58a6d3a783e75.tar.gz |
Revert "[RESTRICT AUTOMERGE] Trim the activity info of another uid if no privilege" am: 53a76608e5
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/20850158
Change-Id: Id57ae9cc7fd5b0e426e746589d4a9de2e6c05ce5
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
4 files changed, 5 insertions, 47 deletions
diff --git a/services/core/java/com/android/server/wm/AppTaskImpl.java b/services/core/java/com/android/server/wm/AppTaskImpl.java index 900b59e0a8a2..1eb7455135c7 100644 --- a/services/core/java/com/android/server/wm/AppTaskImpl.java +++ b/services/core/java/com/android/server/wm/AppTaskImpl.java @@ -84,8 +84,7 @@ class AppTaskImpl extends IAppTask.Stub { if (tr == null) { throw new IllegalArgumentException("Unable to find task ID " + mTaskId); } - return mService.getRecentTasks().createRecentTaskInfo(tr, - true /* getTasksAllowed */); + return mService.getRecentTasks().createRecentTaskInfo(tr); } finally { Binder.restoreCallingIdentity(origId); } diff --git a/services/core/java/com/android/server/wm/RecentTasks.java b/services/core/java/com/android/server/wm/RecentTasks.java index 56367f42886d..541a8bbc8865 100644 --- a/services/core/java/com/android/server/wm/RecentTasks.java +++ b/services/core/java/com/android/server/wm/RecentTasks.java @@ -944,7 +944,7 @@ class RecentTasks { continue; } - final ActivityManager.RecentTaskInfo rti = createRecentTaskInfo(tr, getTasksAllowed); + final ActivityManager.RecentTaskInfo rti = createRecentTaskInfo(tr); if (!getDetailedTasks) { rti.baseIntent.replaceExtras((Bundle) null); } @@ -1715,15 +1715,12 @@ class RecentTasks { /** * Creates a new RecentTaskInfo from a TaskRecord. */ - ActivityManager.RecentTaskInfo createRecentTaskInfo(TaskRecord tr, boolean getTasksAllowed) { + ActivityManager.RecentTaskInfo createRecentTaskInfo(TaskRecord tr) { ActivityManager.RecentTaskInfo rti = new ActivityManager.RecentTaskInfo(); tr.fillTaskInfo(rti); // Fill in some deprecated values rti.id = rti.isRunning ? rti.taskId : INVALID_TASK_ID; rti.persistentId = rti.taskId; - if (!getTasksAllowed) { - TaskRecord.trimIneffectiveInfo(tr, rti); - } return rti; } diff --git a/services/core/java/com/android/server/wm/RunningTasks.java b/services/core/java/com/android/server/wm/RunningTasks.java index 3c2e36cf245d..81a85476c53a 100644 --- a/services/core/java/com/android/server/wm/RunningTasks.java +++ b/services/core/java/com/android/server/wm/RunningTasks.java @@ -69,7 +69,7 @@ class RunningTasks { } final TaskRecord task = iter.next(); - list.add(createRunningTaskInfo(task, allowed)); + list.add(createRunningTaskInfo(task)); maxNum--; } } @@ -77,15 +77,11 @@ class RunningTasks { /** * Constructs a {@link RunningTaskInfo} from a given {@param task}. */ - private RunningTaskInfo createRunningTaskInfo(TaskRecord task, boolean allowed) { + private RunningTaskInfo createRunningTaskInfo(TaskRecord task) { final RunningTaskInfo rti = new RunningTaskInfo(); task.fillTaskInfo(rti); // Fill in some deprecated values rti.id = rti.taskId; - - if (!allowed) { - TaskRecord.trimIneffectiveInfo(task, rti); - } return rti; } } diff --git a/services/core/java/com/android/server/wm/TaskRecord.java b/services/core/java/com/android/server/wm/TaskRecord.java index 9de4c8121e4d..361f66e3106a 100644 --- a/services/core/java/com/android/server/wm/TaskRecord.java +++ b/services/core/java/com/android/server/wm/TaskRecord.java @@ -2437,40 +2437,6 @@ class TaskRecord extends ConfigurationContainer { } /** - * Removes the activity info if the activity belongs to a different uid, which is - * different from the app that hosts the task. - */ - static void trimIneffectiveInfo(TaskRecord task, TaskInfo info) { - int topActivityUid = task.effectiveUid; - for (int i = task.mActivities.size() - 1; i >= 0; --i) { - final ActivityRecord r = task.mActivities.get(i); - if (r.finishing || r.isState(ActivityState.INITIALIZING)) { - continue; - } - topActivityUid = r.info.applicationInfo.uid; - break; - } - - if (task.effectiveUid != topActivityUid) { - info.topActivity = null; - } - - int baseActivityUid = task.effectiveUid; - for (int i = 0; i < task.mActivities.size(); ++i) { - final ActivityRecord r = task.mActivities.get(i); - if (r.finishing) { - continue; - } - baseActivityUid = r.info.applicationInfo.uid; - break; - } - - if (task.effectiveUid != baseActivityUid) { - info.baseActivity = null; - } - } - - /** * Returns a {@link TaskInfo} with information from this task. */ ActivityManager.RunningTaskInfo getTaskInfo() { |