summaryrefslogtreecommitdiffstats
path: root/core/java/android
diff options
context:
space:
mode:
authorDianne Hackborn <hackbod@google.com>2014-08-23 15:23:58 -0700
committerDianne Hackborn <hackbod@google.com>2014-08-23 15:23:58 -0700
commit885fbe5c070cf1579c96ab8e150449af00e16501 (patch)
tree2016ceb0a698dcb9d5498031210729828baf57b3 /core/java/android
parent491cb3f578a23555c807e68f8a536a892959a73f (diff)
downloadframeworks_base-885fbe5c070cf1579c96ab8e150449af00e16501.zip
frameworks_base-885fbe5c070cf1579c96ab8e150449af00e16501.tar.gz
frameworks_base-885fbe5c070cf1579c96ab8e150449af00e16501.tar.bz2
Fix issue #16366571: UIDs for work and normal Chrome processes are the same
Use uid as main key for determining which app tasks a caller has access to. Change-Id: Ibbe3f0f64197671d279c3fc519edfc720d442938
Diffstat (limited to 'core/java/android')
-rw-r--r--core/java/android/app/ActivityManager.java2
-rw-r--r--core/java/android/app/ActivityManagerNative.java6
-rw-r--r--core/java/android/app/IActivityManager.java2
3 files changed, 6 insertions, 4 deletions
diff --git a/core/java/android/app/ActivityManager.java b/core/java/android/app/ActivityManager.java
index b86621f..2667bcd 100644
--- a/core/java/android/app/ActivityManager.java
+++ b/core/java/android/app/ActivityManager.java
@@ -985,7 +985,7 @@ public class ActivityManager {
ArrayList<AppTask> tasks = new ArrayList<AppTask>();
List<IAppTask> appTasks;
try {
- appTasks = ActivityManagerNative.getDefault().getAppTasks();
+ appTasks = ActivityManagerNative.getDefault().getAppTasks(mContext.getPackageName());
} catch (RemoteException e) {
// System dead, we will be dead too soon!
return null;
diff --git a/core/java/android/app/ActivityManagerNative.java b/core/java/android/app/ActivityManagerNative.java
index 3dafa4b..97e793f 100644
--- a/core/java/android/app/ActivityManagerNative.java
+++ b/core/java/android/app/ActivityManagerNative.java
@@ -554,7 +554,8 @@ public abstract class ActivityManagerNative extends Binder implements IActivityM
case GET_APP_TASKS_TRANSACTION: {
data.enforceInterface(IActivityManager.descriptor);
- List<IAppTask> list = getAppTasks();
+ String callingPackage = data.readString();
+ List<IAppTask> list = getAppTasks(callingPackage);
reply.writeNoException();
int N = list != null ? list.size() : -1;
reply.writeInt(N);
@@ -2880,10 +2881,11 @@ class ActivityManagerProxy implements IActivityManager
reply.recycle();
return res;
}
- public List<IAppTask> getAppTasks() throws RemoteException {
+ public List<IAppTask> getAppTasks(String callingPackage) throws RemoteException {
Parcel data = Parcel.obtain();
Parcel reply = Parcel.obtain();
data.writeInterfaceToken(IActivityManager.descriptor);
+ data.writeString(callingPackage);
mRemote.transact(GET_APP_TASKS_TRANSACTION, data, reply, 0);
reply.readException();
ArrayList<IAppTask> list = null;
diff --git a/core/java/android/app/IActivityManager.java b/core/java/android/app/IActivityManager.java
index 70514d8..fcfe5aa 100644
--- a/core/java/android/app/IActivityManager.java
+++ b/core/java/android/app/IActivityManager.java
@@ -119,7 +119,7 @@ public interface IActivityManager extends IInterface {
public void activityDestroyed(IBinder token) throws RemoteException;
public String getCallingPackage(IBinder token) throws RemoteException;
public ComponentName getCallingActivity(IBinder token) throws RemoteException;
- public List<IAppTask> getAppTasks() throws RemoteException;
+ public List<IAppTask> getAppTasks(String callingPackage) throws RemoteException;
public int addAppTask(IBinder activityToken, Intent intent,
ActivityManager.TaskDescription description, Bitmap thumbnail) throws RemoteException;
public Point getAppTaskThumbnailSize() throws RemoteException;