[RESTRICT AUTOMERGE] Allow activity to be reparent while allowTaskReparenting is applied
Any malicious application could hijack tasks by
android:allowTaskReparenting. This vulnerability can perform UI
spoofing or spying on user’s activities.
This CL only allows activities to be reparent while
android:allowTaskReparenting is applied and the affinity of activity
is same with the target task.
Bug: 240663194
Bug: 252853095
Test: atest IntentTests
Change-Id: I73abb9ec05af95bc14f887ae825a9ada9600f771
Merged-In: I73abb9ec05af95bc14f887ae825a9ada9600f771
(cherry picked from commit 7af50c4d5f)
This commit is contained in:
@@ -146,15 +146,16 @@ class ResetTargetTaskHelper {
|
||||
return false;
|
||||
|
||||
} else {
|
||||
mResultActivities.add(r);
|
||||
if (r.resultTo != null) {
|
||||
// If this activity is sending a reply to a previous activity, we can't do
|
||||
// anything with it now until we reach the start of the reply chain.
|
||||
// NOTE: that we are assuming the result is always to the previous activity,
|
||||
// which is almost always the case but we really shouldn't count on.
|
||||
mResultActivities.add(r);
|
||||
return false;
|
||||
} else if (mTargetTaskFound && allowTaskReparenting && mTargetTask.affinity != null
|
||||
&& mTargetTask.affinity.equals(r.taskAffinity)) {
|
||||
mResultActivities.add(r);
|
||||
// This activity has an affinity for our task. Either remove it if we are
|
||||
// clearing or move it over to our task. Note that we currently punt on the case
|
||||
// where we are resetting a task that is not at the top but who has activities
|
||||
|
||||
Reference in New Issue
Block a user