diff options
author | Dianne Hackborn <hackbod@google.com> | 2014-08-23 15:23:58 -0700 |
---|---|---|
committer | Dianne Hackborn <hackbod@google.com> | 2014-08-23 15:23:58 -0700 |
commit | 885fbe5c070cf1579c96ab8e150449af00e16501 (patch) | |
tree | 2016ceb0a698dcb9d5498031210729828baf57b3 /core/java/android | |
parent | 491cb3f578a23555c807e68f8a536a892959a73f (diff) | |
download | frameworks_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.java | 2 | ||||
-rw-r--r-- | core/java/android/app/ActivityManagerNative.java | 6 | ||||
-rw-r--r-- | core/java/android/app/IActivityManager.java | 2 |
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; |