Merge "[RESTRICT AUTOMERGE] Strip part of the activity info of another uid if no privilege" into sc-qpr1-dev
This commit is contained in:
@@ -4168,12 +4168,39 @@ class Task extends WindowContainer<WindowContainer> {
|
||||
|
||||
if (info.topActivityInfo != null
|
||||
&& task.effectiveUid != info.topActivityInfo.applicationInfo.uid) {
|
||||
info.topActivity = null;
|
||||
info.topActivityInfo = null;
|
||||
// Making a copy to prevent eliminating the info in the original ActivityRecord.
|
||||
info.topActivityInfo = new ActivityInfo(info.topActivityInfo);
|
||||
info.topActivityInfo.applicationInfo =
|
||||
new ApplicationInfo(info.topActivityInfo.applicationInfo);
|
||||
|
||||
// Strip the sensitive info.
|
||||
info.topActivity = new ComponentName("", "");
|
||||
info.topActivityInfo.packageName = "";
|
||||
info.topActivityInfo.taskAffinity = "";
|
||||
info.topActivityInfo.processName = "";
|
||||
info.topActivityInfo.name = "";
|
||||
info.topActivityInfo.parentActivityName = "";
|
||||
info.topActivityInfo.targetActivity = "";
|
||||
info.topActivityInfo.splitName = "";
|
||||
info.topActivityInfo.applicationInfo.className = "";
|
||||
info.topActivityInfo.applicationInfo.credentialProtectedDataDir = "";
|
||||
info.topActivityInfo.applicationInfo.dataDir = "";
|
||||
info.topActivityInfo.applicationInfo.deviceProtectedDataDir = "";
|
||||
info.topActivityInfo.applicationInfo.manageSpaceActivityName = "";
|
||||
info.topActivityInfo.applicationInfo.nativeLibraryDir = "";
|
||||
info.topActivityInfo.applicationInfo.nativeLibraryRootDir = "";
|
||||
info.topActivityInfo.applicationInfo.processName = "";
|
||||
info.topActivityInfo.applicationInfo.publicSourceDir = "";
|
||||
info.topActivityInfo.applicationInfo.scanPublicSourceDir = "";
|
||||
info.topActivityInfo.applicationInfo.scanSourceDir = "";
|
||||
info.topActivityInfo.applicationInfo.sourceDir = "";
|
||||
info.topActivityInfo.applicationInfo.taskAffinity = "";
|
||||
info.topActivityInfo.applicationInfo.name = "";
|
||||
info.topActivityInfo.applicationInfo.packageName = "";
|
||||
}
|
||||
|
||||
if (task.effectiveUid != baseActivityUid) {
|
||||
info.baseActivity = null;
|
||||
info.baseActivity = new ComponentName("", "");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1147,10 +1147,11 @@ public class RecentTasksTest extends WindowTestsBase {
|
||||
@Test
|
||||
public void testCreateRecentTaskInfo_detachedTask() {
|
||||
final Task task = createTaskBuilder(".Task").build();
|
||||
final ComponentName componentName = new ComponentName("com.foo", ".BarActivity");
|
||||
new ActivityBuilder(mSupervisor.mService)
|
||||
.setTask(task)
|
||||
.setUid(NOBODY_UID)
|
||||
.setComponent(new ComponentName("com.foo", ".BarActivity"))
|
||||
.setComponent(componentName)
|
||||
.build();
|
||||
final TaskDisplayArea tda = task.getDisplayArea();
|
||||
|
||||
@@ -1166,9 +1167,9 @@ public class RecentTasksTest extends WindowTestsBase {
|
||||
info = mRecentTasks.createRecentTaskInfo(task, true /* stripExtras */,
|
||||
false /* getTasksAllowed */);
|
||||
|
||||
assertTrue(info.topActivity == null);
|
||||
assertTrue(info.topActivityInfo == null);
|
||||
assertTrue(info.baseActivity == null);
|
||||
assertFalse(info.topActivity.equals(componentName));
|
||||
assertFalse(info.topActivityInfo.packageName.equals(componentName.getPackageName()));
|
||||
assertFalse(info.baseActivity.equals(componentName));
|
||||
|
||||
// The task can be put in split screen even if it is not attached now.
|
||||
task.removeImmediately();
|
||||
|
||||
Reference in New Issue
Block a user