diff options
| author | Louis Chang <louischang@google.com> | 2020-10-27 12:15:21 +0800 |
|---|---|---|
| committer | Louis Chang <louischang@google.com> | 2020-10-27 13:03:25 +0800 |
| commit | e9a5ed804e0dd36ea231cd9c94af28f478cd8d73 (patch) | |
| tree | 170f350bbcccc0a7c69eeaf6ee5f6fabfb5c2fec /core/java/android | |
| parent | 4b94029fd036eb41af966377d28baf843f1a1850 (diff) | |
Use op package name as the calling package while start activities
Apps with system_uid are allowed to run on other system core
processes. With f9e5c9f, the component was unable to start activities
since the calling package and the calling uid weren't the same app.
Bug: 169859652
Test: start activity on phone process from a shared system uid package
Change-Id: Ida27c7518fb81cb5a1ac654e86fb1918f962ebf8
Diffstat (limited to 'core/java/android')
| -rw-r--r-- | core/java/android/app/Activity.java | 2 | ||||
| -rw-r--r-- | core/java/android/app/ActivityManager.java | 4 | ||||
| -rw-r--r-- | core/java/android/app/ContextImpl.java | 2 | ||||
| -rw-r--r-- | core/java/android/app/Instrumentation.java | 20 |
4 files changed, 14 insertions, 14 deletions
diff --git a/core/java/android/app/Activity.java b/core/java/android/app/Activity.java index 8c0b4387c27f..6b3b0fcd742d 100644 --- a/core/java/android/app/Activity.java +++ b/core/java/android/app/Activity.java @@ -5818,7 +5818,7 @@ public class Activity extends ContextThemeWrapper intent.migrateExtraStreamToClipData(this); intent.prepareToLeaveProcess(this); result = ActivityTaskManager.getService() - .startActivity(mMainThread.getApplicationThread(), getBasePackageName(), + .startActivity(mMainThread.getApplicationThread(), getOpPackageName(), getAttributionTag(), intent, intent.resolveTypeIfNeeded(getContentResolver()), mToken, mEmbeddedID, requestCode, ActivityManager.START_FLAG_ONLY_IF_NEEDED, null, options); diff --git a/core/java/android/app/ActivityManager.java b/core/java/android/app/ActivityManager.java index 250f2f0b2dc9..4e156c7e9912 100644 --- a/core/java/android/app/ActivityManager.java +++ b/core/java/android/app/ActivityManager.java @@ -1931,7 +1931,7 @@ public class ActivityManager { ArrayList<AppTask> tasks = new ArrayList<AppTask>(); List<IBinder> appTasks; try { - appTasks = getTaskService().getAppTasks(mContext.getPackageName()); + appTasks = getTaskService().getAppTasks(mContext.getOpPackageName()); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } @@ -2466,7 +2466,7 @@ public class ActivityManager { try { ActivityThread thread = ActivityThread.currentActivityThread(); IApplicationThread appThread = thread.getApplicationThread(); - String packageName = mContext.getPackageName(); + String packageName = mContext.getOpPackageName(); getTaskService().moveTaskToFront(appThread, packageName, taskId, flags, options); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); diff --git a/core/java/android/app/ContextImpl.java b/core/java/android/app/ContextImpl.java index e94fd452b7f8..d251c25c7296 100644 --- a/core/java/android/app/ContextImpl.java +++ b/core/java/android/app/ContextImpl.java @@ -1039,7 +1039,7 @@ class ContextImpl extends Context { public void startActivityAsUser(Intent intent, Bundle options, UserHandle user) { try { ActivityTaskManager.getService().startActivityAsUser( - mMainThread.getApplicationThread(), getBasePackageName(), getAttributionTag(), + mMainThread.getApplicationThread(), getOpPackageName(), getAttributionTag(), intent, intent.resolveTypeIfNeeded(getContentResolver()), null, null, 0, Intent.FLAG_ACTIVITY_NEW_TASK, null, options, user.getIdentifier()); diff --git a/core/java/android/app/Instrumentation.java b/core/java/android/app/Instrumentation.java index f2a9daafb4ce..74493e4b4525 100644 --- a/core/java/android/app/Instrumentation.java +++ b/core/java/android/app/Instrumentation.java @@ -1725,7 +1725,7 @@ public class Instrumentation { intent.migrateExtraStreamToClipData(who); intent.prepareToLeaveProcess(who); int result = ActivityTaskManager.getService().startActivity(whoThread, - who.getBasePackageName(), who.getAttributionTag(), intent, + who.getOpPackageName(), who.getAttributionTag(), intent, intent.resolveTypeIfNeeded(who.getContentResolver()), token, target != null ? target.mEmbeddedID : null, requestCode, 0, null, options); checkStartActivityResult(result, intent); @@ -1797,7 +1797,7 @@ public class Instrumentation { resolvedTypes[i] = intents[i].resolveTypeIfNeeded(who.getContentResolver()); } int result = ActivityTaskManager.getService().startActivities(whoThread, - who.getBasePackageName(), who.getAttributionTag(), intents, resolvedTypes, + who.getOpPackageName(), who.getAttributionTag(), intents, resolvedTypes, token, options, userId); checkStartActivityResult(result, intents[0]); return result; @@ -1864,7 +1864,7 @@ public class Instrumentation { intent.migrateExtraStreamToClipData(who); intent.prepareToLeaveProcess(who); int result = ActivityTaskManager.getService().startActivity(whoThread, - who.getBasePackageName(), who.getAttributionTag(), intent, + who.getOpPackageName(), who.getAttributionTag(), intent, intent.resolveTypeIfNeeded(who.getContentResolver()), token, target, requestCode, 0, null, options); checkStartActivityResult(result, intent); @@ -1931,7 +1931,7 @@ public class Instrumentation { intent.migrateExtraStreamToClipData(who); intent.prepareToLeaveProcess(who); int result = ActivityTaskManager.getService().startActivityAsUser(whoThread, - who.getBasePackageName(), who.getAttributionTag(), intent, + who.getOpPackageName(), who.getAttributionTag(), intent, intent.resolveTypeIfNeeded(who.getContentResolver()), token, resultWho, requestCode, 0, null, options, user.getIdentifier()); checkStartActivityResult(result, intent); @@ -1977,11 +1977,11 @@ public class Instrumentation { intent.migrateExtraStreamToClipData(who); intent.prepareToLeaveProcess(who); int result = ActivityTaskManager.getService() - .startActivityAsCaller(whoThread, who.getBasePackageName(), intent, - intent.resolveTypeIfNeeded(who.getContentResolver()), - token, target != null ? target.mEmbeddedID : null, - requestCode, 0, null, options, permissionToken, - ignoreTargetSecurity, userId); + .startActivityAsCaller(whoThread, who.getOpPackageName(), intent, + intent.resolveTypeIfNeeded(who.getContentResolver()), + token, target != null ? target.mEmbeddedID : null, + requestCode, 0, null, options, permissionToken, + ignoreTargetSecurity, userId); checkStartActivityResult(result, intent); } catch (RemoteException e) { throw new RuntimeException("Failure from system", e); @@ -2023,7 +2023,7 @@ public class Instrumentation { try { intent.migrateExtraStreamToClipData(who); intent.prepareToLeaveProcess(who); - int result = appTask.startActivity(whoThread.asBinder(), who.getBasePackageName(), + int result = appTask.startActivity(whoThread.asBinder(), who.getOpPackageName(), who.getAttributionTag(), intent, intent.resolveTypeIfNeeded(who.getContentResolver()), options); checkStartActivityResult(result, intent); |
