summaryrefslogtreecommitdiff
path: root/core/java/android
diff options
context:
space:
mode:
authorLouis Chang <louischang@google.com>2020-10-27 12:15:21 +0800
committerLouis Chang <louischang@google.com>2020-10-27 13:03:25 +0800
commite9a5ed804e0dd36ea231cd9c94af28f478cd8d73 (patch)
tree170f350bbcccc0a7c69eeaf6ee5f6fabfb5c2fec /core/java/android
parent4b94029fd036eb41af966377d28baf843f1a1850 (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.java2
-rw-r--r--core/java/android/app/ActivityManager.java4
-rw-r--r--core/java/android/app/ContextImpl.java2
-rw-r--r--core/java/android/app/Instrumentation.java20
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);