Loading cmds/pm/src/com/android/commands/pm/Pm.java +2 −2 Original line number Diff line number Diff line Loading @@ -1120,8 +1120,8 @@ public final class Pm { ClearDataObserver obs = new ClearDataObserver(); try { if (!ActivityManagerNative.getDefault().clearApplicationUserData(pkg, obs, Binder.getOrigCallingUser())) { // XXX TO DO: add user arg if (!ActivityManagerNative.getDefault().clearApplicationUserData(pkg, obs, 0)) { System.err.println("Failed"); } Loading core/java/android/accounts/AccountManagerService.java +13 −10 Original line number Diff line number Diff line Loading @@ -1052,7 +1052,7 @@ public class AccountManagerService if (account == null) throw new IllegalArgumentException("account is null"); if (authTokenType == null) throw new IllegalArgumentException("authTokenType is null"); checkBinderPermission(Manifest.permission.USE_CREDENTIALS); UserAccounts accounts = getUserAccountsForCaller(); final UserAccounts accounts = getUserAccountsForCaller(); AccountAuthenticatorCache.ServiceInfo<AuthenticatorDescription> authenticatorInfo = mAuthenticatorCache.getServiceInfo( AuthenticatorDescription.newKey(account.type)); Loading Loading @@ -1141,7 +1141,7 @@ public class AccountManagerService if (intent != null && notifyOnAuthFailure && !customTokens) { doNotification(mAccounts, account, result.getString(AccountManager.KEY_AUTH_FAILED_MESSAGE), intent); intent, accounts.userId); } } super.onResult(result); Loading @@ -1152,7 +1152,8 @@ public class AccountManagerService } } private void createNoCredentialsPermissionNotification(Account account, Intent intent) { private void createNoCredentialsPermissionNotification(Account account, Intent intent, int userId) { int uid = intent.getIntExtra( GrantCredentialsPermissionActivity.EXTRAS_REQUESTING_UID, -1); String authTokenType = intent.getStringExtra( Loading @@ -1172,9 +1173,10 @@ public class AccountManagerService title = titleAndSubtitle.substring(0, index); subtitle = titleAndSubtitle.substring(index + 1); } n.setLatestEventInfo(mContext, title, subtitle, PendingIntent.getActivity(mContext, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT)); n.setLatestEventInfo(mContext, title, subtitle, PendingIntent.getActivityAsUser(mContext, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT, null, new UserHandle(userId))); installNotification(getCredentialPermissionNotificationId(account, authTokenType, uid), n); } Loading Loading @@ -2083,7 +2085,7 @@ public class AccountManagerService } private void doNotification(UserAccounts accounts, Account account, CharSequence message, Intent intent) { Intent intent, int userId) { long identityToken = clearCallingIdentity(); try { if (Log.isLoggable(TAG, Log.VERBOSE)) { Loading @@ -2093,7 +2095,7 @@ public class AccountManagerService if (intent.getComponent() != null && GrantCredentialsPermissionActivity.class.getName().equals( intent.getComponent().getClassName())) { createNoCredentialsPermissionNotification(account, intent); createNoCredentialsPermissionNotification(account, intent, userId); } else { final Integer notificationId = getSigninRequiredNotificationId(accounts, account); intent.addCategory(String.valueOf(notificationId)); Loading @@ -2103,8 +2105,9 @@ public class AccountManagerService mContext.getText(R.string.notification_title).toString(); n.setLatestEventInfo(mContext, String.format(notificationTitleFormat, account.name), message, PendingIntent.getActivity( mContext, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT)); message, PendingIntent.getActivityAsUser( mContext, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT, null, new UserHandle(userId))); installNotification(notificationId, n); } } finally { Loading core/java/android/app/Activity.java +2 −1 Original line number Diff line number Diff line Loading @@ -4278,7 +4278,8 @@ public class Activity extends ContextThemeWrapper ActivityManagerNative.getDefault().getIntentSender( ActivityManager.INTENT_SENDER_ACTIVITY_RESULT, packageName, mParent == null ? mToken : mParent.mToken, mEmbeddedID, requestCode, new Intent[] { data }, null, flags, null); mEmbeddedID, requestCode, new Intent[] { data }, null, flags, null, UserHandle.myUserId()); return target != null ? new PendingIntent(target) : null; } catch (RemoteException e) { // Empty Loading core/java/android/app/ActivityManager.java +27 −1 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ import android.content.pm.ApplicationInfo; import android.content.pm.ConfigurationInfo; import android.content.pm.IPackageDataObserver; import android.content.pm.PackageManager; import android.content.pm.UserInfo; import android.content.res.Resources; import android.graphics.Bitmap; import android.graphics.Point; Loading Loading @@ -1225,7 +1226,7 @@ public class ActivityManager { public boolean clearApplicationUserData(String packageName, IPackageDataObserver observer) { try { return ActivityManagerNative.getDefault().clearApplicationUserData(packageName, observer, Binder.getOrigCallingUser()); observer, UserHandle.myUserId()); } catch (RemoteException e) { return false; } Loading Loading @@ -1902,6 +1903,31 @@ public class ActivityManager { return PackageManager.PERMISSION_DENIED; } /** @hide */ public static int handleIncomingUser(int callingPid, int callingUid, int userId, boolean allowAll, boolean requireFull, String name, String callerPackage) { if (UserHandle.getUserId(callingUid) == userId) { return userId; } try { return ActivityManagerNative.getDefault().handleIncomingUser(callingPid, callingUid, userId, allowAll, requireFull, name, callerPackage); } catch (RemoteException e) { throw new SecurityException("Failed calling activity manager", e); } } /** @hide */ public static int getCurrentUser() { UserInfo ui; try { ui = ActivityManagerNative.getDefault().getCurrentUser(); return ui != null ? ui.id : 0; } catch (RemoteException e) { return 0; } } /** * Returns the usage statistics of each installed package. * Loading core/java/android/app/ActivityManagerNative.java +43 −91 Original line number Diff line number Diff line Loading @@ -199,8 +199,9 @@ public abstract class ActivityManagerNative extends Binder implements IActivityM Configuration config = Configuration.CREATOR.createFromParcel(data); Bundle options = data.readInt() != 0 ? Bundle.CREATOR.createFromParcel(data) : null; int userId = data.readInt(); int result = startActivityWithConfig(app, intent, resolvedType, resultTo, resultWho, requestCode, startFlags, config, options); resultTo, resultWho, requestCode, startFlags, config, options, userId); reply.writeNoException(); reply.writeInt(result); return true; Loading Loading @@ -897,9 +898,10 @@ public abstract class ActivityManagerNative extends Binder implements IActivityM int fl = data.readInt(); Bundle options = data.readInt() != 0 ? Bundle.CREATOR.createFromParcel(data) : null; int userId = data.readInt(); IIntentSender res = getIntentSender(type, packageName, token, resultWho, requestCode, requestIntents, requestResolvedTypes, fl, options); requestResolvedTypes, fl, options, userId); reply.writeNoException(); reply.writeStrongBinder(res != null ? res.asBinder() : null); return true; Loading Loading @@ -934,6 +936,22 @@ public abstract class ActivityManagerNative extends Binder implements IActivityM return true; } case HANDLE_INCOMING_USER_TRANSACTION: { data.enforceInterface(IActivityManager.descriptor); int callingPid = data.readInt(); int callingUid = data.readInt(); int userId = data.readInt(); boolean allowAll = data.readInt() != 0 ; boolean requireFull = data.readInt() != 0; String name = data.readString(); String callerPackage = data.readString(); int res = handleIncomingUser(callingPid, callingUid, userId, allowAll, requireFull, name, callerPackage); reply.writeNoException(); reply.writeInt(res); return true; } case SET_PROCESS_LIMIT_TRANSACTION: { data.enforceInterface(IActivityManager.descriptor); int max = data.readInt(); Loading Loading @@ -1304,25 +1322,6 @@ public abstract class ActivityManagerNative extends Binder implements IActivityM return true; } case START_ACTIVITY_IN_PACKAGE_TRANSACTION: { data.enforceInterface(IActivityManager.descriptor); int uid = data.readInt(); Intent intent = Intent.CREATOR.createFromParcel(data); String resolvedType = data.readString(); IBinder resultTo = data.readStrongBinder(); String resultWho = data.readString(); int requestCode = data.readInt(); int startFlags = data.readInt(); Bundle options = data.readInt() != 0 ? Bundle.CREATOR.createFromParcel(data) : null; int result = startActivityInPackage(uid, intent, resolvedType, resultTo, resultWho, requestCode, startFlags, options); reply.writeNoException(); reply.writeInt(result); return true; } case KILL_APPLICATION_WITH_UID_TRANSACTION: { data.enforceInterface(IActivityManager.descriptor); String pkg = data.readString(); Loading Loading @@ -1489,22 +1488,6 @@ public abstract class ActivityManagerNative extends Binder implements IActivityM return true; } case START_ACTIVITIES_IN_PACKAGE_TRANSACTION: { data.enforceInterface(IActivityManager.descriptor); int uid = data.readInt(); Intent[] intents = data.createTypedArray(Intent.CREATOR); String[] resolvedTypes = data.createStringArray(); IBinder resultTo = data.readStrongBinder(); Bundle options = data.readInt() != 0 ? Bundle.CREATOR.createFromParcel(data) : null; int result = startActivitiesInPackage(uid, intents, resolvedTypes, resultTo, options); reply.writeNoException(); reply.writeInt(result); return true; } case START_ACTIVITIES_TRANSACTION: { data.enforceInterface(IActivityManager.descriptor); Loading Loading @@ -1877,7 +1860,7 @@ class ActivityManagerProxy implements IActivityManager public int startActivityWithConfig(IApplicationThread caller, Intent intent, String resolvedType, IBinder resultTo, String resultWho, int requestCode, int startFlags, Configuration config, Bundle options) throws RemoteException { Bundle options, int userId) throws RemoteException { Parcel data = Parcel.obtain(); Parcel reply = Parcel.obtain(); data.writeInterfaceToken(IActivityManager.descriptor); Loading @@ -1895,6 +1878,7 @@ class ActivityManagerProxy implements IActivityManager } else { data.writeInt(0); } data.writeInt(userId); mRemote.transact(START_ACTIVITY_TRANSACTION, data, reply, 0); reply.readException(); int result = reply.readInt(); Loading Loading @@ -2840,7 +2824,7 @@ class ActivityManagerProxy implements IActivityManager public IIntentSender getIntentSender(int type, String packageName, IBinder token, String resultWho, int requestCode, Intent[] intents, String[] resolvedTypes, int flags, Bundle options) throws RemoteException { Bundle options, int userId) throws RemoteException { Parcel data = Parcel.obtain(); Parcel reply = Parcel.obtain(); data.writeInterfaceToken(IActivityManager.descriptor); Loading @@ -2863,6 +2847,7 @@ class ActivityManagerProxy implements IActivityManager } else { data.writeInt(0); } data.writeInt(userId); mRemote.transact(GET_INTENT_SENDER_TRANSACTION, data, reply, 0); reply.readException(); IIntentSender res = IIntentSender.Stub.asInterface( Loading Loading @@ -2905,6 +2890,25 @@ class ActivityManagerProxy implements IActivityManager reply.recycle(); return res; } public int handleIncomingUser(int callingPid, int callingUid, int userId, boolean allowAll, boolean requireFull, String name, String callerPackage) throws RemoteException { Parcel data = Parcel.obtain(); Parcel reply = Parcel.obtain(); data.writeInterfaceToken(IActivityManager.descriptor); data.writeInt(callingPid); data.writeInt(callingUid); data.writeInt(userId); data.writeInt(allowAll ? 1 : 0); data.writeInt(requireFull ? 1 : 0); data.writeString(name); data.writeString(callerPackage); mRemote.transact(HANDLE_INCOMING_USER_TRANSACTION, data, reply, 0); reply.readException(); int res = reply.readInt(); data.recycle(); reply.recycle(); return res; } public void setProcessLimit(int max) throws RemoteException { Parcel data = Parcel.obtain(); Loading Loading @@ -3360,34 +3364,6 @@ class ActivityManagerProxy implements IActivityManager data.recycle(); } public int startActivityInPackage(int uid, Intent intent, String resolvedType, IBinder resultTo, String resultWho, int requestCode, int startFlags, Bundle options) throws RemoteException { Parcel data = Parcel.obtain(); Parcel reply = Parcel.obtain(); data.writeInterfaceToken(IActivityManager.descriptor); data.writeInt(uid); intent.writeToParcel(data, 0); data.writeString(resolvedType); data.writeStrongBinder(resultTo); data.writeString(resultWho); data.writeInt(requestCode); data.writeInt(startFlags); if (options != null) { data.writeInt(1); options.writeToParcel(data, 0); } else { data.writeInt(0); } mRemote.transact(START_ACTIVITY_IN_PACKAGE_TRANSACTION, data, reply, 0); reply.readException(); int result = reply.readInt(); reply.recycle(); data.recycle(); return result; } public void killApplicationWithUid(String pkg, int uid) throws RemoteException { Parcel data = Parcel.obtain(); Parcel reply = Parcel.obtain(); Loading Loading @@ -3655,30 +3631,6 @@ class ActivityManagerProxy implements IActivityManager return result; } public int startActivitiesInPackage(int uid, Intent[] intents, String[] resolvedTypes, IBinder resultTo, Bundle options) throws RemoteException { Parcel data = Parcel.obtain(); Parcel reply = Parcel.obtain(); data.writeInterfaceToken(IActivityManager.descriptor); data.writeInt(uid); data.writeTypedArray(intents, 0); data.writeStringArray(resolvedTypes); data.writeStrongBinder(resultTo); if (options != null) { data.writeInt(1); options.writeToParcel(data, 0); } else { data.writeInt(0); } mRemote.transact(START_ACTIVITIES_IN_PACKAGE_TRANSACTION, data, reply, 0); reply.readException(); int result = reply.readInt(); reply.recycle(); data.recycle(); return result; } public int getFrontActivityScreenCompatMode() throws RemoteException { Parcel data = Parcel.obtain(); Parcel reply = Parcel.obtain(); Loading Loading
cmds/pm/src/com/android/commands/pm/Pm.java +2 −2 Original line number Diff line number Diff line Loading @@ -1120,8 +1120,8 @@ public final class Pm { ClearDataObserver obs = new ClearDataObserver(); try { if (!ActivityManagerNative.getDefault().clearApplicationUserData(pkg, obs, Binder.getOrigCallingUser())) { // XXX TO DO: add user arg if (!ActivityManagerNative.getDefault().clearApplicationUserData(pkg, obs, 0)) { System.err.println("Failed"); } Loading
core/java/android/accounts/AccountManagerService.java +13 −10 Original line number Diff line number Diff line Loading @@ -1052,7 +1052,7 @@ public class AccountManagerService if (account == null) throw new IllegalArgumentException("account is null"); if (authTokenType == null) throw new IllegalArgumentException("authTokenType is null"); checkBinderPermission(Manifest.permission.USE_CREDENTIALS); UserAccounts accounts = getUserAccountsForCaller(); final UserAccounts accounts = getUserAccountsForCaller(); AccountAuthenticatorCache.ServiceInfo<AuthenticatorDescription> authenticatorInfo = mAuthenticatorCache.getServiceInfo( AuthenticatorDescription.newKey(account.type)); Loading Loading @@ -1141,7 +1141,7 @@ public class AccountManagerService if (intent != null && notifyOnAuthFailure && !customTokens) { doNotification(mAccounts, account, result.getString(AccountManager.KEY_AUTH_FAILED_MESSAGE), intent); intent, accounts.userId); } } super.onResult(result); Loading @@ -1152,7 +1152,8 @@ public class AccountManagerService } } private void createNoCredentialsPermissionNotification(Account account, Intent intent) { private void createNoCredentialsPermissionNotification(Account account, Intent intent, int userId) { int uid = intent.getIntExtra( GrantCredentialsPermissionActivity.EXTRAS_REQUESTING_UID, -1); String authTokenType = intent.getStringExtra( Loading @@ -1172,9 +1173,10 @@ public class AccountManagerService title = titleAndSubtitle.substring(0, index); subtitle = titleAndSubtitle.substring(index + 1); } n.setLatestEventInfo(mContext, title, subtitle, PendingIntent.getActivity(mContext, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT)); n.setLatestEventInfo(mContext, title, subtitle, PendingIntent.getActivityAsUser(mContext, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT, null, new UserHandle(userId))); installNotification(getCredentialPermissionNotificationId(account, authTokenType, uid), n); } Loading Loading @@ -2083,7 +2085,7 @@ public class AccountManagerService } private void doNotification(UserAccounts accounts, Account account, CharSequence message, Intent intent) { Intent intent, int userId) { long identityToken = clearCallingIdentity(); try { if (Log.isLoggable(TAG, Log.VERBOSE)) { Loading @@ -2093,7 +2095,7 @@ public class AccountManagerService if (intent.getComponent() != null && GrantCredentialsPermissionActivity.class.getName().equals( intent.getComponent().getClassName())) { createNoCredentialsPermissionNotification(account, intent); createNoCredentialsPermissionNotification(account, intent, userId); } else { final Integer notificationId = getSigninRequiredNotificationId(accounts, account); intent.addCategory(String.valueOf(notificationId)); Loading @@ -2103,8 +2105,9 @@ public class AccountManagerService mContext.getText(R.string.notification_title).toString(); n.setLatestEventInfo(mContext, String.format(notificationTitleFormat, account.name), message, PendingIntent.getActivity( mContext, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT)); message, PendingIntent.getActivityAsUser( mContext, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT, null, new UserHandle(userId))); installNotification(notificationId, n); } } finally { Loading
core/java/android/app/Activity.java +2 −1 Original line number Diff line number Diff line Loading @@ -4278,7 +4278,8 @@ public class Activity extends ContextThemeWrapper ActivityManagerNative.getDefault().getIntentSender( ActivityManager.INTENT_SENDER_ACTIVITY_RESULT, packageName, mParent == null ? mToken : mParent.mToken, mEmbeddedID, requestCode, new Intent[] { data }, null, flags, null); mEmbeddedID, requestCode, new Intent[] { data }, null, flags, null, UserHandle.myUserId()); return target != null ? new PendingIntent(target) : null; } catch (RemoteException e) { // Empty Loading
core/java/android/app/ActivityManager.java +27 −1 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ import android.content.pm.ApplicationInfo; import android.content.pm.ConfigurationInfo; import android.content.pm.IPackageDataObserver; import android.content.pm.PackageManager; import android.content.pm.UserInfo; import android.content.res.Resources; import android.graphics.Bitmap; import android.graphics.Point; Loading Loading @@ -1225,7 +1226,7 @@ public class ActivityManager { public boolean clearApplicationUserData(String packageName, IPackageDataObserver observer) { try { return ActivityManagerNative.getDefault().clearApplicationUserData(packageName, observer, Binder.getOrigCallingUser()); observer, UserHandle.myUserId()); } catch (RemoteException e) { return false; } Loading Loading @@ -1902,6 +1903,31 @@ public class ActivityManager { return PackageManager.PERMISSION_DENIED; } /** @hide */ public static int handleIncomingUser(int callingPid, int callingUid, int userId, boolean allowAll, boolean requireFull, String name, String callerPackage) { if (UserHandle.getUserId(callingUid) == userId) { return userId; } try { return ActivityManagerNative.getDefault().handleIncomingUser(callingPid, callingUid, userId, allowAll, requireFull, name, callerPackage); } catch (RemoteException e) { throw new SecurityException("Failed calling activity manager", e); } } /** @hide */ public static int getCurrentUser() { UserInfo ui; try { ui = ActivityManagerNative.getDefault().getCurrentUser(); return ui != null ? ui.id : 0; } catch (RemoteException e) { return 0; } } /** * Returns the usage statistics of each installed package. * Loading
core/java/android/app/ActivityManagerNative.java +43 −91 Original line number Diff line number Diff line Loading @@ -199,8 +199,9 @@ public abstract class ActivityManagerNative extends Binder implements IActivityM Configuration config = Configuration.CREATOR.createFromParcel(data); Bundle options = data.readInt() != 0 ? Bundle.CREATOR.createFromParcel(data) : null; int userId = data.readInt(); int result = startActivityWithConfig(app, intent, resolvedType, resultTo, resultWho, requestCode, startFlags, config, options); resultTo, resultWho, requestCode, startFlags, config, options, userId); reply.writeNoException(); reply.writeInt(result); return true; Loading Loading @@ -897,9 +898,10 @@ public abstract class ActivityManagerNative extends Binder implements IActivityM int fl = data.readInt(); Bundle options = data.readInt() != 0 ? Bundle.CREATOR.createFromParcel(data) : null; int userId = data.readInt(); IIntentSender res = getIntentSender(type, packageName, token, resultWho, requestCode, requestIntents, requestResolvedTypes, fl, options); requestResolvedTypes, fl, options, userId); reply.writeNoException(); reply.writeStrongBinder(res != null ? res.asBinder() : null); return true; Loading Loading @@ -934,6 +936,22 @@ public abstract class ActivityManagerNative extends Binder implements IActivityM return true; } case HANDLE_INCOMING_USER_TRANSACTION: { data.enforceInterface(IActivityManager.descriptor); int callingPid = data.readInt(); int callingUid = data.readInt(); int userId = data.readInt(); boolean allowAll = data.readInt() != 0 ; boolean requireFull = data.readInt() != 0; String name = data.readString(); String callerPackage = data.readString(); int res = handleIncomingUser(callingPid, callingUid, userId, allowAll, requireFull, name, callerPackage); reply.writeNoException(); reply.writeInt(res); return true; } case SET_PROCESS_LIMIT_TRANSACTION: { data.enforceInterface(IActivityManager.descriptor); int max = data.readInt(); Loading Loading @@ -1304,25 +1322,6 @@ public abstract class ActivityManagerNative extends Binder implements IActivityM return true; } case START_ACTIVITY_IN_PACKAGE_TRANSACTION: { data.enforceInterface(IActivityManager.descriptor); int uid = data.readInt(); Intent intent = Intent.CREATOR.createFromParcel(data); String resolvedType = data.readString(); IBinder resultTo = data.readStrongBinder(); String resultWho = data.readString(); int requestCode = data.readInt(); int startFlags = data.readInt(); Bundle options = data.readInt() != 0 ? Bundle.CREATOR.createFromParcel(data) : null; int result = startActivityInPackage(uid, intent, resolvedType, resultTo, resultWho, requestCode, startFlags, options); reply.writeNoException(); reply.writeInt(result); return true; } case KILL_APPLICATION_WITH_UID_TRANSACTION: { data.enforceInterface(IActivityManager.descriptor); String pkg = data.readString(); Loading Loading @@ -1489,22 +1488,6 @@ public abstract class ActivityManagerNative extends Binder implements IActivityM return true; } case START_ACTIVITIES_IN_PACKAGE_TRANSACTION: { data.enforceInterface(IActivityManager.descriptor); int uid = data.readInt(); Intent[] intents = data.createTypedArray(Intent.CREATOR); String[] resolvedTypes = data.createStringArray(); IBinder resultTo = data.readStrongBinder(); Bundle options = data.readInt() != 0 ? Bundle.CREATOR.createFromParcel(data) : null; int result = startActivitiesInPackage(uid, intents, resolvedTypes, resultTo, options); reply.writeNoException(); reply.writeInt(result); return true; } case START_ACTIVITIES_TRANSACTION: { data.enforceInterface(IActivityManager.descriptor); Loading Loading @@ -1877,7 +1860,7 @@ class ActivityManagerProxy implements IActivityManager public int startActivityWithConfig(IApplicationThread caller, Intent intent, String resolvedType, IBinder resultTo, String resultWho, int requestCode, int startFlags, Configuration config, Bundle options) throws RemoteException { Bundle options, int userId) throws RemoteException { Parcel data = Parcel.obtain(); Parcel reply = Parcel.obtain(); data.writeInterfaceToken(IActivityManager.descriptor); Loading @@ -1895,6 +1878,7 @@ class ActivityManagerProxy implements IActivityManager } else { data.writeInt(0); } data.writeInt(userId); mRemote.transact(START_ACTIVITY_TRANSACTION, data, reply, 0); reply.readException(); int result = reply.readInt(); Loading Loading @@ -2840,7 +2824,7 @@ class ActivityManagerProxy implements IActivityManager public IIntentSender getIntentSender(int type, String packageName, IBinder token, String resultWho, int requestCode, Intent[] intents, String[] resolvedTypes, int flags, Bundle options) throws RemoteException { Bundle options, int userId) throws RemoteException { Parcel data = Parcel.obtain(); Parcel reply = Parcel.obtain(); data.writeInterfaceToken(IActivityManager.descriptor); Loading @@ -2863,6 +2847,7 @@ class ActivityManagerProxy implements IActivityManager } else { data.writeInt(0); } data.writeInt(userId); mRemote.transact(GET_INTENT_SENDER_TRANSACTION, data, reply, 0); reply.readException(); IIntentSender res = IIntentSender.Stub.asInterface( Loading Loading @@ -2905,6 +2890,25 @@ class ActivityManagerProxy implements IActivityManager reply.recycle(); return res; } public int handleIncomingUser(int callingPid, int callingUid, int userId, boolean allowAll, boolean requireFull, String name, String callerPackage) throws RemoteException { Parcel data = Parcel.obtain(); Parcel reply = Parcel.obtain(); data.writeInterfaceToken(IActivityManager.descriptor); data.writeInt(callingPid); data.writeInt(callingUid); data.writeInt(userId); data.writeInt(allowAll ? 1 : 0); data.writeInt(requireFull ? 1 : 0); data.writeString(name); data.writeString(callerPackage); mRemote.transact(HANDLE_INCOMING_USER_TRANSACTION, data, reply, 0); reply.readException(); int res = reply.readInt(); data.recycle(); reply.recycle(); return res; } public void setProcessLimit(int max) throws RemoteException { Parcel data = Parcel.obtain(); Loading Loading @@ -3360,34 +3364,6 @@ class ActivityManagerProxy implements IActivityManager data.recycle(); } public int startActivityInPackage(int uid, Intent intent, String resolvedType, IBinder resultTo, String resultWho, int requestCode, int startFlags, Bundle options) throws RemoteException { Parcel data = Parcel.obtain(); Parcel reply = Parcel.obtain(); data.writeInterfaceToken(IActivityManager.descriptor); data.writeInt(uid); intent.writeToParcel(data, 0); data.writeString(resolvedType); data.writeStrongBinder(resultTo); data.writeString(resultWho); data.writeInt(requestCode); data.writeInt(startFlags); if (options != null) { data.writeInt(1); options.writeToParcel(data, 0); } else { data.writeInt(0); } mRemote.transact(START_ACTIVITY_IN_PACKAGE_TRANSACTION, data, reply, 0); reply.readException(); int result = reply.readInt(); reply.recycle(); data.recycle(); return result; } public void killApplicationWithUid(String pkg, int uid) throws RemoteException { Parcel data = Parcel.obtain(); Parcel reply = Parcel.obtain(); Loading Loading @@ -3655,30 +3631,6 @@ class ActivityManagerProxy implements IActivityManager return result; } public int startActivitiesInPackage(int uid, Intent[] intents, String[] resolvedTypes, IBinder resultTo, Bundle options) throws RemoteException { Parcel data = Parcel.obtain(); Parcel reply = Parcel.obtain(); data.writeInterfaceToken(IActivityManager.descriptor); data.writeInt(uid); data.writeTypedArray(intents, 0); data.writeStringArray(resolvedTypes); data.writeStrongBinder(resultTo); if (options != null) { data.writeInt(1); options.writeToParcel(data, 0); } else { data.writeInt(0); } mRemote.transact(START_ACTIVITIES_IN_PACKAGE_TRANSACTION, data, reply, 0); reply.readException(); int result = reply.readInt(); reply.recycle(); data.recycle(); return result; } public int getFrontActivityScreenCompatMode() throws RemoteException { Parcel data = Parcel.obtain(); Parcel reply = Parcel.obtain(); Loading