From 53a76608e5d8fc068e9425eb8c653adb3accfed8 Mon Sep 17 00:00:00 2001 From: Louis Chang Date: Wed, 4 Jan 2023 04:59:56 +0000 Subject: Revert "[RESTRICT AUTOMERGE] Trim the activity info of another uid if no privilege" This reverts commit 9c19841384859da7c67a192c3412b82f7f8e0881. Reason for revert: apps crashed due to the top activity info trimmed Bug: 264269392 263434196 263438172 Change-Id: I45d89ed787a97fb836c9dd0cab035c427f9405a7 --- .../java/com/android/server/wm/AppTaskImpl.java | 3 +- .../java/com/android/server/wm/RecentTasks.java | 7 ++--- .../java/com/android/server/wm/RunningTasks.java | 8 ++--- .../java/com/android/server/wm/TaskRecord.java | 34 ---------------------- 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 20cb336a3030..3bf437d38bcc 100644 --- a/services/core/java/com/android/server/wm/RunningTasks.java +++ b/services/core/java/com/android/server/wm/RunningTasks.java @@ -68,7 +68,7 @@ class RunningTasks { } final TaskRecord task = iter.next(); - list.add(createRunningTaskInfo(task, allowed)); + list.add(createRunningTaskInfo(task)); maxNum--; } } @@ -76,15 +76,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 @@ -2436,40 +2436,6 @@ class TaskRecord extends ConfigurationContainer { info.configuration.setTo(getConfiguration()); } - /** - * 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. */ -- cgit v1.2.3-59-g8ed1b