ActivityManagerNative.java revision 9797880808320e3a7bae1f59bc7e0c5a13189e5f
15f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer/* 25f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer * Copyright (C) 2006 The Android Open Source Project 35f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer * 45f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer * Licensed under the Apache License, Version 2.0 (the "License"); 50bc735ffcfb223c0186419547abaa5c84482663eChris Lattner * you may not use this file except in compliance with the License. 60bc735ffcfb223c0186419547abaa5c84482663eChris Lattner * You may obtain a copy of the License at 75f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer * 85f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer * http://www.apache.org/licenses/LICENSE-2.0 95f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer * 105f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer * Unless required by applicable law or agreed to in writing, software 115f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer * distributed under the License is distributed on an "AS IS" BASIS, 125f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 135f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer * See the License for the specific language governing permissions and 142d88708cbe4e4ec5e04e4acb6bd7f5be68557379John McCall * limitations under the License. 15f4021e7d5228a2be5a380269dffa0331a6c78b95Chris Lattner */ 16a18e70b25c85d7e653e642b5e6e58d6063af3d83Fariborz Jahanian 171cd76e8ca8f890a4defadcae3372c025ebe7607cJohn McCallpackage android.app; 18c4a1dea2dc56bd1357ec91b829a0b9e68229a13eDaniel Dunbar 19694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieuimport android.app.ActivityManager.StackInfo; 2084fb9c0be621c9e4ca4e56f67dae2a0bb6e44821Douglas Gregorimport android.app.ProfilerInfo; 21419cfb318cd69b6c717019288d5a3822be18d8f9Chris Lattnerimport android.content.ComponentName; 2216f0049415ec596504891259e2a83e19871c0d52Chris Lattnerimport android.content.IIntentReceiver; 2355fc873017f10f6f566b182b70f6fc22aefa3464Chandler Carruthimport android.content.IIntentSender; 24209acbd6d0c1b4444eb8c1682717753e1cbe38deJohn McCallimport android.content.Intent; 2555fc873017f10f6f566b182b70f6fc22aefa3464Chandler Carruthimport android.content.IntentFilter; 2655fc873017f10f6f566b182b70f6fc22aefa3464Chandler Carruthimport android.content.IntentSender; 2755fc873017f10f6f566b182b70f6fc22aefa3464Chandler Carruthimport android.content.UriPermission; 2855fc873017f10f6f566b182b70f6fc22aefa3464Chandler Carruthimport android.content.pm.ApplicationInfo; 2955fc873017f10f6f566b182b70f6fc22aefa3464Chandler Carruthimport android.content.pm.ConfigurationInfo; 30ca57b4b7658a031b74cda5ac504311998be8e343Chris Lattnerimport android.content.pm.IPackageDataObserver; 31c447aba04527a71d254b151f79f444d1cbe83ce9Sebastian Redlimport android.content.pm.ParceledListSlice; 32694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieuimport android.content.pm.UserInfo; 3350de5e3247a20e0e548dc47022a011250e6e4e8fDouglas Gregorimport android.content.res.Configuration; 34c447aba04527a71d254b151f79f444d1cbe83ce9Sebastian Redlimport android.graphics.Bitmap; 355f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencerimport android.graphics.Point; 36781472fe99a120098c631b0cbe33c89f8cef5e70John McCallimport android.graphics.Rect; 375f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencerimport android.net.Uri; 38419563768ef4929a622d7c2b066856e82901bb91Richard Smithimport android.os.Binder; 39419563768ef4929a622d7c2b066856e82901bb91Richard Smithimport android.os.Bundle; 40419563768ef4929a622d7c2b066856e82901bb91Richard Smithimport android.os.Debug; 41419563768ef4929a622d7c2b066856e82901bb91Richard Smithimport android.os.IBinder; 42419563768ef4929a622d7c2b066856e82901bb91Richard Smithimport android.os.Parcel; 43419563768ef4929a622d7c2b066856e82901bb91Richard Smithimport android.os.ParcelFileDescriptor; 44419563768ef4929a622d7c2b066856e82901bb91Richard Smithimport android.os.Parcelable; 45bebbe0d9b7568ce43a464286bee49429489ef483Douglas Gregorimport android.os.PersistableBundle; 46bebbe0d9b7568ce43a464286bee49429489ef483Douglas Gregorimport android.os.RemoteException; 47834a72ac74cf4ff07ba6215545dba3db578f8a07Chris Lattnerimport android.os.ServiceManager; 48834a72ac74cf4ff07ba6215545dba3db578f8a07Chris Lattnerimport android.os.StrictMode; 49834a72ac74cf4ff07ba6215545dba3db578f8a07Chris Lattnerimport android.service.voice.IVoiceInteractionSession; 50a60528cdac7deee3991c2b48af4df4f315e49e9dSebastian Redlimport android.text.TextUtils; 51834a72ac74cf4ff07ba6215545dba3db578f8a07Chris Lattnerimport android.util.Log; 52ef8225444452a1486bd721f3285301fe84643b00Stephen Hinesimport android.util.Singleton; 535f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencerimport com.android.internal.app.IVoiceInteractor; 545f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer 555f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencerimport java.util.ArrayList; 56b760f11fae94e3003b9241ac50c02617465f2fa2John McCallimport java.util.List; 57b760f11fae94e3003b9241ac50c02617465f2fa2John McCall 58b760f11fae94e3003b9241ac50c02617465f2fa2John McCall/** {@hide} */ 59b760f11fae94e3003b9241ac50c02617465f2fa2John McCallpublic abstract class ActivityManagerNative extends Binder implements IActivityManager 60b760f11fae94e3003b9241ac50c02617465f2fa2John McCall{ 61b7d98d35ea723624345f06e5895ddce2e0388ef0Argyrios Kyrtzidis /** 62e2ca828119b8bff4a5c25c6db8ee4fec558451e7Argyrios Kyrtzidis * Cast a Binder object into an activity manager interface, generating 63ef8225444452a1486bd721f3285301fe84643b00Stephen Hines * a proxy if needed. 645f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer */ 655f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer static public IActivityManager asInterface(IBinder obj) { 66337e550218128e7d922c09bb354fbc71de90c568Chris Lattner if (obj == null) { 67337e550218128e7d922c09bb354fbc71de90c568Chris Lattner return null; 6818062394db459158942ab491a88b9d52a5c0ab0dSerge Pavlov } 691eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump IActivityManager in = 70682bf92db408a6cbc3d37b5496a99b6ef85041ecChris Lattner (IActivityManager)obj.queryLocalInterface(descriptor); 7120401698e3bd93a24bb5d9e18e435895cefe5fd1Chris Lattner if (in != null) { 721eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump return in; 73ef8225444452a1486bd721f3285301fe84643b00Stephen Hines } 745f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer 755f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer return new ActivityManagerProxy(obj); 76a7cf23a72b0846fc5aacf3f38bb8c8f9e76784cfFariborz Jahanian } 7718062394db459158942ab491a88b9d52a5c0ab0dSerge Pavlov 7855c7d02e6c76cdf1dfc67bd9cbeb5d3b69eec353Wei Pan /** 7912849d0ed2e88f8c6420944538b9c9d1985df14aDouglas Gregor * Retrieve the system's default/global activity manager. 8012849d0ed2e88f8c6420944538b9c9d1985df14aDouglas Gregor */ 8112849d0ed2e88f8c6420944538b9c9d1985df14aDouglas Gregor static public IActivityManager getDefault() { 8212849d0ed2e88f8c6420944538b9c9d1985df14aDouglas Gregor return gDefault.get(); 8312849d0ed2e88f8c6420944538b9c9d1985df14aDouglas Gregor } 8412849d0ed2e88f8c6420944538b9c9d1985df14aDouglas Gregor 8512849d0ed2e88f8c6420944538b9c9d1985df14aDouglas Gregor /** 8612849d0ed2e88f8c6420944538b9c9d1985df14aDouglas Gregor * Convenience for checking whether the system is ready. For internal use only. 87dfbb02a16ac8c764b5ba1742450513d6212d2f9fNAKAMURA Takumi */ 8812849d0ed2e88f8c6420944538b9c9d1985df14aDouglas Gregor static public boolean isSystemReady() { 8912849d0ed2e88f8c6420944538b9c9d1985df14aDouglas Gregor if (!sSystemReady) { 9012849d0ed2e88f8c6420944538b9c9d1985df14aDouglas Gregor sSystemReady = getDefault().testIsSystemReady(); 9112849d0ed2e88f8c6420944538b9c9d1985df14aDouglas Gregor } 9212849d0ed2e88f8c6420944538b9c9d1985df14aDouglas Gregor return sSystemReady; 9312849d0ed2e88f8c6420944538b9c9d1985df14aDouglas Gregor } 9412849d0ed2e88f8c6420944538b9c9d1985df14aDouglas Gregor static boolean sSystemReady = false; 95f85e193739c953358c865005855253af4f68a497John McCall 967acddacc921cd0b3f813443a8641eeddb82dfbd4John McCall /** 977acddacc921cd0b3f813443a8641eeddb82dfbd4John McCall * Convenience for sending a sticky broadcast. For internal use only. 986bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines * If you don't care about permission, use null. 997acddacc921cd0b3f813443a8641eeddb82dfbd4John McCall */ 1007acddacc921cd0b3f813443a8641eeddb82dfbd4John McCall static public void broadcastStickyIntent(Intent intent, String permission, int userId) { 1017acddacc921cd0b3f813443a8641eeddb82dfbd4John McCall try { 1027acddacc921cd0b3f813443a8641eeddb82dfbd4John McCall getDefault().broadcastIntent( 1034e4d08403ca5cfd4d558fa2936215d3a4e5a528dDavid Blaikie null, intent, null, null, Activity.RESULT_OK, null, null, 1047acddacc921cd0b3f813443a8641eeddb82dfbd4John McCall null /*permission*/, AppOpsManager.OP_NONE, false, true, userId); 1057acddacc921cd0b3f813443a8641eeddb82dfbd4John McCall } catch (RemoteException ex) { 1067acddacc921cd0b3f813443a8641eeddb82dfbd4John McCall } 1077acddacc921cd0b3f813443a8641eeddb82dfbd4John McCall } 1087acddacc921cd0b3f813443a8641eeddb82dfbd4John McCall 1097acddacc921cd0b3f813443a8641eeddb82dfbd4John McCall static public void noteWakeupAlarm(PendingIntent ps, int sourceUid, String sourcePkg) { 1107acddacc921cd0b3f813443a8641eeddb82dfbd4John McCall try { 1117acddacc921cd0b3f813443a8641eeddb82dfbd4John McCall getDefault().noteWakeupAlarm(ps.getTarget(), sourceUid, sourcePkg); 1127acddacc921cd0b3f813443a8641eeddb82dfbd4John McCall } catch (RemoteException ex) { 113f85e193739c953358c865005855253af4f68a497John McCall } 114f85e193739c953358c865005855253af4f68a497John McCall } 115a7cf23a72b0846fc5aacf3f38bb8c8f9e76784cfFariborz Jahanian 116a7cf23a72b0846fc5aacf3f38bb8c8f9e76784cfFariborz Jahanian public ActivityManagerNative() { 117651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines attachInterface(this, descriptor); 118651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines } 1199d8eb3b2a892697aed332f6c318a8554fc2623ceChandler Carruth 1209d8eb3b2a892697aed332f6c318a8554fc2623ceChandler Carruth @Override 1219d8eb3b2a892697aed332f6c318a8554fc2623ceChandler Carruth public boolean onTransact(int code, Parcel data, Parcel reply, int flags) 122ec8058f64bbcd79bd47748f4cf8628123dd3bae6Chandler Carruth throws RemoteException { 1239d8eb3b2a892697aed332f6c318a8554fc2623ceChandler Carruth switch (code) { 124651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines case START_ACTIVITY_TRANSACTION: 1259d8eb3b2a892697aed332f6c318a8554fc2623ceChandler Carruth { 1269d8eb3b2a892697aed332f6c318a8554fc2623ceChandler Carruth data.enforceInterface(IActivityManager.descriptor); 127651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines IBinder b = data.readStrongBinder(); 128ec8058f64bbcd79bd47748f4cf8628123dd3bae6Chandler Carruth IApplicationThread app = ApplicationThreadNative.asInterface(b); 1299d8eb3b2a892697aed332f6c318a8554fc2623ceChandler Carruth String callingPackage = data.readString(); 130651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines Intent intent = Intent.CREATOR.createFromParcel(data); 1319d8eb3b2a892697aed332f6c318a8554fc2623ceChandler Carruth String resolvedType = data.readString(); 13250bf68fc9698742e36c311fc37e6e4b7de235c4bChandler Carruth IBinder resultTo = data.readStrongBinder(); 13350bf68fc9698742e36c311fc37e6e4b7de235c4bChandler Carruth String resultWho = data.readString(); 1349d8eb3b2a892697aed332f6c318a8554fc2623ceChandler Carruth int requestCode = data.readInt(); 135651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines int startFlags = data.readInt(); 136651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines ProfilerInfo profilerInfo = data.readInt() != 0 137ec8058f64bbcd79bd47748f4cf8628123dd3bae6Chandler Carruth ? ProfilerInfo.CREATOR.createFromParcel(data) : null; 138651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines Bundle options = data.readInt() != 0 139651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines ? Bundle.CREATOR.createFromParcel(data) : null; 140651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines int result = startActivity(app, callingPackage, intent, resolvedType, 141651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines resultTo, resultWho, requestCode, startFlags, profilerInfo, options); 142651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines reply.writeNoException(); 143651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines reply.writeInt(result); 144651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines return true; 145651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines } 146651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines 147651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines case START_ACTIVITY_AS_USER_TRANSACTION: 148651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines { 1499d8eb3b2a892697aed332f6c318a8554fc2623ceChandler Carruth data.enforceInterface(IActivityManager.descriptor); 1509d8eb3b2a892697aed332f6c318a8554fc2623ceChandler Carruth IBinder b = data.readStrongBinder(); 15150bf68fc9698742e36c311fc37e6e4b7de235c4bChandler Carruth IApplicationThread app = ApplicationThreadNative.asInterface(b); 15250bf68fc9698742e36c311fc37e6e4b7de235c4bChandler Carruth String callingPackage = data.readString(); 1539d8eb3b2a892697aed332f6c318a8554fc2623ceChandler Carruth Intent intent = Intent.CREATOR.createFromParcel(data); 1549d8eb3b2a892697aed332f6c318a8554fc2623ceChandler Carruth String resolvedType = data.readString(); 155ec8058f64bbcd79bd47748f4cf8628123dd3bae6Chandler Carruth IBinder resultTo = data.readStrongBinder(); 1569d8eb3b2a892697aed332f6c318a8554fc2623ceChandler Carruth String resultWho = data.readString(); 1579d8eb3b2a892697aed332f6c318a8554fc2623ceChandler Carruth int requestCode = data.readInt(); 1589d8eb3b2a892697aed332f6c318a8554fc2623ceChandler Carruth int startFlags = data.readInt(); 1599d8eb3b2a892697aed332f6c318a8554fc2623ceChandler Carruth ProfilerInfo profilerInfo = data.readInt() != 0 160c3cd6f7a5d33ad44f6c9cf4faa7046c77baa128eMatt Beaumont-Gay ? ProfilerInfo.CREATOR.createFromParcel(data) : null; 161ec8058f64bbcd79bd47748f4cf8628123dd3bae6Chandler Carruth Bundle options = data.readInt() != 0 1629d8eb3b2a892697aed332f6c318a8554fc2623ceChandler Carruth ? Bundle.CREATOR.createFromParcel(data) : null; 163ec8058f64bbcd79bd47748f4cf8628123dd3bae6Chandler Carruth int userId = data.readInt(); 164651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines int result = startActivityAsUser(app, callingPackage, intent, resolvedType, 1659d8eb3b2a892697aed332f6c318a8554fc2623ceChandler Carruth resultTo, resultWho, requestCode, startFlags, profilerInfo, options, userId); 16650bf68fc9698742e36c311fc37e6e4b7de235c4bChandler Carruth reply.writeNoException(); 16750bf68fc9698742e36c311fc37e6e4b7de235c4bChandler Carruth reply.writeInt(result); 168651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines return true; 16950bf68fc9698742e36c311fc37e6e4b7de235c4bChandler Carruth } 17050bf68fc9698742e36c311fc37e6e4b7de235c4bChandler Carruth 17150bf68fc9698742e36c311fc37e6e4b7de235c4bChandler Carruth case START_ACTIVITY_AS_CALLER_TRANSACTION: 17250bf68fc9698742e36c311fc37e6e4b7de235c4bChandler Carruth { 17350bf68fc9698742e36c311fc37e6e4b7de235c4bChandler Carruth data.enforceInterface(IActivityManager.descriptor); 17450bf68fc9698742e36c311fc37e6e4b7de235c4bChandler Carruth IBinder b = data.readStrongBinder(); 17550bf68fc9698742e36c311fc37e6e4b7de235c4bChandler Carruth IApplicationThread app = ApplicationThreadNative.asInterface(b); 176ec8058f64bbcd79bd47748f4cf8628123dd3bae6Chandler Carruth String callingPackage = data.readString(); 177ec8058f64bbcd79bd47748f4cf8628123dd3bae6Chandler Carruth Intent intent = Intent.CREATOR.createFromParcel(data); 1789d8eb3b2a892697aed332f6c318a8554fc2623ceChandler Carruth String resolvedType = data.readString(); 1799d8eb3b2a892697aed332f6c318a8554fc2623ceChandler Carruth IBinder resultTo = data.readStrongBinder(); 180636463e4c43be15e2f0fd0b8a08667f3066d8af7Anders Carlsson String resultWho = data.readString(); 181d2827af6f96d441d72315dbe6d8505c3be0f2aa6Argyrios Kyrtzidis int requestCode = data.readInt(); 182d2827af6f96d441d72315dbe6d8505c3be0f2aa6Argyrios Kyrtzidis int startFlags = data.readInt(); 183d2827af6f96d441d72315dbe6d8505c3be0f2aa6Argyrios Kyrtzidis ProfilerInfo profilerInfo = data.readInt() != 0 184754431107b61a0523df5271c2876a73dd5a051e9Anders Carlsson ? ProfilerInfo.CREATOR.createFromParcel(data) : null; 185636463e4c43be15e2f0fd0b8a08667f3066d8af7Anders Carlsson Bundle options = data.readInt() != 0 186636463e4c43be15e2f0fd0b8a08667f3066d8af7Anders Carlsson ? Bundle.CREATOR.createFromParcel(data) : null; 18787b73ba920f523ef13f2420cbdb958a281aa6f33Matt Beaumont-Gay int userId = data.readInt(); 1889016bb771265a10f188c76342254badecc695253Matt Beaumont-Gay int result = startActivityAsCaller(app, callingPackage, intent, resolvedType, 1899016bb771265a10f188c76342254badecc695253Matt Beaumont-Gay resultTo, resultWho, requestCode, startFlags, profilerInfo, options, userId); 1909016bb771265a10f188c76342254badecc695253Matt Beaumont-Gay reply.writeNoException(); 1919016bb771265a10f188c76342254badecc695253Matt Beaumont-Gay reply.writeInt(result); 1929016bb771265a10f188c76342254badecc695253Matt Beaumont-Gay return true; 1939016bb771265a10f188c76342254badecc695253Matt Beaumont-Gay } 1949016bb771265a10f188c76342254badecc695253Matt Beaumont-Gay 1959016bb771265a10f188c76342254badecc695253Matt Beaumont-Gay case START_ACTIVITY_AND_WAIT_TRANSACTION: 196636463e4c43be15e2f0fd0b8a08667f3066d8af7Anders Carlsson { 197a6115068cde719142eb394db88612c185cabd05bEli Friedman data.enforceInterface(IActivityManager.descriptor); 198636463e4c43be15e2f0fd0b8a08667f3066d8af7Anders Carlsson IBinder b = data.readStrongBinder(); 199636463e4c43be15e2f0fd0b8a08667f3066d8af7Anders Carlsson IApplicationThread app = ApplicationThreadNative.asInterface(b); 20087b73ba920f523ef13f2420cbdb958a281aa6f33Matt Beaumont-Gay String callingPackage = data.readString(); 201636463e4c43be15e2f0fd0b8a08667f3066d8af7Anders Carlsson Intent intent = Intent.CREATOR.createFromParcel(data); 2021eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump String resolvedType = data.readString(); 20306b3a06007e02aebe497f34651a4e50b00adb051Chris Lattner IBinder resultTo = data.readStrongBinder(); 20406b3a06007e02aebe497f34651a4e50b00adb051Chris Lattner String resultWho = data.readString(); 20506b3a06007e02aebe497f34651a4e50b00adb051Chris Lattner int requestCode = data.readInt(); 20606b3a06007e02aebe497f34651a4e50b00adb051Chris Lattner int startFlags = data.readInt(); 20706b3a06007e02aebe497f34651a4e50b00adb051Chris Lattner ProfilerInfo profilerInfo = data.readInt() != 0 20806b3a06007e02aebe497f34651a4e50b00adb051Chris Lattner ? ProfilerInfo.CREATOR.createFromParcel(data) : null; 20906b3a06007e02aebe497f34651a4e50b00adb051Chris Lattner Bundle options = data.readInt() != 0 210419cfb318cd69b6c717019288d5a3822be18d8f9Chris Lattner ? Bundle.CREATOR.createFromParcel(data) : null; 211419cfb318cd69b6c717019288d5a3822be18d8f9Chris Lattner int userId = data.readInt(); 212419cfb318cd69b6c717019288d5a3822be18d8f9Chris Lattner WaitResult result = startActivityAndWait(app, callingPackage, intent, resolvedType, 213419cfb318cd69b6c717019288d5a3822be18d8f9Chris Lattner resultTo, resultWho, requestCode, startFlags, profilerInfo, options, userId); 2144765fa05b5652fcc4356371c2f481d0ea9a1b007John McCall reply.writeNoException(); 2154dffad64c5c7106dc5ac506be94944299c8f7bc3Douglas Gregor result.writeToParcel(reply, 0); 21634d49471e0b6386aefdc0f6bd15e4a4876ce5db1Chandler Carruth return true; 21734d49471e0b6386aefdc0f6bd15e4a4876ce5db1Chandler Carruth } 21812f78a6741a4cb3d904340f8d3d2714568b50e7aJohn McCall 219ec8058f64bbcd79bd47748f4cf8628123dd3bae6Chandler Carruth case START_ACTIVITY_WITH_CONFIG_TRANSACTION: 220ec8058f64bbcd79bd47748f4cf8628123dd3bae6Chandler Carruth { 221ec8058f64bbcd79bd47748f4cf8628123dd3bae6Chandler Carruth data.enforceInterface(IActivityManager.descriptor); 222a6115068cde719142eb394db88612c185cabd05bEli Friedman IBinder b = data.readStrongBinder(); 223bc8d42c6f1565c0b2f93ad524edebfd7a4e6cac6Chris Lattner IApplicationThread app = ApplicationThreadNative.asInterface(b); 2240faede6f31b07bcec7b776f2b420c3ea9bb3e58cJohn McCall String callingPackage = data.readString(); 2250faede6f31b07bcec7b776f2b420c3ea9bb3e58cJohn McCall Intent intent = Intent.CREATOR.createFromParcel(data); 2260faede6f31b07bcec7b776f2b420c3ea9bb3e58cJohn McCall String resolvedType = data.readString(); 227bc8d42c6f1565c0b2f93ad524edebfd7a4e6cac6Chris Lattner IBinder resultTo = data.readStrongBinder(); 2289016bb771265a10f188c76342254badecc695253Matt Beaumont-Gay String resultWho = data.readString(); 2299016bb771265a10f188c76342254badecc695253Matt Beaumont-Gay int requestCode = data.readInt(); 2309016bb771265a10f188c76342254badecc695253Matt Beaumont-Gay int startFlags = data.readInt(); 231d20254f2875d0004c57ee766f258dbcee29f4841Nuno Lopes Configuration config = Configuration.CREATOR.createFromParcel(data); 232651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines Bundle options = data.readInt() != 0 23342d7b2d25b6f90dc397886d05502b10ab5a8b51bMatt Beaumont-Gay ? Bundle.CREATOR.createFromParcel(data) : null; 234bc8d42c6f1565c0b2f93ad524edebfd7a4e6cac6Chris Lattner int userId = data.readInt(); 235bc8d42c6f1565c0b2f93ad524edebfd7a4e6cac6Chris Lattner int result = startActivityWithConfig(app, callingPackage, intent, resolvedType, 2369016bb771265a10f188c76342254badecc695253Matt Beaumont-Gay resultTo, resultWho, requestCode, startFlags, config, options, userId); 2379016bb771265a10f188c76342254badecc695253Matt Beaumont-Gay reply.writeNoException(); 238651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines reply.writeInt(result); 239bc8d42c6f1565c0b2f93ad524edebfd7a4e6cac6Chris Lattner return true; 240bc8d42c6f1565c0b2f93ad524edebfd7a4e6cac6Chris Lattner } 241bc8d42c6f1565c0b2f93ad524edebfd7a4e6cac6Chris Lattner 242651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines case START_ACTIVITY_INTENT_SENDER_TRANSACTION: 243bc8d42c6f1565c0b2f93ad524edebfd7a4e6cac6Chris Lattner { 244bc8d42c6f1565c0b2f93ad524edebfd7a4e6cac6Chris Lattner data.enforceInterface(IActivityManager.descriptor); 245bc8d42c6f1565c0b2f93ad524edebfd7a4e6cac6Chris Lattner IBinder b = data.readStrongBinder(); 246dfbb02a16ac8c764b5ba1742450513d6212d2f9fNAKAMURA Takumi IApplicationThread app = ApplicationThreadNative.asInterface(b); 2479016bb771265a10f188c76342254badecc695253Matt Beaumont-Gay IntentSender intent = IntentSender.CREATOR.createFromParcel(data); 2489016bb771265a10f188c76342254badecc695253Matt Beaumont-Gay Intent fillInIntent = null; 2499016bb771265a10f188c76342254badecc695253Matt Beaumont-Gay if (data.readInt() != 0) { 2509016bb771265a10f188c76342254badecc695253Matt Beaumont-Gay fillInIntent = Intent.CREATOR.createFromParcel(data); 2514e4d08403ca5cfd4d558fa2936215d3a4e5a528dDavid Blaikie } 252f85e193739c953358c865005855253af4f68a497John McCall String resolvedType = data.readString(); 253f85e193739c953358c865005855253af4f68a497John McCall IBinder resultTo = data.readStrongBinder(); 254f85e193739c953358c865005855253af4f68a497John McCall String resultWho = data.readString(); 255f031774aa2638b4d3f487e7e44180c1f89b867efFariborz Jahanian int requestCode = data.readInt(); 256651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines int flagsMask = data.readInt(); 25742d7b2d25b6f90dc397886d05502b10ab5a8b51bMatt Beaumont-Gay int flagsValues = data.readInt(); 258f031774aa2638b4d3f487e7e44180c1f89b867efFariborz Jahanian Bundle options = data.readInt() != 0 259f031774aa2638b4d3f487e7e44180c1f89b867efFariborz Jahanian ? Bundle.CREATOR.createFromParcel(data) : null; 260ebcb57a8d298862c65043e88b2429591ab3c58d3Ted Kremenek int result = startActivityIntentSender(app, intent, 261ebcb57a8d298862c65043e88b2429591ab3c58d3Ted Kremenek fillInIntent, resolvedType, resultTo, resultWho, 262ebcb57a8d298862c65043e88b2429591ab3c58d3Ted Kremenek requestCode, flagsMask, flagsValues, options); 263ebcb57a8d298862c65043e88b2429591ab3c58d3Ted Kremenek reply.writeNoException(); 264ebcb57a8d298862c65043e88b2429591ab3c58d3Ted Kremenek reply.writeInt(result); 265ebcb57a8d298862c65043e88b2429591ab3c58d3Ted Kremenek return true; 266d6e44a3c4193bd422bfa78c8086fb16bb2168e34Douglas Gregor } 267d6e44a3c4193bd422bfa78c8086fb16bb2168e34Douglas Gregor 268d6e44a3c4193bd422bfa78c8086fb16bb2168e34Douglas Gregor case START_VOICE_ACTIVITY_TRANSACTION: 269d6e44a3c4193bd422bfa78c8086fb16bb2168e34Douglas Gregor { 270d6e44a3c4193bd422bfa78c8086fb16bb2168e34Douglas Gregor data.enforceInterface(IActivityManager.descriptor); 271f031774aa2638b4d3f487e7e44180c1f89b867efFariborz Jahanian String callingPackage = data.readString(); 272209acbd6d0c1b4444eb8c1682717753e1cbe38deJohn McCall int callingPid = data.readInt(); 273209acbd6d0c1b4444eb8c1682717753e1cbe38deJohn McCall int callingUid = data.readInt(); 274209acbd6d0c1b4444eb8c1682717753e1cbe38deJohn McCall Intent intent = Intent.CREATOR.createFromParcel(data); 275209acbd6d0c1b4444eb8c1682717753e1cbe38deJohn McCall String resolvedType = data.readString(); 276209acbd6d0c1b4444eb8c1682717753e1cbe38deJohn McCall IVoiceInteractionSession session = IVoiceInteractionSession.Stub.asInterface( 277209acbd6d0c1b4444eb8c1682717753e1cbe38deJohn McCall data.readStrongBinder()); 278209acbd6d0c1b4444eb8c1682717753e1cbe38deJohn McCall IVoiceInteractor interactor = IVoiceInteractor.Stub.asInterface( 27939e6ab4be93d9c5e729a578ddd9d415cd2d49872David Blaikie data.readStrongBinder()); 280209acbd6d0c1b4444eb8c1682717753e1cbe38deJohn McCall int startFlags = data.readInt(); 281209acbd6d0c1b4444eb8c1682717753e1cbe38deJohn McCall ProfilerInfo profilerInfo = data.readInt() != 0 282209acbd6d0c1b4444eb8c1682717753e1cbe38deJohn McCall ? ProfilerInfo.CREATOR.createFromParcel(data) : null; 283209acbd6d0c1b4444eb8c1682717753e1cbe38deJohn McCall Bundle options = data.readInt() != 0 284209acbd6d0c1b4444eb8c1682717753e1cbe38deJohn McCall ? Bundle.CREATOR.createFromParcel(data) : null; 285209acbd6d0c1b4444eb8c1682717753e1cbe38deJohn McCall int userId = data.readInt(); 286209acbd6d0c1b4444eb8c1682717753e1cbe38deJohn McCall int result = startVoiceActivity(callingPackage, callingPid, callingUid, intent, 287a6115068cde719142eb394db88612c185cabd05bEli Friedman resolvedType, session, interactor, startFlags, profilerInfo, options, userId); 288a6115068cde719142eb394db88612c185cabd05bEli Friedman reply.writeNoException(); 289a6115068cde719142eb394db88612c185cabd05bEli Friedman reply.writeInt(result); 290a6115068cde719142eb394db88612c185cabd05bEli Friedman return true; 291a6115068cde719142eb394db88612c185cabd05bEli Friedman } 2926bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines 293636463e4c43be15e2f0fd0b8a08667f3066d8af7Anders Carlsson case START_NEXT_MATCHING_ACTIVITY_TRANSACTION: 294636463e4c43be15e2f0fd0b8a08667f3066d8af7Anders Carlsson { 295625bb569df0c34feec0d52c0ec5215f21ef2e054Dmitri Gribenko data.enforceInterface(IActivityManager.descriptor); 296625bb569df0c34feec0d52c0ec5215f21ef2e054Dmitri Gribenko IBinder callingActivity = data.readStrongBinder(); 297625bb569df0c34feec0d52c0ec5215f21ef2e054Dmitri Gribenko Intent intent = Intent.CREATOR.createFromParcel(data); 298625bb569df0c34feec0d52c0ec5215f21ef2e054Dmitri Gribenko Bundle options = data.readInt() != 0 299625bb569df0c34feec0d52c0ec5215f21ef2e054Dmitri Gribenko ? Bundle.CREATOR.createFromParcel(data) : null; 300625bb569df0c34feec0d52c0ec5215f21ef2e054Dmitri Gribenko boolean result = startNextMatchingActivity(callingActivity, intent, options); 301625bb569df0c34feec0d52c0ec5215f21ef2e054Dmitri Gribenko reply.writeNoException(); 302625bb569df0c34feec0d52c0ec5215f21ef2e054Dmitri Gribenko reply.writeInt(result ? 1 : 0); 303625bb569df0c34feec0d52c0ec5215f21ef2e054Dmitri Gribenko return true; 304625bb569df0c34feec0d52c0ec5215f21ef2e054Dmitri Gribenko } 305625bb569df0c34feec0d52c0ec5215f21ef2e054Dmitri Gribenko 306625bb569df0c34feec0d52c0ec5215f21ef2e054Dmitri Gribenko case START_ACTIVITY_FROM_RECENTS_TRANSACTION: 307c895f4d411152b08365cac48f330a8a7898fb382Robert Wilhelm { 308c895f4d411152b08365cac48f330a8a7898fb382Robert Wilhelm data.enforceInterface(IActivityManager.descriptor); 309c895f4d411152b08365cac48f330a8a7898fb382Robert Wilhelm int taskId = data.readInt(); 310c895f4d411152b08365cac48f330a8a7898fb382Robert Wilhelm Bundle options = data.readInt() == 0 ? null : Bundle.CREATOR.createFromParcel(data); 311c30ebfbf23d6a471146e3c68c2cf7f170b7e55dcChris Lattner int result = startActivityFromRecents(taskId, options); 312c30ebfbf23d6a471146e3c68c2cf7f170b7e55dcChris Lattner reply.writeNoException(); 3134e4d08403ca5cfd4d558fa2936215d3a4e5a528dDavid Blaikie reply.writeInt(result); 314c30ebfbf23d6a471146e3c68c2cf7f170b7e55dcChris Lattner return true; 315c30ebfbf23d6a471146e3c68c2cf7f170b7e55dcChris Lattner } 316c30ebfbf23d6a471146e3c68c2cf7f170b7e55dcChris Lattner 317c30ebfbf23d6a471146e3c68c2cf7f170b7e55dcChris Lattner case FINISH_ACTIVITY_TRANSACTION: { 318c30ebfbf23d6a471146e3c68c2cf7f170b7e55dcChris Lattner data.enforceInterface(IActivityManager.descriptor); 319c30ebfbf23d6a471146e3c68c2cf7f170b7e55dcChris Lattner IBinder token = data.readStrongBinder(); 320c30ebfbf23d6a471146e3c68c2cf7f170b7e55dcChris Lattner Intent resultData = null; 321c30ebfbf23d6a471146e3c68c2cf7f170b7e55dcChris Lattner int resultCode = data.readInt(); 322c30ebfbf23d6a471146e3c68c2cf7f170b7e55dcChris Lattner if (data.readInt() != 0) { 3231eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump resultData = Intent.CREATOR.createFromParcel(data); 324c30ebfbf23d6a471146e3c68c2cf7f170b7e55dcChris Lattner } 3254afa39deaa245592977136d367251ee2c173dd8dDouglas Gregor boolean finishTask = (data.readInt() != 0); 326c30ebfbf23d6a471146e3c68c2cf7f170b7e55dcChris Lattner boolean res = finishActivity(token, resultCode, resultData, finishTask); 327c30ebfbf23d6a471146e3c68c2cf7f170b7e55dcChris Lattner reply.writeNoException(); 328c30ebfbf23d6a471146e3c68c2cf7f170b7e55dcChris Lattner reply.writeInt(res ? 1 : 0); 32998414c1b7d1944a57156d52e29bd41c005de09acChris Lattner return true; 33098414c1b7d1944a57156d52e29bd41c005de09acChris Lattner } 331636463e4c43be15e2f0fd0b8a08667f3066d8af7Anders Carlsson 332636463e4c43be15e2f0fd0b8a08667f3066d8af7Anders Carlsson case FINISH_SUB_ACTIVITY_TRANSACTION: { 33398414c1b7d1944a57156d52e29bd41c005de09acChris Lattner data.enforceInterface(IActivityManager.descriptor); 3341eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump IBinder token = data.readStrongBinder(); 335636463e4c43be15e2f0fd0b8a08667f3066d8af7Anders Carlsson String resultWho = data.readString(); 33698414c1b7d1944a57156d52e29bd41c005de09acChris Lattner int requestCode = data.readInt(); 337a60528cdac7deee3991c2b48af4df4f315e49e9dSebastian Redl finishSubActivity(token, resultWho, requestCode); 338625bb569df0c34feec0d52c0ec5215f21ef2e054Dmitri Gribenko reply.writeNoException(); 339625bb569df0c34feec0d52c0ec5215f21ef2e054Dmitri Gribenko return true; 340625bb569df0c34feec0d52c0ec5215f21ef2e054Dmitri Gribenko } 341625bb569df0c34feec0d52c0ec5215f21ef2e054Dmitri Gribenko 342625bb569df0c34feec0d52c0ec5215f21ef2e054Dmitri Gribenko case FINISH_ACTIVITY_AFFINITY_TRANSACTION: { 343625bb569df0c34feec0d52c0ec5215f21ef2e054Dmitri Gribenko data.enforceInterface(IActivityManager.descriptor); 344625bb569df0c34feec0d52c0ec5215f21ef2e054Dmitri Gribenko IBinder token = data.readStrongBinder(); 345625bb569df0c34feec0d52c0ec5215f21ef2e054Dmitri Gribenko boolean res = finishActivityAffinity(token); 346625bb569df0c34feec0d52c0ec5215f21ef2e054Dmitri Gribenko reply.writeNoException(); 347ef8225444452a1486bd721f3285301fe84643b00Stephen Hines reply.writeInt(res ? 1 : 0); 3485f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer return true; 3495f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer } 35060d7b3a319d84d688752be3870615ac0f111fb16John McCall 3519ae2f076ca5ab1feb3ba95629099ec2319833701John McCall case FINISH_VOICE_TASK_TRANSACTION: { 3529ae2f076ca5ab1feb3ba95629099ec2319833701John McCall data.enforceInterface(IActivityManager.descriptor); 35324e1e707b4c362f18e371e2bbf054a8345b57bfaChris Lattner IVoiceInteractionSession session = IVoiceInteractionSession.Stub.asInterface( 3546bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines data.readStrongBinder()); 355117054a99f4994e4ec8a1fc904b554e1f2dc9b29Sebastian Redl finishVoiceTask(session); 3568ef7b203332b0c8d65876a1f5e6d1db4e6f40e4bRichard Smith reply.writeNoException(); 3578ef7b203332b0c8d65876a1f5e6d1db4e6f40e4bRichard Smith return true; 35824e1e707b4c362f18e371e2bbf054a8345b57bfaChris Lattner } 3598ef7b203332b0c8d65876a1f5e6d1db4e6f40e4bRichard Smith 3605f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer case RELEASE_ACTIVITY_INSTANCE_TRANSACTION: { 36180ad52f327b532bded5c5b0ee38779d841c6cd35Richard Smith data.enforceInterface(IActivityManager.descriptor); 3628ef7b203332b0c8d65876a1f5e6d1db4e6f40e4bRichard Smith IBinder token = data.readStrongBinder(); 3638ef7b203332b0c8d65876a1f5e6d1db4e6f40e4bRichard Smith boolean res = releaseActivityInstance(token); 364282e7e66748cc6dd14d6f7f2cb52e5373c531e61Richard Smith reply.writeNoException(); 365ef8225444452a1486bd721f3285301fe84643b00Stephen Hines reply.writeInt(res ? 1 : 0); 366282e7e66748cc6dd14d6f7f2cb52e5373c531e61Richard Smith return true; 367282e7e66748cc6dd14d6f7f2cb52e5373c531e61Richard Smith } 368282e7e66748cc6dd14d6f7f2cb52e5373c531e61Richard Smith 369117054a99f4994e4ec8a1fc904b554e1f2dc9b29Sebastian Redl case RELEASE_SOME_ACTIVITIES_TRANSACTION: { 3708ef7b203332b0c8d65876a1f5e6d1db4e6f40e4bRichard Smith data.enforceInterface(IActivityManager.descriptor); 371117054a99f4994e4ec8a1fc904b554e1f2dc9b29Sebastian Redl IApplicationThread app = ApplicationThreadNative.asInterface(data.readStrongBinder()); 372282e7e66748cc6dd14d6f7f2cb52e5373c531e61Richard Smith releaseSomeActivities(app); 373ef8225444452a1486bd721f3285301fe84643b00Stephen Hines reply.writeNoException(); 374282e7e66748cc6dd14d6f7f2cb52e5373c531e61Richard Smith return true; 3758ef7b203332b0c8d65876a1f5e6d1db4e6f40e4bRichard Smith } 3768a87e57beb96212ee61dc08a5f691cd7f7710703Chris Lattner 377a0152d4e8a602c71ca403172ba0fd025a0b353caBen Langmuir case WILL_ACTIVITY_BE_VISIBLE_TRANSACTION: { 378ad48a500596d7d678b99c7f94326cfa856c3b49fFariborz Jahanian data.enforceInterface(IActivityManager.descriptor); 379ef8225444452a1486bd721f3285301fe84643b00Stephen Hines IBinder token = data.readStrongBinder(); 380ad48a500596d7d678b99c7f94326cfa856c3b49fFariborz Jahanian boolean res = willActivityBeVisible(token); 381ad48a500596d7d678b99c7f94326cfa856c3b49fFariborz Jahanian reply.writeNoException(); 382ef8225444452a1486bd721f3285301fe84643b00Stephen Hines reply.writeInt(res ? 1 : 0); 3835f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer return true; 384dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor } 385dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor 386781472fe99a120098c631b0cbe33c89f8cef5e70John McCall case REGISTER_RECEIVER_TRANSACTION: 387ef8225444452a1486bd721f3285301fe84643b00Stephen Hines { 3885f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer data.enforceInterface(IActivityManager.descriptor); 3895f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer IBinder b = data.readStrongBinder(); 39024e1e707b4c362f18e371e2bbf054a8345b57bfaChris Lattner IApplicationThread app = 3919ae2f076ca5ab1feb3ba95629099ec2319833701John McCall b != null ? ApplicationThreadNative.asInterface(b) : null; 3925440bfaff6aec058b60bc6da75bb4f13b7a76491Chandler Carruth String packageName = data.readString(); 3935440bfaff6aec058b60bc6da75bb4f13b7a76491Chandler Carruth b = data.readStrongBinder(); 39424e1e707b4c362f18e371e2bbf054a8345b57bfaChris Lattner IIntentReceiver rec 39524e1e707b4c362f18e371e2bbf054a8345b57bfaChris Lattner = b != null ? IIntentReceiver.Stub.asInterface(b) : null; 39624e1e707b4c362f18e371e2bbf054a8345b57bfaChris Lattner IntentFilter filter = IntentFilter.CREATOR.createFromParcel(data); 39724e1e707b4c362f18e371e2bbf054a8345b57bfaChris Lattner String perm = data.readString(); 39860d7b3a319d84d688752be3870615ac0f111fb16John McCall int userId = data.readInt(); 3991eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump Intent intent = registerReceiver(app, packageName, rec, filter, perm, userId); 4009ae2f076ca5ab1feb3ba95629099ec2319833701John McCall reply.writeNoException(); 4015440bfaff6aec058b60bc6da75bb4f13b7a76491Chandler Carruth if (intent != null) { 4025440bfaff6aec058b60bc6da75bb4f13b7a76491Chandler Carruth reply.writeInt(1); 403781472fe99a120098c631b0cbe33c89f8cef5e70John McCall intent.writeToParcel(reply, 0); 4040fa152e72bb71c4aa184d0edd91caa9cbebbf70eChris Lattner } else { 405ef8225444452a1486bd721f3285301fe84643b00Stephen Hines reply.writeInt(0); 4060fa152e72bb71c4aa184d0edd91caa9cbebbf70eChris Lattner } 407117054a99f4994e4ec8a1fc904b554e1f2dc9b29Sebastian Redl return true; 408dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor } 409781472fe99a120098c631b0cbe33c89f8cef5e70John McCall 410ef8225444452a1486bd721f3285301fe84643b00Stephen Hines case UNREGISTER_RECEIVER_TRANSACTION: 4115f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer { 4125f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer data.enforceInterface(IActivityManager.descriptor); 41360d7b3a319d84d688752be3870615ac0f111fb16John McCall IBinder b = data.readStrongBinder(); 41457ad37823e198f977cac605dbfbaefb4daf325e9Chris Lattner if (b == null) { 41557ad37823e198f977cac605dbfbaefb4daf325e9Chris Lattner return true; 416ad8dcf4a9df0e24051dc31bf9e6f3cd138a34298Chris Lattner } 417ad8dcf4a9df0e24051dc31bf9e6f3cd138a34298Chris Lattner IIntentReceiver rec = IIntentReceiver.Stub.asInterface(b); 418ad8dcf4a9df0e24051dc31bf9e6f3cd138a34298Chris Lattner unregisterReceiver(rec); 419ad8dcf4a9df0e24051dc31bf9e6f3cd138a34298Chris Lattner reply.writeNoException(); 420ef8225444452a1486bd721f3285301fe84643b00Stephen Hines return true; 4215f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer } 422de307473448fb3cebcb4c10090728300b53bca03Sebastian Redl 423ad8dcf4a9df0e24051dc31bf9e6f3cd138a34298Chris Lattner case BROADCAST_INTENT_TRANSACTION: 424ad8dcf4a9df0e24051dc31bf9e6f3cd138a34298Chris Lattner { 425ad8dcf4a9df0e24051dc31bf9e6f3cd138a34298Chris Lattner data.enforceInterface(IActivityManager.descriptor); 426ac7027872b55c43389308b51b36ade04bb50081fAbramo Bagnara IBinder b = data.readStrongBinder(); 427ac7027872b55c43389308b51b36ade04bb50081fAbramo Bagnara IApplicationThread app = 428203548ba4b72e7e59320d352afc1eb0b5ab131deAbramo Bagnara b != null ? ApplicationThreadNative.asInterface(b) : null; 429ac7027872b55c43389308b51b36ade04bb50081fAbramo Bagnara Intent intent = Intent.CREATOR.createFromParcel(data); 430ef8225444452a1486bd721f3285301fe84643b00Stephen Hines String resolvedType = data.readString(); 4315f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer b = data.readStrongBinder(); 4325f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer IIntentReceiver resultTo = 433534986f2b21e6050bf00163cd6423fd92155a6edRichard Smith b != null ? IIntentReceiver.Stub.asInterface(b) : null; 4344990890fc9428f98bef90ba349203a648c592778Alexander Kornienko int resultCode = data.readInt(); 435534986f2b21e6050bf00163cd6423fd92155a6edRichard Smith String resultData = data.readString(); 4364990890fc9428f98bef90ba349203a648c592778Alexander Kornienko Bundle resultExtras = data.readBundle(); 4374990890fc9428f98bef90ba349203a648c592778Alexander Kornienko String perm = data.readString(); 438ef8225444452a1486bd721f3285301fe84643b00Stephen Hines int appOp = data.readInt(); 439534986f2b21e6050bf00163cd6423fd92155a6edRichard Smith boolean serialized = data.readInt() != 0; 440534986f2b21e6050bf00163cd6423fd92155a6edRichard Smith boolean sticky = data.readInt() != 0; 44160d7b3a319d84d688752be3870615ac0f111fb16John McCall int userId = data.readInt(); 442d226f65006733ed7f709c3174f22ce33391cb58fJohn McCall int res = broadcastIntent(app, intent, resolvedType, resultTo, 44344aa1f397855f130e88e62ffc1029f7f83bb5d2eArgyrios Kyrtzidis resultCode, resultData, resultExtras, perm, appOp, 44444aa1f397855f130e88e62ffc1029f7f83bb5d2eArgyrios Kyrtzidis serialized, sticky, userId); 445820b23dc924a4ae7af07d5a75d6b1d781c267d57Argyrios Kyrtzidis reply.writeNoException(); 446820b23dc924a4ae7af07d5a75d6b1d781c267d57Argyrios Kyrtzidis reply.writeInt(res); 447820b23dc924a4ae7af07d5a75d6b1d781c267d57Argyrios Kyrtzidis return true; 448820b23dc924a4ae7af07d5a75d6b1d781c267d57Argyrios Kyrtzidis } 449820b23dc924a4ae7af07d5a75d6b1d781c267d57Argyrios Kyrtzidis 450820b23dc924a4ae7af07d5a75d6b1d781c267d57Argyrios Kyrtzidis case UNBROADCAST_INTENT_TRANSACTION: 451820b23dc924a4ae7af07d5a75d6b1d781c267d57Argyrios Kyrtzidis { 45260d7b3a319d84d688752be3870615ac0f111fb16John McCall data.enforceInterface(IActivityManager.descriptor); 4531eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump IBinder b = data.readStrongBinder(); 4546bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines IApplicationThread app = b != null ? ApplicationThreadNative.asInterface(b) : null; 455d226f65006733ed7f709c3174f22ce33391cb58fJohn McCall Intent intent = Intent.CREATOR.createFromParcel(data); 456d226f65006733ed7f709c3174f22ce33391cb58fJohn McCall int userId = data.readInt(); 457586596fd7f7a336a2847b300c80614dcf39ab6d5Douglas Gregor unbroadcastIntent(app, intent, userId); 45899e9b4d172f6877e6ba5ebe75bb8238721f5e01cDouglas Gregor reply.writeNoException(); 45999e9b4d172f6877e6ba5ebe75bb8238721f5e01cDouglas Gregor return true; 4608cfe5a784133d90bf329fd20801824a6f71bb8caDouglas Gregor } 461ef8225444452a1486bd721f3285301fe84643b00Stephen Hines 46299e9b4d172f6877e6ba5ebe75bb8238721f5e01cDouglas Gregor case FINISH_RECEIVER_TRANSACTION: { 46399e9b4d172f6877e6ba5ebe75bb8238721f5e01cDouglas Gregor data.enforceInterface(IActivityManager.descriptor); 464dfbb02a16ac8c764b5ba1742450513d6212d2f9fNAKAMURA Takumi IBinder who = data.readStrongBinder(); 465754431107b61a0523df5271c2876a73dd5a051e9Anders Carlsson int resultCode = data.readInt(); 4665f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer String resultData = data.readString(); 4679ae2f076ca5ab1feb3ba95629099ec2319833701John McCall Bundle resultExtras = data.readBundle(); 468625bb569df0c34feec0d52c0ec5215f21ef2e054Dmitri Gribenko boolean resultAbort = data.readInt() != 0; 469625bb569df0c34feec0d52c0ec5215f21ef2e054Dmitri Gribenko if (who != null) { 4702d85f8ba62fd6fdcf0ae303d77112b413d412caeAnders Carlsson finishReceiver(who, resultCode, resultData, resultExtras, resultAbort); 4712d85f8ba62fd6fdcf0ae303d77112b413d412caeAnders Carlsson } 472754431107b61a0523df5271c2876a73dd5a051e9Anders Carlsson reply.writeNoException(); 4731eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump return true; 474ef8225444452a1486bd721f3285301fe84643b00Stephen Hines } 475ef8225444452a1486bd721f3285301fe84643b00Stephen Hines 4765f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer case ATTACH_APPLICATION_TRANSACTION: { 4775f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer data.enforceInterface(IActivityManager.descriptor); 478f4021e7d5228a2be5a380269dffa0331a6c78b95Chris Lattner IApplicationThread app = ApplicationThreadNative.asInterface( 479f4021e7d5228a2be5a380269dffa0331a6c78b95Chris Lattner data.readStrongBinder()); 480f4021e7d5228a2be5a380269dffa0331a6c78b95Chris Lattner if (app != null) { 481f4021e7d5228a2be5a380269dffa0331a6c78b95Chris Lattner attachApplication(app); 482f4021e7d5228a2be5a380269dffa0331a6c78b95Chris Lattner } 4831eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump reply.writeNoException(); 484f4021e7d5228a2be5a380269dffa0331a6c78b95Chris Lattner return true; 485f4021e7d5228a2be5a380269dffa0331a6c78b95Chris Lattner } 486f4021e7d5228a2be5a380269dffa0331a6c78b95Chris Lattner 487f4021e7d5228a2be5a380269dffa0331a6c78b95Chris Lattner case ACTIVITY_IDLE_TRANSACTION: { 4889f71a8f4c7a182a5236da9e747d57cc1d1bd24c2Jay Foad data.enforceInterface(IActivityManager.descriptor); 489f4021e7d5228a2be5a380269dffa0331a6c78b95Chris Lattner IBinder token = data.readStrongBinder(); 490f9f627dbbc62fbf51b906c24c783b4249dc7e9bbDouglas Gregor Configuration config = null; 491f9f627dbbc62fbf51b906c24c783b4249dc7e9bbDouglas Gregor if (data.readInt() != 0) { 492f9f627dbbc62fbf51b906c24c783b4249dc7e9bbDouglas Gregor config = Configuration.CREATOR.createFromParcel(data); 493f9f627dbbc62fbf51b906c24c783b4249dc7e9bbDouglas Gregor } 494f9f627dbbc62fbf51b906c24c783b4249dc7e9bbDouglas Gregor boolean stopProfiling = data.readInt() != 0; 495f4021e7d5228a2be5a380269dffa0331a6c78b95Chris Lattner if (token != null) { 496f4021e7d5228a2be5a380269dffa0331a6c78b95Chris Lattner activityIdle(token, config, stopProfiling); 497f4021e7d5228a2be5a380269dffa0331a6c78b95Chris Lattner } 4989f71a8f4c7a182a5236da9e747d57cc1d1bd24c2Jay Foad reply.writeNoException(); 499b2137ae3f1bd0aadb0552189af2824a324ffaa69Chris Lattner return true; 5009f71a8f4c7a182a5236da9e747d57cc1d1bd24c2Jay Foad } 501b2137ae3f1bd0aadb0552189af2824a324ffaa69Chris Lattner 502f4021e7d5228a2be5a380269dffa0331a6c78b95Chris Lattner case ACTIVITY_RESUMED_TRANSACTION: { 503d3a94e24ddf3fb90de76b17bd176d9ed61e66f2cChris Lattner data.enforceInterface(IActivityManager.descriptor); 5041eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump IBinder token = data.readStrongBinder(); 505f4021e7d5228a2be5a380269dffa0331a6c78b95Chris Lattner activityResumed(token); 506f4021e7d5228a2be5a380269dffa0331a6c78b95Chris Lattner reply.writeNoException(); 5079f71a8f4c7a182a5236da9e747d57cc1d1bd24c2Jay Foad return true; 508b2137ae3f1bd0aadb0552189af2824a324ffaa69Chris Lattner } 509f4021e7d5228a2be5a380269dffa0331a6c78b95Chris Lattner 510f4021e7d5228a2be5a380269dffa0331a6c78b95Chris Lattner case ACTIVITY_PAUSED_TRANSACTION: { 511f4021e7d5228a2be5a380269dffa0331a6c78b95Chris Lattner data.enforceInterface(IActivityManager.descriptor); 512dfbb02a16ac8c764b5ba1742450513d6212d2f9fNAKAMURA Takumi IBinder token = data.readStrongBinder(); 5132853eac24e2e70a74d7da817653b0528b976039fDouglas Gregor activityPaused(token); 5142853eac24e2e70a74d7da817653b0528b976039fDouglas Gregor reply.writeNoException(); 515f4021e7d5228a2be5a380269dffa0331a6c78b95Chris Lattner return true; 516f4021e7d5228a2be5a380269dffa0331a6c78b95Chris Lattner } 517f4021e7d5228a2be5a380269dffa0331a6c78b95Chris Lattner 518f4021e7d5228a2be5a380269dffa0331a6c78b95Chris Lattner case ACTIVITY_STOPPED_TRANSACTION: { 5190471f5bc8191e39cdb61fabcaf1870e2af2d42e8Chris Lattner data.enforceInterface(IActivityManager.descriptor); 5200471f5bc8191e39cdb61fabcaf1870e2af2d42e8Chris Lattner IBinder token = data.readStrongBinder(); 5210471f5bc8191e39cdb61fabcaf1870e2af2d42e8Chris Lattner Bundle map = data.readBundle(); 5220471f5bc8191e39cdb61fabcaf1870e2af2d42e8Chris Lattner PersistableBundle persistentState = data.readPersistableBundle(); 5230471f5bc8191e39cdb61fabcaf1870e2af2d42e8Chris Lattner CharSequence description = TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(data); 5240471f5bc8191e39cdb61fabcaf1870e2af2d42e8Chris Lattner activityStopped(token, map, persistentState, description); 5250e85a2761ace912c66663d779dd230f88cf77fe0Chris Lattner reply.writeNoException(); 5260e85a2761ace912c66663d779dd230f88cf77fe0Chris Lattner return true; 5270e85a2761ace912c66663d779dd230f88cf77fe0Chris Lattner } 5280e85a2761ace912c66663d779dd230f88cf77fe0Chris Lattner 5290471f5bc8191e39cdb61fabcaf1870e2af2d42e8Chris Lattner case ACTIVITY_SLEPT_TRANSACTION: { 5300471f5bc8191e39cdb61fabcaf1870e2af2d42e8Chris Lattner data.enforceInterface(IActivityManager.descriptor); 5310471f5bc8191e39cdb61fabcaf1870e2af2d42e8Chris Lattner IBinder token = data.readStrongBinder(); 5320471f5bc8191e39cdb61fabcaf1870e2af2d42e8Chris Lattner activitySlept(token); 5330471f5bc8191e39cdb61fabcaf1870e2af2d42e8Chris Lattner reply.writeNoException(); 5340471f5bc8191e39cdb61fabcaf1870e2af2d42e8Chris Lattner return true; 5350471f5bc8191e39cdb61fabcaf1870e2af2d42e8Chris Lattner } 536764a7ce5217f9569e100a3445f47496ee82daf86Chris Lattner 537764a7ce5217f9569e100a3445f47496ee82daf86Chris Lattner case ACTIVITY_DESTROYED_TRANSACTION: { 538764a7ce5217f9569e100a3445f47496ee82daf86Chris Lattner data.enforceInterface(IActivityManager.descriptor); 539764a7ce5217f9569e100a3445f47496ee82daf86Chris Lattner IBinder token = data.readStrongBinder(); 540764a7ce5217f9569e100a3445f47496ee82daf86Chris Lattner activityDestroyed(token); 541764a7ce5217f9569e100a3445f47496ee82daf86Chris Lattner reply.writeNoException(); 542764a7ce5217f9569e100a3445f47496ee82daf86Chris Lattner return true; 543764a7ce5217f9569e100a3445f47496ee82daf86Chris Lattner } 544764a7ce5217f9569e100a3445f47496ee82daf86Chris Lattner 545764a7ce5217f9569e100a3445f47496ee82daf86Chris Lattner case GET_CALLING_PACKAGE_TRANSACTION: { 546764a7ce5217f9569e100a3445f47496ee82daf86Chris Lattner data.enforceInterface(IActivityManager.descriptor); 547764a7ce5217f9569e100a3445f47496ee82daf86Chris Lattner IBinder token = data.readStrongBinder(); 548764a7ce5217f9569e100a3445f47496ee82daf86Chris Lattner String res = token != null ? getCallingPackage(token) : null; 549764a7ce5217f9569e100a3445f47496ee82daf86Chris Lattner reply.writeNoException(); 550ba915af51ced751c46e7c2b9c6f3b59d2e668825Douglas Gregor reply.writeString(res); 551ba915af51ced751c46e7c2b9c6f3b59d2e668825Douglas Gregor return true; 552ba915af51ced751c46e7c2b9c6f3b59d2e668825Douglas Gregor } 553ba915af51ced751c46e7c2b9c6f3b59d2e668825Douglas Gregor 554ba915af51ced751c46e7c2b9c6f3b59d2e668825Douglas Gregor case GET_CALLING_ACTIVITY_TRANSACTION: { 555ba915af51ced751c46e7c2b9c6f3b59d2e668825Douglas Gregor data.enforceInterface(IActivityManager.descriptor); 556ba915af51ced751c46e7c2b9c6f3b59d2e668825Douglas Gregor IBinder token = data.readStrongBinder(); 557ba915af51ced751c46e7c2b9c6f3b59d2e668825Douglas Gregor ComponentName cn = getCallingActivity(token); 558ba915af51ced751c46e7c2b9c6f3b59d2e668825Douglas Gregor reply.writeNoException(); 559ba915af51ced751c46e7c2b9c6f3b59d2e668825Douglas Gregor ComponentName.writeToParcel(cn, reply); 560ba915af51ced751c46e7c2b9c6f3b59d2e668825Douglas Gregor return true; 561ba915af51ced751c46e7c2b9c6f3b59d2e668825Douglas Gregor } 562ba915af51ced751c46e7c2b9c6f3b59d2e668825Douglas Gregor 563ba915af51ced751c46e7c2b9c6f3b59d2e668825Douglas Gregor case GET_APP_TASKS_TRANSACTION: { 564ba915af51ced751c46e7c2b9c6f3b59d2e668825Douglas Gregor data.enforceInterface(IActivityManager.descriptor); 565ba915af51ced751c46e7c2b9c6f3b59d2e668825Douglas Gregor String callingPackage = data.readString(); 5665f04881eb025f61396d0555d8173730fe2759e0aChris Lattner List<IAppTask> list = getAppTasks(callingPackage); 5675f04881eb025f61396d0555d8173730fe2759e0aChris Lattner reply.writeNoException(); 568a8e0cd8cdecc7e0ba1792e46773b884c6eed4829John McCall int N = list != null ? list.size() : -1; 569a8e0cd8cdecc7e0ba1792e46773b884c6eed4829John McCall reply.writeInt(N); 570a8e0cd8cdecc7e0ba1792e46773b884c6eed4829John McCall int i; 571a8e0cd8cdecc7e0ba1792e46773b884c6eed4829John McCall for (i=0; i<N; i++) { 572a8e0cd8cdecc7e0ba1792e46773b884c6eed4829John McCall IAppTask task = list.get(i); 573a8e0cd8cdecc7e0ba1792e46773b884c6eed4829John McCall reply.writeStrongBinder(task.asBinder()); 5745f04881eb025f61396d0555d8173730fe2759e0aChris Lattner } 5755f04881eb025f61396d0555d8173730fe2759e0aChris Lattner return true; 5765f04881eb025f61396d0555d8173730fe2759e0aChris Lattner } 5775f04881eb025f61396d0555d8173730fe2759e0aChris Lattner 57860d7b3a319d84d688752be3870615ac0f111fb16John McCall case ADD_APP_TASK_TRANSACTION: { 579dfbb02a16ac8c764b5ba1742450513d6212d2f9fNAKAMURA Takumi data.enforceInterface(IActivityManager.descriptor); 580d226f65006733ed7f709c3174f22ce33391cb58fJohn McCall IBinder activityToken = data.readStrongBinder(); 58160d7b3a319d84d688752be3870615ac0f111fb16John McCall Intent intent = Intent.CREATOR.createFromParcel(data); 5829ae2f076ca5ab1feb3ba95629099ec2319833701John McCall ActivityManager.TaskDescription descr 5836bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines = ActivityManager.TaskDescription.CREATOR.createFromParcel(data); 584d226f65006733ed7f709c3174f22ce33391cb58fJohn McCall Bitmap thumbnail = Bitmap.CREATOR.createFromParcel(data); 585d226f65006733ed7f709c3174f22ce33391cb58fJohn McCall int res = addAppTask(activityToken, intent, descr, thumbnail); 5869ae2f076ca5ab1feb3ba95629099ec2319833701John McCall reply.writeNoException(); 5879ae2f076ca5ab1feb3ba95629099ec2319833701John McCall reply.writeInt(res); 588586596fd7f7a336a2847b300c80614dcf39ab6d5Douglas Gregor return true; 589dfbb02a16ac8c764b5ba1742450513d6212d2f9fNAKAMURA Takumi } 590ef8225444452a1486bd721f3285301fe84643b00Stephen Hines 591586596fd7f7a336a2847b300c80614dcf39ab6d5Douglas Gregor case GET_APP_TASK_THUMBNAIL_SIZE_TRANSACTION: { 592dfbb02a16ac8c764b5ba1742450513d6212d2f9fNAKAMURA Takumi data.enforceInterface(IActivityManager.descriptor); 5939ae2f076ca5ab1feb3ba95629099ec2319833701John McCall Point size = getAppTaskThumbnailSize(); 594586596fd7f7a336a2847b300c80614dcf39ab6d5Douglas Gregor reply.writeNoException(); 595dfbb02a16ac8c764b5ba1742450513d6212d2f9fNAKAMURA Takumi size.writeToParcel(reply, 0); 596ab41fe914f63bb470dfa7e400876ada72f57a931Douglas Gregor return true; 597ab41fe914f63bb470dfa7e400876ada72f57a931Douglas Gregor } 5988e1e0543cc3b63e0bc116bae0d2f1e8fc530b436Chad Rosier 599ab41fe914f63bb470dfa7e400876ada72f57a931Douglas Gregor case GET_TASKS_TRANSACTION: { 600ab41fe914f63bb470dfa7e400876ada72f57a931Douglas Gregor data.enforceInterface(IActivityManager.descriptor); 601097e0a2cb08c8244a6923489acc8f890e6a99b59Richard Smith int maxNum = data.readInt(); 602097e0a2cb08c8244a6923489acc8f890e6a99b59Richard Smith int fl = data.readInt(); 6038e1e0543cc3b63e0bc116bae0d2f1e8fc530b436Chad Rosier List<ActivityManager.RunningTaskInfo> list = getTasks(maxNum, fl); 604651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines reply.writeNoException(); 605651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines int N = list != null ? list.size() : -1; 606ab41fe914f63bb470dfa7e400876ada72f57a931Douglas Gregor reply.writeInt(N); 607ab41fe914f63bb470dfa7e400876ada72f57a931Douglas Gregor int i; 6088e1e0543cc3b63e0bc116bae0d2f1e8fc530b436Chad Rosier for (i=0; i<N; i++) { 609651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines ActivityManager.RunningTaskInfo info = list.get(i); 610651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines info.writeToParcel(reply, 0); 611ab41fe914f63bb470dfa7e400876ada72f57a931Douglas Gregor } 612ab41fe914f63bb470dfa7e400876ada72f57a931Douglas Gregor return true; 613ab41fe914f63bb470dfa7e400876ada72f57a931Douglas Gregor } 6148e1e0543cc3b63e0bc116bae0d2f1e8fc530b436Chad Rosier 615651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines case GET_RECENT_TASKS_TRANSACTION: { 616651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines data.enforceInterface(IActivityManager.descriptor); 617ab41fe914f63bb470dfa7e400876ada72f57a931Douglas Gregor int maxNum = data.readInt(); 618ab41fe914f63bb470dfa7e400876ada72f57a931Douglas Gregor int fl = data.readInt(); 6198e1e0543cc3b63e0bc116bae0d2f1e8fc530b436Chad Rosier int userId = data.readInt(); 620651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines List<ActivityManager.RecentTaskInfo> list = getRecentTasks(maxNum, 621651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines fl, userId); 622ab41fe914f63bb470dfa7e400876ada72f57a931Douglas Gregor reply.writeNoException(); 623ab41fe914f63bb470dfa7e400876ada72f57a931Douglas Gregor reply.writeTypedList(list); 624ab41fe914f63bb470dfa7e400876ada72f57a931Douglas Gregor return true; 6258e1e0543cc3b63e0bc116bae0d2f1e8fc530b436Chad Rosier } 626651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines 627651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines case GET_TASK_THUMBNAIL_TRANSACTION: { 628ab41fe914f63bb470dfa7e400876ada72f57a931Douglas Gregor data.enforceInterface(IActivityManager.descriptor); 629ab41fe914f63bb470dfa7e400876ada72f57a931Douglas Gregor int id = data.readInt(); 6308e1e0543cc3b63e0bc116bae0d2f1e8fc530b436Chad Rosier ActivityManager.TaskThumbnail taskThumbnail = getTaskThumbnail(id); 631651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines reply.writeNoException(); 632651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines if (taskThumbnail != null) { 633ab41fe914f63bb470dfa7e400876ada72f57a931Douglas Gregor reply.writeInt(1); 634ab41fe914f63bb470dfa7e400876ada72f57a931Douglas Gregor taskThumbnail.writeToParcel(reply, Parcelable.PARCELABLE_WRITE_RETURN_VALUE); 635ab41fe914f63bb470dfa7e400876ada72f57a931Douglas Gregor } else { 6368e1e0543cc3b63e0bc116bae0d2f1e8fc530b436Chad Rosier reply.writeInt(0); 637651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines } 638651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines return true; 639097e0a2cb08c8244a6923489acc8f890e6a99b59Richard Smith } 640ab41fe914f63bb470dfa7e400876ada72f57a931Douglas Gregor 641ab41fe914f63bb470dfa7e400876ada72f57a931Douglas Gregor case GET_SERVICES_TRANSACTION: { 642ab41fe914f63bb470dfa7e400876ada72f57a931Douglas Gregor data.enforceInterface(IActivityManager.descriptor); 643097e0a2cb08c8244a6923489acc8f890e6a99b59Richard Smith int maxNum = data.readInt(); 644097e0a2cb08c8244a6923489acc8f890e6a99b59Richard Smith int fl = data.readInt(); 6459ae2f076ca5ab1feb3ba95629099ec2319833701John McCall List<ActivityManager.RunningServiceInfo> list = getServices(maxNum, fl); 646ef8225444452a1486bd721f3285301fe84643b00Stephen Hines reply.writeNoException(); 647dfbb02a16ac8c764b5ba1742450513d6212d2f9fNAKAMURA Takumi int N = list != null ? list.size() : -1; 648a8e0cd8cdecc7e0ba1792e46773b884c6eed4829John McCall reply.writeInt(N); 649a8e0cd8cdecc7e0ba1792e46773b884c6eed4829John McCall int i; 650a8e0cd8cdecc7e0ba1792e46773b884c6eed4829John McCall for (i=0; i<N; i++) { 651ef8225444452a1486bd721f3285301fe84643b00Stephen Hines ActivityManager.RunningServiceInfo info = list.get(i); 652a8e0cd8cdecc7e0ba1792e46773b884c6eed4829John McCall info.writeToParcel(reply, 0); 653d226f65006733ed7f709c3174f22ce33391cb58fJohn McCall } 654419563768ef4929a622d7c2b066856e82901bb91Richard Smith return true; 6559ae2f076ca5ab1feb3ba95629099ec2319833701John McCall } 656586596fd7f7a336a2847b300c80614dcf39ab6d5Douglas Gregor 657ef8225444452a1486bd721f3285301fe84643b00Stephen Hines case GET_PROCESSES_IN_ERROR_STATE_TRANSACTION: { 658586596fd7f7a336a2847b300c80614dcf39ab6d5Douglas Gregor data.enforceInterface(IActivityManager.descriptor); 659b60a77e453d32db0ab1914d28e175c2defc0eb65John McCall List<ActivityManager.ProcessErrorStateInfo> list = getProcessesInErrorState(); 660781472fe99a120098c631b0cbe33c89f8cef5e70John McCall reply.writeNoException(); 661dfbb02a16ac8c764b5ba1742450513d6212d2f9fNAKAMURA Takumi reply.writeTypedList(list); 6629ae2f076ca5ab1feb3ba95629099ec2319833701John McCall return true; 663781472fe99a120098c631b0cbe33c89f8cef5e70John McCall } 664ef8225444452a1486bd721f3285301fe84643b00Stephen Hines 6657e52de4b45286d057b367bb1f9283a1e32d79252Chris Lattner case GET_RUNNING_APP_PROCESSES_TRANSACTION: { 6667e52de4b45286d057b367bb1f9283a1e32d79252Chris Lattner data.enforceInterface(IActivityManager.descriptor); 66728164ab2ac1deea68cdb989f941728bf1860ce41Gabor Greif List<ActivityManager.RunningAppProcessInfo> list = getRunningAppProcesses(); 66828164ab2ac1deea68cdb989f941728bf1860ce41Gabor Greif reply.writeNoException(); 6699f71a8f4c7a182a5236da9e747d57cc1d1bd24c2Jay Foad reply.writeTypedList(list); 67028164ab2ac1deea68cdb989f941728bf1860ce41Gabor Greif return true; 6719f71a8f4c7a182a5236da9e747d57cc1d1bd24c2Jay Foad } 67228164ab2ac1deea68cdb989f941728bf1860ce41Gabor Greif 67328164ab2ac1deea68cdb989f941728bf1860ce41Gabor Greif case GET_RUNNING_EXTERNAL_APPLICATIONS_TRANSACTION: { 67428164ab2ac1deea68cdb989f941728bf1860ce41Gabor Greif data.enforceInterface(IActivityManager.descriptor); 675651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines List<ApplicationInfo> list = getRunningExternalApplications(); 676651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines reply.writeNoException(); 677651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines reply.writeTypedList(list); 678651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines return true; 679651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines } 680651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines 681651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines case MOVE_TASK_TO_FRONT_TRANSACTION: { 682651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines data.enforceInterface(IActivityManager.descriptor); 683651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines int task = data.readInt(); 684651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines int fl = data.readInt(); 685651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines Bundle options = data.readInt() != 0 686651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines ? Bundle.CREATOR.createFromParcel(data) : null; 687651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines moveTaskToFront(task, fl, options); 688651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines reply.writeNoException(); 689651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines return true; 690651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines } 691651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines 692651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines case MOVE_TASK_TO_BACK_TRANSACTION: { 693651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines data.enforceInterface(IActivityManager.descriptor); 694651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines int task = data.readInt(); 695651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines moveTaskToBack(task); 696651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines reply.writeNoException(); 697651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines return true; 69860d7b3a319d84d688752be3870615ac0f111fb16John McCall } 6999ae2f076ca5ab1feb3ba95629099ec2319833701John McCall 7009ae2f076ca5ab1feb3ba95629099ec2319833701John McCall case MOVE_ACTIVITY_TASK_TO_BACK_TRANSACTION: { 7019ae2f076ca5ab1feb3ba95629099ec2319833701John McCall data.enforceInterface(IActivityManager.descriptor); 702781472fe99a120098c631b0cbe33c89f8cef5e70John McCall IBinder token = data.readStrongBinder(); 703781472fe99a120098c631b0cbe33c89f8cef5e70John McCall boolean nonRoot = data.readInt() != 0; 704de307473448fb3cebcb4c10090728300b53bca03Sebastian Redl boolean res = moveActivityTaskToBack(token, nonRoot); 7056bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines reply.writeNoException(); 7069dcbfa450d751bd68fc4af8b75da381d4f6984b9Steve Naroff reply.writeInt(res ? 1 : 0); 707781472fe99a120098c631b0cbe33c89f8cef5e70John McCall return true; 708c1fcb7762673be706b0a40477d5e93411e918f93Anders Carlsson } 709f4021e7d5228a2be5a380269dffa0331a6c78b95Chris Lattner 710a8e0cd8cdecc7e0ba1792e46773b884c6eed4829John McCall case MOVE_TASK_BACKWARDS_TRANSACTION: { 711de307473448fb3cebcb4c10090728300b53bca03Sebastian Redl data.enforceInterface(IActivityManager.descriptor); 712a0d3ca1ea5578bc736bb71bcec50ab41fefc87b9Douglas Gregor int task = data.readInt(); 713a8e0cd8cdecc7e0ba1792e46773b884c6eed4829John McCall moveTaskBackwards(task); 714a8e0cd8cdecc7e0ba1792e46773b884c6eed4829John McCall reply.writeNoException(); 715a8e0cd8cdecc7e0ba1792e46773b884c6eed4829John McCall return true; 716a8e0cd8cdecc7e0ba1792e46773b884c6eed4829John McCall } 71784fb9c0be621c9e4ca4e56f67dae2a0bb6e44821Douglas Gregor 7185f04881eb025f61396d0555d8173730fe2759e0aChris Lattner case MOVE_TASK_TO_STACK_TRANSACTION: { 7195f04881eb025f61396d0555d8173730fe2759e0aChris Lattner data.enforceInterface(IActivityManager.descriptor); 7205f04881eb025f61396d0555d8173730fe2759e0aChris Lattner int taskId = data.readInt(); 7215f04881eb025f61396d0555d8173730fe2759e0aChris Lattner int stackId = data.readInt(); 7225f04881eb025f61396d0555d8173730fe2759e0aChris Lattner boolean toTop = data.readInt() != 0; 7235f04881eb025f61396d0555d8173730fe2759e0aChris Lattner moveTaskToStack(taskId, stackId, toTop); 7245f04881eb025f61396d0555d8173730fe2759e0aChris Lattner reply.writeNoException(); 72512356b119032edd64e9c32f9f01920d12c2acc57Edward O'Callaghan return true; 726acb0bd85d30ecacbe872ca9d9cfac5d7b6038a43Douglas Gregor } 727dfbb02a16ac8c764b5ba1742450513d6212d2f9fNAKAMURA Takumi 728acb0bd85d30ecacbe872ca9d9cfac5d7b6038a43Douglas Gregor case RESIZE_STACK_TRANSACTION: { 729acb0bd85d30ecacbe872ca9d9cfac5d7b6038a43Douglas Gregor data.enforceInterface(IActivityManager.descriptor); 73012356b119032edd64e9c32f9f01920d12c2acc57Edward O'Callaghan int stackId = data.readInt(); 73112356b119032edd64e9c32f9f01920d12c2acc57Edward O'Callaghan float weight = data.readFloat(); 7322b334bb3126a67895813e49e6228dad4aec0b4d6Chris Lattner Rect r = Rect.CREATOR.createFromParcel(data); 73312356b119032edd64e9c32f9f01920d12c2acc57Edward O'Callaghan resizeStack(stackId, r); 73412356b119032edd64e9c32f9f01920d12c2acc57Edward O'Callaghan reply.writeNoException(); 73512356b119032edd64e9c32f9f01920d12c2acc57Edward O'Callaghan return true; 73612356b119032edd64e9c32f9f01920d12c2acc57Edward O'Callaghan } 73712356b119032edd64e9c32f9f01920d12c2acc57Edward O'Callaghan 73812356b119032edd64e9c32f9f01920d12c2acc57Edward O'Callaghan case GET_ALL_STACK_INFOS_TRANSACTION: { 739c1fcb7762673be706b0a40477d5e93411e918f93Anders Carlsson data.enforceInterface(IActivityManager.descriptor); 740de307473448fb3cebcb4c10090728300b53bca03Sebastian Redl List<StackInfo> list = getAllStackInfos(); 741f4021e7d5228a2be5a380269dffa0331a6c78b95Chris Lattner reply.writeNoException(); 742f4021e7d5228a2be5a380269dffa0331a6c78b95Chris Lattner reply.writeTypedList(list); 7431eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump return true; 744dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor } 7451eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump 7461d6ab7af99a1fc059a6aa5da083640c1d94b07f7Chris Lattner case GET_STACK_INFO_TRANSACTION: { 7471093f4928a4263d08b44d96e468a42515d8a28f3Chad Rosier data.enforceInterface(IActivityManager.descriptor); 748575a1c9dc8dc5b4977194993e289f9eda7295c39Douglas Gregor int stackId = data.readInt(); 7491eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump StackInfo info = getStackInfo(stackId); 750f4021e7d5228a2be5a380269dffa0331a6c78b95Chris Lattner reply.writeNoException(); 751f4021e7d5228a2be5a380269dffa0331a6c78b95Chris Lattner if (info != null) { 752f4021e7d5228a2be5a380269dffa0331a6c78b95Chris Lattner reply.writeInt(1); 7535f9e272e632e951b1efe824cd16acb4d96077930Chris Lattner info.writeToParcel(reply, 0); 7540471f5bc8191e39cdb61fabcaf1870e2af2d42e8Chris Lattner } else { 7551eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump reply.writeInt(0); 756f4021e7d5228a2be5a380269dffa0331a6c78b95Chris Lattner } 757ba915af51ced751c46e7c2b9c6f3b59d2e668825Douglas Gregor return true; 758ba915af51ced751c46e7c2b9c6f3b59d2e668825Douglas Gregor } 7591eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump 7606bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines case IS_IN_HOME_STACK_TRANSACTION: { 7611eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump data.enforceInterface(IActivityManager.descriptor); 762b2ec9d6fede9cccc170a202de7bf7f523dea8be4Chris Lattner int taskId = data.readInt(); 7631eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump boolean isInHomeStack = isInHomeStack(taskId); 764dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor reply.writeNoException(); 765c1fcb7762673be706b0a40477d5e93411e918f93Anders Carlsson reply.writeInt(isInHomeStack ? 1 : 0); 7661eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump return true; 767c1fcb7762673be706b0a40477d5e93411e918f93Anders Carlsson } 768f4021e7d5228a2be5a380269dffa0331a6c78b95Chris Lattner 769f4021e7d5228a2be5a380269dffa0331a6c78b95Chris Lattner case SET_FOCUSED_STACK_TRANSACTION: { 7705f4a6829dc58cab2f76e2b98492859aa3b91e3f2Chris Lattner data.enforceInterface(IActivityManager.descriptor); 771de307473448fb3cebcb4c10090728300b53bca03Sebastian Redl int stackId = data.readInt(); 772f4021e7d5228a2be5a380269dffa0331a6c78b95Chris Lattner setFocusedStack(stackId); 773390b4cc8b45a05612349269ef08faab3e4688f06Mike Stump reply.writeNoException(); 774390b4cc8b45a05612349269ef08faab3e4688f06Mike Stump return true; 775390b4cc8b45a05612349269ef08faab3e4688f06Mike Stump } 776b2ec9d6fede9cccc170a202de7bf7f523dea8be4Chris Lattner 777c1fcb7762673be706b0a40477d5e93411e918f93Anders Carlsson case GET_TASK_FOR_ACTIVITY_TRANSACTION: { 778f4021e7d5228a2be5a380269dffa0331a6c78b95Chris Lattner data.enforceInterface(IActivityManager.descriptor); 7791eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump IBinder token = data.readStrongBinder(); 780f4021e7d5228a2be5a380269dffa0331a6c78b95Chris Lattner boolean onlyRoot = data.readInt() != 0; 781f4021e7d5228a2be5a380269dffa0331a6c78b95Chris Lattner int res = token != null 7821eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump ? getTaskForActivity(token, onlyRoot) : -1; 7831e0a39012467b4f409142c32148036a9ee05e1d7Chris Lattner reply.writeNoException(); 784dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor reply.writeInt(res); 785dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor return true; 786dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor } 787dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor 788dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor case GET_CONTENT_PROVIDER_TRANSACTION: { 7891eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump data.enforceInterface(IActivityManager.descriptor); 7908ef7b203332b0c8d65876a1f5e6d1db4e6f40e4bRichard Smith IBinder b = data.readStrongBinder(); 7911eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump IApplicationThread app = ApplicationThreadNative.asInterface(b); 79280ad52f327b532bded5c5b0ee38779d841c6cd35Richard Smith String name = data.readString(); 7938ef7b203332b0c8d65876a1f5e6d1db4e6f40e4bRichard Smith int userId = data.readInt(); 7948ef7b203332b0c8d65876a1f5e6d1db4e6f40e4bRichard Smith boolean stable = data.readInt() != 0; 7958ef7b203332b0c8d65876a1f5e6d1db4e6f40e4bRichard Smith ContentProviderHolder cph = getContentProvider(app, name, userId, stable); 7968ef7b203332b0c8d65876a1f5e6d1db4e6f40e4bRichard Smith reply.writeNoException(); 7978ef7b203332b0c8d65876a1f5e6d1db4e6f40e4bRichard Smith if (cph != null) { 7988ef7b203332b0c8d65876a1f5e6d1db4e6f40e4bRichard Smith reply.writeInt(1); 7998ef7b203332b0c8d65876a1f5e6d1db4e6f40e4bRichard Smith cph.writeToParcel(reply, 0); 8008ef7b203332b0c8d65876a1f5e6d1db4e6f40e4bRichard Smith } else { 801ef8225444452a1486bd721f3285301fe84643b00Stephen Hines reply.writeInt(0); 8028ef7b203332b0c8d65876a1f5e6d1db4e6f40e4bRichard Smith } 8038ef7b203332b0c8d65876a1f5e6d1db4e6f40e4bRichard Smith return true; 8048ef7b203332b0c8d65876a1f5e6d1db4e6f40e4bRichard Smith } 805ad48a500596d7d678b99c7f94326cfa856c3b49fFariborz Jahanian 8068ef7b203332b0c8d65876a1f5e6d1db4e6f40e4bRichard Smith case GET_CONTENT_PROVIDER_EXTERNAL_TRANSACTION: { 8078ef7b203332b0c8d65876a1f5e6d1db4e6f40e4bRichard Smith data.enforceInterface(IActivityManager.descriptor); 8088ef7b203332b0c8d65876a1f5e6d1db4e6f40e4bRichard Smith String name = data.readString(); 809ef8225444452a1486bd721f3285301fe84643b00Stephen Hines int userId = data.readInt(); 810ef8225444452a1486bd721f3285301fe84643b00Stephen Hines IBinder token = data.readStrongBinder(); 8118ef7b203332b0c8d65876a1f5e6d1db4e6f40e4bRichard Smith ContentProviderHolder cph = getContentProviderExternal(name, userId, token); 8128ef7b203332b0c8d65876a1f5e6d1db4e6f40e4bRichard Smith reply.writeNoException(); 8138ef7b203332b0c8d65876a1f5e6d1db4e6f40e4bRichard Smith if (cph != null) { 8148ef7b203332b0c8d65876a1f5e6d1db4e6f40e4bRichard Smith reply.writeInt(1); 8158ef7b203332b0c8d65876a1f5e6d1db4e6f40e4bRichard Smith cph.writeToParcel(reply, 0); 8168ef7b203332b0c8d65876a1f5e6d1db4e6f40e4bRichard Smith } else { 8178ef7b203332b0c8d65876a1f5e6d1db4e6f40e4bRichard Smith reply.writeInt(0); 8188ef7b203332b0c8d65876a1f5e6d1db4e6f40e4bRichard Smith } 819f4021e7d5228a2be5a380269dffa0331a6c78b95Chris Lattner return true; 82028164ab2ac1deea68cdb989f941728bf1860ce41Gabor Greif } 821f4021e7d5228a2be5a380269dffa0331a6c78b95Chris Lattner 8226c36be5b383875b490684bcf439d6d427298c1afChris Lattner case PUBLISH_CONTENT_PROVIDERS_TRANSACTION: { 8231e0a39012467b4f409142c32148036a9ee05e1d7Chris Lattner data.enforceInterface(IActivityManager.descriptor); 8241eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump IBinder b = data.readStrongBinder(); 825b2ec9d6fede9cccc170a202de7bf7f523dea8be4Chris Lattner IApplicationThread app = ApplicationThreadNative.asInterface(b); 826dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor ArrayList<ContentProviderHolder> providers = 8271eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump data.createTypedArrayList(ContentProviderHolder.CREATOR); 828dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor publishContentProviders(app, providers); 829dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor reply.writeNoException(); 830dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor return true; 831dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor } 832f4021e7d5228a2be5a380269dffa0331a6c78b95Chris Lattner 8331eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump case REF_CONTENT_PROVIDER_TRANSACTION: { 834b2ec9d6fede9cccc170a202de7bf7f523dea8be4Chris Lattner data.enforceInterface(IActivityManager.descriptor); 835f4021e7d5228a2be5a380269dffa0331a6c78b95Chris Lattner IBinder b = data.readStrongBinder(); 836f4021e7d5228a2be5a380269dffa0331a6c78b95Chris Lattner int stable = data.readInt(); 837b2ec9d6fede9cccc170a202de7bf7f523dea8be4Chris Lattner int unstable = data.readInt(); 838dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor boolean res = refContentProvider(b, stable, unstable); 8390fb97083cc0f8a82e404e22991ae80d2216e71d5John McCall reply.writeNoException(); 8400fb97083cc0f8a82e404e22991ae80d2216e71d5John McCall reply.writeInt(res ? 1 : 0); 8410fb97083cc0f8a82e404e22991ae80d2216e71d5John McCall return true; 8420fb97083cc0f8a82e404e22991ae80d2216e71d5John McCall } 8430fb97083cc0f8a82e404e22991ae80d2216e71d5John McCall 84451f4708c00110940ca3f337961915f2ca1668375Richard Smith case UNSTABLE_PROVIDER_DIED_TRANSACTION: { 84580d4b55db94db2172a04617d1a80feca6bbcea5cRichard Smith data.enforceInterface(IActivityManager.descriptor); 84680d4b55db94db2172a04617d1a80feca6bbcea5cRichard Smith IBinder b = data.readStrongBinder(); 84780d4b55db94db2172a04617d1a80feca6bbcea5cRichard Smith unstableProviderDied(b); 84880d4b55db94db2172a04617d1a80feca6bbcea5cRichard Smith reply.writeNoException(); 84980d4b55db94db2172a04617d1a80feca6bbcea5cRichard Smith return true; 8500fb97083cc0f8a82e404e22991ae80d2216e71d5John McCall } 85180d4b55db94db2172a04617d1a80feca6bbcea5cRichard Smith 8520fb97083cc0f8a82e404e22991ae80d2216e71d5John McCall case APP_NOT_RESPONDING_VIA_PROVIDER_TRANSACTION: { 853dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor data.enforceInterface(IActivityManager.descriptor); 854dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor IBinder b = data.readStrongBinder(); 855dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor appNotRespondingViaProvider(b); 856dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor reply.writeNoException(); 8570fb97083cc0f8a82e404e22991ae80d2216e71d5John McCall return true; 8580fb97083cc0f8a82e404e22991ae80d2216e71d5John McCall } 8590fb97083cc0f8a82e404e22991ae80d2216e71d5John McCall 8600fb97083cc0f8a82e404e22991ae80d2216e71d5John McCall case REMOVE_CONTENT_PROVIDER_TRANSACTION: { 8610fb97083cc0f8a82e404e22991ae80d2216e71d5John McCall data.enforceInterface(IActivityManager.descriptor); 8620fb97083cc0f8a82e404e22991ae80d2216e71d5John McCall IBinder b = data.readStrongBinder(); 863dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor boolean stable = data.readInt() != 0; 8643940ce83438e2332ba541f4e65e700fbefe0c7a8Douglas Gregor removeContentProvider(b, stable); 8653940ce83438e2332ba541f4e65e700fbefe0c7a8Douglas Gregor reply.writeNoException(); 8663940ce83438e2332ba541f4e65e700fbefe0c7a8Douglas Gregor return true; 8673940ce83438e2332ba541f4e65e700fbefe0c7a8Douglas Gregor } 8683940ce83438e2332ba541f4e65e700fbefe0c7a8Douglas Gregor 8693940ce83438e2332ba541f4e65e700fbefe0c7a8Douglas Gregor case REMOVE_CONTENT_PROVIDER_EXTERNAL_TRANSACTION: { 8703940ce83438e2332ba541f4e65e700fbefe0c7a8Douglas Gregor data.enforceInterface(IActivityManager.descriptor); 8713940ce83438e2332ba541f4e65e700fbefe0c7a8Douglas Gregor String name = data.readString(); 8723940ce83438e2332ba541f4e65e700fbefe0c7a8Douglas Gregor IBinder token = data.readStrongBinder(); 8733940ce83438e2332ba541f4e65e700fbefe0c7a8Douglas Gregor removeContentProviderExternal(name, token); 874cfa88f893915ceb8ae4ce2f17c46c24a4d67502fDmitri Gribenko reply.writeNoException(); 87550de5e3247a20e0e548dc47022a011250e6e4e8fDouglas Gregor return true; 8763940ce83438e2332ba541f4e65e700fbefe0c7a8Douglas Gregor } 8773940ce83438e2332ba541f4e65e700fbefe0c7a8Douglas Gregor 8783940ce83438e2332ba541f4e65e700fbefe0c7a8Douglas Gregor case GET_RUNNING_SERVICE_CONTROL_PANEL_TRANSACTION: { 8793940ce83438e2332ba541f4e65e700fbefe0c7a8Douglas Gregor data.enforceInterface(IActivityManager.descriptor); 88050de5e3247a20e0e548dc47022a011250e6e4e8fDouglas Gregor ComponentName comp = ComponentName.CREATOR.createFromParcel(data); 8813940ce83438e2332ba541f4e65e700fbefe0c7a8Douglas Gregor PendingIntent pi = getRunningServiceControlPanel(comp); 8823940ce83438e2332ba541f4e65e700fbefe0c7a8Douglas Gregor reply.writeNoException(); 8833940ce83438e2332ba541f4e65e700fbefe0c7a8Douglas Gregor PendingIntent.writePendingIntentOrNullToParcel(pi, reply); 88450de5e3247a20e0e548dc47022a011250e6e4e8fDouglas Gregor return true; 88550de5e3247a20e0e548dc47022a011250e6e4e8fDouglas Gregor } 8863940ce83438e2332ba541f4e65e700fbefe0c7a8Douglas Gregor 8873940ce83438e2332ba541f4e65e700fbefe0c7a8Douglas Gregor case START_SERVICE_TRANSACTION: { 8880fb97083cc0f8a82e404e22991ae80d2216e71d5John McCall data.enforceInterface(IActivityManager.descriptor); 889dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor IBinder b = data.readStrongBinder(); 890390b4cc8b45a05612349269ef08faab3e4688f06Mike Stump IApplicationThread app = ApplicationThreadNative.asInterface(b); 891390b4cc8b45a05612349269ef08faab3e4688f06Mike Stump Intent service = Intent.CREATOR.createFromParcel(data); 892dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor String resolvedType = data.readString(); 893dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor int userId = data.readInt(); 8946efc4d3659632ddcea4a58cb62e9ee54ca4a373eChris Lattner ComponentName cn = startService(app, service, resolvedType, userId); 895b2ec9d6fede9cccc170a202de7bf7f523dea8be4Chris Lattner reply.writeNoException(); 8961eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump ComponentName.writeToParcel(cn, reply); 897dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor return true; 898dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor } 899dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor 900dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor case STOP_SERVICE_TRANSACTION: { 901dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor data.enforceInterface(IActivityManager.descriptor); 902dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor IBinder b = data.readStrongBinder(); 9031eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump IApplicationThread app = ApplicationThreadNative.asInterface(b); 904dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor Intent service = Intent.CREATOR.createFromParcel(data); 905dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor String resolvedType = data.readString(); 906dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor int userId = data.readInt(); 9070fb97083cc0f8a82e404e22991ae80d2216e71d5John McCall int res = stopService(app, service, resolvedType, userId); 908dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor reply.writeNoException(); 909dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor reply.writeInt(res); 9108ef7b203332b0c8d65876a1f5e6d1db4e6f40e4bRichard Smith return true; 9118ef7b203332b0c8d65876a1f5e6d1db4e6f40e4bRichard Smith } 91280ad52f327b532bded5c5b0ee38779d841c6cd35Richard Smith 9138ef7b203332b0c8d65876a1f5e6d1db4e6f40e4bRichard Smith case STOP_SERVICE_TOKEN_TRANSACTION: { 9148ef7b203332b0c8d65876a1f5e6d1db4e6f40e4bRichard Smith data.enforceInterface(IActivityManager.descriptor); 9158ef7b203332b0c8d65876a1f5e6d1db4e6f40e4bRichard Smith ComponentName className = ComponentName.readFromParcel(data); 9168ef7b203332b0c8d65876a1f5e6d1db4e6f40e4bRichard Smith IBinder token = data.readStrongBinder(); 9178ef7b203332b0c8d65876a1f5e6d1db4e6f40e4bRichard Smith int startId = data.readInt(); 9188ef7b203332b0c8d65876a1f5e6d1db4e6f40e4bRichard Smith boolean res = stopServiceToken(className, token, startId); 9198ef7b203332b0c8d65876a1f5e6d1db4e6f40e4bRichard Smith reply.writeNoException(); 9208ef7b203332b0c8d65876a1f5e6d1db4e6f40e4bRichard Smith reply.writeInt(res ? 1 : 0); 9218ef7b203332b0c8d65876a1f5e6d1db4e6f40e4bRichard Smith return true; 922ef8225444452a1486bd721f3285301fe84643b00Stephen Hines } 9238ef7b203332b0c8d65876a1f5e6d1db4e6f40e4bRichard Smith 9248ef7b203332b0c8d65876a1f5e6d1db4e6f40e4bRichard Smith case SET_SERVICE_FOREGROUND_TRANSACTION: { 9258ef7b203332b0c8d65876a1f5e6d1db4e6f40e4bRichard Smith data.enforceInterface(IActivityManager.descriptor); 9268ef7b203332b0c8d65876a1f5e6d1db4e6f40e4bRichard Smith ComponentName className = ComponentName.readFromParcel(data); 9278ef7b203332b0c8d65876a1f5e6d1db4e6f40e4bRichard Smith IBinder token = data.readStrongBinder(); 928ef8225444452a1486bd721f3285301fe84643b00Stephen Hines int id = data.readInt(); 929ef8225444452a1486bd721f3285301fe84643b00Stephen Hines Notification notification = null; 9308ef7b203332b0c8d65876a1f5e6d1db4e6f40e4bRichard Smith if (data.readInt() != 0) { 9311eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump notification = Notification.CREATOR.createFromParcel(data); 932dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor } 933dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor boolean removeNotification = data.readInt() != 0; 93428164ab2ac1deea68cdb989f941728bf1860ce41Gabor Greif setServiceForeground(className, token, id, notification, removeNotification); 935dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor reply.writeNoException(); 9361eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump return true; 937dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor } 9381eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump 939dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor case BIND_SERVICE_TRANSACTION: { 9400fb97083cc0f8a82e404e22991ae80d2216e71d5John McCall data.enforceInterface(IActivityManager.descriptor); 941dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor IBinder b = data.readStrongBinder(); 942dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor IApplicationThread app = ApplicationThreadNative.asInterface(b); 94328164ab2ac1deea68cdb989f941728bf1860ce41Gabor Greif IBinder token = data.readStrongBinder(); 944dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor Intent service = Intent.CREATOR.createFromParcel(data); 945dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor String resolvedType = data.readString(); 946dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor b = data.readStrongBinder(); 947dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor int fl = data.readInt(); 9480fb97083cc0f8a82e404e22991ae80d2216e71d5John McCall int userId = data.readInt(); 9490fb97083cc0f8a82e404e22991ae80d2216e71d5John McCall IServiceConnection conn = IServiceConnection.Stub.asInterface(b); 9500fb97083cc0f8a82e404e22991ae80d2216e71d5John McCall int res = bindService(app, token, service, resolvedType, conn, fl, userId); 9510fb97083cc0f8a82e404e22991ae80d2216e71d5John McCall reply.writeNoException(); 9520fb97083cc0f8a82e404e22991ae80d2216e71d5John McCall reply.writeInt(res); 9530fb97083cc0f8a82e404e22991ae80d2216e71d5John McCall return true; 954dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor } 9550471f5bc8191e39cdb61fabcaf1870e2af2d42e8Chris Lattner 9561eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump case UNBIND_SERVICE_TRANSACTION: { 957dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor data.enforceInterface(IActivityManager.descriptor); 958dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor IBinder b = data.readStrongBinder(); 959dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor IServiceConnection conn = IServiceConnection.Stub.asInterface(b); 960dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor boolean res = unbindService(conn); 961dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor reply.writeNoException(); 962dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor reply.writeInt(res ? 1 : 0); 963dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor return true; 9641eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump } 965dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor 966dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor case PUBLISH_SERVICE_TRANSACTION: { 9676bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines data.enforceInterface(IActivityManager.descriptor); 968dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor IBinder token = data.readStrongBinder(); 9691eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump Intent intent = Intent.CREATOR.createFromParcel(data); 970dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor IBinder service = data.readStrongBinder(); 971dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor publishService(token, intent, service); 972dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor reply.writeNoException(); 973dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor return true; 974dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor } 975dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor 976dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor case UNBIND_FINISHED_TRANSACTION: { 977dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor data.enforceInterface(IActivityManager.descriptor); 978dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor IBinder token = data.readStrongBinder(); 9791eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump Intent intent = Intent.CREATOR.createFromParcel(data); 980dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor boolean doRebind = data.readInt() != 0; 981dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor unbindFinished(token, intent, doRebind); 982dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor reply.writeNoException(); 983dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor return true; 984dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor } 985dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor 9861eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump case SERVICE_DONE_EXECUTING_TRANSACTION: { 987dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor data.enforceInterface(IActivityManager.descriptor); 988dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor IBinder token = data.readStrongBinder(); 989dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor int type = data.readInt(); 990dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor int startId = data.readInt(); 991dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor int res = data.readInt(); 992dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor serviceDoneExecuting(token, type, startId, res); 9931eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump reply.writeNoException(); 994dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor return true; 995dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor } 996dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor 997dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor case START_INSTRUMENTATION_TRANSACTION: { 9981eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump data.enforceInterface(IActivityManager.descriptor); 999dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor ComponentName className = ComponentName.readFromParcel(data); 1000390b4cc8b45a05612349269ef08faab3e4688f06Mike Stump String profileFile = data.readString(); 1001390b4cc8b45a05612349269ef08faab3e4688f06Mike Stump int fl = data.readInt(); 1002dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor Bundle arguments = data.readBundle(); 1003dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor IBinder b = data.readStrongBinder(); 10040471f5bc8191e39cdb61fabcaf1870e2af2d42e8Chris Lattner IInstrumentationWatcher w = IInstrumentationWatcher.Stub.asInterface(b); 1005b2ec9d6fede9cccc170a202de7bf7f523dea8be4Chris Lattner b = data.readStrongBinder(); 1006ba915af51ced751c46e7c2b9c6f3b59d2e668825Douglas Gregor IUiAutomationConnection c = IUiAutomationConnection.Stub.asInterface(b); 10070fb97083cc0f8a82e404e22991ae80d2216e71d5John McCall int userId = data.readInt(); 10080fb97083cc0f8a82e404e22991ae80d2216e71d5John McCall String abiOverride = data.readString(); 10090fb97083cc0f8a82e404e22991ae80d2216e71d5John McCall boolean res = startInstrumentation(className, profileFile, fl, arguments, w, c, userId, 10100fb97083cc0f8a82e404e22991ae80d2216e71d5John McCall abiOverride); 10110fb97083cc0f8a82e404e22991ae80d2216e71d5John McCall reply.writeNoException(); 10120fb97083cc0f8a82e404e22991ae80d2216e71d5John McCall reply.writeInt(res ? 1 : 0); 10130fb97083cc0f8a82e404e22991ae80d2216e71d5John McCall return true; 10140fb97083cc0f8a82e404e22991ae80d2216e71d5John McCall } 10150fb97083cc0f8a82e404e22991ae80d2216e71d5John McCall 10160fb97083cc0f8a82e404e22991ae80d2216e71d5John McCall 1017559fb554602bedb57dbbf3cc14ac8a38264b4547Ted Kremenek case FINISH_INSTRUMENTATION_TRANSACTION: { 1018559fb554602bedb57dbbf3cc14ac8a38264b4547Ted Kremenek data.enforceInterface(IActivityManager.descriptor); 1019559fb554602bedb57dbbf3cc14ac8a38264b4547Ted Kremenek IBinder b = data.readStrongBinder(); 10200fb97083cc0f8a82e404e22991ae80d2216e71d5John McCall IApplicationThread app = ApplicationThreadNative.asInterface(b); 1021ce78461303f45fecb3460d1c49c9b71f27ad19c3Chris Lattner int resultCode = data.readInt(); 1022559fb554602bedb57dbbf3cc14ac8a38264b4547Ted Kremenek Bundle results = data.readBundle(); 1023ba915af51ced751c46e7c2b9c6f3b59d2e668825Douglas Gregor finishInstrumentation(app, resultCode, results); 1024559fb554602bedb57dbbf3cc14ac8a38264b4547Ted Kremenek reply.writeNoException(); 1025ba915af51ced751c46e7c2b9c6f3b59d2e668825Douglas Gregor return true; 10265f9e272e632e951b1efe824cd16acb4d96077930Chris Lattner } 102758f14c012e5d739b09532bb12645dc161f88cfcfFrancois Pichet 1028ba915af51ced751c46e7c2b9c6f3b59d2e668825Douglas Gregor case GET_CONFIGURATION_TRANSACTION: { 1029ba915af51ced751c46e7c2b9c6f3b59d2e668825Douglas Gregor data.enforceInterface(IActivityManager.descriptor); 10300fb97083cc0f8a82e404e22991ae80d2216e71d5John McCall Configuration config = getConfiguration(); 10310fb97083cc0f8a82e404e22991ae80d2216e71d5John McCall reply.writeNoException(); 1032651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines config.writeToParcel(reply, 0); 103328164ab2ac1deea68cdb989f941728bf1860ce41Gabor Greif return true; 103428164ab2ac1deea68cdb989f941728bf1860ce41Gabor Greif } 1035651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines 1036ba915af51ced751c46e7c2b9c6f3b59d2e668825Douglas Gregor case UPDATE_CONFIGURATION_TRANSACTION: { 1037ba915af51ced751c46e7c2b9c6f3b59d2e668825Douglas Gregor data.enforceInterface(IActivityManager.descriptor); 10380fb97083cc0f8a82e404e22991ae80d2216e71d5John McCall Configuration config = Configuration.CREATOR.createFromParcel(data); 10390fb97083cc0f8a82e404e22991ae80d2216e71d5John McCall updateConfiguration(config); 1040559fb554602bedb57dbbf3cc14ac8a38264b4547Ted Kremenek reply.writeNoException(); 1041559fb554602bedb57dbbf3cc14ac8a38264b4547Ted Kremenek return true; 10429366750a5a97c8aeae1df4898ea849b087865195David Blaikie } 10439366750a5a97c8aeae1df4898ea849b087865195David Blaikie 10449366750a5a97c8aeae1df4898ea849b087865195David Blaikie case SET_REQUESTED_ORIENTATION_TRANSACTION: { 10459366750a5a97c8aeae1df4898ea849b087865195David Blaikie data.enforceInterface(IActivityManager.descriptor); 10469366750a5a97c8aeae1df4898ea849b087865195David Blaikie IBinder token = data.readStrongBinder(); 1047651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines int requestedOrientation = data.readInt(); 1048651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines setRequestedOrientation(token, requestedOrientation); 1049651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines reply.writeNoException(); 1050651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines return true; 1051651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines } 1052651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines 10539366750a5a97c8aeae1df4898ea849b087865195David Blaikie case GET_REQUESTED_ORIENTATION_TRANSACTION: { 10549366750a5a97c8aeae1df4898ea849b087865195David Blaikie data.enforceInterface(IActivityManager.descriptor); 10559366750a5a97c8aeae1df4898ea849b087865195David Blaikie IBinder token = data.readStrongBinder(); 10569366750a5a97c8aeae1df4898ea849b087865195David Blaikie int req = getRequestedOrientation(token); 10579366750a5a97c8aeae1df4898ea849b087865195David Blaikie reply.writeNoException(); 10589366750a5a97c8aeae1df4898ea849b087865195David Blaikie reply.writeInt(req); 10599366750a5a97c8aeae1df4898ea849b087865195David Blaikie return true; 10609366750a5a97c8aeae1df4898ea849b087865195David Blaikie } 10619366750a5a97c8aeae1df4898ea849b087865195David Blaikie 1062651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines case GET_ACTIVITY_CLASS_FOR_TOKEN_TRANSACTION: { 1063651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines data.enforceInterface(IActivityManager.descriptor); 1064651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines IBinder token = data.readStrongBinder(); 1065651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines ComponentName cn = getActivityClassForToken(token); 106647bb27f16882e4f5ababdd0cf6642bb904a9aaf8Ted Kremenek reply.writeNoException(); 1067e0ba9d1beeba01a96808c2fc61f9ca89acec313bTed Kremenek ComponentName.writeToParcel(cn, reply); 10681093f4928a4263d08b44d96e468a42515d8a28f3Chad Rosier return true; 10699366750a5a97c8aeae1df4898ea849b087865195David Blaikie } 10709366750a5a97c8aeae1df4898ea849b087865195David Blaikie 10719366750a5a97c8aeae1df4898ea849b087865195David Blaikie case GET_PACKAGE_FOR_TOKEN_TRANSACTION: { 10729366750a5a97c8aeae1df4898ea849b087865195David Blaikie data.enforceInterface(IActivityManager.descriptor); 1073651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines IBinder token = data.readStrongBinder(); 1074651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines reply.writeNoException(); 1075651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines reply.writeString(getPackageForToken(token)); 1076651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines return true; 1077651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines } 1078651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines 1079ba915af51ced751c46e7c2b9c6f3b59d2e668825Douglas Gregor case GET_INTENT_SENDER_TRANSACTION: { 1080dfbb02a16ac8c764b5ba1742450513d6212d2f9fNAKAMURA Takumi data.enforceInterface(IActivityManager.descriptor); 1081559fb554602bedb57dbbf3cc14ac8a38264b4547Ted Kremenek int type = data.readInt(); 1082ba915af51ced751c46e7c2b9c6f3b59d2e668825Douglas Gregor String packageName = data.readString(); 1083ba915af51ced751c46e7c2b9c6f3b59d2e668825Douglas Gregor IBinder token = data.readStrongBinder(); 1084559fb554602bedb57dbbf3cc14ac8a38264b4547Ted Kremenek String resultWho = data.readString(); 1085559fb554602bedb57dbbf3cc14ac8a38264b4547Ted Kremenek int requestCode = data.readInt(); 10865f9e272e632e951b1efe824cd16acb4d96077930Chris Lattner Intent[] requestIntents; 1087dfbb02a16ac8c764b5ba1742450513d6212d2f9fNAKAMURA Takumi String[] requestResolvedTypes; 10889366750a5a97c8aeae1df4898ea849b087865195David Blaikie if (data.readInt() != 0) { 1089ce78461303f45fecb3460d1c49c9b71f27ad19c3Chris Lattner requestIntents = data.createTypedArray(Intent.CREATOR); 1090ba915af51ced751c46e7c2b9c6f3b59d2e668825Douglas Gregor requestResolvedTypes = data.createStringArray(); 1091ba915af51ced751c46e7c2b9c6f3b59d2e668825Douglas Gregor } else { 1092dfbb02a16ac8c764b5ba1742450513d6212d2f9fNAKAMURA Takumi requestIntents = null; 1093ba915af51ced751c46e7c2b9c6f3b59d2e668825Douglas Gregor requestResolvedTypes = null; 1094ba915af51ced751c46e7c2b9c6f3b59d2e668825Douglas Gregor } 1095ba915af51ced751c46e7c2b9c6f3b59d2e668825Douglas Gregor int fl = data.readInt(); 1096559fb554602bedb57dbbf3cc14ac8a38264b4547Ted Kremenek Bundle options = data.readInt() != 0 1097ba915af51ced751c46e7c2b9c6f3b59d2e668825Douglas Gregor ? Bundle.CREATOR.createFromParcel(data) : null; 1098a6b8b2c09610b8bc4330e948ece8b940c2386406Richard Smith int userId = data.readInt(); 1099a6b8b2c09610b8bc4330e948ece8b940c2386406Richard Smith IIntentSender res = getIntentSender(type, packageName, token, 110028164ab2ac1deea68cdb989f941728bf1860ce41Gabor Greif resultWho, requestCode, requestIntents, 1101ba915af51ced751c46e7c2b9c6f3b59d2e668825Douglas Gregor requestResolvedTypes, fl, options, userId); 1102ba915af51ced751c46e7c2b9c6f3b59d2e668825Douglas Gregor reply.writeNoException(); 1103ba915af51ced751c46e7c2b9c6f3b59d2e668825Douglas Gregor reply.writeStrongBinder(res != null ? res.asBinder() : null); 1104ba915af51ced751c46e7c2b9c6f3b59d2e668825Douglas Gregor return true; 1105559fb554602bedb57dbbf3cc14ac8a38264b4547Ted Kremenek } 110647bb27f16882e4f5ababdd0cf6642bb904a9aaf8Ted Kremenek 110731ceb61172bca7ebc3fb90e9125864c7a29c55c0David Blaikie case CANCEL_INTENT_SENDER_TRANSACTION: { 110847bb27f16882e4f5ababdd0cf6642bb904a9aaf8Ted Kremenek data.enforceInterface(IActivityManager.descriptor); 1109ba915af51ced751c46e7c2b9c6f3b59d2e668825Douglas Gregor IIntentSender r = IIntentSender.Stub.asInterface( 1110dfbb02a16ac8c764b5ba1742450513d6212d2f9fNAKAMURA Takumi data.readStrongBinder()); 1111585d7795c2dddaa510b3bb1b3b18633bfcfdf643David Blaikie cancelIntentSender(r); 1112585d7795c2dddaa510b3bb1b3b18633bfcfdf643David Blaikie reply.writeNoException(); 111331ceb61172bca7ebc3fb90e9125864c7a29c55c0David Blaikie return true; 1114ce78461303f45fecb3460d1c49c9b71f27ad19c3Chris Lattner } 1115ce78461303f45fecb3460d1c49c9b71f27ad19c3Chris Lattner 1116ce78461303f45fecb3460d1c49c9b71f27ad19c3Chris Lattner case GET_PACKAGE_FOR_INTENT_SENDER_TRANSACTION: { 1117ce78461303f45fecb3460d1c49c9b71f27ad19c3Chris Lattner data.enforceInterface(IActivityManager.descriptor); 11181093f4928a4263d08b44d96e468a42515d8a28f3Chad Rosier IIntentSender r = IIntentSender.Stub.asInterface( 1119585d7795c2dddaa510b3bb1b3b18633bfcfdf643David Blaikie data.readStrongBinder()); 1120ce78461303f45fecb3460d1c49c9b71f27ad19c3Chris Lattner String res = getPackageForIntentSender(r); 1121ce78461303f45fecb3460d1c49c9b71f27ad19c3Chris Lattner reply.writeNoException(); 1122ce78461303f45fecb3460d1c49c9b71f27ad19c3Chris Lattner reply.writeString(res); 11231093f4928a4263d08b44d96e468a42515d8a28f3Chad Rosier return true; 1124585d7795c2dddaa510b3bb1b3b18633bfcfdf643David Blaikie } 1125ce78461303f45fecb3460d1c49c9b71f27ad19c3Chris Lattner 1126ce78461303f45fecb3460d1c49c9b71f27ad19c3Chris Lattner case GET_UID_FOR_INTENT_SENDER_TRANSACTION: { 1127ce78461303f45fecb3460d1c49c9b71f27ad19c3Chris Lattner data.enforceInterface(IActivityManager.descriptor); 1128585d7795c2dddaa510b3bb1b3b18633bfcfdf643David Blaikie IIntentSender r = IIntentSender.Stub.asInterface( 1129585d7795c2dddaa510b3bb1b3b18633bfcfdf643David Blaikie data.readStrongBinder()); 1130ce78461303f45fecb3460d1c49c9b71f27ad19c3Chris Lattner int res = getUidForIntentSender(r); 1131ce78461303f45fecb3460d1c49c9b71f27ad19c3Chris Lattner reply.writeNoException(); 1132ce78461303f45fecb3460d1c49c9b71f27ad19c3Chris Lattner reply.writeInt(res); 1133585d7795c2dddaa510b3bb1b3b18633bfcfdf643David Blaikie return true; 1134585d7795c2dddaa510b3bb1b3b18633bfcfdf643David Blaikie } 1135ce78461303f45fecb3460d1c49c9b71f27ad19c3Chris Lattner 1136ce78461303f45fecb3460d1c49c9b71f27ad19c3Chris Lattner case HANDLE_INCOMING_USER_TRANSACTION: { 1137ce78461303f45fecb3460d1c49c9b71f27ad19c3Chris Lattner data.enforceInterface(IActivityManager.descriptor); 1138ce78461303f45fecb3460d1c49c9b71f27ad19c3Chris Lattner int callingPid = data.readInt(); 1139559fb554602bedb57dbbf3cc14ac8a38264b4547Ted Kremenek int callingUid = data.readInt(); 1140559fb554602bedb57dbbf3cc14ac8a38264b4547Ted Kremenek int userId = data.readInt(); 114147bb27f16882e4f5ababdd0cf6642bb904a9aaf8Ted Kremenek boolean allowAll = data.readInt() != 0 ; 1142ba915af51ced751c46e7c2b9c6f3b59d2e668825Douglas Gregor boolean requireFull = data.readInt() != 0; 1143b2ec9d6fede9cccc170a202de7bf7f523dea8be4Chris Lattner String name = data.readString(); 1144dbb26db1d426fb6caaaf1b4fa47b46d1947c12c9Douglas Gregor String callerPackage = data.readString(); 11456bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines int res = handleIncomingUser(callingPid, callingUid, userId, allowAll, 11466bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines requireFull, name, callerPackage); 11476bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines reply.writeNoException(); 1148625bb569df0c34feec0d52c0ec5215f21ef2e054Dmitri Gribenko reply.writeInt(res); 1149390b4cc8b45a05612349269ef08faab3e4688f06Mike Stump return true; 1150390b4cc8b45a05612349269ef08faab3e4688f06Mike Stump } 1151b2ec9d6fede9cccc170a202de7bf7f523dea8be4Chris Lattner 1152de307473448fb3cebcb4c10090728300b53bca03Sebastian Redl case SET_PROCESS_LIMIT_TRANSACTION: { 1153de307473448fb3cebcb4c10090728300b53bca03Sebastian Redl data.enforceInterface(IActivityManager.descriptor); 1154ef8225444452a1486bd721f3285301fe84643b00Stephen Hines int max = data.readInt(); 11555f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer setProcessLimit(max); 11565f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer reply.writeNoException(); 1157379b28183a7dcb715c3f3eb2da4b0157d6d8ffbeFariborz Jahanian return true; 1158379b28183a7dcb715c3f3eb2da4b0157d6d8ffbeFariborz Jahanian } 1159379b28183a7dcb715c3f3eb2da4b0157d6d8ffbeFariborz Jahanian 1160ef8225444452a1486bd721f3285301fe84643b00Stephen Hines case GET_PROCESS_LIMIT_TRANSACTION: { 1161379b28183a7dcb715c3f3eb2da4b0157d6d8ffbeFariborz Jahanian data.enforceInterface(IActivityManager.descriptor); 11621093f4928a4263d08b44d96e468a42515d8a28f3Chad Rosier int limit = getProcessLimit(); 1163379b28183a7dcb715c3f3eb2da4b0157d6d8ffbeFariborz Jahanian reply.writeNoException(); 1164651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines reply.writeInt(limit); 1165379b28183a7dcb715c3f3eb2da4b0157d6d8ffbeFariborz Jahanian return true; 1166379b28183a7dcb715c3f3eb2da4b0157d6d8ffbeFariborz Jahanian } 1167379b28183a7dcb715c3f3eb2da4b0157d6d8ffbeFariborz Jahanian 1168379b28183a7dcb715c3f3eb2da4b0157d6d8ffbeFariborz Jahanian case SET_PROCESS_FOREGROUND_TRANSACTION: { 116948a1e81715bf9c37a4168d83f4218e6517e29541Joey Gouly data.enforceInterface(IActivityManager.descriptor); 1170379b28183a7dcb715c3f3eb2da4b0157d6d8ffbeFariborz Jahanian IBinder token = data.readStrongBinder(); 1171379b28183a7dcb715c3f3eb2da4b0157d6d8ffbeFariborz Jahanian int pid = data.readInt(); 1172379b28183a7dcb715c3f3eb2da4b0157d6d8ffbeFariborz Jahanian boolean isForeground = data.readInt() != 0; 117348a1e81715bf9c37a4168d83f4218e6517e29541Joey Gouly setProcessForeground(token, pid, isForeground); 1174379b28183a7dcb715c3f3eb2da4b0157d6d8ffbeFariborz Jahanian reply.writeNoException(); 117548a1e81715bf9c37a4168d83f4218e6517e29541Joey Gouly return true; 117648a1e81715bf9c37a4168d83f4218e6517e29541Joey Gouly } 1177379b28183a7dcb715c3f3eb2da4b0157d6d8ffbeFariborz Jahanian 11781093f4928a4263d08b44d96e468a42515d8a28f3Chad Rosier case CHECK_PERMISSION_TRANSACTION: { 1179379b28183a7dcb715c3f3eb2da4b0157d6d8ffbeFariborz Jahanian data.enforceInterface(IActivityManager.descriptor); 1180379b28183a7dcb715c3f3eb2da4b0157d6d8ffbeFariborz Jahanian String perm = data.readString(); 1181651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines int pid = data.readInt(); 1182379b28183a7dcb715c3f3eb2da4b0157d6d8ffbeFariborz Jahanian int uid = data.readInt(); 118348a1e81715bf9c37a4168d83f4218e6517e29541Joey Gouly int res = checkPermission(perm, pid, uid); 1184651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines reply.writeNoException(); 1185379b28183a7dcb715c3f3eb2da4b0157d6d8ffbeFariborz Jahanian reply.writeInt(res); 1186379b28183a7dcb715c3f3eb2da4b0157d6d8ffbeFariborz Jahanian return true; 1187379b28183a7dcb715c3f3eb2da4b0157d6d8ffbeFariborz Jahanian } 1188379b28183a7dcb715c3f3eb2da4b0157d6d8ffbeFariborz Jahanian 1189379b28183a7dcb715c3f3eb2da4b0157d6d8ffbeFariborz Jahanian case CHECK_URI_PERMISSION_TRANSACTION: { 119048a1e81715bf9c37a4168d83f4218e6517e29541Joey Gouly data.enforceInterface(IActivityManager.descriptor); 11911093f4928a4263d08b44d96e468a42515d8a28f3Chad Rosier Uri uri = Uri.CREATOR.createFromParcel(data); 119248a1e81715bf9c37a4168d83f4218e6517e29541Joey Gouly int pid = data.readInt(); 1193379b28183a7dcb715c3f3eb2da4b0157d6d8ffbeFariborz Jahanian int uid = data.readInt(); 1194379b28183a7dcb715c3f3eb2da4b0157d6d8ffbeFariborz Jahanian int mode = data.readInt(); 1195379b28183a7dcb715c3f3eb2da4b0157d6d8ffbeFariborz Jahanian int userId = data.readInt(); 1196379b28183a7dcb715c3f3eb2da4b0157d6d8ffbeFariborz Jahanian int res = checkUriPermission(uri, pid, uid, mode, userId); 119748a1e81715bf9c37a4168d83f4218e6517e29541Joey Gouly reply.writeNoException(); 1198651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines reply.writeInt(res); 1199379b28183a7dcb715c3f3eb2da4b0157d6d8ffbeFariborz Jahanian return true; 1200379b28183a7dcb715c3f3eb2da4b0157d6d8ffbeFariborz Jahanian } 1201379b28183a7dcb715c3f3eb2da4b0157d6d8ffbeFariborz Jahanian 1202379b28183a7dcb715c3f3eb2da4b0157d6d8ffbeFariborz Jahanian case CLEAR_APP_DATA_TRANSACTION: { 1203379b28183a7dcb715c3f3eb2da4b0157d6d8ffbeFariborz Jahanian data.enforceInterface(IActivityManager.descriptor); 120460d7b3a319d84d688752be3870615ac0f111fb16John McCall String packageName = data.readString(); 1205dfbb02a16ac8c764b5ba1742450513d6212d2f9fNAKAMURA Takumi IPackageDataObserver observer = IPackageDataObserver.Stub.asInterface( 12069ae2f076ca5ab1feb3ba95629099ec2319833701John McCall data.readStrongBinder()); 120760d7b3a319d84d688752be3870615ac0f111fb16John McCall int userId = data.readInt(); 1208dfbb02a16ac8c764b5ba1742450513d6212d2f9fNAKAMURA Takumi boolean res = clearApplicationUserData(packageName, observer, userId); 12096bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines reply.writeNoException(); 1210d226f65006733ed7f709c3174f22ce33391cb58fJohn McCall reply.writeInt(res ? 1 : 0); 1211d226f65006733ed7f709c3174f22ce33391cb58fJohn McCall return true; 1212586596fd7f7a336a2847b300c80614dcf39ab6d5Douglas Gregor } 121399e9b4d172f6877e6ba5ebe75bb8238721f5e01cDouglas Gregor 121499e9b4d172f6877e6ba5ebe75bb8238721f5e01cDouglas Gregor case GRANT_URI_PERMISSION_TRANSACTION: { 12155656e14d91405417182171a705ed3e3d2d6d7aa3Douglas Gregor data.enforceInterface(IActivityManager.descriptor); 1216ef8225444452a1486bd721f3285301fe84643b00Stephen Hines IBinder b = data.readStrongBinder(); 121799e9b4d172f6877e6ba5ebe75bb8238721f5e01cDouglas Gregor IApplicationThread app = ApplicationThreadNative.asInterface(b); 121899e9b4d172f6877e6ba5ebe75bb8238721f5e01cDouglas Gregor String targetPkg = data.readString(); 1219651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines Uri uri = Uri.CREATOR.createFromParcel(data); 1220dfbb02a16ac8c764b5ba1742450513d6212d2f9fNAKAMURA Takumi int mode = data.readInt(); 12219ae2f076ca5ab1feb3ba95629099ec2319833701John McCall int userId = data.readInt(); 12221eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump grantUriPermission(app, targetPkg, uri, mode, userId); 1223625bb569df0c34feec0d52c0ec5215f21ef2e054Dmitri Gribenko reply.writeNoException(); 1224625bb569df0c34feec0d52c0ec5215f21ef2e054Dmitri Gribenko return true; 1225625bb569df0c34feec0d52c0ec5215f21ef2e054Dmitri Gribenko } 1226ef8225444452a1486bd721f3285301fe84643b00Stephen Hines 1227ef8225444452a1486bd721f3285301fe84643b00Stephen Hines case REVOKE_URI_PERMISSION_TRANSACTION: { 12285f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer data.enforceInterface(IActivityManager.descriptor); 12295f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer IBinder b = data.readStrongBinder(); 123060d7b3a319d84d688752be3870615ac0f111fb16John McCall IApplicationThread app = ApplicationThreadNative.asInterface(b); 12319ae2f076ca5ab1feb3ba95629099ec2319833701John McCall Uri uri = Uri.CREATOR.createFromParcel(data); 1232989135901c750af61ef012b6b0a0368be415bc46Chris Lattner int mode = data.readInt(); 12339ae2f076ca5ab1feb3ba95629099ec2319833701John McCall int userId = data.readInt(); 12349ae2f076ca5ab1feb3ba95629099ec2319833701John McCall revokeUriPermission(app, uri, mode, userId); 1235f05b1520d6f175acbfc3913489f4dfa842875ec4Sebastian Redl reply.writeNoException(); 1236651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines return true; 1237429bb276991ff2dbc7c5b438828b9b7737cb15ebJohn Wiegley } 1238898a7a298185c53a36e923f86fe3f938ebfea67fDmitri Gribenko 12395a881bb09928b7ade891efc680088aaad276f8d6John McCall case TAKE_PERSISTABLE_URI_PERMISSION_TRANSACTION: { 1240ef8225444452a1486bd721f3285301fe84643b00Stephen Hines data.enforceInterface(IActivityManager.descriptor); 12415f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer Uri uri = Uri.CREATOR.createFromParcel(data); 1242419563768ef4929a622d7c2b066856e82901bb91Richard Smith int mode = data.readInt(); 12439ae2f076ca5ab1feb3ba95629099ec2319833701John McCall int userId = data.readInt(); 1244586596fd7f7a336a2847b300c80614dcf39ab6d5Douglas Gregor takePersistableUriPermission(uri, mode, userId); 1245ef8225444452a1486bd721f3285301fe84643b00Stephen Hines reply.writeNoException(); 1246dfbb02a16ac8c764b5ba1742450513d6212d2f9fNAKAMURA Takumi return true; 12479ae2f076ca5ab1feb3ba95629099ec2319833701John McCall } 1248754431107b61a0523df5271c2876a73dd5a051e9Anders Carlsson 1249ef8225444452a1486bd721f3285301fe84643b00Stephen Hines case RELEASE_PERSISTABLE_URI_PERMISSION_TRANSACTION: { 12505f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer data.enforceInterface(IActivityManager.descriptor); 12515f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer Uri uri = Uri.CREATOR.createFromParcel(data); 1252694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu int mode = data.readInt(); 1253694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu int userId = data.readInt(); 1254694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu releasePersistableUriPermission(uri, mode, userId); 1255694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu reply.writeNoException(); 1256694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu return true; 1257694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu } 1258ad5b69da4774a4eec09af96af23a2fe793fd00f8Craig Topper 1259694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu case GET_PERSISTED_URI_PERMISSIONS_TRANSACTION: { 1260923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu data.enforceInterface(IActivityManager.descriptor); 1261923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu final String packageName = data.readString(); 1262694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu final boolean incoming = data.readInt() != 0; 1263923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu final ParceledListSlice<UriPermission> perms = getPersistedUriPermissions( 1264ad5b69da4774a4eec09af96af23a2fe793fd00f8Craig Topper packageName, incoming); 1265923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu reply.writeNoException(); 1266923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu perms.writeToParcel(reply, Parcelable.PARCELABLE_WRITE_RETURN_VALUE); 1267923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu return true; 1268923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu } 1269694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu 1270923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu case SHOW_WAITING_FOR_DEBUGGER_TRANSACTION: { 1271694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu data.enforceInterface(IActivityManager.descriptor); 1272923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu IBinder b = data.readStrongBinder(); 1273923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu IApplicationThread app = ApplicationThreadNative.asInterface(b); 1274923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu boolean waiting = data.readInt() != 0; 1275923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu showWaitingForDebugger(app, waiting); 1276694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu reply.writeNoException(); 1277923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu return true; 1278923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu } 1279923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu 1280923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu case GET_MEMORY_INFO_TRANSACTION: { 1281694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu data.enforceInterface(IActivityManager.descriptor); 1282923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu ActivityManager.MemoryInfo mi = new ActivityManager.MemoryInfo(); 1283923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu getMemoryInfo(mi); 1284923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu reply.writeNoException(); 1285923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu mi.writeToParcel(reply, 0); 1286694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu return true; 1287923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu } 1288694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu 1289923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu case UNHANDLED_BACK_TRANSACTION: { 1290694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu data.enforceInterface(IActivityManager.descriptor); 1291923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu unhandledBack(); 1292923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu reply.writeNoException(); 1293923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu return true; 1294923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu } 1295923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu 1296923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu case OPEN_CONTENT_URI_TRANSACTION: { 1297923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu data.enforceInterface(IActivityManager.descriptor); 1298694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu Uri uri = Uri.parse(data.readString()); 1299923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu ParcelFileDescriptor pfd = openContentUri(uri); 1300923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu reply.writeNoException(); 1301923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu if (pfd != null) { 1302923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu reply.writeInt(1); 1303923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu pfd.writeToParcel(reply, Parcelable.PARCELABLE_WRITE_RETURN_VALUE); 1304694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu } else { 1305923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu reply.writeInt(0); 1306923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu } 1307923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu return true; 1308694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu } 1309923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu 1310923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu case SET_LOCK_SCREEN_SHOWN_TRANSACTION: { 1311923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu data.enforceInterface(IActivityManager.descriptor); 1312923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu setLockScreenShown(data.readInt() != 0); 1313694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu reply.writeNoException(); 1314923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu return true; 1315923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu } 1316923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu 1317923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu case SET_DEBUG_APP_TRANSACTION: { 1318923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu data.enforceInterface(IActivityManager.descriptor); 1319923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu String pn = data.readString(); 1320694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu boolean wfd = data.readInt() != 0; 1321923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu boolean per = data.readInt() != 0; 1322923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu setDebugApp(pn, wfd, per); 1323923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu reply.writeNoException(); 1324694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu return true; 1325923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu } 1326923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu 1327923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu case SET_ALWAYS_FINISH_TRANSACTION: { 1328923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu data.enforceInterface(IActivityManager.descriptor); 1329694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu boolean enabled = data.readInt() != 0; 1330694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu setAlwaysFinish(enabled); 1331694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu reply.writeNoException(); 1332694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu return true; 13331093f4928a4263d08b44d96e468a42515d8a28f3Chad Rosier } 1334694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu 1335694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu case SET_ACTIVITY_CONTROLLER_TRANSACTION: { 1336694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu data.enforceInterface(IActivityManager.descriptor); 1337694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu IActivityController watcher = IActivityController.Stub.asInterface( 1338923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu data.readStrongBinder()); 1339923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu setActivityController(watcher); 1340694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu reply.writeNoException(); 1341923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu return true; 1342923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu } 1343923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu 1344923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu case ENTER_SAFE_MODE_TRANSACTION: { 1345694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu data.enforceInterface(IActivityManager.descriptor); 1346923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu enterSafeMode(); 1347923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu reply.writeNoException(); 1348694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu return true; 1349923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu } 1350923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu 1351923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu case NOTE_WAKEUP_ALARM_TRANSACTION: { 1352694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu data.enforceInterface(IActivityManager.descriptor); 1353923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu IIntentSender is = IIntentSender.Stub.asInterface( 1354923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu data.readStrongBinder()); 1355923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu int sourceUid = data.readInt(); 1356694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu String sourcePkg = data.readString(); 1357923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu noteWakeupAlarm(is, sourceUid, sourcePkg); 1358923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu reply.writeNoException(); 1359923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu return true; 1360694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu } 1361923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu 1362923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu case KILL_PIDS_TRANSACTION: { 1363923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu data.enforceInterface(IActivityManager.descriptor); 1364923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu int[] pids = data.createIntArray(); 1365923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu String reason = data.readString(); 1366923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu boolean secure = data.readInt() != 0; 1367694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu boolean res = killPids(pids, reason, secure); 1368923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu reply.writeNoException(); 1369923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu reply.writeInt(res ? 1 : 0); 1370694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu return true; 1371923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu } 1372923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu 1373923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu case KILL_PROCESSES_BELOW_FOREGROUND_TRANSACTION: { 1374694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu data.enforceInterface(IActivityManager.descriptor); 1375923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu String reason = data.readString(); 1376923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu boolean res = killProcessesBelowForeground(reason); 1377923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu reply.writeNoException(); 1378923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu reply.writeInt(res ? 1 : 0); 1379923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu return true; 1380923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu } 1381694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu 1382923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu case HANDLE_APPLICATION_CRASH_TRANSACTION: { 1383923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu data.enforceInterface(IActivityManager.descriptor); 1384923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu IBinder app = data.readStrongBinder(); 1385923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu ApplicationErrorReport.CrashInfo ci = new ApplicationErrorReport.CrashInfo(data); 1386923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu handleApplicationCrash(app, ci); 1387923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu reply.writeNoException(); 1388694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu return true; 1389923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu } 1390923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu 1391694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu case HANDLE_APPLICATION_WTF_TRANSACTION: { 1392923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu data.enforceInterface(IActivityManager.descriptor); 1393923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu IBinder app = data.readStrongBinder(); 1394923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu String tag = data.readString(); 1395923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu boolean system = data.readInt() != 0; 1396923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu ApplicationErrorReport.CrashInfo ci = new ApplicationErrorReport.CrashInfo(data); 1397694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu boolean res = handleApplicationWtf(app, tag, system, ci); 1398923cadadd2662827ce9029f72d399cf22c443ff9Richard Trieu reply.writeNoException(); 1399694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu reply.writeInt(res ? 1 : 0); 1400694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu return true; 1401694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu } 1402694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu 1403694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu case HANDLE_APPLICATION_STRICT_MODE_VIOLATION_TRANSACTION: { 1404694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu data.enforceInterface(IActivityManager.descriptor); 1405694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu IBinder app = data.readStrongBinder(); 1406694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu int violationMask = data.readInt(); 1407ef8225444452a1486bd721f3285301fe84643b00Stephen Hines StrictMode.ViolationInfo info = new StrictMode.ViolationInfo(data); 1408ef8225444452a1486bd721f3285301fe84643b00Stephen Hines handleApplicationStrictModeViolation(app, violationMask, info); 1409694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu reply.writeNoException(); 1410694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu return true; 1411694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu } 1412694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu 1413cfa88f893915ceb8ae4ce2f17c46c24a4d67502fDmitri Gribenko case SIGNAL_PERSISTENT_PROCESSES_TRANSACTION: { 1414facde171ae4b8926622a1bffa833732a06f1875bBenjamin Kramer data.enforceInterface(IActivityManager.descriptor); 1415694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu int sig = data.readInt(); 1416694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu signalPersistentProcesses(sig); 1417694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu reply.writeNoException(); 1418694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu return true; 1419694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu } 1420694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu 1421694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu case KILL_BACKGROUND_PROCESSES_TRANSACTION: { 1422694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu data.enforceInterface(IActivityManager.descriptor); 14239087599e5ee64ecd30194b3d89f8748ac95c62f7Richard Trieu String packageName = data.readString(); 1424694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu int userId = data.readInt(); 1425694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu killBackgroundProcesses(packageName, userId); 1426694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu reply.writeNoException(); 14279087599e5ee64ecd30194b3d89f8748ac95c62f7Richard Trieu return true; 14289087599e5ee64ecd30194b3d89f8748ac95c62f7Richard Trieu } 1429694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu 1430694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu case KILL_ALL_BACKGROUND_PROCESSES_TRANSACTION: { 1431694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu data.enforceInterface(IActivityManager.descriptor); 1432694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu killAllBackgroundProcesses(); 1433694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu reply.writeNoException(); 1434694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu return true; 1435694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu } 1436694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu 1437694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu case FORCE_STOP_PACKAGE_TRANSACTION: { 1438694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu data.enforceInterface(IActivityManager.descriptor); 1439694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu String packageName = data.readString(); 1440694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu int userId = data.readInt(); 1441694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu forceStopPackage(packageName, userId); 1442694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu reply.writeNoException(); 1443694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu return true; 1444694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu } 1445694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu 1446694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu case GET_MY_MEMORY_STATE_TRANSACTION: { 1447694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu data.enforceInterface(IActivityManager.descriptor); 1448694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu ActivityManager.RunningAppProcessInfo info = 144909d19efaa147762f84aed55efa7930bb3616a4e5Craig Topper new ActivityManager.RunningAppProcessInfo(); 1450cfa88f893915ceb8ae4ce2f17c46c24a4d67502fDmitri Gribenko getMyMemoryState(info); 1451694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu reply.writeNoException(); 1452694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu info.writeToParcel(reply, 0); 1453694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu return true; 1454694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu } 1455694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu 1456694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu case GET_DEVICE_CONFIGURATION_TRANSACTION: { 1457694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu data.enforceInterface(IActivityManager.descriptor); 1458694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu ConfigurationInfo config = getDeviceConfigurationInfo(); 1459acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu reply.writeNoException(); 1460acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu config.writeToParcel(reply, 0); 1461acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu return true; 1462acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu } 1463acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu 1464acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu case PROFILE_CONTROL_TRANSACTION: { 1465acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu data.enforceInterface(IActivityManager.descriptor); 1466acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu String process = data.readString(); 1467acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu int userId = data.readInt(); 1468acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu boolean start = data.readInt() != 0; 1469acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu int profileType = data.readInt(); 1470acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu ProfilerInfo profilerInfo = data.readInt() != 0 1471acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu ? ProfilerInfo.CREATOR.createFromParcel(data) : null; 1472acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu boolean res = profileControl(process, userId, start, profilerInfo, profileType); 1473acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu reply.writeNoException(); 1474acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu reply.writeInt(res ? 1 : 0); 1475acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu return true; 1476acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu } 1477acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu 1478acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu case SHUTDOWN_TRANSACTION: { 1479acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu data.enforceInterface(IActivityManager.descriptor); 1480acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu boolean res = shutdown(data.readInt()); 1481acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu reply.writeNoException(); 1482acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu reply.writeInt(res ? 1 : 0); 1483acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu return true; 1484acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu } 1485acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu 1486acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu case STOP_APP_SWITCHES_TRANSACTION: { 1487acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu data.enforceInterface(IActivityManager.descriptor); 1488acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu stopAppSwitches(); 1489acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu reply.writeNoException(); 1490acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu return true; 1491acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu } 1492acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu 1493acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu case RESUME_APP_SWITCHES_TRANSACTION: { 1494acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu data.enforceInterface(IActivityManager.descriptor); 1495acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu resumeAppSwitches(); 1496acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu reply.writeNoException(); 1497acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu return true; 1498651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines } 1499651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines 1500651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines case PEEK_SERVICE_TRANSACTION: { 1501651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines data.enforceInterface(IActivityManager.descriptor); 1502651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines Intent service = Intent.CREATOR.createFromParcel(data); 1503acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu String resolvedType = data.readString(); 1504651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines IBinder binder = peekService(service, resolvedType); 1505651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines reply.writeNoException(); 1506acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu reply.writeStrongBinder(binder); 1507acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu return true; 1508acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu } 1509651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines 1510acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu case START_BACKUP_AGENT_TRANSACTION: { 1511acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu data.enforceInterface(IActivityManager.descriptor); 1512651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines ApplicationInfo info = ApplicationInfo.CREATOR.createFromParcel(data); 1513651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines int backupRestoreMode = data.readInt(); 1514651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines boolean success = bindBackupAgent(info, backupRestoreMode); 1515651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines reply.writeNoException(); 1516651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines reply.writeInt(success ? 1 : 0); 1517acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu return true; 1518acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu } 1519651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines 1520651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines case BACKUP_AGENT_CREATED_TRANSACTION: { 1521651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines data.enforceInterface(IActivityManager.descriptor); 1522651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines String packageName = data.readString(); 1523acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu IBinder agent = data.readStrongBinder(); 1524651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines backupAgentCreated(packageName, agent); 1525acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu reply.writeNoException(); 1526acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu return true; 1527acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu } 1528acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu 1529acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu case UNBIND_BACKUP_AGENT_TRANSACTION: { 1530acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu data.enforceInterface(IActivityManager.descriptor); 1531acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu ApplicationInfo info = ApplicationInfo.CREATOR.createFromParcel(data); 1532acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu unbindBackupAgent(info); 1533acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu reply.writeNoException(); 1534acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu return true; 1535ef8225444452a1486bd721f3285301fe84643b00Stephen Hines } 1536ef8225444452a1486bd721f3285301fe84643b00Stephen Hines 1537acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu case ADD_PACKAGE_DEPENDENCY_TRANSACTION: { 1538acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu data.enforceInterface(IActivityManager.descriptor); 1539acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu String packageName = data.readString(); 1540acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu addPackageDependency(packageName); 1541acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu reply.writeNoException(); 1542acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu return true; 1543acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu } 1544acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu 1545acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu case KILL_APPLICATION_WITH_APPID_TRANSACTION: { 1546acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu data.enforceInterface(IActivityManager.descriptor); 1547acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu String pkg = data.readString(); 1548acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu int appid = data.readInt(); 1549acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu String reason = data.readString(); 1550acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu killApplicationWithAppId(pkg, appid, reason); 1551acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu reply.writeNoException(); 1552651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines return true; 1553acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu } 1554acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu 1555acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu case CLOSE_SYSTEM_DIALOGS_TRANSACTION: { 1556651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines data.enforceInterface(IActivityManager.descriptor); 1557acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu String reason = data.readString(); 1558acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu closeSystemDialogs(reason); 1559acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu reply.writeNoException(); 1560acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu return true; 1561acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu } 1562acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu 1563acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu case GET_PROCESS_MEMORY_INFO_TRANSACTION: { 1564694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu data.enforceInterface(IActivityManager.descriptor); 1565694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu int[] pids = data.createIntArray(); 1566651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines Debug.MemoryInfo[] res = getProcessMemoryInfo(pids); 1567651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines reply.writeNoException(); 1568651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines reply.writeTypedArray(res, Parcelable.PARCELABLE_WRITE_RETURN_VALUE); 1569651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines return true; 1570651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines } 1571651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines 1572651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines case KILL_APPLICATION_PROCESS_TRANSACTION: { 1573651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines data.enforceInterface(IActivityManager.descriptor); 1574651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines String processName = data.readString(); 1575651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines int uid = data.readInt(); 1576651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines killApplicationProcess(processName, uid); 1577651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines reply.writeNoException(); 1578651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines return true; 1579651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines } 1580651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines 1581651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines case OVERRIDE_PENDING_TRANSITION_TRANSACTION: { 1582651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines data.enforceInterface(IActivityManager.descriptor); 1583651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines IBinder token = data.readStrongBinder(); 1584651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines String packageName = data.readString(); 158560d7b3a319d84d688752be3870615ac0f111fb16John McCall int enterAnim = data.readInt(); 1586f05b1520d6f175acbfc3913489f4dfa842875ec4Sebastian Redl int exitAnim = data.readInt(); 15879ae2f076ca5ab1feb3ba95629099ec2319833701John McCall overridePendingTransition(token, packageName, enterAnim, exitAnim); 158899e9b4d172f6877e6ba5ebe75bb8238721f5e01cDouglas Gregor reply.writeNoException(); 15899ae2f076ca5ab1feb3ba95629099ec2319833701John McCall return true; 15904e4d08403ca5cfd4d558fa2936215d3a4e5a528dDavid Blaikie } 15915921093cf1c2e9a8bd1a22b6f612e551bae7476bArgyrios Kyrtzidis 1592f3a41af4d5c98a72a1d6720bbbfd658e57ef2541Chris Lattner case IS_USER_A_MONKEY_TRANSACTION: { 1593f3a41af4d5c98a72a1d6720bbbfd658e57ef2541Chris Lattner data.enforceInterface(IActivityManager.descriptor); 1594f3a41af4d5c98a72a1d6720bbbfd658e57ef2541Chris Lattner boolean areThey = isUserAMonkey(); 1595651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines reply.writeNoException(); 1596651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines reply.writeInt(areThey ? 1 : 0); 1597b6bbcc9995186799a60ce17d0c1acff31601653aJohn McCall return true; 15986bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines } 15996bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines 1600651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines case SET_USER_IS_MONKEY_TRANSACTION: { 1601651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines data.enforceInterface(IActivityManager.descriptor); 160212849d0ed2e88f8c6420944538b9c9d1985df14aDouglas Gregor final boolean monkey = (data.readInt() == 1); 16035921093cf1c2e9a8bd1a22b6f612e551bae7476bArgyrios Kyrtzidis setUserIsMonkey(monkey); 1604ae3b701f59e78e058b83344be17206af3bf5d277Chris Lattner reply.writeNoException(); 16055f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer return true; 160699e9b4d172f6877e6ba5ebe75bb8238721f5e01cDouglas Gregor } 1607651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines 1608651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines case FINISH_HEAVY_WEIGHT_APP_TRANSACTION: { 1609651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines data.enforceInterface(IActivityManager.descriptor); 1610694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu finishHeavyWeightApp(); 1611acdbbc7811c6045a718669a8a0740488edbbbd66Richard Trieu reply.writeNoException(); 1612694e796f462748ab4dc7ecdf4be5da44dd2c8c94Richard Trieu return true; 161360d7b3a319d84d688752be3870615ac0f111fb16John McCall } 16146bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines 1615d226f65006733ed7f709c3174f22ce33391cb58fJohn McCall case IS_IMMERSIVE_TRANSACTION: { 1616d226f65006733ed7f709c3174f22ce33391cb58fJohn McCall data.enforceInterface(IActivityManager.descriptor); 1617586596fd7f7a336a2847b300c80614dcf39ab6d5Douglas Gregor IBinder token = data.readStrongBinder(); 161899e9b4d172f6877e6ba5ebe75bb8238721f5e01cDouglas Gregor boolean isit = isImmersive(token); 161999e9b4d172f6877e6ba5ebe75bb8238721f5e01cDouglas Gregor reply.writeNoException(); 162099e9b4d172f6877e6ba5ebe75bb8238721f5e01cDouglas Gregor reply.writeInt(isit ? 1 : 0); 1621dfbb02a16ac8c764b5ba1742450513d6212d2f9fNAKAMURA Takumi return true; 1622ef8225444452a1486bd721f3285301fe84643b00Stephen Hines } 1623dfbb02a16ac8c764b5ba1742450513d6212d2f9fNAKAMURA Takumi 16243af708ff19e4ae2bf9e40550548361b00e5916bfAnders Carlsson case IS_TOP_OF_TASK_TRANSACTION: { 16253af708ff19e4ae2bf9e40550548361b00e5916bfAnders Carlsson data.enforceInterface(IActivityManager.descriptor); 1626754431107b61a0523df5271c2876a73dd5a051e9Anders Carlsson IBinder token = data.readStrongBinder(); 1627754431107b61a0523df5271c2876a73dd5a051e9Anders Carlsson final boolean isTopOfTask = isTopOfTask(token); 1628625bb569df0c34feec0d52c0ec5215f21ef2e054Dmitri Gribenko reply.writeNoException(); 1629625bb569df0c34feec0d52c0ec5215f21ef2e054Dmitri Gribenko reply.writeInt(isTopOfTask ? 1 : 0); 1630625bb569df0c34feec0d52c0ec5215f21ef2e054Dmitri Gribenko return true; 1631ef8225444452a1486bd721f3285301fe84643b00Stephen Hines } 1632ef8225444452a1486bd721f3285301fe84643b00Stephen Hines 16335f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer case CONVERT_FROM_TRANSLUCENT_TRANSACTION: { 16345f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer data.enforceInterface(IActivityManager.descriptor); 1635f6a1648197562e0b133440d612d9af297d0a86ccJohn McCall IBinder token = data.readStrongBinder(); 1636f6a1648197562e0b133440d612d9af297d0a86ccJohn McCall boolean converted = convertFromTranslucent(token); 1637f6a1648197562e0b133440d612d9af297d0a86ccJohn McCall reply.writeNoException(); 1638f6a1648197562e0b133440d612d9af297d0a86ccJohn McCall reply.writeInt(converted ? 1 : 0); 1639f6a1648197562e0b133440d612d9af297d0a86ccJohn McCall return true; 164029bbd1a33edfd3c81c35d5076530c2867a05bddcJohn McCall } 164129bbd1a33edfd3c81c35d5076530c2867a05bddcJohn McCall 164229bbd1a33edfd3c81c35d5076530c2867a05bddcJohn McCall case CONVERT_TO_TRANSLUCENT_TRANSACTION: { 164329bbd1a33edfd3c81c35d5076530c2867a05bddcJohn McCall data.enforceInterface(IActivityManager.descriptor); 1644ef8225444452a1486bd721f3285301fe84643b00Stephen Hines IBinder token = data.readStrongBinder(); 164529bbd1a33edfd3c81c35d5076530c2867a05bddcJohn McCall final Bundle bundle; 1646419563768ef4929a622d7c2b066856e82901bb91Richard Smith if (data.readInt() == 0) { 1647419563768ef4929a622d7c2b066856e82901bb91Richard Smith bundle = null; 1648419563768ef4929a622d7c2b066856e82901bb91Richard Smith } else { 1649ef8225444452a1486bd721f3285301fe84643b00Stephen Hines bundle = data.readBundle(); 1650f6a1648197562e0b133440d612d9af297d0a86ccJohn McCall } 1651f6a1648197562e0b133440d612d9af297d0a86ccJohn McCall final ActivityOptions options = bundle == null ? null : new ActivityOptions(bundle); 1652990567cb60e8530ba01b41d4e056e32b44b95ec0John McCall boolean converted = convertToTranslucent(token, options); 1653a1eec4bd198b96ef40a7c15cd0e131ca94511ad8Fariborz Jahanian reply.writeNoException(); 1654a1eec4bd198b96ef40a7c15cd0e131ca94511ad8Fariborz Jahanian reply.writeInt(converted ? 1 : 0); 1655a1eec4bd198b96ef40a7c15cd0e131ca94511ad8Fariborz Jahanian return true; 16561093f4928a4263d08b44d96e468a42515d8a28f3Chad Rosier } 1657990567cb60e8530ba01b41d4e056e32b44b95ec0John McCall 1658ef8225444452a1486bd721f3285301fe84643b00Stephen Hines case GET_ACTIVITY_OPTIONS_TRANSACTION: { 1659990567cb60e8530ba01b41d4e056e32b44b95ec0John McCall data.enforceInterface(IActivityManager.descriptor); 1660990567cb60e8530ba01b41d4e056e32b44b95ec0John McCall IBinder token = data.readStrongBinder(); 1661990567cb60e8530ba01b41d4e056e32b44b95ec0John McCall final ActivityOptions options = getActivityOptions(token); 1662990567cb60e8530ba01b41d4e056e32b44b95ec0John McCall reply.writeNoException(); 1663990567cb60e8530ba01b41d4e056e32b44b95ec0John McCall reply.writeBundle(options == null ? null : options.toBundle()); 1664ef8225444452a1486bd721f3285301fe84643b00Stephen Hines return true; 1665990567cb60e8530ba01b41d4e056e32b44b95ec0John McCall } 1666990567cb60e8530ba01b41d4e056e32b44b95ec0John McCall 1667990567cb60e8530ba01b41d4e056e32b44b95ec0John McCall case SET_IMMERSIVE_TRANSACTION: { 1668990567cb60e8530ba01b41d4e056e32b44b95ec0John McCall data.enforceInterface(IActivityManager.descriptor); 1669990567cb60e8530ba01b41d4e056e32b44b95ec0John McCall IBinder token = data.readStrongBinder(); 1670990567cb60e8530ba01b41d4e056e32b44b95ec0John McCall boolean imm = data.readInt() == 1; 1671990567cb60e8530ba01b41d4e056e32b44b95ec0John McCall setImmersive(token, imm); 1672990567cb60e8530ba01b41d4e056e32b44b95ec0John McCall reply.writeNoException(); 1673990567cb60e8530ba01b41d4e056e32b44b95ec0John McCall return true; 1674990567cb60e8530ba01b41d4e056e32b44b95ec0John McCall } 1675990567cb60e8530ba01b41d4e056e32b44b95ec0John McCall 1676990567cb60e8530ba01b41d4e056e32b44b95ec0John McCall case IS_TOP_ACTIVITY_IMMERSIVE_TRANSACTION: { 1677990567cb60e8530ba01b41d4e056e32b44b95ec0John McCall data.enforceInterface(IActivityManager.descriptor); 1678990567cb60e8530ba01b41d4e056e32b44b95ec0John McCall boolean isit = isTopActivityImmersive(); 1679990567cb60e8530ba01b41d4e056e32b44b95ec0John McCall reply.writeNoException(); 1680b3029960632ca8a3248e74770eda64d6c16f7246Douglas Gregor reply.writeInt(isit ? 1 : 0); 16811093f4928a4263d08b44d96e468a42515d8a28f3Chad Rosier return true; 1682b3029960632ca8a3248e74770eda64d6c16f7246Douglas Gregor } 16834e4d08403ca5cfd4d558fa2936215d3a4e5a528dDavid Blaikie 1684d10099e5c8238fa0327f03921cf2e3c8975c881eDouglas Gregor case CRASH_APPLICATION_TRANSACTION: { 1685d10099e5c8238fa0327f03921cf2e3c8975c881eDouglas Gregor data.enforceInterface(IActivityManager.descriptor); 1686d10099e5c8238fa0327f03921cf2e3c8975c881eDouglas Gregor int uid = data.readInt(); 1687990567cb60e8530ba01b41d4e056e32b44b95ec0John McCall int initialPid = data.readInt(); 1688990567cb60e8530ba01b41d4e056e32b44b95ec0John McCall String packageName = data.readString(); 1689990567cb60e8530ba01b41d4e056e32b44b95ec0John McCall String message = data.readString(); 1690990567cb60e8530ba01b41d4e056e32b44b95ec0John McCall crashApplication(uid, initialPid, packageName, message); 1691990567cb60e8530ba01b41d4e056e32b44b95ec0John McCall reply.writeNoException(); 1692990567cb60e8530ba01b41d4e056e32b44b95ec0John McCall return true; 1693990567cb60e8530ba01b41d4e056e32b44b95ec0John McCall } 1694990567cb60e8530ba01b41d4e056e32b44b95ec0John McCall 1695990567cb60e8530ba01b41d4e056e32b44b95ec0John McCall case GET_PROVIDER_MIME_TYPE_TRANSACTION: { 1696990567cb60e8530ba01b41d4e056e32b44b95ec0John McCall data.enforceInterface(IActivityManager.descriptor); 16976bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines Uri uri = Uri.CREATOR.createFromParcel(data); 1698990567cb60e8530ba01b41d4e056e32b44b95ec0John McCall int userId = data.readInt(); 1699990567cb60e8530ba01b41d4e056e32b44b95ec0John McCall String type = getProviderMimeType(uri, userId); 1700990567cb60e8530ba01b41d4e056e32b44b95ec0John McCall reply.writeNoException(); 1701990567cb60e8530ba01b41d4e056e32b44b95ec0John McCall reply.writeString(type); 1702e61354b274ec5aa6acf3d15271896ce7596bb123Anna Zaks return true; 1703990567cb60e8530ba01b41d4e056e32b44b95ec0John McCall } 1704990567cb60e8530ba01b41d4e056e32b44b95ec0John McCall 1705990567cb60e8530ba01b41d4e056e32b44b95ec0John McCall case NEW_URI_PERMISSION_OWNER_TRANSACTION: { 1706990567cb60e8530ba01b41d4e056e32b44b95ec0John McCall data.enforceInterface(IActivityManager.descriptor); 1707990567cb60e8530ba01b41d4e056e32b44b95ec0John McCall String name = data.readString(); 1708990567cb60e8530ba01b41d4e056e32b44b95ec0John McCall IBinder perm = newUriPermissionOwner(name); 1709990567cb60e8530ba01b41d4e056e32b44b95ec0John McCall reply.writeNoException(); 1710990567cb60e8530ba01b41d4e056e32b44b95ec0John McCall reply.writeStrongBinder(perm); 1711990567cb60e8530ba01b41d4e056e32b44b95ec0John McCall return true; 1712990567cb60e8530ba01b41d4e056e32b44b95ec0John McCall } 1713990567cb60e8530ba01b41d4e056e32b44b95ec0John McCall 1714990567cb60e8530ba01b41d4e056e32b44b95ec0John McCall case GRANT_URI_PERMISSION_FROM_OWNER_TRANSACTION: { 1715990567cb60e8530ba01b41d4e056e32b44b95ec0John McCall data.enforceInterface(IActivityManager.descriptor); 1716990567cb60e8530ba01b41d4e056e32b44b95ec0John McCall IBinder owner = data.readStrongBinder(); 1717990567cb60e8530ba01b41d4e056e32b44b95ec0John McCall int fromUid = data.readInt(); 1718990567cb60e8530ba01b41d4e056e32b44b95ec0John McCall String targetPkg = data.readString(); 1719990567cb60e8530ba01b41d4e056e32b44b95ec0John McCall Uri uri = Uri.CREATOR.createFromParcel(data); 1720ef8225444452a1486bd721f3285301fe84643b00Stephen Hines int mode = data.readInt(); 1721990567cb60e8530ba01b41d4e056e32b44b95ec0John McCall int sourceUserId = data.readInt(); 1722990567cb60e8530ba01b41d4e056e32b44b95ec0John McCall int targetUserId = data.readInt(); 172360d7b3a319d84d688752be3870615ac0f111fb16John McCall grantUriPermissionFromOwner(owner, fromUid, targetPkg, uri, mode, sourceUserId, 1724f05b1520d6f175acbfc3913489f4dfa842875ec4Sebastian Redl targetUserId); 1725a1eec4bd198b96ef40a7c15cd0e131ca94511ad8Fariborz Jahanian reply.writeNoException(); 1726a1eec4bd198b96ef40a7c15cd0e131ca94511ad8Fariborz Jahanian return true; 17271093f4928a4263d08b44d96e468a42515d8a28f3Chad Rosier } 17281093f4928a4263d08b44d96e468a42515d8a28f3Chad Rosier 1729a1eec4bd198b96ef40a7c15cd0e131ca94511ad8Fariborz Jahanian case REVOKE_URI_PERMISSION_FROM_OWNER_TRANSACTION: { 17301093f4928a4263d08b44d96e468a42515d8a28f3Chad Rosier data.enforceInterface(IActivityManager.descriptor); 173120552d2842245692b649e0d25380670922f954a2Fariborz Jahanian IBinder owner = data.readStrongBinder(); 173220552d2842245692b649e0d25380670922f954a2Fariborz Jahanian Uri uri = null; 173320552d2842245692b649e0d25380670922f954a2Fariborz Jahanian if (data.readInt() != 0) { 17347e24e82a70a2c681f4291a3397bcd1e1005f251aChris Lattner uri = Uri.CREATOR.createFromParcel(data); 1735f05b1520d6f175acbfc3913489f4dfa842875ec4Sebastian Redl } 1736f05b1520d6f175acbfc3913489f4dfa842875ec4Sebastian Redl int mode = data.readInt(); 1737f05b1520d6f175acbfc3913489f4dfa842875ec4Sebastian Redl int userId = data.readInt(); 173812849d0ed2e88f8c6420944538b9c9d1985df14aDouglas Gregor revokeUriPermissionFromOwner(owner, uri, mode, userId); 173912849d0ed2e88f8c6420944538b9c9d1985df14aDouglas Gregor reply.writeNoException(); 174012849d0ed2e88f8c6420944538b9c9d1985df14aDouglas Gregor return true; 174112849d0ed2e88f8c6420944538b9c9d1985df14aDouglas Gregor } 1742f85e193739c953358c865005855253af4f68a497John McCall 1743f3a41af4d5c98a72a1d6720bbbfd658e57ef2541Chris Lattner case CHECK_GRANT_URI_PERMISSION_TRANSACTION: { 1744f3a41af4d5c98a72a1d6720bbbfd658e57ef2541Chris Lattner data.enforceInterface(IActivityManager.descriptor); 1745f3a41af4d5c98a72a1d6720bbbfd658e57ef2541Chris Lattner int callingUid = data.readInt(); 1746f85e193739c953358c865005855253af4f68a497John McCall String targetPkg = data.readString(); 1747f85e193739c953358c865005855253af4f68a497John McCall Uri uri = Uri.CREATOR.createFromParcel(data); 174812849d0ed2e88f8c6420944538b9c9d1985df14aDouglas Gregor int modeFlags = data.readInt(); 17491cd1f73f09c6ddcf01e3a287d6604cd705190d14Douglas Gregor int userId = data.readInt(); 17501cd1f73f09c6ddcf01e3a287d6604cd705190d14Douglas Gregor int res = checkGrantUriPermission(callingUid, targetPkg, uri, modeFlags, userId); 17511cd1f73f09c6ddcf01e3a287d6604cd705190d14Douglas Gregor reply.writeNoException(); 17521cd1f73f09c6ddcf01e3a287d6604cd705190d14Douglas Gregor reply.writeInt(res); 17531cd1f73f09c6ddcf01e3a287d6604cd705190d14Douglas Gregor return true; 17541cd1f73f09c6ddcf01e3a287d6604cd705190d14Douglas Gregor } 17559b1317531d376738fd6631291b0a04109c76a63bRichard Smith 17569b1317531d376738fd6631291b0a04109c76a63bRichard Smith case DUMP_HEAP_TRANSACTION: { 17571cd1f73f09c6ddcf01e3a287d6604cd705190d14Douglas Gregor data.enforceInterface(IActivityManager.descriptor); 17589b1317531d376738fd6631291b0a04109c76a63bRichard Smith String process = data.readString(); 17591cd1f73f09c6ddcf01e3a287d6604cd705190d14Douglas Gregor int userId = data.readInt(); 17601cd1f73f09c6ddcf01e3a287d6604cd705190d14Douglas Gregor boolean managed = data.readInt() != 0; 17611cd1f73f09c6ddcf01e3a287d6604cd705190d14Douglas Gregor String path = data.readString(); 17621cd1f73f09c6ddcf01e3a287d6604cd705190d14Douglas Gregor ParcelFileDescriptor fd = data.readInt() != 0 17639b1317531d376738fd6631291b0a04109c76a63bRichard Smith ? ParcelFileDescriptor.CREATOR.createFromParcel(data) : null; 17641cd1f73f09c6ddcf01e3a287d6604cd705190d14Douglas Gregor boolean res = dumpHeap(process, userId, managed, path, fd); 17651cd1f73f09c6ddcf01e3a287d6604cd705190d14Douglas Gregor reply.writeNoException(); 17669b1317531d376738fd6631291b0a04109c76a63bRichard Smith reply.writeInt(res ? 1 : 0); 17679b1317531d376738fd6631291b0a04109c76a63bRichard Smith return true; 17681cd1f73f09c6ddcf01e3a287d6604cd705190d14Douglas Gregor } 17691cd1f73f09c6ddcf01e3a287d6604cd705190d14Douglas Gregor 17701cd1f73f09c6ddcf01e3a287d6604cd705190d14Douglas Gregor case START_ACTIVITIES_TRANSACTION: 17711cd1f73f09c6ddcf01e3a287d6604cd705190d14Douglas Gregor { 17721cd1f73f09c6ddcf01e3a287d6604cd705190d14Douglas Gregor data.enforceInterface(IActivityManager.descriptor); 17731fe379f0fa6fbc0a6057e8966253aea2957ca953Anders Carlsson IBinder b = data.readStrongBinder(); 1774c3203e7ee1464a096f341c2e2a83a10be2da000aDouglas Gregor IApplicationThread app = ApplicationThreadNative.asInterface(b); 17757eb0a9eb0cde8444b97f9c5b713d9be7a6f1e607John McCall String callingPackage = data.readString(); 1776f05b1520d6f175acbfc3913489f4dfa842875ec4Sebastian Redl Intent[] intents = data.createTypedArray(Intent.CREATOR); 1777f05b1520d6f175acbfc3913489f4dfa842875ec4Sebastian Redl String[] resolvedTypes = data.createStringArray(); 1778f05b1520d6f175acbfc3913489f4dfa842875ec4Sebastian Redl IBinder resultTo = data.readStrongBinder(); 17791fe379f0fa6fbc0a6057e8966253aea2957ca953Anders Carlsson Bundle options = data.readInt() != 0 17801eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump ? Bundle.CREATOR.createFromParcel(data) : null; 178184e41cd7b0f0d1c8724c765ce53b842bc50367ccFariborz Jahanian int userId = data.readInt(); 178284e41cd7b0f0d1c8724c765ce53b842bc50367ccFariborz Jahanian int result = startActivities(app, callingPackage, intents, resolvedTypes, resultTo, 178384e41cd7b0f0d1c8724c765ce53b842bc50367ccFariborz Jahanian options, userId); 17841fe379f0fa6fbc0a6057e8966253aea2957ca953Anders Carlsson reply.writeNoException(); 1785c3203e7ee1464a096f341c2e2a83a10be2da000aDouglas Gregor reply.writeInt(result); 1786c3203e7ee1464a096f341c2e2a83a10be2da000aDouglas Gregor return true; 1787a5e42a82ce055f29f3733f3a1f10da6cb9877deeFariborz Jahanian } 1788a1eec4bd198b96ef40a7c15cd0e131ca94511ad8Fariborz Jahanian 1789a1eec4bd198b96ef40a7c15cd0e131ca94511ad8Fariborz Jahanian case GET_FRONT_ACTIVITY_SCREEN_COMPAT_MODE_TRANSACTION: 17903ba5a0f90a03d5e13d02cbee9abd2a1ba01b18bcFariborz Jahanian { 17911093f4928a4263d08b44d96e468a42515d8a28f3Chad Rosier data.enforceInterface(IActivityManager.descriptor); 1792a1eec4bd198b96ef40a7c15cd0e131ca94511ad8Fariborz Jahanian int mode = getFrontActivityScreenCompatMode(); 1793a1eec4bd198b96ef40a7c15cd0e131ca94511ad8Fariborz Jahanian reply.writeNoException(); 17941093f4928a4263d08b44d96e468a42515d8a28f3Chad Rosier reply.writeInt(mode); 1795ef8225444452a1486bd721f3285301fe84643b00Stephen Hines return true; 1796419563768ef4929a622d7c2b066856e82901bb91Richard Smith } 1797419563768ef4929a622d7c2b066856e82901bb91Richard Smith 1798419563768ef4929a622d7c2b066856e82901bb91Richard Smith case SET_FRONT_ACTIVITY_SCREEN_COMPAT_MODE_TRANSACTION: 1799ef8225444452a1486bd721f3285301fe84643b00Stephen Hines { 1800ef8225444452a1486bd721f3285301fe84643b00Stephen Hines data.enforceInterface(IActivityManager.descriptor); 18013ba5a0f90a03d5e13d02cbee9abd2a1ba01b18bcFariborz Jahanian int mode = data.readInt(); 18025f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer setFrontActivityScreenCompatMode(mode); 1803ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith reply.writeNoException(); 1804ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith reply.writeInt(mode); 1805ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith return true; 18069b1317531d376738fd6631291b0a04109c76a63bRichard Smith } 1807ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith 1808ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith case GET_PACKAGE_SCREEN_COMPAT_MODE_TRANSACTION: 18099b1317531d376738fd6631291b0a04109c76a63bRichard Smith { 181062b7cfb73e202051e7ab0dad42ba213acd0dec7eSebastian Redl data.enforceInterface(IActivityManager.descriptor); 18119b1317531d376738fd6631291b0a04109c76a63bRichard Smith String pkg = data.readString(); 1812b832f6dea893f25b40500a04781286236281cb20Sebastian Redl int mode = getPackageScreenCompatMode(pkg); 18139b1317531d376738fd6631291b0a04109c76a63bRichard Smith reply.writeNoException(); 18149b1317531d376738fd6631291b0a04109c76a63bRichard Smith reply.writeInt(mode); 1815ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith return true; 1816ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith } 1817ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith 18189b1317531d376738fd6631291b0a04109c76a63bRichard Smith case SET_PACKAGE_SCREEN_COMPAT_MODE_TRANSACTION: 1819ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith { 1820f85e193739c953358c865005855253af4f68a497John McCall data.enforceInterface(IActivityManager.descriptor); 1821f85e193739c953358c865005855253af4f68a497John McCall String pkg = data.readString(); 1822f85e193739c953358c865005855253af4f68a497John McCall int mode = data.readInt(); 18231093f4928a4263d08b44d96e468a42515d8a28f3Chad Rosier setPackageScreenCompatMode(pkg, mode); 1824f85e193739c953358c865005855253af4f68a497John McCall reply.writeNoException(); 1825f85e193739c953358c865005855253af4f68a497John McCall return true; 1826f85e193739c953358c865005855253af4f68a497John McCall } 1827ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith 1828ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith case SWITCH_USER_TRANSACTION: { 1829ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith data.enforceInterface(IActivityManager.descriptor); 1830b403d6d746239095a2c7bac958c924d92434e2b4Richard Smith int userid = data.readInt(); 1831ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith boolean result = switchUser(userid); 1832ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith reply.writeNoException(); 1833ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith reply.writeInt(result ? 1 : 0); 1834e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer return true; 1835e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer } 1836ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith 1837e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer case START_USER_IN_BACKGROUND_TRANSACTION: { 1838ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith data.enforceInterface(IActivityManager.descriptor); 1839ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith int userid = data.readInt(); 1840ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith boolean result = startUserInBackground(userid); 1841e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer reply.writeNoException(); 1842ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith reply.writeInt(result ? 1 : 0); 1843ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith return true; 1844ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith } 1845ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith 1846ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith case STOP_USER_TRANSACTION: { 1847ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith data.enforceInterface(IActivityManager.descriptor); 1848ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith int userid = data.readInt(); 1849ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith IStopUserCallback callback = IStopUserCallback.Stub.asInterface( 1850ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith data.readStrongBinder()); 1851ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith int result = stopUser(userid, callback); 1852ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith reply.writeNoException(); 1853ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith reply.writeInt(result); 1854ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith return true; 1855ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith } 1856ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith 1857ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith case GET_CURRENT_USER_TRANSACTION: { 1858ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith data.enforceInterface(IActivityManager.descriptor); 1859ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith UserInfo userInfo = getCurrentUser(); 1860ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith reply.writeNoException(); 1861ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith userInfo.writeToParcel(reply, 0); 1862e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer return true; 1863e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer } 1864e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer 1865e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer case IS_USER_RUNNING_TRANSACTION: { 1866e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer data.enforceInterface(IActivityManager.descriptor); 1867e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer int userid = data.readInt(); 1868e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer boolean orStopping = data.readInt() != 0; 1869d2615cc53b916e8aae45783ca7113b93de515ce3Rafael Espindola boolean result = isUserRunning(userid, orStopping); 1870e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer reply.writeNoException(); 1871e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer reply.writeInt(result ? 1 : 0); 1872ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith return true; 1873ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith } 1874ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith 1875ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith case GET_RUNNING_USER_IDS_TRANSACTION: { 18764d3db4eb6caa49a7cdbfe1798728ce4b23cd0b53Fariborz Jahanian data.enforceInterface(IActivityManager.descriptor); 18774d3db4eb6caa49a7cdbfe1798728ce4b23cd0b53Fariborz Jahanian int[] result = getRunningUserIds(); 18786bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines reply.writeNoException(); 18794d3db4eb6caa49a7cdbfe1798728ce4b23cd0b53Fariborz Jahanian reply.writeIntArray(result); 18804d3db4eb6caa49a7cdbfe1798728ce4b23cd0b53Fariborz Jahanian return true; 1881bc20bbb0bf90446a469848c658ca376832f43dc8Sam Panzer } 1882ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith 1883bc20bbb0bf90446a469848c658ca376832f43dc8Sam Panzer case REMOVE_TASK_TRANSACTION: 1884ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith { 1885ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith data.enforceInterface(IActivityManager.descriptor); 1886ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith int taskId = data.readInt(); 1887ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith int fl = data.readInt(); 1888ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith boolean result = removeTask(taskId, fl); 1889ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith reply.writeNoException(); 1890ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith reply.writeInt(result ? 1 : 0); 1891ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith return true; 1892ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith } 1893ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith 1894ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith case REGISTER_PROCESS_OBSERVER_TRANSACTION: { 1895ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith data.enforceInterface(IActivityManager.descriptor); 1896ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith IProcessObserver observer = IProcessObserver.Stub.asInterface( 1897ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith data.readStrongBinder()); 1898ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith registerProcessObserver(observer); 1899ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith return true; 1900bc20bbb0bf90446a469848c658ca376832f43dc8Sam Panzer } 1901ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith 19028b533d97e0683a0c87096b95927a2e9ce02243d4Richard Smith case UNREGISTER_PROCESS_OBSERVER_TRANSACTION: { 190337aa0f7ca567128fb00f88ceb4a7c229833f257eRichard Smith data.enforceInterface(IActivityManager.descriptor); 1904ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith IProcessObserver observer = IProcessObserver.Stub.asInterface( 19051093f4928a4263d08b44d96e468a42515d8a28f3Chad Rosier data.readStrongBinder()); 190637aa0f7ca567128fb00f88ceb4a7c229833f257eRichard Smith unregisterProcessObserver(observer); 1907bc20bbb0bf90446a469848c658ca376832f43dc8Sam Panzer return true; 1908ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith } 1909ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith 1910ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith case GET_PACKAGE_ASK_SCREEN_COMPAT_TRANSACTION: 1911ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith { 1912ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith data.enforceInterface(IActivityManager.descriptor); 1913ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith String pkg = data.readString(); 1914ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith boolean ask = getPackageAskScreenCompat(pkg); 1915ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith reply.writeNoException(); 1916ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith reply.writeInt(ask ? 1 : 0); 191737aa0f7ca567128fb00f88ceb4a7c229833f257eRichard Smith return true; 191837aa0f7ca567128fb00f88ceb4a7c229833f257eRichard Smith } 191937aa0f7ca567128fb00f88ceb4a7c229833f257eRichard Smith 192037aa0f7ca567128fb00f88ceb4a7c229833f257eRichard Smith case SET_PACKAGE_ASK_SCREEN_COMPAT_TRANSACTION: 1921ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith { 192237aa0f7ca567128fb00f88ceb4a7c229833f257eRichard Smith data.enforceInterface(IActivityManager.descriptor); 1923ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith String pkg = data.readString(); 1924ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith boolean ask = data.readInt() != 0; 1925ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith setPackageAskScreenCompat(pkg, ask); 1926ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith reply.writeNoException(); 1927ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith return true; 1928ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith } 1929ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith 193037aa0f7ca567128fb00f88ceb4a7c229833f257eRichard Smith case IS_INTENT_SENDER_TARGETED_TO_PACKAGE_TRANSACTION: { 193137aa0f7ca567128fb00f88ceb4a7c229833f257eRichard Smith data.enforceInterface(IActivityManager.descriptor); 1932ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith IIntentSender r = IIntentSender.Stub.asInterface( 193337aa0f7ca567128fb00f88ceb4a7c229833f257eRichard Smith data.readStrongBinder()); 1934ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith boolean res = isIntentSenderTargetedToPackage(r); 1935ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith reply.writeNoException(); 1936ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith reply.writeInt(res ? 1 : 0); 1937ef8225444452a1486bd721f3285301fe84643b00Stephen Hines return true; 19384549d7ffc15bdd7ab860aa68db089d9f559b79e7Rafael Espindola } 1939ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith 194037aa0f7ca567128fb00f88ceb4a7c229833f257eRichard Smith case IS_INTENT_SENDER_AN_ACTIVITY_TRANSACTION: { 194137aa0f7ca567128fb00f88ceb4a7c229833f257eRichard Smith data.enforceInterface(IActivityManager.descriptor); 1942ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith IIntentSender r = IIntentSender.Stub.asInterface( 194337aa0f7ca567128fb00f88ceb4a7c229833f257eRichard Smith data.readStrongBinder()); 1944ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith boolean res = isIntentSenderAnActivity(r); 1945ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith reply.writeNoException(); 19466bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines reply.writeInt(res ? 1 : 0); 19476bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines return true; 1948e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer } 1949e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer 1950e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer case GET_INTENT_FOR_INTENT_SENDER_TRANSACTION: { 1951e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer data.enforceInterface(IActivityManager.descriptor); 1952e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer IIntentSender r = IIntentSender.Stub.asInterface( 1953e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer data.readStrongBinder()); 1954e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer Intent intent = getIntentForIntentSender(r); 1955e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer reply.writeNoException(); 1956e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer if (intent != null) { 1957e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer reply.writeInt(1); 1958e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer intent.writeToParcel(reply, Parcelable.PARCELABLE_WRITE_RETURN_VALUE); 1959e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer } else { 1960e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer reply.writeInt(0); 1961e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer } 1962e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer return true; 1963e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer } 1964e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer 1965e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer case GET_TAG_FOR_INTENT_SENDER_TRANSACTION: { 1966e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer data.enforceInterface(IActivityManager.descriptor); 1967e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer IIntentSender r = IIntentSender.Stub.asInterface( 1968e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer data.readStrongBinder()); 1969e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer String prefix = data.readString(); 1970e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer String tag = getTagForIntentSender(r, prefix); 1971e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer reply.writeNoException(); 1972e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer reply.writeString(tag); 1973e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer return true; 1974e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer } 1975e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer 1976e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer case UPDATE_PERSISTENT_CONFIGURATION_TRANSACTION: { 1977e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer data.enforceInterface(IActivityManager.descriptor); 1978e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer Configuration config = Configuration.CREATOR.createFromParcel(data); 1979e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer updatePersistentConfiguration(config); 1980e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer reply.writeNoException(); 1981e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer return true; 1982e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer } 1983e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer 1984e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer case GET_PROCESS_PSS_TRANSACTION: { 1985e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer data.enforceInterface(IActivityManager.descriptor); 1986e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer int[] pids = data.createIntArray(); 1987e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer long[] pss = getProcessPss(pids); 1988e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer reply.writeNoException(); 1989e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer reply.writeLongArray(pss); 1990e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer return true; 1991e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer } 1992e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer 1993e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer case SHOW_BOOT_MESSAGE_TRANSACTION: { 1994e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer data.enforceInterface(IActivityManager.descriptor); 1995e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer CharSequence msg = TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(data); 1996e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer boolean always = data.readInt() != 0; 1997e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer showBootMessage(msg, always); 1998e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer reply.writeNoException(); 1999e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer return true; 2000e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer } 2001e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer 2002e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer case KEYGUARD_WAITING_FOR_ACTIVITY_DRAWN_TRANSACTION: { 2003e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer data.enforceInterface(IActivityManager.descriptor); 2004e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer keyguardWaitingForActivityDrawn(); 2005e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer reply.writeNoException(); 2006e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer return true; 2007e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer } 2008e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer 2009e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer case SHOULD_UP_RECREATE_TASK_TRANSACTION: { 2010e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer data.enforceInterface(IActivityManager.descriptor); 2011e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer IBinder token = data.readStrongBinder(); 2012e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer String destAffinity = data.readString(); 2013e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer boolean res = shouldUpRecreateTask(token, destAffinity); 2014e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer reply.writeNoException(); 2015e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer reply.writeInt(res ? 1 : 0); 2016e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer return true; 2017e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer } 2018e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer 2019e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer case NAVIGATE_UP_TO_TRANSACTION: { 2020e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer data.enforceInterface(IActivityManager.descriptor); 2021e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer IBinder token = data.readStrongBinder(); 2022e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer Intent target = Intent.CREATOR.createFromParcel(data); 2023e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer int resultCode = data.readInt(); 2024e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer Intent resultData = null; 2025e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer if (data.readInt() != 0) { 2026e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer resultData = Intent.CREATOR.createFromParcel(data); 2027e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer } 2028e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer boolean res = navigateUpTo(token, target, resultCode, resultData); 2029e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer reply.writeNoException(); 2030e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer reply.writeInt(res ? 1 : 0); 2031e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer return true; 2032e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer } 2033e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer 2034e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer case GET_LAUNCHED_FROM_UID_TRANSACTION: { 20358b533d97e0683a0c87096b95927a2e9ce02243d4Richard Smith data.enforceInterface(IActivityManager.descriptor); 20368b533d97e0683a0c87096b95927a2e9ce02243d4Richard Smith IBinder token = data.readStrongBinder(); 2037e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer int res = getLaunchedFromUid(token); 2038e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer reply.writeNoException(); 2039e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer reply.writeInt(res); 2040e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer return true; 2041e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer } 2042e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer 2043e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer case GET_LAUNCHED_FROM_PACKAGE_TRANSACTION: { 20448b533d97e0683a0c87096b95927a2e9ce02243d4Richard Smith data.enforceInterface(IActivityManager.descriptor); 20458b533d97e0683a0c87096b95927a2e9ce02243d4Richard Smith IBinder token = data.readStrongBinder(); 20468b533d97e0683a0c87096b95927a2e9ce02243d4Richard Smith String res = getLaunchedFromPackage(token); 20478b533d97e0683a0c87096b95927a2e9ce02243d4Richard Smith reply.writeNoException(); 20488b533d97e0683a0c87096b95927a2e9ce02243d4Richard Smith reply.writeString(res); 20498b533d97e0683a0c87096b95927a2e9ce02243d4Richard Smith return true; 20508b533d97e0683a0c87096b95927a2e9ce02243d4Richard Smith } 20518b533d97e0683a0c87096b95927a2e9ce02243d4Richard Smith 20528b533d97e0683a0c87096b95927a2e9ce02243d4Richard Smith case REGISTER_USER_SWITCH_OBSERVER_TRANSACTION: { 20538b533d97e0683a0c87096b95927a2e9ce02243d4Richard Smith data.enforceInterface(IActivityManager.descriptor); 20548b533d97e0683a0c87096b95927a2e9ce02243d4Richard Smith IUserSwitchObserver observer = IUserSwitchObserver.Stub.asInterface( 20558b533d97e0683a0c87096b95927a2e9ce02243d4Richard Smith data.readStrongBinder()); 20568b533d97e0683a0c87096b95927a2e9ce02243d4Richard Smith registerUserSwitchObserver(observer); 20578b533d97e0683a0c87096b95927a2e9ce02243d4Richard Smith reply.writeNoException(); 20588b533d97e0683a0c87096b95927a2e9ce02243d4Richard Smith return true; 20598b533d97e0683a0c87096b95927a2e9ce02243d4Richard Smith } 20608b533d97e0683a0c87096b95927a2e9ce02243d4Richard Smith 20618b533d97e0683a0c87096b95927a2e9ce02243d4Richard Smith case UNREGISTER_USER_SWITCH_OBSERVER_TRANSACTION: { 20628b533d97e0683a0c87096b95927a2e9ce02243d4Richard Smith data.enforceInterface(IActivityManager.descriptor); 20638b533d97e0683a0c87096b95927a2e9ce02243d4Richard Smith IUserSwitchObserver observer = IUserSwitchObserver.Stub.asInterface( 20648b533d97e0683a0c87096b95927a2e9ce02243d4Richard Smith data.readStrongBinder()); 20658b533d97e0683a0c87096b95927a2e9ce02243d4Richard Smith unregisterUserSwitchObserver(observer); 20668b533d97e0683a0c87096b95927a2e9ce02243d4Richard Smith reply.writeNoException(); 20678b533d97e0683a0c87096b95927a2e9ce02243d4Richard Smith return true; 20688b533d97e0683a0c87096b95927a2e9ce02243d4Richard Smith } 20698b533d97e0683a0c87096b95927a2e9ce02243d4Richard Smith 2070ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith case REQUEST_BUG_REPORT_TRANSACTION: { 2071ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith data.enforceInterface(IActivityManager.descriptor); 207237aa0f7ca567128fb00f88ceb4a7c229833f257eRichard Smith requestBugReport(); 207337aa0f7ca567128fb00f88ceb4a7c229833f257eRichard Smith reply.writeNoException(); 207437aa0f7ca567128fb00f88ceb4a7c229833f257eRichard Smith return true; 207537aa0f7ca567128fb00f88ceb4a7c229833f257eRichard Smith } 207637aa0f7ca567128fb00f88ceb4a7c229833f257eRichard Smith 207737aa0f7ca567128fb00f88ceb4a7c229833f257eRichard Smith case INPUT_DISPATCHING_TIMED_OUT_TRANSACTION: { 207837aa0f7ca567128fb00f88ceb4a7c229833f257eRichard Smith data.enforceInterface(IActivityManager.descriptor); 207937aa0f7ca567128fb00f88ceb4a7c229833f257eRichard Smith int pid = data.readInt(); 208037aa0f7ca567128fb00f88ceb4a7c229833f257eRichard Smith boolean aboveSystem = data.readInt() != 0; 208137aa0f7ca567128fb00f88ceb4a7c229833f257eRichard Smith String reason = data.readString(); 208237aa0f7ca567128fb00f88ceb4a7c229833f257eRichard Smith long res = inputDispatchingTimedOut(pid, aboveSystem, reason); 208337aa0f7ca567128fb00f88ceb4a7c229833f257eRichard Smith reply.writeNoException(); 208437aa0f7ca567128fb00f88ceb4a7c229833f257eRichard Smith reply.writeLong(res); 208537aa0f7ca567128fb00f88ceb4a7c229833f257eRichard Smith return true; 208637aa0f7ca567128fb00f88ceb4a7c229833f257eRichard Smith } 208737aa0f7ca567128fb00f88ceb4a7c229833f257eRichard Smith 20888b533d97e0683a0c87096b95927a2e9ce02243d4Richard Smith case GET_ASSIST_CONTEXT_EXTRAS_TRANSACTION: { 2089ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith data.enforceInterface(IActivityManager.descriptor); 2090ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith int requestType = data.readInt(); 2091ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith Bundle res = getAssistContextExtras(requestType); 2092ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith reply.writeNoException(); 20938b533d97e0683a0c87096b95927a2e9ce02243d4Richard Smith reply.writeBundle(res); 2094ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith return true; 2095ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith } 2096ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith 2097ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith case REPORT_ASSIST_CONTEXT_EXTRAS_TRANSACTION: { 2098ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith data.enforceInterface(IActivityManager.descriptor); 2099ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith IBinder token = data.readStrongBinder(); 2100ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith Bundle extras = data.readBundle(); 2101ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith reportAssistContextExtras(token, extras); 2102ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith reply.writeNoException(); 210337aa0f7ca567128fb00f88ceb4a7c229833f257eRichard Smith return true; 210437aa0f7ca567128fb00f88ceb4a7c229833f257eRichard Smith } 210537aa0f7ca567128fb00f88ceb4a7c229833f257eRichard Smith 210637aa0f7ca567128fb00f88ceb4a7c229833f257eRichard Smith case LAUNCH_ASSIST_INTENT_TRANSACTION: { 210737aa0f7ca567128fb00f88ceb4a7c229833f257eRichard Smith data.enforceInterface(IActivityManager.descriptor); 2108ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith Intent intent = Intent.CREATOR.createFromParcel(data); 2109ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith int requestType = data.readInt(); 2110ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith String hint = data.readString(); 2111dc7a4f5d7a7e3b60d4dc4a80338d7a2728540998Richard Smith int userHandle = data.readInt(); 2112dc7a4f5d7a7e3b60d4dc4a80338d7a2728540998Richard Smith boolean res = launchAssistIntent(intent, requestType, hint, userHandle); 211386164e8f51fa89a3ec904607c3848dc4a21b12cfEli Friedman reply.writeNoException(); 2114dc7a4f5d7a7e3b60d4dc4a80338d7a2728540998Richard Smith reply.writeInt(res ? 1 : 0); 2115dc7a4f5d7a7e3b60d4dc4a80338d7a2728540998Richard Smith return true; 2116dc7a4f5d7a7e3b60d4dc4a80338d7a2728540998Richard Smith } 2117dc7a4f5d7a7e3b60d4dc4a80338d7a2728540998Richard Smith 2118dc7a4f5d7a7e3b60d4dc4a80338d7a2728540998Richard Smith case KILL_UID_TRANSACTION: { 2119dc7a4f5d7a7e3b60d4dc4a80338d7a2728540998Richard Smith data.enforceInterface(IActivityManager.descriptor); 2120ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith int uid = data.readInt(); 2121ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith String reason = data.readString(); 2122e50b01531afcb4afc40d27720afa09613ddcdfa2Ted Kremenek killUid(uid, reason); 2123e50b01531afcb4afc40d27720afa09613ddcdfa2Ted Kremenek reply.writeNoException(); 2124e50b01531afcb4afc40d27720afa09613ddcdfa2Ted Kremenek return true; 2125e50b01531afcb4afc40d27720afa09613ddcdfa2Ted Kremenek } 2126e50b01531afcb4afc40d27720afa09613ddcdfa2Ted Kremenek 2127e50b01531afcb4afc40d27720afa09613ddcdfa2Ted Kremenek case HANG_TRANSACTION: { 2128e50b01531afcb4afc40d27720afa09613ddcdfa2Ted Kremenek data.enforceInterface(IActivityManager.descriptor); 2129e50b01531afcb4afc40d27720afa09613ddcdfa2Ted Kremenek IBinder who = data.readStrongBinder(); 2130e50b01531afcb4afc40d27720afa09613ddcdfa2Ted Kremenek boolean allowRestart = data.readInt() != 0; 2131e50b01531afcb4afc40d27720afa09613ddcdfa2Ted Kremenek hang(who, allowRestart); 2132ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith reply.writeNoException(); 2133ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith return true; 2134ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith } 2135ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith 2136ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith case REPORT_ACTIVITY_FULLY_DRAWN_TRANSACTION: { 2137ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith data.enforceInterface(IActivityManager.descriptor); 2138ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith IBinder token = data.readStrongBinder(); 2139ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith reportActivityFullyDrawn(token); 2140ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith reply.writeNoException(); 2141d10099e5c8238fa0327f03921cf2e3c8975c881eDouglas Gregor return true; 2142ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith } 2143ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith 2144ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith case NOTIFY_ACTIVITY_DRAWN_TRANSACTION: { 2145ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith data.enforceInterface(IActivityManager.descriptor); 2146ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith IBinder token = data.readStrongBinder(); 2147ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith notifyActivityDrawn(token); 2148ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith reply.writeNoException(); 2149ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith return true; 2150ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith } 2151ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith 2152ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith case RESTART_TRANSACTION: { 2153ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith data.enforceInterface(IActivityManager.descriptor); 2154ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith restart(); 2155ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith reply.writeNoException(); 2156ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith return true; 2157ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith } 2158ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith 2159e50b01531afcb4afc40d27720afa09613ddcdfa2Ted Kremenek case PERFORM_IDLE_MAINTENANCE_TRANSACTION: { 2160e50b01531afcb4afc40d27720afa09613ddcdfa2Ted Kremenek data.enforceInterface(IActivityManager.descriptor); 2161ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith performIdleMaintenance(); 2162ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith reply.writeNoException(); 2163ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith return true; 2164ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith } 2165ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith 2166ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith case CREATE_ACTIVITY_CONTAINER_TRANSACTION: { 2167ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith data.enforceInterface(IActivityManager.descriptor); 2168ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith IBinder parentActivityToken = data.readStrongBinder(); 2169ef8225444452a1486bd721f3285301fe84643b00Stephen Hines IActivityContainerCallback callback = 2170ef8225444452a1486bd721f3285301fe84643b00Stephen Hines IActivityContainerCallback.Stub.asInterface(data.readStrongBinder()); 2171ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith IActivityContainer activityContainer = 2172ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith createActivityContainer(parentActivityToken, callback); 2173ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith reply.writeNoException(); 2174ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith if (activityContainer != null) { 2175ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith reply.writeInt(1); 2176ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith reply.writeStrongBinder(activityContainer.asBinder()); 2177b219cfc4d75f0a03630b7c4509ef791b7e97b2c8David Blaikie } else { 2178ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith reply.writeInt(0); 2179ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith } 2180ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith return true; 2181e50b01531afcb4afc40d27720afa09613ddcdfa2Ted Kremenek } 2182ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith 2183ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith case DELETE_ACTIVITY_CONTAINER_TRANSACTION: { 2184ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith data.enforceInterface(IActivityManager.descriptor); 2185ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith IActivityContainer activityContainer = 2186ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith IActivityContainer.Stub.asInterface(data.readStrongBinder()); 2187ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith deleteActivityContainer(activityContainer); 2188ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith reply.writeNoException(); 2189ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith return true; 2190ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith } 21916bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines 21926bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines case GET_ACTIVITY_CONTAINER_TRANSACTION: { 2193e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer data.enforceInterface(IActivityManager.descriptor); 2194e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer IBinder activityToken = data.readStrongBinder(); 2195e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer IActivityContainer activityContainer = getEnclosingActivityContainer(activityToken); 2196e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer reply.writeNoException(); 2197e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer if (activityContainer != null) { 2198e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer reply.writeInt(1); 2199e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer reply.writeStrongBinder(activityContainer.asBinder()); 22008b533d97e0683a0c87096b95927a2e9ce02243d4Richard Smith } else { 2201e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer reply.writeInt(0); 2202f18e6e87c2fa41c2a891463483603d770a1e58a7Richard Trieu } 2203f18e6e87c2fa41c2a891463483603d770a1e58a7Richard Trieu return true; 2204f18e6e87c2fa41c2a891463483603d770a1e58a7Richard Trieu } 2205f18e6e87c2fa41c2a891463483603d770a1e58a7Richard Trieu 2206f18e6e87c2fa41c2a891463483603d770a1e58a7Richard Trieu case GET_HOME_ACTIVITY_TOKEN_TRANSACTION: { 2207f18e6e87c2fa41c2a891463483603d770a1e58a7Richard Trieu data.enforceInterface(IActivityManager.descriptor); 2208f18e6e87c2fa41c2a891463483603d770a1e58a7Richard Trieu IBinder homeActivityToken = getHomeActivityToken(); 2209f18e6e87c2fa41c2a891463483603d770a1e58a7Richard Trieu reply.writeNoException(); 2210f18e6e87c2fa41c2a891463483603d770a1e58a7Richard Trieu reply.writeStrongBinder(homeActivityToken); 2211f18e6e87c2fa41c2a891463483603d770a1e58a7Richard Trieu return true; 2212f18e6e87c2fa41c2a891463483603d770a1e58a7Richard Trieu } 2213f18e6e87c2fa41c2a891463483603d770a1e58a7Richard Trieu 2214f18e6e87c2fa41c2a891463483603d770a1e58a7Richard Trieu case START_LOCK_TASK_BY_TASK_ID_TRANSACTION: { 2215f18e6e87c2fa41c2a891463483603d770a1e58a7Richard Trieu data.enforceInterface(IActivityManager.descriptor); 2216f18e6e87c2fa41c2a891463483603d770a1e58a7Richard Trieu final int taskId = data.readInt(); 2217f18e6e87c2fa41c2a891463483603d770a1e58a7Richard Trieu startLockTaskMode(taskId); 2218f18e6e87c2fa41c2a891463483603d770a1e58a7Richard Trieu reply.writeNoException(); 2219e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer return true; 2220e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer } 2221e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer 2222e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer case START_LOCK_TASK_BY_TOKEN_TRANSACTION: { 22238b533d97e0683a0c87096b95927a2e9ce02243d4Richard Smith data.enforceInterface(IActivityManager.descriptor); 2224e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer IBinder token = data.readStrongBinder(); 2225ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith startLockTaskMode(token); 2226ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith reply.writeNoException(); 2227e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer return true; 2228e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer } 22298b533d97e0683a0c87096b95927a2e9ce02243d4Richard Smith 2230e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer case START_LOCK_TASK_BY_CURRENT_TRANSACTION: { 2231e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer data.enforceInterface(IActivityManager.descriptor); 2232d36aa359e2f45cd22c7366a015ad94de08044dbbNico Weber startLockTaskModeOnCurrent(); 2233e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer reply.writeNoException(); 2234e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer return true; 2235e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer } 2236ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith 2237ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith case STOP_LOCK_TASK_MODE_TRANSACTION: { 2238ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith data.enforceInterface(IActivityManager.descriptor); 2239e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer stopLockTaskMode(); 2240e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer reply.writeNoException(); 2241e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer return true; 2242e1715b66a878bcab315513351e5df68bfc010d2eSam Panzer } 2243ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith 2244ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith case STOP_LOCK_TASK_BY_CURRENT_TRANSACTION: { 2245ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith data.enforceInterface(IActivityManager.descriptor); 2246ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith stopLockTaskModeOnCurrent(); 2247ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith reply.writeNoException(); 2248ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith return true; 2249ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith } 2250ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith 2251ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith case IS_IN_LOCK_TASK_MODE_TRANSACTION: { 2252ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith data.enforceInterface(IActivityManager.descriptor); 2253ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith final boolean isInLockTaskMode = isInLockTaskMode(); 2254ef8225444452a1486bd721f3285301fe84643b00Stephen Hines reply.writeNoException(); 22554549d7ffc15bdd7ab860aa68db089d9f559b79e7Rafael Espindola reply.writeInt(isInLockTaskMode ? 1 : 0); 2256ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith return true; 2257ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith } 2258e50b01531afcb4afc40d27720afa09613ddcdfa2Ted Kremenek 2259e50b01531afcb4afc40d27720afa09613ddcdfa2Ted Kremenek case SET_TASK_DESCRIPTION_TRANSACTION: { 2260ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith data.enforceInterface(IActivityManager.descriptor); 2261e50b01531afcb4afc40d27720afa09613ddcdfa2Ted Kremenek IBinder token = data.readStrongBinder(); 2262e50b01531afcb4afc40d27720afa09613ddcdfa2Ted Kremenek ActivityManager.TaskDescription values = 2263e50b01531afcb4afc40d27720afa09613ddcdfa2Ted Kremenek ActivityManager.TaskDescription.CREATOR.createFromParcel(data); 2264ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith setTaskDescription(token, values); 2265ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith reply.writeNoException(); 2266e50b01531afcb4afc40d27720afa09613ddcdfa2Ted Kremenek return true; 2267e50b01531afcb4afc40d27720afa09613ddcdfa2Ted Kremenek } 2268ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith 2269ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith case GET_TASK_DESCRIPTION_ICON_TRANSACTION: { 2270ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith data.enforceInterface(IActivityManager.descriptor); 2271ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith String filename = data.readString(); 2272ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith Bitmap icon = getTaskDescriptionIcon(filename); 2273ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith reply.writeNoException(); 2274ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith if (icon == null) { 22758123b6e7838216a53ba050f07e36fee28e1bbdafSam Panzer reply.writeInt(0); 22768123b6e7838216a53ba050f07e36fee28e1bbdafSam Panzer } else { 2277ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith reply.writeInt(1); 2278ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith icon.writeToParcel(reply, 0); 2279ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith } 2280ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith return true; 2281ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith } 2282ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith 2283ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith case REQUEST_VISIBLE_BEHIND_TRANSACTION: { 2284e50b01531afcb4afc40d27720afa09613ddcdfa2Ted Kremenek data.enforceInterface(IActivityManager.descriptor); 2285e50b01531afcb4afc40d27720afa09613ddcdfa2Ted Kremenek IBinder token = data.readStrongBinder(); 2286e50b01531afcb4afc40d27720afa09613ddcdfa2Ted Kremenek boolean enable = data.readInt() > 0; 2287e50b01531afcb4afc40d27720afa09613ddcdfa2Ted Kremenek boolean success = requestVisibleBehind(token, enable); 2288e50b01531afcb4afc40d27720afa09613ddcdfa2Ted Kremenek reply.writeNoException(); 2289ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith reply.writeInt(success ? 1 : 0); 2290ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith return true; 2291ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith } 22928123b6e7838216a53ba050f07e36fee28e1bbdafSam Panzer 22938123b6e7838216a53ba050f07e36fee28e1bbdafSam Panzer case IS_BACKGROUND_VISIBLE_BEHIND_TRANSACTION: { 2294ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith data.enforceInterface(IActivityManager.descriptor); 2295ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith IBinder token = data.readStrongBinder(); 2296ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith final boolean enabled = isBackgroundVisibleBehind(token); 2297ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith reply.writeNoException(); 2298ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith reply.writeInt(enabled ? 1 : 0); 2299e50b01531afcb4afc40d27720afa09613ddcdfa2Ted Kremenek return true; 2300e50b01531afcb4afc40d27720afa09613ddcdfa2Ted Kremenek } 2301e50b01531afcb4afc40d27720afa09613ddcdfa2Ted Kremenek 2302e50b01531afcb4afc40d27720afa09613ddcdfa2Ted Kremenek case BACKGROUND_RESOURCES_RELEASED_TRANSACTION: { 2303e50b01531afcb4afc40d27720afa09613ddcdfa2Ted Kremenek data.enforceInterface(IActivityManager.descriptor); 2304ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith IBinder token = data.readStrongBinder(); 2305ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith backgroundResourcesReleased(token); 23068123b6e7838216a53ba050f07e36fee28e1bbdafSam Panzer reply.writeNoException(); 23078123b6e7838216a53ba050f07e36fee28e1bbdafSam Panzer return true; 2308ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith } 2309ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith 2310ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith case NOTIFY_LAUNCH_TASK_BEHIND_COMPLETE_TRANSACTION: { 2311ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith data.enforceInterface(IActivityManager.descriptor); 23128b533d97e0683a0c87096b95927a2e9ce02243d4Richard Smith IBinder token = data.readStrongBinder(); 23138b533d97e0683a0c87096b95927a2e9ce02243d4Richard Smith notifyLaunchTaskBehindComplete(token); 23148b533d97e0683a0c87096b95927a2e9ce02243d4Richard Smith reply.writeNoException(); 2315ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith return true; 2316ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith } 2317ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith 2318ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith case NOTIFY_ENTER_ANIMATION_COMPLETE_TRANSACTION: { 2319ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith data.enforceInterface(IActivityManager.descriptor); 2320ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith IBinder token = data.readStrongBinder(); 2321ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith notifyEnterAnimationComplete(token); 23228b533d97e0683a0c87096b95927a2e9ce02243d4Richard Smith reply.writeNoException(); 23238b533d97e0683a0c87096b95927a2e9ce02243d4Richard Smith return true; 23248b533d97e0683a0c87096b95927a2e9ce02243d4Richard Smith } 23258b533d97e0683a0c87096b95927a2e9ce02243d4Richard Smith 23268b533d97e0683a0c87096b95927a2e9ce02243d4Richard Smith case BOOT_ANIMATION_COMPLETE_TRANSACTION: { 2327ef8225444452a1486bd721f3285301fe84643b00Stephen Hines data.enforceInterface(IActivityManager.descriptor); 2328ef8225444452a1486bd721f3285301fe84643b00Stephen Hines bootAnimationComplete(); 2329ef8225444452a1486bd721f3285301fe84643b00Stephen Hines reply.writeNoException(); 2330ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith return true; 2331ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith } 23321093f4928a4263d08b44d96e468a42515d8a28f3Chad Rosier } 2333a1eec4bd198b96ef40a7c15cd0e131ca94511ad8Fariborz Jahanian 2334a1eec4bd198b96ef40a7c15cd0e131ca94511ad8Fariborz Jahanian return super.onTransact(code, data, reply, flags); 2335a1eec4bd198b96ef40a7c15cd0e131ca94511ad8Fariborz Jahanian } 2336a1eec4bd198b96ef40a7c15cd0e131ca94511ad8Fariborz Jahanian 2337a1eec4bd198b96ef40a7c15cd0e131ca94511ad8Fariborz Jahanian public IBinder asBinder() { 23381093f4928a4263d08b44d96e468a42515d8a28f3Chad Rosier return this; 2339a1eec4bd198b96ef40a7c15cd0e131ca94511ad8Fariborz Jahanian } 2340a1eec4bd198b96ef40a7c15cd0e131ca94511ad8Fariborz Jahanian 2341a1eec4bd198b96ef40a7c15cd0e131ca94511ad8Fariborz Jahanian private static final Singleton<IActivityManager> gDefault = new Singleton<IActivityManager>() { 2342a1eec4bd198b96ef40a7c15cd0e131ca94511ad8Fariborz Jahanian protected IActivityManager create() { 2343ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith IBinder b = ServiceManager.getService("activity"); 2344ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith if (false) { 2345ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith Log.v("ActivityManager", "default service binder = " + b); 2346ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith } 2347ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith IActivityManager am = asInterface(b); 2348ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith if (false) { 2349ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith Log.v("ActivityManager", "default service = " + am); 2350ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith } 23514d3db4eb6caa49a7cdbfe1798728ce4b23cd0b53Fariborz Jahanian return am; 23524d3db4eb6caa49a7cdbfe1798728ce4b23cd0b53Fariborz Jahanian } 23531093f4928a4263d08b44d96e468a42515d8a28f3Chad Rosier }; 2354625bb569df0c34feec0d52c0ec5215f21ef2e054Dmitri Gribenko} 2355625bb569df0c34feec0d52c0ec5215f21ef2e054Dmitri Gribenko 2356625bb569df0c34feec0d52c0ec5215f21ef2e054Dmitri Gribenkoclass ActivityManagerProxy implements IActivityManager 2357625bb569df0c34feec0d52c0ec5215f21ef2e054Dmitri Gribenko{ 2358625bb569df0c34feec0d52c0ec5215f21ef2e054Dmitri Gribenko public ActivityManagerProxy(IBinder remote) 2359625bb569df0c34feec0d52c0ec5215f21ef2e054Dmitri Gribenko { 2360ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith mRemote = remote; 2361ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith } 2362ad762fcdc16b9e4705b12b09d92b8c026212b906Richard Smith 236357ad37823e198f977cac605dbfbaefb4daf325e9Chris Lattner public IBinder asBinder() 236457ad37823e198f977cac605dbfbaefb4daf325e9Chris Lattner { 236557ad37823e198f977cac605dbfbaefb4daf325e9Chris Lattner return mRemote; 236657ad37823e198f977cac605dbfbaefb4daf325e9Chris Lattner } 236786164e8f51fa89a3ec904607c3848dc4a21b12cfEli Friedman 2368ef8225444452a1486bd721f3285301fe84643b00Stephen Hines public int startActivity(IApplicationThread caller, String callingPackage, Intent intent, 23695f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer String resolvedType, IBinder resultTo, String resultWho, int requestCode, 23705f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer int startFlags, ProfilerInfo profilerInfo, Bundle options) throws RemoteException { 237160d7b3a319d84d688752be3870615ac0f111fb16John McCall Parcel data = Parcel.obtain(); 2372ad56d684259f706b7c0ae5ad9c23adb4f2926817Chris Lattner Parcel reply = Parcel.obtain(); 23739ae2f076ca5ab1feb3ba95629099ec2319833701John McCall data.writeInterfaceToken(IActivityManager.descriptor); 2374bbf462314b1dc8e422b7c4dd4cac47e566aedf6dEli Friedman data.writeStrongBinder(caller != null ? caller.asBinder() : null); 23755f1b9e689fa5c101512aef99225f2afea1673449Douglas Gregor data.writeString(callingPackage); 23765f1b9e689fa5c101512aef99225f2afea1673449Douglas Gregor intent.writeToParcel(data, 0); 23772877998bd8db2fac1c56430a4edcfa0ce138aff9Chandler Carruth data.writeString(resolvedType); 2378ef8225444452a1486bd721f3285301fe84643b00Stephen Hines data.writeStrongBinder(resultTo); 23795f1b9e689fa5c101512aef99225f2afea1673449Douglas Gregor data.writeString(resultWho); 2380429bb276991ff2dbc7c5b438828b9b7737cb15ebJohn Wiegley data.writeInt(requestCode); 2381429bb276991ff2dbc7c5b438828b9b7737cb15ebJohn Wiegley data.writeInt(startFlags); 2382429bb276991ff2dbc7c5b438828b9b7737cb15ebJohn Wiegley if (profilerInfo != null) { 2383ef8225444452a1486bd721f3285301fe84643b00Stephen Hines data.writeInt(1); 23842877998bd8db2fac1c56430a4edcfa0ce138aff9Chandler Carruth profilerInfo.writeToParcel(data, Parcelable.PARCELABLE_WRITE_RETURN_VALUE); 23855f1b9e689fa5c101512aef99225f2afea1673449Douglas Gregor } else { 23865f1b9e689fa5c101512aef99225f2afea1673449Douglas Gregor data.writeInt(0); 2387b60a77e453d32db0ab1914d28e175c2defc0eb65John McCall } 2388419563768ef4929a622d7c2b066856e82901bb91Richard Smith if (options != null) { 2389419563768ef4929a622d7c2b066856e82901bb91Richard Smith data.writeInt(1); 2390419563768ef4929a622d7c2b066856e82901bb91Richard Smith options.writeToParcel(data, 0); 2391ef8225444452a1486bd721f3285301fe84643b00Stephen Hines } else { 2392419563768ef4929a622d7c2b066856e82901bb91Richard Smith data.writeInt(0); 2393781472fe99a120098c631b0cbe33c89f8cef5e70John McCall } 2394b60a77e453d32db0ab1914d28e175c2defc0eb65John McCall mRemote.transact(START_ACTIVITY_TRANSACTION, data, reply, 0); 2395ef8225444452a1486bd721f3285301fe84643b00Stephen Hines reply.readException(); 23965f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer int result = reply.readInt(); 23975f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer reply.recycle(); 239860d7b3a319d84d688752be3870615ac0f111fb16John McCall data.recycle(); 23991b273c403734d343d720acb28f04011807c8aa56Steve Naroff return result; 24005f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer } 24015f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer 24025f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer public int startActivityAsUser(IApplicationThread caller, String callingPackage, Intent intent, 24034cffe2fd5c23168bc08f0453c684cbd3f79471d3Sebastian Redl String resolvedType, IBinder resultTo, String resultWho, int requestCode, 24045f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer int startFlags, ProfilerInfo profilerInfo, Bundle options, 24054cffe2fd5c23168bc08f0453c684cbd3f79471d3Sebastian Redl int userId) throws RemoteException { 2406ef8225444452a1486bd721f3285301fe84643b00Stephen Hines Parcel data = Parcel.obtain(); 24075f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer Parcel reply = Parcel.obtain(); 24085f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer data.writeInterfaceToken(IActivityManager.descriptor); 240960d7b3a319d84d688752be3870615ac0f111fb16John McCall data.writeStrongBinder(caller != null ? caller.asBinder() : null); 24101b273c403734d343d720acb28f04011807c8aa56Steve Naroff data.writeString(callingPackage); 24115f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer intent.writeToParcel(data, 0); 24125f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer data.writeString(resolvedType); 24135f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer data.writeStrongBinder(resultTo); 24144cffe2fd5c23168bc08f0453c684cbd3f79471d3Sebastian Redl data.writeString(resultWho); 24155f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer data.writeInt(requestCode); 2416ef8225444452a1486bd721f3285301fe84643b00Stephen Hines data.writeInt(startFlags); 2417ef8225444452a1486bd721f3285301fe84643b00Stephen Hines if (profilerInfo != null) { 2418ef8225444452a1486bd721f3285301fe84643b00Stephen Hines data.writeInt(1); 24194cffe2fd5c23168bc08f0453c684cbd3f79471d3Sebastian Redl profilerInfo.writeToParcel(data, Parcelable.PARCELABLE_WRITE_RETURN_VALUE); 2420ef8225444452a1486bd721f3285301fe84643b00Stephen Hines } else { 24215f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer data.writeInt(0); 24225f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer } 2423dfbb02a16ac8c764b5ba1742450513d6212d2f9fNAKAMURA Takumi if (options != null) { 2424f5d8f466c3eebaffc51468812bdcbe7f0fe4891aDouglas Gregor data.writeInt(1); 24255077c3876beeaed32280af88244e8050078619a8Douglas Gregor options.writeToParcel(data, 0); 2426f5d8f466c3eebaffc51468812bdcbe7f0fe4891aDouglas Gregor } else { 2427f5d8f466c3eebaffc51468812bdcbe7f0fe4891aDouglas Gregor data.writeInt(0); 2428f5d8f466c3eebaffc51468812bdcbe7f0fe4891aDouglas Gregor } 2429f5d8f466c3eebaffc51468812bdcbe7f0fe4891aDouglas Gregor data.writeInt(userId); 24305077c3876beeaed32280af88244e8050078619a8Douglas Gregor mRemote.transact(START_ACTIVITY_AS_USER_TRANSACTION, data, reply, 0); 2431f5d8f466c3eebaffc51468812bdcbe7f0fe4891aDouglas Gregor reply.readException(); 2432f5d8f466c3eebaffc51468812bdcbe7f0fe4891aDouglas Gregor int result = reply.readInt(); 24335077c3876beeaed32280af88244e8050078619a8Douglas Gregor reply.recycle(); 24344926d832aa2f0af9d7c00633727d49e7967eb978Douglas Gregor data.recycle(); 24354926d832aa2f0af9d7c00633727d49e7967eb978Douglas Gregor return result; 24364926d832aa2f0af9d7c00633727d49e7967eb978Douglas Gregor } 24374926d832aa2f0af9d7c00633727d49e7967eb978Douglas Gregor public int startActivityAsCaller(IApplicationThread caller, String callingPackage, 24385077c3876beeaed32280af88244e8050078619a8Douglas Gregor Intent intent, String resolvedType, IBinder resultTo, String resultWho, int requestCode, 24395077c3876beeaed32280af88244e8050078619a8Douglas Gregor int startFlags, ProfilerInfo profilerInfo, Bundle options, int userId) throws RemoteException { 24405077c3876beeaed32280af88244e8050078619a8Douglas Gregor Parcel data = Parcel.obtain(); 24416bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines Parcel reply = Parcel.obtain(); 24426bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines data.writeInterfaceToken(IActivityManager.descriptor); 24436bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines data.writeStrongBinder(caller != null ? caller.asBinder() : null); 24446bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines data.writeString(callingPackage); 24456bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines intent.writeToParcel(data, 0); 24466bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines data.writeString(resolvedType); 24476bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines data.writeStrongBinder(resultTo); 24486bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines data.writeString(resultWho); 24496bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines data.writeInt(requestCode); 24506bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines data.writeInt(startFlags); 24516bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines if (profilerInfo != null) { 24526bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines data.writeInt(1); 24536bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines profilerInfo.writeToParcel(data, Parcelable.PARCELABLE_WRITE_RETURN_VALUE); 24546bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines } else { 24556bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines data.writeInt(0); 24566bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines } 24576bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines if (options != null) { 24586bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines data.writeInt(1); 24596bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines options.writeToParcel(data, 0); 24606bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines } else { 24616bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines data.writeInt(0); 24626bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines } 24636bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines data.writeInt(userId); 24643c9034cb7ff1d6c1e4ecd1b44c98f553df013c7cDouglas Gregor mRemote.transact(START_ACTIVITY_AS_CALLER_TRANSACTION, data, reply, 0); 24653c9034cb7ff1d6c1e4ecd1b44c98f553df013c7cDouglas Gregor reply.readException(); 24666bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines int result = reply.readInt(); 2467f5d8f466c3eebaffc51468812bdcbe7f0fe4891aDouglas Gregor reply.recycle(); 24686bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines data.recycle(); 2469f5d8f466c3eebaffc51468812bdcbe7f0fe4891aDouglas Gregor return result; 24706bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines } 24716bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines public WaitResult startActivityAndWait(IApplicationThread caller, String callingPackage, 24726bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines Intent intent, String resolvedType, IBinder resultTo, String resultWho, 2473f5d8f466c3eebaffc51468812bdcbe7f0fe4891aDouglas Gregor int requestCode, int startFlags, ProfilerInfo profilerInfo, Bundle options, 2474dfbb02a16ac8c764b5ba1742450513d6212d2f9fNAKAMURA Takumi int userId) throws RemoteException { 24751cd76e8ca8f890a4defadcae3372c025ebe7607cJohn McCall Parcel data = Parcel.obtain(); 24761cd76e8ca8f890a4defadcae3372c025ebe7607cJohn McCall Parcel reply = Parcel.obtain(); 24771cd76e8ca8f890a4defadcae3372c025ebe7607cJohn McCall data.writeInterfaceToken(IActivityManager.descriptor); 24786bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines data.writeStrongBinder(caller != null ? caller.asBinder() : null); 24796bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines data.writeString(callingPackage); 24801cd76e8ca8f890a4defadcae3372c025ebe7607cJohn McCall intent.writeToParcel(data, 0); 24811cd76e8ca8f890a4defadcae3372c025ebe7607cJohn McCall data.writeString(resolvedType); 24826bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines data.writeStrongBinder(resultTo); 24831cd76e8ca8f890a4defadcae3372c025ebe7607cJohn McCall data.writeString(resultWho); 24841cd76e8ca8f890a4defadcae3372c025ebe7607cJohn McCall data.writeInt(requestCode); 24856bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines data.writeInt(startFlags); 24861cd76e8ca8f890a4defadcae3372c025ebe7607cJohn McCall if (profilerInfo != null) { 24871cd76e8ca8f890a4defadcae3372c025ebe7607cJohn McCall data.writeInt(1); 24886bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines profilerInfo.writeToParcel(data, Parcelable.PARCELABLE_WRITE_RETURN_VALUE); 24891cd76e8ca8f890a4defadcae3372c025ebe7607cJohn McCall } else { 24901cd76e8ca8f890a4defadcae3372c025ebe7607cJohn McCall data.writeInt(0); 24911cd76e8ca8f890a4defadcae3372c025ebe7607cJohn McCall } 24926bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines if (options != null) { 24931cd76e8ca8f890a4defadcae3372c025ebe7607cJohn McCall data.writeInt(1); 24946bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines options.writeToParcel(data, 0); 2495dfbb02a16ac8c764b5ba1742450513d6212d2f9fNAKAMURA Takumi } else { 24966bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines data.writeInt(0); 24973c9034cb7ff1d6c1e4ecd1b44c98f553df013c7cDouglas Gregor } 24983c9034cb7ff1d6c1e4ecd1b44c98f553df013c7cDouglas Gregor data.writeInt(userId); 249907f402cff25354c5f06f307f19b0c57c09d964bdDouglas Gregor mRemote.transact(START_ACTIVITY_AND_WAIT_TRANSACTION, data, reply, 0); 250007f402cff25354c5f06f307f19b0c57c09d964bdDouglas Gregor reply.readException(); 2501cc15f010672a13b38104a32e3cefc7adc07ffbf7Douglas Gregor WaitResult result = WaitResult.CREATOR.createFromParcel(reply); 2502cc15f010672a13b38104a32e3cefc7adc07ffbf7Douglas Gregor reply.recycle(); 2503cc15f010672a13b38104a32e3cefc7adc07ffbf7Douglas Gregor data.recycle(); 2504cc15f010672a13b38104a32e3cefc7adc07ffbf7Douglas Gregor return result; 2505dfbb02a16ac8c764b5ba1742450513d6212d2f9fNAKAMURA Takumi } 250607f402cff25354c5f06f307f19b0c57c09d964bdDouglas Gregor public int startActivityWithConfig(IApplicationThread caller, String callingPackage, 250707f402cff25354c5f06f307f19b0c57c09d964bdDouglas Gregor Intent intent, String resolvedType, IBinder resultTo, String resultWho, 250807f402cff25354c5f06f307f19b0c57c09d964bdDouglas Gregor int requestCode, int startFlags, Configuration config, 2509bca01b46850f867b2f4137f25c882022b58f8471Douglas Gregor Bundle options, int userId) throws RemoteException { 2510bca01b46850f867b2f4137f25c882022b58f8471Douglas Gregor Parcel data = Parcel.obtain(); 2511cc15f010672a13b38104a32e3cefc7adc07ffbf7Douglas Gregor Parcel reply = Parcel.obtain(); 2512dfbb02a16ac8c764b5ba1742450513d6212d2f9fNAKAMURA Takumi data.writeInterfaceToken(IActivityManager.descriptor); 2513dfbb02a16ac8c764b5ba1742450513d6212d2f9fNAKAMURA Takumi data.writeStrongBinder(caller != null ? caller.asBinder() : null); 2514dfbb02a16ac8c764b5ba1742450513d6212d2f9fNAKAMURA Takumi data.writeString(callingPackage); 2515cc15f010672a13b38104a32e3cefc7adc07ffbf7Douglas Gregor intent.writeToParcel(data, 0); 2516cc15f010672a13b38104a32e3cefc7adc07ffbf7Douglas Gregor data.writeString(resolvedType); 2517cc15f010672a13b38104a32e3cefc7adc07ffbf7Douglas Gregor data.writeStrongBinder(resultTo); 2518bca01b46850f867b2f4137f25c882022b58f8471Douglas Gregor data.writeString(resultWho); 2519bca01b46850f867b2f4137f25c882022b58f8471Douglas Gregor data.writeInt(requestCode); 2520dfbb02a16ac8c764b5ba1742450513d6212d2f9fNAKAMURA Takumi data.writeInt(startFlags); 2521dbbecccb8431bb4545fc01c6401abc4253667360Richard Smith config.writeToParcel(data, 0); 2522dfbb02a16ac8c764b5ba1742450513d6212d2f9fNAKAMURA Takumi if (options != null) { 2523cc15f010672a13b38104a32e3cefc7adc07ffbf7Douglas Gregor data.writeInt(1); 2524dfbb02a16ac8c764b5ba1742450513d6212d2f9fNAKAMURA Takumi options.writeToParcel(data, 0); 252507f402cff25354c5f06f307f19b0c57c09d964bdDouglas Gregor } else { 252607f402cff25354c5f06f307f19b0c57c09d964bdDouglas Gregor data.writeInt(0); 25271f78a50f8aee58f8e07f6307f4b8d0b1742e9a2bDmitri Gribenko } 2528dfbb02a16ac8c764b5ba1742450513d6212d2f9fNAKAMURA Takumi data.writeInt(userId); 2529dfbb02a16ac8c764b5ba1742450513d6212d2f9fNAKAMURA Takumi mRemote.transact(START_ACTIVITY_TRANSACTION, data, reply, 0); 2530cc15f010672a13b38104a32e3cefc7adc07ffbf7Douglas Gregor reply.readException(); 25310099530a2288df7c2140dd8992b7310b9f6930a9NAKAMURA Takumi int result = reply.readInt(); 2532cc15f010672a13b38104a32e3cefc7adc07ffbf7Douglas Gregor reply.recycle(); 2533383616cd2e61131a534afd9364ef53f643e1f834Sebastian Redl data.recycle(); 2534cc15f010672a13b38104a32e3cefc7adc07ffbf7Douglas Gregor return result; 2535cc15f010672a13b38104a32e3cefc7adc07ffbf7Douglas Gregor } 2536cc15f010672a13b38104a32e3cefc7adc07ffbf7Douglas Gregor public int startActivityIntentSender(IApplicationThread caller, 2537383616cd2e61131a534afd9364ef53f643e1f834Sebastian Redl IntentSender intent, Intent fillInIntent, String resolvedType, 2538cc15f010672a13b38104a32e3cefc7adc07ffbf7Douglas Gregor IBinder resultTo, String resultWho, int requestCode, 2539dfbb02a16ac8c764b5ba1742450513d6212d2f9fNAKAMURA Takumi int flagsMask, int flagsValues, Bundle options) throws RemoteException { 2540dfbb02a16ac8c764b5ba1742450513d6212d2f9fNAKAMURA Takumi Parcel data = Parcel.obtain(); 2541cc15f010672a13b38104a32e3cefc7adc07ffbf7Douglas Gregor Parcel reply = Parcel.obtain(); 2542dfbb02a16ac8c764b5ba1742450513d6212d2f9fNAKAMURA Takumi data.writeInterfaceToken(IActivityManager.descriptor); 2543cc15f010672a13b38104a32e3cefc7adc07ffbf7Douglas Gregor data.writeStrongBinder(caller != null ? caller.asBinder() : null); 254407f402cff25354c5f06f307f19b0c57c09d964bdDouglas Gregor intent.writeToParcel(data, 0); 254507f402cff25354c5f06f307f19b0c57c09d964bdDouglas Gregor if (fillInIntent != null) { 2546dfbb02a16ac8c764b5ba1742450513d6212d2f9fNAKAMURA Takumi data.writeInt(1); 2547cc15f010672a13b38104a32e3cefc7adc07ffbf7Douglas Gregor fillInIntent.writeToParcel(data, 0); 2548dfbb02a16ac8c764b5ba1742450513d6212d2f9fNAKAMURA Takumi } else { 254907f402cff25354c5f06f307f19b0c57c09d964bdDouglas Gregor data.writeInt(0); 255007f402cff25354c5f06f307f19b0c57c09d964bdDouglas Gregor } 2551cc15f010672a13b38104a32e3cefc7adc07ffbf7Douglas Gregor data.writeString(resolvedType); 2552dfbb02a16ac8c764b5ba1742450513d6212d2f9fNAKAMURA Takumi data.writeStrongBinder(resultTo); 2553cc15f010672a13b38104a32e3cefc7adc07ffbf7Douglas Gregor data.writeString(resultWho); 2554cc15f010672a13b38104a32e3cefc7adc07ffbf7Douglas Gregor data.writeInt(requestCode); 255507f402cff25354c5f06f307f19b0c57c09d964bdDouglas Gregor data.writeInt(flagsMask); 25566bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines data.writeInt(flagsValues); 2557dfbb02a16ac8c764b5ba1742450513d6212d2f9fNAKAMURA Takumi if (options != null) { 2558cc15f010672a13b38104a32e3cefc7adc07ffbf7Douglas Gregor data.writeInt(1); 2559cc15f010672a13b38104a32e3cefc7adc07ffbf7Douglas Gregor options.writeToParcel(data, 0); 25601f78a50f8aee58f8e07f6307f4b8d0b1742e9a2bDmitri Gribenko } else { 2561cc15f010672a13b38104a32e3cefc7adc07ffbf7Douglas Gregor data.writeInt(0); 2562cc15f010672a13b38104a32e3cefc7adc07ffbf7Douglas Gregor } 2563cc15f010672a13b38104a32e3cefc7adc07ffbf7Douglas Gregor mRemote.transact(START_ACTIVITY_INTENT_SENDER_TRANSACTION, data, reply, 0); 2564dfbb02a16ac8c764b5ba1742450513d6212d2f9fNAKAMURA Takumi reply.readException(); 2565cc15f010672a13b38104a32e3cefc7adc07ffbf7Douglas Gregor int result = reply.readInt(); 2566dfbb02a16ac8c764b5ba1742450513d6212d2f9fNAKAMURA Takumi reply.recycle(); 2567cc15f010672a13b38104a32e3cefc7adc07ffbf7Douglas Gregor data.recycle(); 2568cc15f010672a13b38104a32e3cefc7adc07ffbf7Douglas Gregor return result; 256907f402cff25354c5f06f307f19b0c57c09d964bdDouglas Gregor } 2570dfbb02a16ac8c764b5ba1742450513d6212d2f9fNAKAMURA Takumi public int startVoiceActivity(String callingPackage, int callingPid, int callingUid, 2571cc15f010672a13b38104a32e3cefc7adc07ffbf7Douglas Gregor Intent intent, String resolvedType, IVoiceInteractionSession session, 2572cc15f010672a13b38104a32e3cefc7adc07ffbf7Douglas Gregor IVoiceInteractor interactor, int startFlags, ProfilerInfo profilerInfo, 2573cc15f010672a13b38104a32e3cefc7adc07ffbf7Douglas Gregor Bundle options, int userId) throws RemoteException { 257441d0958281627882fbe2049fb887d741eabd3fe3Richard Smith Parcel data = Parcel.obtain(); 257541d0958281627882fbe2049fb887d741eabd3fe3Richard Smith Parcel reply = Parcel.obtain(); 257641d0958281627882fbe2049fb887d741eabd3fe3Richard Smith data.writeInterfaceToken(IActivityManager.descriptor); 257741d0958281627882fbe2049fb887d741eabd3fe3Richard Smith data.writeString(callingPackage); 257841d0958281627882fbe2049fb887d741eabd3fe3Richard Smith data.writeInt(callingPid); 2579651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines data.writeInt(callingUid); 258041d0958281627882fbe2049fb887d741eabd3fe3Richard Smith intent.writeToParcel(data, 0); 258141d0958281627882fbe2049fb887d741eabd3fe3Richard Smith data.writeString(resolvedType); 258284b007fae6c0cd30fa07074d34fbe2bf61fa44f9Eli Friedman data.writeStrongBinder(session.asBinder()); 258384b007fae6c0cd30fa07074d34fbe2bf61fa44f9Eli Friedman data.writeStrongBinder(interactor.asBinder()); 25844eb206bebcdab28ababe8df55c6185cec2cdc071Steve Naroff data.writeInt(startFlags); 258560d7b3a319d84d688752be3870615ac0f111fb16John McCall if (profilerInfo != null) { 258684b007fae6c0cd30fa07074d34fbe2bf61fa44f9Eli Friedman data.writeInt(1); 258784b007fae6c0cd30fa07074d34fbe2bf61fa44f9Eli Friedman profilerInfo.writeToParcel(data, Parcelable.PARCELABLE_WRITE_RETURN_VALUE); 2588f45c2992a3aac7591310cd824b7c7319afd432fcRichard Smith } else { 258984b007fae6c0cd30fa07074d34fbe2bf61fa44f9Eli Friedman data.writeInt(0); 25907dd900ed308506f9cf1cb72c70db1652f94cab37Jordan Rose } 259141d0958281627882fbe2049fb887d741eabd3fe3Richard Smith if (options != null) { 259241d0958281627882fbe2049fb887d741eabd3fe3Richard Smith data.writeInt(1); 259341d0958281627882fbe2049fb887d741eabd3fe3Richard Smith options.writeToParcel(data, 0); 259441d0958281627882fbe2049fb887d741eabd3fe3Richard Smith } else { 259541d0958281627882fbe2049fb887d741eabd3fe3Richard Smith data.writeInt(0); 259641d0958281627882fbe2049fb887d741eabd3fe3Richard Smith } 259741d0958281627882fbe2049fb887d741eabd3fe3Richard Smith data.writeInt(userId); 2598651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines mRemote.transact(START_VOICE_ACTIVITY_TRANSACTION, data, reply, 0); 2599152b4e4652baedfceba1cd8115515629225e713fManuel Klimek reply.readException(); 260041d0958281627882fbe2049fb887d741eabd3fe3Richard Smith int result = reply.readInt(); 260141d0958281627882fbe2049fb887d741eabd3fe3Richard Smith reply.recycle(); 260241d0958281627882fbe2049fb887d741eabd3fe3Richard Smith data.recycle(); 260341d0958281627882fbe2049fb887d741eabd3fe3Richard Smith return result; 260441d0958281627882fbe2049fb887d741eabd3fe3Richard Smith } 260541d0958281627882fbe2049fb887d741eabd3fe3Richard Smith public boolean startNextMatchingActivity(IBinder callingActivity, 2606651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines Intent intent, Bundle options) throws RemoteException { 260741d0958281627882fbe2049fb887d741eabd3fe3Richard Smith Parcel data = Parcel.obtain(); 260841d0958281627882fbe2049fb887d741eabd3fe3Richard Smith Parcel reply = Parcel.obtain(); 260941d0958281627882fbe2049fb887d741eabd3fe3Richard Smith data.writeInterfaceToken(IActivityManager.descriptor); 261041d0958281627882fbe2049fb887d741eabd3fe3Richard Smith data.writeStrongBinder(callingActivity); 261141d0958281627882fbe2049fb887d741eabd3fe3Richard Smith intent.writeToParcel(data, 0); 2612a0c2b21e0d84ad289781e08e14148da6b8b8b76dDouglas Gregor if (options != null) { 2613429bb276991ff2dbc7c5b438828b9b7737cb15ebJohn Wiegley data.writeInt(1); 2614429bb276991ff2dbc7c5b438828b9b7737cb15ebJohn Wiegley options.writeToParcel(data, 0); 2615429bb276991ff2dbc7c5b438828b9b7737cb15ebJohn Wiegley } else { 2616ef8225444452a1486bd721f3285301fe84643b00Stephen Hines data.writeInt(0); 26176a576ab708d3aa7d40e5d867ab1de5d3cb507553Douglas Gregor } 261841d0958281627882fbe2049fb887d741eabd3fe3Richard Smith mRemote.transact(START_NEXT_MATCHING_ACTIVITY_TRANSACTION, data, reply, 0); 2619152b4e4652baedfceba1cd8115515629225e713fManuel Klimek reply.readException(); 262041d0958281627882fbe2049fb887d741eabd3fe3Richard Smith int result = reply.readInt(); 26217dd900ed308506f9cf1cb72c70db1652f94cab37Jordan Rose reply.recycle(); 26221093f4928a4263d08b44d96e468a42515d8a28f3Chad Rosier data.recycle(); 2623a0c2b21e0d84ad289781e08e14148da6b8b8b76dDouglas Gregor return result != 0; 2624a0c2b21e0d84ad289781e08e14148da6b8b8b76dDouglas Gregor } 2625a0c2b21e0d84ad289781e08e14148da6b8b8b76dDouglas Gregor public int startActivityFromRecents(int taskId, Bundle options) throws RemoteException { 2626a0c2b21e0d84ad289781e08e14148da6b8b8b76dDouglas Gregor Parcel data = Parcel.obtain(); 2627a0c2b21e0d84ad289781e08e14148da6b8b8b76dDouglas Gregor Parcel reply = Parcel.obtain(); 2628a0c2b21e0d84ad289781e08e14148da6b8b8b76dDouglas Gregor data.writeInterfaceToken(IActivityManager.descriptor); 2629a0c2b21e0d84ad289781e08e14148da6b8b8b76dDouglas Gregor data.writeInt(taskId); 2630152b4e4652baedfceba1cd8115515629225e713fManuel Klimek if (options == null) { 26317dd900ed308506f9cf1cb72c70db1652f94cab37Jordan Rose data.writeInt(0); 2632649657e7d6c150136cae5ab22e39b9794cff80ccFariborz Jahanian } else { 26337dd900ed308506f9cf1cb72c70db1652f94cab37Jordan Rose data.writeInt(1); 26347dd900ed308506f9cf1cb72c70db1652f94cab37Jordan Rose options.writeToParcel(data, 0); 26357dd900ed308506f9cf1cb72c70db1652f94cab37Jordan Rose } 26367dd900ed308506f9cf1cb72c70db1652f94cab37Jordan Rose mRemote.transact(START_ACTIVITY_FROM_RECENTS_TRANSACTION, data, reply, 0); 26377dd900ed308506f9cf1cb72c70db1652f94cab37Jordan Rose reply.readException(); 26384eb206bebcdab28ababe8df55c6185cec2cdc071Steve Naroff int result = reply.readInt(); 263984b007fae6c0cd30fa07074d34fbe2bf61fa44f9Eli Friedman reply.recycle(); 26404cffe2fd5c23168bc08f0453c684cbd3f79471d3Sebastian Redl data.recycle(); 2641793cd1c4cdfaafc52e2c2ad9dae959befe4bb166Douglas Gregor return result; 264284b007fae6c0cd30fa07074d34fbe2bf61fa44f9Eli Friedman } 264384b007fae6c0cd30fa07074d34fbe2bf61fa44f9Eli Friedman public boolean finishActivity(IBinder token, int resultCode, Intent resultData, boolean finishTask) 264484b007fae6c0cd30fa07074d34fbe2bf61fa44f9Eli Friedman throws RemoteException { 264584b007fae6c0cd30fa07074d34fbe2bf61fa44f9Eli Friedman Parcel data = Parcel.obtain(); 26466afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj Parcel reply = Parcel.obtain(); 26476afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj data.writeInterfaceToken(IActivityManager.descriptor); 26486afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj data.writeStrongBinder(token); 26496afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj data.writeInt(resultCode); 2650793cd1c4cdfaafc52e2c2ad9dae959befe4bb166Douglas Gregor if (resultData != null) { 265141d0958281627882fbe2049fb887d741eabd3fe3Richard Smith data.writeInt(1); 265241d0958281627882fbe2049fb887d741eabd3fe3Richard Smith resultData.writeToParcel(data, 0); 265341d0958281627882fbe2049fb887d741eabd3fe3Richard Smith } else { 2654793cd1c4cdfaafc52e2c2ad9dae959befe4bb166Douglas Gregor data.writeInt(0); 2655793cd1c4cdfaafc52e2c2ad9dae959befe4bb166Douglas Gregor } 2656793cd1c4cdfaafc52e2c2ad9dae959befe4bb166Douglas Gregor data.writeInt(finishTask ? 1 : 0); 2657793cd1c4cdfaafc52e2c2ad9dae959befe4bb166Douglas Gregor mRemote.transact(FINISH_ACTIVITY_TRANSACTION, data, reply, 0); 26586c92fa75e62937f9738696840efcb258560f4568Mike Stump reply.readException(); 26594eb206bebcdab28ababe8df55c6185cec2cdc071Steve Naroff boolean res = reply.readInt() != 0; 26604eb206bebcdab28ababe8df55c6185cec2cdc071Steve Naroff data.recycle(); 26614eb206bebcdab28ababe8df55c6185cec2cdc071Steve Naroff reply.recycle(); 26626bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines return res; 2663152b4e4652baedfceba1cd8115515629225e713fManuel Klimek } 26640a7efe1142d241678c91bf93ee6adb51289863a4John McCall public void finishSubActivity(IBinder token, String resultWho, int requestCode) throws RemoteException 26650a7efe1142d241678c91bf93ee6adb51289863a4John McCall { 26660a7efe1142d241678c91bf93ee6adb51289863a4John McCall Parcel data = Parcel.obtain(); 26675b38a0f98e4420dae1bd3e13959bc207c97a9e98Sebastian Redl Parcel reply = Parcel.obtain(); 26684e4d08403ca5cfd4d558fa2936215d3a4e5a528dDavid Blaikie data.writeInterfaceToken(IActivityManager.descriptor); 26690a7efe1142d241678c91bf93ee6adb51289863a4John McCall data.writeStrongBinder(token); 26700a7efe1142d241678c91bf93ee6adb51289863a4John McCall data.writeString(resultWho); 26714e648e4770d85febaf15ad8b7bad458bd7338ae2Fariborz Jahanian data.writeInt(requestCode); 26724e648e4770d85febaf15ad8b7bad458bd7338ae2Fariborz Jahanian mRemote.transact(FINISH_SUB_ACTIVITY_TRANSACTION, data, reply, 0); 26739354f6aaa70e1543d122644fee0c3f834324d2fcFariborz Jahanian reply.readException(); 26744e648e4770d85febaf15ad8b7bad458bd7338ae2Fariborz Jahanian data.recycle(); 26754e648e4770d85febaf15ad8b7bad458bd7338ae2Fariborz Jahanian reply.recycle(); 26766bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines } 26774e648e4770d85febaf15ad8b7bad458bd7338ae2Fariborz Jahanian public boolean finishActivityAffinity(IBinder token) throws RemoteException { 26784eb206bebcdab28ababe8df55c6185cec2cdc071Steve Naroff Parcel data = Parcel.obtain(); 26795077c3876beeaed32280af88244e8050078619a8Douglas Gregor Parcel reply = Parcel.obtain(); 26800a7efe1142d241678c91bf93ee6adb51289863a4John McCall data.writeInterfaceToken(IActivityManager.descriptor); 26810a7efe1142d241678c91bf93ee6adb51289863a4John McCall data.writeStrongBinder(token); 26820a7efe1142d241678c91bf93ee6adb51289863a4John McCall mRemote.transact(FINISH_ACTIVITY_AFFINITY_TRANSACTION, data, reply, 0); 26830a7efe1142d241678c91bf93ee6adb51289863a4John McCall reply.readException(); 26840a7efe1142d241678c91bf93ee6adb51289863a4John McCall boolean res = reply.readInt() != 0; 26850a7efe1142d241678c91bf93ee6adb51289863a4John McCall data.recycle(); 26860a7efe1142d241678c91bf93ee6adb51289863a4John McCall reply.recycle(); 26870a7efe1142d241678c91bf93ee6adb51289863a4John McCall return res; 26880a7efe1142d241678c91bf93ee6adb51289863a4John McCall } 26890a7efe1142d241678c91bf93ee6adb51289863a4John McCall public void finishVoiceTask(IVoiceInteractionSession session) throws RemoteException { 26900a7efe1142d241678c91bf93ee6adb51289863a4John McCall Parcel data = Parcel.obtain(); 26910a7efe1142d241678c91bf93ee6adb51289863a4John McCall Parcel reply = Parcel.obtain(); 26920a7efe1142d241678c91bf93ee6adb51289863a4John McCall data.writeInterfaceToken(IActivityManager.descriptor); 26936bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines data.writeStrongBinder(session.asBinder()); 26940a7efe1142d241678c91bf93ee6adb51289863a4John McCall mRemote.transact(FINISH_VOICE_TASK_TRANSACTION, data, reply, 0); 26950a7efe1142d241678c91bf93ee6adb51289863a4John McCall reply.readException(); 26960a7efe1142d241678c91bf93ee6adb51289863a4John McCall data.recycle(); 26970a7efe1142d241678c91bf93ee6adb51289863a4John McCall reply.recycle(); 26980a7efe1142d241678c91bf93ee6adb51289863a4John McCall } 2699c6acbc58a7aef0a3382775424c80e9534b54b2edAnders Carlsson public boolean releaseActivityInstance(IBinder token) throws RemoteException { 2700ef8225444452a1486bd721f3285301fe84643b00Stephen Hines Parcel data = Parcel.obtain(); 2701651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines Parcel reply = Parcel.obtain(); 27026bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines data.writeInterfaceToken(IActivityManager.descriptor); 27036bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines data.writeStrongBinder(token); 2704d963c37eb912342c8325048749e449861cf0a6e3John McCall mRemote.transact(RELEASE_ACTIVITY_INSTANCE_TRANSACTION, data, reply, 0); 2705dfbb02a16ac8c764b5ba1742450513d6212d2f9fNAKAMURA Takumi reply.readException(); 2706d963c37eb912342c8325048749e449861cf0a6e3John McCall boolean res = reply.readInt() != 0; 2707419563768ef4929a622d7c2b066856e82901bb91Richard Smith data.recycle(); 2708419563768ef4929a622d7c2b066856e82901bb91Richard Smith reply.recycle(); 2709419563768ef4929a622d7c2b066856e82901bb91Richard Smith return res; 2710ef8225444452a1486bd721f3285301fe84643b00Stephen Hines } 271198eb8a7a702b95183ed015706b1f1c66f5cb27a4Mike Stump public void releaseSomeActivities(IApplicationThread app) throws RemoteException { 27120a7efe1142d241678c91bf93ee6adb51289863a4John McCall Parcel data = Parcel.obtain(); 27130a7efe1142d241678c91bf93ee6adb51289863a4John McCall Parcel reply = Parcel.obtain(); 27144cffe2fd5c23168bc08f0453c684cbd3f79471d3Sebastian Redl data.writeInterfaceToken(IActivityManager.descriptor); 27157dd900ed308506f9cf1cb72c70db1652f94cab37Jordan Rose data.writeStrongBinder(app.asBinder()); 27167dd900ed308506f9cf1cb72c70db1652f94cab37Jordan Rose mRemote.transact(RELEASE_SOME_ACTIVITIES_TRANSACTION, data, reply, 0); 27177dd900ed308506f9cf1cb72c70db1652f94cab37Jordan Rose reply.readException(); 27186bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines data.recycle(); 27195077c3876beeaed32280af88244e8050078619a8Douglas Gregor reply.recycle(); 2720dfbb02a16ac8c764b5ba1742450513d6212d2f9fNAKAMURA Takumi } 2721ef8225444452a1486bd721f3285301fe84643b00Stephen Hines public boolean willActivityBeVisible(IBinder token) throws RemoteException { 27224eb206bebcdab28ababe8df55c6185cec2cdc071Steve Naroff Parcel data = Parcel.obtain(); 2723152b4e4652baedfceba1cd8115515629225e713fManuel Klimek Parcel reply = Parcel.obtain(); 272460e141e1f87211ca831de6821003d80fe20a06f3Richard Smith data.writeInterfaceToken(IActivityManager.descriptor); 272560e141e1f87211ca831de6821003d80fe20a06f3Richard Smith data.writeStrongBinder(token); 272660e141e1f87211ca831de6821003d80fe20a06f3Richard Smith mRemote.transact(WILL_ACTIVITY_BE_VISIBLE_TRANSACTION, data, reply, 0); 272760e141e1f87211ca831de6821003d80fe20a06f3Richard Smith reply.readException(); 272860e141e1f87211ca831de6821003d80fe20a06f3Richard Smith boolean res = reply.readInt() != 0; 272960e141e1f87211ca831de6821003d80fe20a06f3Richard Smith data.recycle(); 273060e141e1f87211ca831de6821003d80fe20a06f3Richard Smith reply.recycle(); 2731651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines return res; 273260e141e1f87211ca831de6821003d80fe20a06f3Richard Smith } 2733152b4e4652baedfceba1cd8115515629225e713fManuel Klimek public Intent registerReceiver(IApplicationThread caller, String packageName, 273437e849ad80731ac1b2ad1c64e73bced27802bd8bRichard Smith IIntentReceiver receiver, 273537e849ad80731ac1b2ad1c64e73bced27802bd8bRichard Smith IntentFilter filter, String perm, int userId) throws RemoteException 273637e849ad80731ac1b2ad1c64e73bced27802bd8bRichard Smith { 273741d0958281627882fbe2049fb887d741eabd3fe3Richard Smith Parcel data = Parcel.obtain(); 273841d0958281627882fbe2049fb887d741eabd3fe3Richard Smith Parcel reply = Parcel.obtain(); 273941d0958281627882fbe2049fb887d741eabd3fe3Richard Smith data.writeInterfaceToken(IActivityManager.descriptor); 274041d0958281627882fbe2049fb887d741eabd3fe3Richard Smith data.writeStrongBinder(caller != null ? caller.asBinder() : null); 274137e849ad80731ac1b2ad1c64e73bced27802bd8bRichard Smith data.writeString(packageName); 274237e849ad80731ac1b2ad1c64e73bced27802bd8bRichard Smith data.writeStrongBinder(receiver != null ? receiver.asBinder() : null); 274337e849ad80731ac1b2ad1c64e73bced27802bd8bRichard Smith filter.writeToParcel(data, 0); 274437e849ad80731ac1b2ad1c64e73bced27802bd8bRichard Smith data.writeString(perm); 274537e849ad80731ac1b2ad1c64e73bced27802bd8bRichard Smith data.writeInt(userId); 274637e849ad80731ac1b2ad1c64e73bced27802bd8bRichard Smith mRemote.transact(REGISTER_RECEIVER_TRANSACTION, data, reply, 0); 274737e849ad80731ac1b2ad1c64e73bced27802bd8bRichard Smith reply.readException(); 274837e849ad80731ac1b2ad1c64e73bced27802bd8bRichard Smith Intent intent = null; 274937e849ad80731ac1b2ad1c64e73bced27802bd8bRichard Smith int haveIntent = reply.readInt(); 275037e849ad80731ac1b2ad1c64e73bced27802bd8bRichard Smith if (haveIntent != 0) { 275137e849ad80731ac1b2ad1c64e73bced27802bd8bRichard Smith intent = Intent.CREATOR.createFromParcel(reply); 275260e141e1f87211ca831de6821003d80fe20a06f3Richard Smith } 275360e141e1f87211ca831de6821003d80fe20a06f3Richard Smith reply.recycle(); 275460e141e1f87211ca831de6821003d80fe20a06f3Richard Smith data.recycle(); 275560e141e1f87211ca831de6821003d80fe20a06f3Richard Smith return intent; 275660e141e1f87211ca831de6821003d80fe20a06f3Richard Smith } 275760e141e1f87211ca831de6821003d80fe20a06f3Richard Smith public void unregisterReceiver(IIntentReceiver receiver) throws RemoteException 275860e141e1f87211ca831de6821003d80fe20a06f3Richard Smith { 275960e141e1f87211ca831de6821003d80fe20a06f3Richard Smith Parcel data = Parcel.obtain(); 276060e141e1f87211ca831de6821003d80fe20a06f3Richard Smith Parcel reply = Parcel.obtain(); 276160e141e1f87211ca831de6821003d80fe20a06f3Richard Smith data.writeInterfaceToken(IActivityManager.descriptor); 276260e141e1f87211ca831de6821003d80fe20a06f3Richard Smith data.writeStrongBinder(receiver.asBinder()); 276360e141e1f87211ca831de6821003d80fe20a06f3Richard Smith mRemote.transact(UNREGISTER_RECEIVER_TRANSACTION, data, reply, 0); 276460e141e1f87211ca831de6821003d80fe20a06f3Richard Smith reply.readException(); 276560e141e1f87211ca831de6821003d80fe20a06f3Richard Smith data.recycle(); 276660e141e1f87211ca831de6821003d80fe20a06f3Richard Smith reply.recycle(); 276760e141e1f87211ca831de6821003d80fe20a06f3Richard Smith } 276860e141e1f87211ca831de6821003d80fe20a06f3Richard Smith public int broadcastIntent(IApplicationThread caller, 276960e141e1f87211ca831de6821003d80fe20a06f3Richard Smith Intent intent, String resolvedType, IIntentReceiver resultTo, 277060e141e1f87211ca831de6821003d80fe20a06f3Richard Smith int resultCode, String resultData, Bundle map, 277160e141e1f87211ca831de6821003d80fe20a06f3Richard Smith String requiredPermission, int appOp, boolean serialized, 277260e141e1f87211ca831de6821003d80fe20a06f3Richard Smith boolean sticky, int userId) throws RemoteException 277360e141e1f87211ca831de6821003d80fe20a06f3Richard Smith { 277460e141e1f87211ca831de6821003d80fe20a06f3Richard Smith Parcel data = Parcel.obtain(); 277560e141e1f87211ca831de6821003d80fe20a06f3Richard Smith Parcel reply = Parcel.obtain(); 277660e141e1f87211ca831de6821003d80fe20a06f3Richard Smith data.writeInterfaceToken(IActivityManager.descriptor); 277760e141e1f87211ca831de6821003d80fe20a06f3Richard Smith data.writeStrongBinder(caller != null ? caller.asBinder() : null); 277860e141e1f87211ca831de6821003d80fe20a06f3Richard Smith intent.writeToParcel(data, 0); 277960e141e1f87211ca831de6821003d80fe20a06f3Richard Smith data.writeString(resolvedType); 278060e141e1f87211ca831de6821003d80fe20a06f3Richard Smith data.writeStrongBinder(resultTo != null ? resultTo.asBinder() : null); 278160e141e1f87211ca831de6821003d80fe20a06f3Richard Smith data.writeInt(resultCode); 278260e141e1f87211ca831de6821003d80fe20a06f3Richard Smith data.writeString(resultData); 278360e141e1f87211ca831de6821003d80fe20a06f3Richard Smith data.writeBundle(map); 278460e141e1f87211ca831de6821003d80fe20a06f3Richard Smith data.writeString(requiredPermission); 278560e141e1f87211ca831de6821003d80fe20a06f3Richard Smith data.writeInt(appOp); 278660e141e1f87211ca831de6821003d80fe20a06f3Richard Smith data.writeInt(serialized ? 1 : 0); 278760e141e1f87211ca831de6821003d80fe20a06f3Richard Smith data.writeInt(sticky ? 1 : 0); 278860e141e1f87211ca831de6821003d80fe20a06f3Richard Smith data.writeInt(userId); 278960e141e1f87211ca831de6821003d80fe20a06f3Richard Smith mRemote.transact(BROADCAST_INTENT_TRANSACTION, data, reply, 0); 279060e141e1f87211ca831de6821003d80fe20a06f3Richard Smith reply.readException(); 279160e141e1f87211ca831de6821003d80fe20a06f3Richard Smith int res = reply.readInt(); 279237e849ad80731ac1b2ad1c64e73bced27802bd8bRichard Smith reply.recycle(); 279337e849ad80731ac1b2ad1c64e73bced27802bd8bRichard Smith data.recycle(); 279441d0958281627882fbe2049fb887d741eabd3fe3Richard Smith return res; 279541d0958281627882fbe2049fb887d741eabd3fe3Richard Smith } 279641d0958281627882fbe2049fb887d741eabd3fe3Richard Smith public void unbroadcastIntent(IApplicationThread caller, Intent intent, int userId) 279741d0958281627882fbe2049fb887d741eabd3fe3Richard Smith throws RemoteException 279841d0958281627882fbe2049fb887d741eabd3fe3Richard Smith { 279941d0958281627882fbe2049fb887d741eabd3fe3Richard Smith Parcel data = Parcel.obtain(); 280041d0958281627882fbe2049fb887d741eabd3fe3Richard Smith Parcel reply = Parcel.obtain(); 280141d0958281627882fbe2049fb887d741eabd3fe3Richard Smith data.writeInterfaceToken(IActivityManager.descriptor); 280241d0958281627882fbe2049fb887d741eabd3fe3Richard Smith data.writeStrongBinder(caller != null ? caller.asBinder() : null); 280341d0958281627882fbe2049fb887d741eabd3fe3Richard Smith intent.writeToParcel(data, 0); 280460e141e1f87211ca831de6821003d80fe20a06f3Richard Smith data.writeInt(userId); 280560e141e1f87211ca831de6821003d80fe20a06f3Richard Smith mRemote.transact(UNBROADCAST_INTENT_TRANSACTION, data, reply, 0); 280660e141e1f87211ca831de6821003d80fe20a06f3Richard Smith reply.readException(); 280760e141e1f87211ca831de6821003d80fe20a06f3Richard Smith data.recycle(); 280860e141e1f87211ca831de6821003d80fe20a06f3Richard Smith reply.recycle(); 280960e141e1f87211ca831de6821003d80fe20a06f3Richard Smith } 281060e141e1f87211ca831de6821003d80fe20a06f3Richard Smith public void finishReceiver(IBinder who, int resultCode, String resultData, Bundle map, boolean abortBroadcast) throws RemoteException 281160e141e1f87211ca831de6821003d80fe20a06f3Richard Smith { 281260e141e1f87211ca831de6821003d80fe20a06f3Richard Smith Parcel data = Parcel.obtain(); 281360e141e1f87211ca831de6821003d80fe20a06f3Richard Smith Parcel reply = Parcel.obtain(); 281460d7b3a319d84d688752be3870615ac0f111fb16John McCall data.writeInterfaceToken(IActivityManager.descriptor); 28156bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines data.writeStrongBinder(who); 28166bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines data.writeInt(resultCode); 28176bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines data.writeString(resultData); 28186bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines data.writeBundle(map); 28196bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines data.writeInt(abortBroadcast ? 1 : 0); 28206bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines mRemote.transact(FINISH_RECEIVER_TRANSACTION, data, reply, IBinder.FLAG_ONEWAY); 28216bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines reply.readException(); 28226bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines data.recycle(); 28236bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines reply.recycle(); 28246bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines } 28256bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines public void attachApplication(IApplicationThread app) throws RemoteException 28266bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines { 28276bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines Parcel data = Parcel.obtain(); 28286bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines Parcel reply = Parcel.obtain(); 28296bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines data.writeInterfaceToken(IActivityManager.descriptor); 28306bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines data.writeStrongBinder(app.asBinder()); 28316bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines mRemote.transact(ATTACH_APPLICATION_TRANSACTION, data, reply, 0); 28326bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines reply.readException(); 2833fc92137eee708b632c00a9b0934ff87aeae234a5Douglas Gregor data.recycle(); 2834fc92137eee708b632c00a9b0934ff87aeae234a5Douglas Gregor reply.recycle(); 2835fc92137eee708b632c00a9b0934ff87aeae234a5Douglas Gregor } 2836152b4e4652baedfceba1cd8115515629225e713fManuel Klimek public void activityIdle(IBinder token, Configuration config, boolean stopProfiling) 283784b007fae6c0cd30fa07074d34fbe2bf61fa44f9Eli Friedman throws RemoteException 283884b007fae6c0cd30fa07074d34fbe2bf61fa44f9Eli Friedman { 2839152b4e4652baedfceba1cd8115515629225e713fManuel Klimek Parcel data = Parcel.obtain(); 2840371f258e61e1365b951b17931a3c5ac1530fd1a0Chris Lattner Parcel reply = Parcel.obtain(); 284138ac243e300798e8cd9fe05888cd97beabfb94e6Eli Friedman data.writeInterfaceToken(IActivityManager.descriptor); 28426bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines data.writeStrongBinder(token); 2843651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines if (config != null) { 2844651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines data.writeInt(1); 2845f7c41dab1a8de29b0991e853b8822bb0d1ddc01cMike Stump config.writeToParcel(data, 0); 2846651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines } else { 2847651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines data.writeInt(0); 2848651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines } 2849cd8ab51a44e80625d84126780b0d85a7732e25afRichard Smith data.writeInt(stopProfiling ? 1 : 0); 28508662587fa75d3fb04f873e265841c9314c7f5523Chris Lattner mRemote.transact(ACTIVITY_IDLE_TRANSACTION, data, reply, IBinder.FLAG_ONEWAY); 285179430e9983f5e67a378fc1f50cd6278f2cea8259Eli Friedman reply.readException(); 2852926df6cfabf3eaa4afc990c097fa4619b76a9b57Douglas Gregor data.recycle(); 2853651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines reply.recycle(); 2854651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines } 2855651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines public void activityResumed(IBinder token) throws RemoteException 2856651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines { 2857926df6cfabf3eaa4afc990c097fa4619b76a9b57Douglas Gregor Parcel data = Parcel.obtain(); 2858926df6cfabf3eaa4afc990c097fa4619b76a9b57Douglas Gregor Parcel reply = Parcel.obtain(); 28591093f4928a4263d08b44d96e468a42515d8a28f3Chad Rosier data.writeInterfaceToken(IActivityManager.descriptor); 2860926df6cfabf3eaa4afc990c097fa4619b76a9b57Douglas Gregor data.writeStrongBinder(token); 286138ac243e300798e8cd9fe05888cd97beabfb94e6Eli Friedman mRemote.transact(ACTIVITY_RESUMED_TRANSACTION, data, reply, 0); 286238ac243e300798e8cd9fe05888cd97beabfb94e6Eli Friedman reply.readException(); 2863926df6cfabf3eaa4afc990c097fa4619b76a9b57Douglas Gregor data.recycle(); 2864926df6cfabf3eaa4afc990c097fa4619b76a9b57Douglas Gregor reply.recycle(); 2865c97fb9a394ce2cc5e664fcb472e93553528378adSteve Naroff } 28661eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump public void activityPaused(IBinder token) throws RemoteException 286760e141e1f87211ca831de6821003d80fe20a06f3Richard Smith { 286860e141e1f87211ca831de6821003d80fe20a06f3Richard Smith Parcel data = Parcel.obtain(); 286960e141e1f87211ca831de6821003d80fe20a06f3Richard Smith Parcel reply = Parcel.obtain(); 287060e141e1f87211ca831de6821003d80fe20a06f3Richard Smith data.writeInterfaceToken(IActivityManager.descriptor); 287160e141e1f87211ca831de6821003d80fe20a06f3Richard Smith data.writeStrongBinder(token); 287237e849ad80731ac1b2ad1c64e73bced27802bd8bRichard Smith mRemote.transact(ACTIVITY_PAUSED_TRANSACTION, data, reply, 0); 287360e141e1f87211ca831de6821003d80fe20a06f3Richard Smith reply.readException(); 287460e141e1f87211ca831de6821003d80fe20a06f3Richard Smith data.recycle(); 287560e141e1f87211ca831de6821003d80fe20a06f3Richard Smith reply.recycle(); 2876651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines } 287760e141e1f87211ca831de6821003d80fe20a06f3Richard Smith public void activityStopped(IBinder token, Bundle state, 287860e141e1f87211ca831de6821003d80fe20a06f3Richard Smith PersistableBundle persistentState, CharSequence description) throws RemoteException 287960e141e1f87211ca831de6821003d80fe20a06f3Richard Smith { 288060e141e1f87211ca831de6821003d80fe20a06f3Richard Smith Parcel data = Parcel.obtain(); 288137e849ad80731ac1b2ad1c64e73bced27802bd8bRichard Smith Parcel reply = Parcel.obtain(); 288237e849ad80731ac1b2ad1c64e73bced27802bd8bRichard Smith data.writeInterfaceToken(IActivityManager.descriptor); 28836bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines data.writeStrongBinder(token); 28845cf216b7fa64b933b60743b0b26053e8e7aa87beChris Lattner data.writeBundle(state); 28858d7946151cd15c0e7c34250c122d59b2f5027999Nick Lewycky data.writePersistableBundle(persistentState); 288633deb35535aebe81bed0eaf5c14f3032276a086eSebastian Redl TextUtils.writeToParcel(description, data, 0); 288733deb35535aebe81bed0eaf5c14f3032276a086eSebastian Redl mRemote.transact(ACTIVITY_STOPPED_TRANSACTION, data, reply, IBinder.FLAG_ONEWAY); 288833deb35535aebe81bed0eaf5c14f3032276a086eSebastian Redl reply.readException(); 288933deb35535aebe81bed0eaf5c14f3032276a086eSebastian Redl data.recycle(); 289033deb35535aebe81bed0eaf5c14f3032276a086eSebastian Redl reply.recycle(); 289133deb35535aebe81bed0eaf5c14f3032276a086eSebastian Redl } 289233deb35535aebe81bed0eaf5c14f3032276a086eSebastian Redl public void activitySlept(IBinder token) throws RemoteException 289333deb35535aebe81bed0eaf5c14f3032276a086eSebastian Redl { 289433deb35535aebe81bed0eaf5c14f3032276a086eSebastian Redl Parcel data = Parcel.obtain(); 289533deb35535aebe81bed0eaf5c14f3032276a086eSebastian Redl Parcel reply = Parcel.obtain(); 289633deb35535aebe81bed0eaf5c14f3032276a086eSebastian Redl data.writeInterfaceToken(IActivityManager.descriptor); 289733deb35535aebe81bed0eaf5c14f3032276a086eSebastian Redl data.writeStrongBinder(token); 289833deb35535aebe81bed0eaf5c14f3032276a086eSebastian Redl mRemote.transact(ACTIVITY_SLEPT_TRANSACTION, data, reply, IBinder.FLAG_ONEWAY); 289933deb35535aebe81bed0eaf5c14f3032276a086eSebastian Redl reply.readException(); 290033deb35535aebe81bed0eaf5c14f3032276a086eSebastian Redl data.recycle(); 290133deb35535aebe81bed0eaf5c14f3032276a086eSebastian Redl reply.recycle(); 290233deb35535aebe81bed0eaf5c14f3032276a086eSebastian Redl } 290333deb35535aebe81bed0eaf5c14f3032276a086eSebastian Redl public void activityDestroyed(IBinder token) throws RemoteException 29046bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines { 290533deb35535aebe81bed0eaf5c14f3032276a086eSebastian Redl Parcel data = Parcel.obtain(); 29068d7946151cd15c0e7c34250c122d59b2f5027999Nick Lewycky Parcel reply = Parcel.obtain(); 29078d7946151cd15c0e7c34250c122d59b2f5027999Nick Lewycky data.writeInterfaceToken(IActivityManager.descriptor); 2908651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines data.writeStrongBinder(token); 2909651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines mRemote.transact(ACTIVITY_DESTROYED_TRANSACTION, data, reply, IBinder.FLAG_ONEWAY); 2910651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines reply.readException(); 2911651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines data.recycle(); 2912651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines reply.recycle(); 2913651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines } 2914651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines public String getCallingPackage(IBinder token) throws RemoteException 2915651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines { 29168d7946151cd15c0e7c34250c122d59b2f5027999Nick Lewycky Parcel data = Parcel.obtain(); 2917ef8225444452a1486bd721f3285301fe84643b00Stephen Hines Parcel reply = Parcel.obtain(); 2918ef8225444452a1486bd721f3285301fe84643b00Stephen Hines data.writeInterfaceToken(IActivityManager.descriptor); 29198d7946151cd15c0e7c34250c122d59b2f5027999Nick Lewycky data.writeStrongBinder(token); 29208d7946151cd15c0e7c34250c122d59b2f5027999Nick Lewycky mRemote.transact(GET_CALLING_PACKAGE_TRANSACTION, data, reply, 0); 2921ef8225444452a1486bd721f3285301fe84643b00Stephen Hines reply.readException(); 29228d7946151cd15c0e7c34250c122d59b2f5027999Nick Lewycky String res = reply.readString(); 2923ef8225444452a1486bd721f3285301fe84643b00Stephen Hines data.recycle(); 29248d7946151cd15c0e7c34250c122d59b2f5027999Nick Lewycky reply.recycle(); 2925651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines return res; 2926651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines } 2927651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines public ComponentName getCallingActivity(IBinder token) 2928651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines throws RemoteException { 2929651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines Parcel data = Parcel.obtain(); 2930651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines Parcel reply = Parcel.obtain(); 2931651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines data.writeInterfaceToken(IActivityManager.descriptor); 29328d7946151cd15c0e7c34250c122d59b2f5027999Nick Lewycky data.writeStrongBinder(token); 2933651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines mRemote.transact(GET_CALLING_ACTIVITY_TRANSACTION, data, reply, 0); 29344e4d08403ca5cfd4d558fa2936215d3a4e5a528dDavid Blaikie reply.readException(); 29358d7946151cd15c0e7c34250c122d59b2f5027999Nick Lewycky ComponentName res = ComponentName.readFromParcel(reply); 2936ca0d0d4a0d6ecd256d4bf8c1a0dc183a83119833Chandler Carruth data.recycle(); 2937ca0d0d4a0d6ecd256d4bf8c1a0dc183a83119833Chandler Carruth reply.recycle(); 2938ca0d0d4a0d6ecd256d4bf8c1a0dc183a83119833Chandler Carruth return res; 2939ca0d0d4a0d6ecd256d4bf8c1a0dc183a83119833Chandler Carruth } 2940ca0d0d4a0d6ecd256d4bf8c1a0dc183a83119833Chandler Carruth public List<IAppTask> getAppTasks(String callingPackage) throws RemoteException { 2941ca0d0d4a0d6ecd256d4bf8c1a0dc183a83119833Chandler Carruth Parcel data = Parcel.obtain(); 2942ca0d0d4a0d6ecd256d4bf8c1a0dc183a83119833Chandler Carruth Parcel reply = Parcel.obtain(); 2943ca0d0d4a0d6ecd256d4bf8c1a0dc183a83119833Chandler Carruth data.writeInterfaceToken(IActivityManager.descriptor); 2944ca0d0d4a0d6ecd256d4bf8c1a0dc183a83119833Chandler Carruth data.writeString(callingPackage); 29458d7946151cd15c0e7c34250c122d59b2f5027999Nick Lewycky mRemote.transact(GET_APP_TASKS_TRANSACTION, data, reply, 0); 2946ca0d0d4a0d6ecd256d4bf8c1a0dc183a83119833Chandler Carruth reply.readException(); 29478d7946151cd15c0e7c34250c122d59b2f5027999Nick Lewycky ArrayList<IAppTask> list = null; 29488d7946151cd15c0e7c34250c122d59b2f5027999Nick Lewycky int N = reply.readInt(); 2949e878eb035b343d7d819c092102364ec9849716aeChris Lattner if (N >= 0) { 29501eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump list = new ArrayList<IAppTask>(); 295133deb35535aebe81bed0eaf5c14f3032276a086eSebastian Redl while (N > 0) { 2952419563768ef4929a622d7c2b066856e82901bb91Richard Smith IAppTask task = IAppTask.Stub.asInterface(reply.readStrongBinder()); 2953419563768ef4929a622d7c2b066856e82901bb91Richard Smith list.add(task); 2954419563768ef4929a622d7c2b066856e82901bb91Richard Smith N--; 2955ef8225444452a1486bd721f3285301fe84643b00Stephen Hines } 295633deb35535aebe81bed0eaf5c14f3032276a086eSebastian Redl } 29575f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer data.recycle(); 2958dfbb02a16ac8c764b5ba1742450513d6212d2f9fNAKAMURA Takumi reply.recycle(); 29596bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines return list; 296060e141e1f87211ca831de6821003d80fe20a06f3Richard Smith } 29613c73c41cefcfe76f36b7bed72c9f1ec195490951Chris Lattner public int addAppTask(IBinder activityToken, Intent intent, 29623c73c41cefcfe76f36b7bed72c9f1ec195490951Chris Lattner ActivityManager.TaskDescription description, Bitmap thumbnail) throws RemoteException { 29634e4d08403ca5cfd4d558fa2936215d3a4e5a528dDavid Blaikie Parcel data = Parcel.obtain(); 29643c73c41cefcfe76f36b7bed72c9f1ec195490951Chris Lattner Parcel reply = Parcel.obtain(); 29653c73c41cefcfe76f36b7bed72c9f1ec195490951Chris Lattner data.writeInterfaceToken(IActivityManager.descriptor); 296608631c5fa053867146b5ee8be658c229f6bf127cChris Lattner data.writeStrongBinder(activityToken); 29673c73c41cefcfe76f36b7bed72c9f1ec195490951Chris Lattner intent.writeToParcel(data, 0); 296808631c5fa053867146b5ee8be658c229f6bf127cChris Lattner description.writeToParcel(data, 0); 29695077c3876beeaed32280af88244e8050078619a8Douglas Gregor thumbnail.writeToParcel(data, 0); 29705077c3876beeaed32280af88244e8050078619a8Douglas Gregor mRemote.transact(ADD_APP_TASK_TRANSACTION, data, reply, 0); 297160e141e1f87211ca831de6821003d80fe20a06f3Richard Smith reply.readException(); 29726bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines int res = reply.readInt(); 29735077c3876beeaed32280af88244e8050078619a8Douglas Gregor data.recycle(); 29746bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines reply.recycle(); 297538ac243e300798e8cd9fe05888cd97beabfb94e6Eli Friedman return res; 29766bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines } 29776bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines public Point getAppTaskThumbnailSize() throws RemoteException { 29786bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines Parcel data = Parcel.obtain(); 29795077c3876beeaed32280af88244e8050078619a8Douglas Gregor Parcel reply = Parcel.obtain(); 29806bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines data.writeInterfaceToken(IActivityManager.descriptor); 29816bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines mRemote.transact(GET_APP_TASK_THUMBNAIL_SIZE_TRANSACTION, data, reply, 0); 29826bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines reply.readException(); 2983f5d8f466c3eebaffc51468812bdcbe7f0fe4891aDouglas Gregor Point size = Point.CREATOR.createFromParcel(reply); 29846bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines data.recycle(); 29856bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines reply.recycle(); 2986dfbb02a16ac8c764b5ba1742450513d6212d2f9fNAKAMURA Takumi return size; 29877cca821e1acf0f1b4fe892c3111bfb2086832e4eJohn McCall } 29886bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines public List getTasks(int maxNum, int flags) throws RemoteException { 2989dfbb02a16ac8c764b5ba1742450513d6212d2f9fNAKAMURA Takumi Parcel data = Parcel.obtain(); 29907cca821e1acf0f1b4fe892c3111bfb2086832e4eJohn McCall Parcel reply = Parcel.obtain(); 29915077c3876beeaed32280af88244e8050078619a8Douglas Gregor data.writeInterfaceToken(IActivityManager.descriptor); 29927cca821e1acf0f1b4fe892c3111bfb2086832e4eJohn McCall data.writeInt(maxNum); 29935077c3876beeaed32280af88244e8050078619a8Douglas Gregor data.writeInt(flags); 29945077c3876beeaed32280af88244e8050078619a8Douglas Gregor mRemote.transact(GET_TASKS_TRANSACTION, data, reply, 0); 2995ef8225444452a1486bd721f3285301fe84643b00Stephen Hines reply.readException(); 29967cca821e1acf0f1b4fe892c3111bfb2086832e4eJohn McCall ArrayList list = null; 29977cca821e1acf0f1b4fe892c3111bfb2086832e4eJohn McCall int N = reply.readInt(); 29987cca821e1acf0f1b4fe892c3111bfb2086832e4eJohn McCall if (N >= 0) { 29997cca821e1acf0f1b4fe892c3111bfb2086832e4eJohn McCall list = new ArrayList(); 3000f92a509d870f05a0e26babd8072171957770649eFariborz Jahanian while (N > 0) { 30017cca821e1acf0f1b4fe892c3111bfb2086832e4eJohn McCall ActivityManager.RunningTaskInfo info = 3002f92a509d870f05a0e26babd8072171957770649eFariborz Jahanian ActivityManager.RunningTaskInfo.CREATOR 3003f92a509d870f05a0e26babd8072171957770649eFariborz Jahanian .createFromParcel(reply); 30047cca821e1acf0f1b4fe892c3111bfb2086832e4eJohn McCall list.add(info); 30057cca821e1acf0f1b4fe892c3111bfb2086832e4eJohn McCall N--; 30067cca821e1acf0f1b4fe892c3111bfb2086832e4eJohn McCall } 30077cca821e1acf0f1b4fe892c3111bfb2086832e4eJohn McCall } 30087cca821e1acf0f1b4fe892c3111bfb2086832e4eJohn McCall data.recycle(); 3009ef8225444452a1486bd721f3285301fe84643b00Stephen Hines reply.recycle(); 30107cca821e1acf0f1b4fe892c3111bfb2086832e4eJohn McCall return list; 30117cca821e1acf0f1b4fe892c3111bfb2086832e4eJohn McCall } 3012651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines public List<ActivityManager.RecentTaskInfo> getRecentTasks(int maxNum, 3013651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines int flags, int userId) throws RemoteException { 301466724ea67d7d598b937d86fa66f03f09a1c758f3Douglas Gregor Parcel data = Parcel.obtain(); 3015dfbb02a16ac8c764b5ba1742450513d6212d2f9fNAKAMURA Takumi Parcel reply = Parcel.obtain(); 3016b4eb64d8426c0eaa58d398961e0e74ff85063d7cJohn McCall data.writeInterfaceToken(IActivityManager.descriptor); 3017419563768ef4929a622d7c2b066856e82901bb91Richard Smith data.writeInt(maxNum); 3018419563768ef4929a622d7c2b066856e82901bb91Richard Smith data.writeInt(flags); 3019419563768ef4929a622d7c2b066856e82901bb91Richard Smith data.writeInt(userId); 3020ef8225444452a1486bd721f3285301fe84643b00Stephen Hines mRemote.transact(GET_RECENT_TASKS_TRANSACTION, data, reply, 0); 3021b4eb64d8426c0eaa58d398961e0e74ff85063d7cJohn McCall reply.readException(); 30225077c3876beeaed32280af88244e8050078619a8Douglas Gregor ArrayList<ActivityManager.RecentTaskInfo> list 3023898574e7496ba8fd76290079d3a9d06954992734Douglas Gregor = reply.createTypedArrayList(ActivityManager.RecentTaskInfo.CREATOR); 3024dfbb02a16ac8c764b5ba1742450513d6212d2f9fNAKAMURA Takumi data.recycle(); 3025dfbb02a16ac8c764b5ba1742450513d6212d2f9fNAKAMURA Takumi reply.recycle(); 30265077c3876beeaed32280af88244e8050078619a8Douglas Gregor return list; 30276bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines } 30285077c3876beeaed32280af88244e8050078619a8Douglas Gregor public ActivityManager.TaskThumbnail getTaskThumbnail(int id) throws RemoteException { 30298e1e0543cc3b63e0bc116bae0d2f1e8fc530b436Chad Rosier Parcel data = Parcel.obtain(); 3030ef8225444452a1486bd721f3285301fe84643b00Stephen Hines Parcel reply = Parcel.obtain(); 30315f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer data.writeInterfaceToken(IActivityManager.descriptor); 30325f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer data.writeInt(id); 303360d7b3a319d84d688752be3870615ac0f111fb16John McCall mRemote.transact(GET_TASK_THUMBNAIL_TRANSACTION, data, reply, 0); 3034431e90e887c21c0d0d56fc12a2d359df8d53ea66Sebastian Redl reply.readException(); 3035d226f65006733ed7f709c3174f22ce33391cb58fJohn McCall ActivityManager.TaskThumbnail taskThumbnail = null; 30369ae2f076ca5ab1feb3ba95629099ec2319833701John McCall if (reply.readInt() != 0) { 3037d226f65006733ed7f709c3174f22ce33391cb58fJohn McCall taskThumbnail = ActivityManager.TaskThumbnail.CREATOR.createFromParcel(reply); 3038160b5630aa781ac348303e1ae088d27016637778Douglas Gregor } 3039160b5630aa781ac348303e1ae088d27016637778Douglas Gregor data.recycle(); 3040dfbb02a16ac8c764b5ba1742450513d6212d2f9fNAKAMURA Takumi reply.recycle(); 3041ef8225444452a1486bd721f3285301fe84643b00Stephen Hines return taskThumbnail; 30423b1191d7eaf2f4984564e01ab84b6713a9d80e70Fariborz Jahanian } 30433b1191d7eaf2f4984564e01ab84b6713a9d80e70Fariborz Jahanian public List getServices(int maxNum, int flags) throws RemoteException { 304460d7b3a319d84d688752be3870615ac0f111fb16John McCall Parcel data = Parcel.obtain(); 30459ae2f076ca5ab1feb3ba95629099ec2319833701John McCall Parcel reply = Parcel.obtain(); 3046ef8225444452a1486bd721f3285301fe84643b00Stephen Hines data.writeInterfaceToken(IActivityManager.descriptor); 3047161a9c5afaafb4d527b7efba9675a8b2cbbe32e0Fariborz Jahanian data.writeInt(maxNum); 3048bd49a647afd9cc534fef13cadf652d4e9c396e2bFariborz Jahanian data.writeInt(flags); 304960d7b3a319d84d688752be3870615ac0f111fb16John McCall mRemote.transact(GET_SERVICES_TRANSACTION, data, reply, 0); 3050dfbb02a16ac8c764b5ba1742450513d6212d2f9fNAKAMURA Takumi reply.readException(); 30519ae2f076ca5ab1feb3ba95629099ec2319833701John McCall ArrayList list = null; 30524e4d08403ca5cfd4d558fa2936215d3a4e5a528dDavid Blaikie int N = reply.readInt(); 3053da4b7cf09ebfd4e4098b516081fa9dae2f5c99e0Anders Carlsson if (N >= 0) { 3054da4b7cf09ebfd4e4098b516081fa9dae2f5c99e0Anders Carlsson list = new ArrayList(); 3055781472fe99a120098c631b0cbe33c89f8cef5e70John McCall while (N > 0) { 30568f5e3dd32e443768d9dbbad7191e123e6733750cDouglas Gregor ActivityManager.RunningServiceInfo info = 3057ef8225444452a1486bd721f3285301fe84643b00Stephen Hines ActivityManager.RunningServiceInfo.CREATOR 3058ef8225444452a1486bd721f3285301fe84643b00Stephen Hines .createFromParcel(reply); 3059bd49a647afd9cc534fef13cadf652d4e9c396e2bFariborz Jahanian list.add(info); 3060bd49a647afd9cc534fef13cadf652d4e9c396e2bFariborz Jahanian N--; 3061d1376ee0945a4eba0590ae33d14bade860b08a7dJohn McCall } 3062d1377b25a36adfe6604f78cbd3a23a07cf0f29e6Douglas Gregor } 3063429bb276991ff2dbc7c5b438828b9b7737cb15ebJohn Wiegley data.recycle(); 3064429bb276991ff2dbc7c5b438828b9b7737cb15ebJohn Wiegley reply.recycle(); 3065429bb276991ff2dbc7c5b438828b9b7737cb15ebJohn Wiegley return list; 30665e3c67b4bd894a926282d24b4d0cbc0e123c9f4aJohn McCall } 3067ef8225444452a1486bd721f3285301fe84643b00Stephen Hines public List<ActivityManager.ProcessErrorStateInfo> getProcessesInErrorState() 3068419563768ef4929a622d7c2b066856e82901bb91Richard Smith throws RemoteException { 3069419563768ef4929a622d7c2b066856e82901bb91Richard Smith Parcel data = Parcel.obtain(); 3070ef8225444452a1486bd721f3285301fe84643b00Stephen Hines Parcel reply = Parcel.obtain(); 3071419563768ef4929a622d7c2b066856e82901bb91Richard Smith data.writeInterfaceToken(IActivityManager.descriptor); 3072d1377b25a36adfe6604f78cbd3a23a07cf0f29e6Douglas Gregor mRemote.transact(GET_PROCESSES_IN_ERROR_STATE_TRANSACTION, data, reply, 0); 3073d1377b25a36adfe6604f78cbd3a23a07cf0f29e6Douglas Gregor reply.readException(); 3074d1377b25a36adfe6604f78cbd3a23a07cf0f29e6Douglas Gregor ArrayList<ActivityManager.ProcessErrorStateInfo> list 3075d1377b25a36adfe6604f78cbd3a23a07cf0f29e6Douglas Gregor = reply.createTypedArrayList(ActivityManager.ProcessErrorStateInfo.CREATOR); 3076d1377b25a36adfe6604f78cbd3a23a07cf0f29e6Douglas Gregor data.recycle(); 3077d1377b25a36adfe6604f78cbd3a23a07cf0f29e6Douglas Gregor reply.recycle(); 3078d1377b25a36adfe6604f78cbd3a23a07cf0f29e6Douglas Gregor return list; 3079d1377b25a36adfe6604f78cbd3a23a07cf0f29e6Douglas Gregor } 3080d1377b25a36adfe6604f78cbd3a23a07cf0f29e6Douglas Gregor public List<ActivityManager.RunningAppProcessInfo> getRunningAppProcesses() 3081d1377b25a36adfe6604f78cbd3a23a07cf0f29e6Douglas Gregor throws RemoteException { 3082dfbb02a16ac8c764b5ba1742450513d6212d2f9fNAKAMURA Takumi Parcel data = Parcel.obtain(); 3083ef8225444452a1486bd721f3285301fe84643b00Stephen Hines Parcel reply = Parcel.obtain(); 3084d1377b25a36adfe6604f78cbd3a23a07cf0f29e6Douglas Gregor data.writeInterfaceToken(IActivityManager.descriptor); 3085d1377b25a36adfe6604f78cbd3a23a07cf0f29e6Douglas Gregor mRemote.transact(GET_RUNNING_APP_PROCESSES_TRANSACTION, data, reply, 0); 308660d7b3a319d84d688752be3870615ac0f111fb16John McCall reply.readException(); 3087dfbb02a16ac8c764b5ba1742450513d6212d2f9fNAKAMURA Takumi ArrayList<ActivityManager.RunningAppProcessInfo> list 3088d1377b25a36adfe6604f78cbd3a23a07cf0f29e6Douglas Gregor = reply.createTypedArrayList(ActivityManager.RunningAppProcessInfo.CREATOR); 30894e4d08403ca5cfd4d558fa2936215d3a4e5a528dDavid Blaikie data.recycle(); 3090da4b7cf09ebfd4e4098b516081fa9dae2f5c99e0Anders Carlsson reply.recycle(); 3091da4b7cf09ebfd4e4098b516081fa9dae2f5c99e0Anders Carlsson return list; 30929ae2f076ca5ab1feb3ba95629099ec2319833701John McCall } 3093e21dd6ffef4585fa43cd3586ed971217d65bf56cSteve Naroff public List<ApplicationInfo> getRunningExternalApplications() 3094e21dd6ffef4585fa43cd3586ed971217d65bf56cSteve Naroff throws RemoteException { 3095e21dd6ffef4585fa43cd3586ed971217d65bf56cSteve Naroff Parcel data = Parcel.obtain(); 3096e21dd6ffef4585fa43cd3586ed971217d65bf56cSteve Naroff Parcel reply = Parcel.obtain(); 3097e21dd6ffef4585fa43cd3586ed971217d65bf56cSteve Naroff data.writeInterfaceToken(IActivityManager.descriptor); 3098e21dd6ffef4585fa43cd3586ed971217d65bf56cSteve Naroff mRemote.transact(GET_RUNNING_EXTERNAL_APPLICATIONS_TRANSACTION, data, reply, 0); 30994ab2414f297fab1b290e77bfc3b049ccf45eda81Steve Naroff reply.readException(); 3100dfbb02a16ac8c764b5ba1742450513d6212d2f9fNAKAMURA Takumi ArrayList<ApplicationInfo> list 31019ae2f076ca5ab1feb3ba95629099ec2319833701John McCall = reply.createTypedArrayList(ApplicationInfo.CREATOR); 310239f8f159c488a900e5958d5aab3e467af9ec8a2bFariborz Jahanian data.recycle(); 3103bd49a647afd9cc534fef13cadf652d4e9c396e2bFariborz Jahanian reply.recycle(); 310407524039dce5c820f111a1b3f772b4261f004b4aJohn McCall return list; 310507524039dce5c820f111a1b3f772b4261f004b4aJohn McCall } 310607524039dce5c820f111a1b3f772b4261f004b4aJohn McCall public void moveTaskToFront(int task, int flags, Bundle options) throws RemoteException 310707524039dce5c820f111a1b3f772b4261f004b4aJohn McCall { 310807524039dce5c820f111a1b3f772b4261f004b4aJohn McCall Parcel data = Parcel.obtain(); 3109ef8225444452a1486bd721f3285301fe84643b00Stephen Hines Parcel reply = Parcel.obtain(); 31105e3c67b4bd894a926282d24b4d0cbc0e123c9f4aJohn McCall data.writeInterfaceToken(IActivityManager.descriptor); 3111a868a203a18571d091e5d226f5f100d4440f3d94Chris Lattner data.writeInt(task); 311207524039dce5c820f111a1b3f772b4261f004b4aJohn McCall data.writeInt(flags); 311307524039dce5c820f111a1b3f772b4261f004b4aJohn McCall if (options != null) { 311407524039dce5c820f111a1b3f772b4261f004b4aJohn McCall data.writeInt(1); 311507524039dce5c820f111a1b3f772b4261f004b4aJohn McCall options.writeToParcel(data, 0); 311607524039dce5c820f111a1b3f772b4261f004b4aJohn McCall } else { 311707524039dce5c820f111a1b3f772b4261f004b4aJohn McCall data.writeInt(0); 311807524039dce5c820f111a1b3f772b4261f004b4aJohn McCall } 3119a868a203a18571d091e5d226f5f100d4440f3d94Chris Lattner mRemote.transact(MOVE_TASK_TO_FRONT_TRANSACTION, data, reply, 0); 31201eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump reply.readException(); 312107524039dce5c820f111a1b3f772b4261f004b4aJohn McCall data.recycle(); 3122419563768ef4929a622d7c2b066856e82901bb91Richard Smith reply.recycle(); 312307524039dce5c820f111a1b3f772b4261f004b4aJohn McCall } 312407524039dce5c820f111a1b3f772b4261f004b4aJohn McCall public void moveTaskToBack(int task) throws RemoteException 312507524039dce5c820f111a1b3f772b4261f004b4aJohn McCall { 312607524039dce5c820f111a1b3f772b4261f004b4aJohn McCall Parcel data = Parcel.obtain(); 312707524039dce5c820f111a1b3f772b4261f004b4aJohn McCall Parcel reply = Parcel.obtain(); 312807524039dce5c820f111a1b3f772b4261f004b4aJohn McCall data.writeInterfaceToken(IActivityManager.descriptor); 312907524039dce5c820f111a1b3f772b4261f004b4aJohn McCall data.writeInt(task); 3130ef8225444452a1486bd721f3285301fe84643b00Stephen Hines mRemote.transact(MOVE_TASK_TO_BACK_TRANSACTION, data, reply, 0); 3131fa3ee8e6776634caf064ba5928ca7699d317a280Fariborz Jahanian reply.readException(); 31324b07b2968f87f3cd5a3d8c76145f1cbfd718d42dSebastian Redl data.recycle(); 31334b07b2968f87f3cd5a3d8c76145f1cbfd718d42dSebastian Redl reply.recycle(); 31344b07b2968f87f3cd5a3d8c76145f1cbfd718d42dSebastian Redl } 313560d7b3a319d84d688752be3870615ac0f111fb16John McCall public boolean moveActivityTaskToBack(IBinder token, boolean nonRoot) 3136d226f65006733ed7f709c3174f22ce33391cb58fJohn McCall throws RemoteException { 31379ae2f076ca5ab1feb3ba95629099ec2319833701John McCall Parcel data = Parcel.obtain(); 31384b07b2968f87f3cd5a3d8c76145f1cbfd718d42dSebastian Redl Parcel reply = Parcel.obtain(); 3139ef8225444452a1486bd721f3285301fe84643b00Stephen Hines data.writeInterfaceToken(IActivityManager.descriptor); 3140ef8225444452a1486bd721f3285301fe84643b00Stephen Hines data.writeStrongBinder(token); 31414b07b2968f87f3cd5a3d8c76145f1cbfd718d42dSebastian Redl data.writeInt(nonRoot ? 1 : 0); 31428351da06ca3082dfd49dd8e3c1785a986920f57cSebastian Redl mRemote.transact(MOVE_ACTIVITY_TASK_TO_BACK_TRANSACTION, data, reply, 0); 3143f85e193739c953358c865005855253af4f68a497John McCall reply.readException(); 3144f85e193739c953358c865005855253af4f68a497John McCall boolean res = reply.readInt() != 0; 3145f85e193739c953358c865005855253af4f68a497John McCall data.recycle(); 3146ef8225444452a1486bd721f3285301fe84643b00Stephen Hines reply.recycle(); 3147f85e193739c953358c865005855253af4f68a497John McCall return res; 3148f85e193739c953358c865005855253af4f68a497John McCall } 31493c46e8db99196179b30e7ac5c20c4efd5f3926d7Dan Gohman public void moveTaskBackwards(int task) throws RemoteException 31503c46e8db99196179b30e7ac5c20c4efd5f3926d7Dan Gohman { 3151c447aba04527a71d254b151f79f444d1cbe83ce9Sebastian Redl Parcel data = Parcel.obtain(); 3152c447aba04527a71d254b151f79f444d1cbe83ce9Sebastian Redl Parcel reply = Parcel.obtain(); 3153c447aba04527a71d254b151f79f444d1cbe83ce9Sebastian Redl data.writeInterfaceToken(IActivityManager.descriptor); 3154c447aba04527a71d254b151f79f444d1cbe83ce9Sebastian Redl data.writeInt(task); 3155c447aba04527a71d254b151f79f444d1cbe83ce9Sebastian Redl mRemote.transact(MOVE_TASK_BACKWARDS_TRANSACTION, data, reply, 0); 3156c447aba04527a71d254b151f79f444d1cbe83ce9Sebastian Redl reply.readException(); 3157c447aba04527a71d254b151f79f444d1cbe83ce9Sebastian Redl data.recycle(); 31580953e767ff7817f97b3ab20896b229891eeff45bJohn McCall reply.recycle(); 31590953e767ff7817f97b3ab20896b229891eeff45bJohn McCall } 3160c447aba04527a71d254b151f79f444d1cbe83ce9Sebastian Redl @Override 31610953e767ff7817f97b3ab20896b229891eeff45bJohn McCall public void moveTaskToStack(int taskId, int stackId, boolean toTop) throws RemoteException 3162c447aba04527a71d254b151f79f444d1cbe83ce9Sebastian Redl { 31630953e767ff7817f97b3ab20896b229891eeff45bJohn McCall Parcel data = Parcel.obtain(); 3164c447aba04527a71d254b151f79f444d1cbe83ce9Sebastian Redl Parcel reply = Parcel.obtain(); 3165c447aba04527a71d254b151f79f444d1cbe83ce9Sebastian Redl data.writeInterfaceToken(IActivityManager.descriptor); 3166c447aba04527a71d254b151f79f444d1cbe83ce9Sebastian Redl data.writeInt(taskId); 3167c447aba04527a71d254b151f79f444d1cbe83ce9Sebastian Redl data.writeInt(stackId); 31681eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump data.writeInt(toTop ? 1 : 0); 3169c447aba04527a71d254b151f79f444d1cbe83ce9Sebastian Redl mRemote.transact(MOVE_TASK_TO_STACK_TRANSACTION, data, reply, 0); 31700953e767ff7817f97b3ab20896b229891eeff45bJohn McCall reply.readException(); 3171c447aba04527a71d254b151f79f444d1cbe83ce9Sebastian Redl data.recycle(); 31721eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump reply.recycle(); 3173c447aba04527a71d254b151f79f444d1cbe83ce9Sebastian Redl } 3174c447aba04527a71d254b151f79f444d1cbe83ce9Sebastian Redl @Override 3175c447aba04527a71d254b151f79f444d1cbe83ce9Sebastian Redl public void resizeStack(int stackBoxId, Rect r) throws RemoteException 3176c447aba04527a71d254b151f79f444d1cbe83ce9Sebastian Redl { 3177c447aba04527a71d254b151f79f444d1cbe83ce9Sebastian Redl Parcel data = Parcel.obtain(); 3178c447aba04527a71d254b151f79f444d1cbe83ce9Sebastian Redl Parcel reply = Parcel.obtain(); 31793c46e8db99196179b30e7ac5c20c4efd5f3926d7Dan Gohman data.writeInterfaceToken(IActivityManager.descriptor); 31803c46e8db99196179b30e7ac5c20c4efd5f3926d7Dan Gohman data.writeInt(stackBoxId); 31818351da06ca3082dfd49dd8e3c1785a986920f57cSebastian Redl r.writeToParcel(data, 0); 31828351da06ca3082dfd49dd8e3c1785a986920f57cSebastian Redl mRemote.transact(RESIZE_STACK_TRANSACTION, data, reply, IBinder.FLAG_ONEWAY); 318321adb0ce21d8180b5dce0a31209cba3a5a33e26aRobert Wilhelm reply.readException(); 318421adb0ce21d8180b5dce0a31209cba3a5a33e26aRobert Wilhelm data.recycle(); 3185729b853f4bfa83e53c638a06a9dccf83b4e1f720Anders Carlsson reply.recycle(); 31864e4d08403ca5cfd4d558fa2936215d3a4e5a528dDavid Blaikie } 3187729b853f4bfa83e53c638a06a9dccf83b4e1f720Anders Carlsson @Override 3188729b853f4bfa83e53c638a06a9dccf83b4e1f720Anders Carlsson public List<StackInfo> getAllStackInfos() throws RemoteException 31897f11d9cf5df1f8ce82af46eabc4ec5cec7d580b0Anders Carlsson { 3190ef8225444452a1486bd721f3285301fe84643b00Stephen Hines Parcel data = Parcel.obtain(); 3191ef8225444452a1486bd721f3285301fe84643b00Stephen Hines Parcel reply = Parcel.obtain(); 3192ef8225444452a1486bd721f3285301fe84643b00Stephen Hines data.writeInterfaceToken(IActivityManager.descriptor); 319321adb0ce21d8180b5dce0a31209cba3a5a33e26aRobert Wilhelm mRemote.transact(GET_ALL_STACK_INFOS_TRANSACTION, data, reply, 0); 31948351da06ca3082dfd49dd8e3c1785a986920f57cSebastian Redl reply.readException(); 31958351da06ca3082dfd49dd8e3c1785a986920f57cSebastian Redl ArrayList<StackInfo> list = reply.createTypedArrayList(StackInfo.CREATOR); 31968351da06ca3082dfd49dd8e3c1785a986920f57cSebastian Redl data.recycle(); 31975f9e272e632e951b1efe824cd16acb4d96077930Chris Lattner reply.recycle(); 31981eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump return list; 31991eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump } 32005f9e272e632e951b1efe824cd16acb4d96077930Chris Lattner @Override 3201c447aba04527a71d254b151f79f444d1cbe83ce9Sebastian Redl public StackInfo getStackInfo(int stackId) throws RemoteException 3202c447aba04527a71d254b151f79f444d1cbe83ce9Sebastian Redl { 3203c447aba04527a71d254b151f79f444d1cbe83ce9Sebastian Redl Parcel data = Parcel.obtain(); 3204c447aba04527a71d254b151f79f444d1cbe83ce9Sebastian Redl Parcel reply = Parcel.obtain(); 32051eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump data.writeInterfaceToken(IActivityManager.descriptor); 3206c447aba04527a71d254b151f79f444d1cbe83ce9Sebastian Redl data.writeInt(stackId); 3207c447aba04527a71d254b151f79f444d1cbe83ce9Sebastian Redl mRemote.transact(GET_STACK_INFO_TRANSACTION, data, reply, 0); 32081eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump reply.readException(); 3209c447aba04527a71d254b151f79f444d1cbe83ce9Sebastian Redl int res = reply.readInt(); 3210c447aba04527a71d254b151f79f444d1cbe83ce9Sebastian Redl StackInfo info = null; 3211c447aba04527a71d254b151f79f444d1cbe83ce9Sebastian Redl if (res != 0) { 3212c447aba04527a71d254b151f79f444d1cbe83ce9Sebastian Redl info = StackInfo.CREATOR.createFromParcel(reply); 3213c447aba04527a71d254b151f79f444d1cbe83ce9Sebastian Redl } 3214c447aba04527a71d254b151f79f444d1cbe83ce9Sebastian Redl data.recycle(); 3215c447aba04527a71d254b151f79f444d1cbe83ce9Sebastian Redl reply.recycle(); 3216c447aba04527a71d254b151f79f444d1cbe83ce9Sebastian Redl return info; 32171eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump } 3218c447aba04527a71d254b151f79f444d1cbe83ce9Sebastian Redl @Override 3219c447aba04527a71d254b151f79f444d1cbe83ce9Sebastian Redl public boolean isInHomeStack(int taskId) throws RemoteException { 3220c447aba04527a71d254b151f79f444d1cbe83ce9Sebastian Redl Parcel data = Parcel.obtain(); 32211eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump Parcel reply = Parcel.obtain(); 3222c447aba04527a71d254b151f79f444d1cbe83ce9Sebastian Redl data.writeInterfaceToken(IActivityManager.descriptor); 3223c447aba04527a71d254b151f79f444d1cbe83ce9Sebastian Redl data.writeInt(taskId); 3224c447aba04527a71d254b151f79f444d1cbe83ce9Sebastian Redl mRemote.transact(IS_IN_HOME_STACK_TRANSACTION, data, reply, 0); 3225c447aba04527a71d254b151f79f444d1cbe83ce9Sebastian Redl reply.readException(); 3226c447aba04527a71d254b151f79f444d1cbe83ce9Sebastian Redl boolean isInHomeStack = reply.readInt() > 0; 3227c447aba04527a71d254b151f79f444d1cbe83ce9Sebastian Redl data.recycle(); 3228c447aba04527a71d254b151f79f444d1cbe83ce9Sebastian Redl reply.recycle(); 3229c447aba04527a71d254b151f79f444d1cbe83ce9Sebastian Redl return isInHomeStack; 32301eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump } 3231c447aba04527a71d254b151f79f444d1cbe83ce9Sebastian Redl @Override 3232c447aba04527a71d254b151f79f444d1cbe83ce9Sebastian Redl public void setFocusedStack(int stackId) throws RemoteException 32338351da06ca3082dfd49dd8e3c1785a986920f57cSebastian Redl { 32341eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump Parcel data = Parcel.obtain(); 3235781472fe99a120098c631b0cbe33c89f8cef5e70John McCall Parcel reply = Parcel.obtain(); 3236b60a77e453d32db0ab1914d28e175c2defc0eb65John McCall data.writeInterfaceToken(IActivityManager.descriptor); 32378351da06ca3082dfd49dd8e3c1785a986920f57cSebastian Redl data.writeInt(stackId); 32388351da06ca3082dfd49dd8e3c1785a986920f57cSebastian Redl mRemote.transact(SET_FOCUSED_STACK_TRANSACTION, data, reply, IBinder.FLAG_ONEWAY); 32398351da06ca3082dfd49dd8e3c1785a986920f57cSebastian Redl reply.readException(); 32408351da06ca3082dfd49dd8e3c1785a986920f57cSebastian Redl data.recycle(); 32418351da06ca3082dfd49dd8e3c1785a986920f57cSebastian Redl reply.recycle(); 32428351da06ca3082dfd49dd8e3c1785a986920f57cSebastian Redl } 3243ef8225444452a1486bd721f3285301fe84643b00Stephen Hines public int getTaskForActivity(IBinder token, boolean onlyRoot) throws RemoteException 32448351da06ca3082dfd49dd8e3c1785a986920f57cSebastian Redl { 324528bbe4b8acc338476fe0825769b41fb32b423c72John Wiegley Parcel data = Parcel.obtain(); 324628bbe4b8acc338476fe0825769b41fb32b423c72John Wiegley Parcel reply = Parcel.obtain(); 324728bbe4b8acc338476fe0825769b41fb32b423c72John Wiegley data.writeInterfaceToken(IActivityManager.descriptor); 324828bbe4b8acc338476fe0825769b41fb32b423c72John Wiegley data.writeStrongBinder(token); 324928bbe4b8acc338476fe0825769b41fb32b423c72John Wiegley data.writeInt(onlyRoot ? 1 : 0); 325028bbe4b8acc338476fe0825769b41fb32b423c72John Wiegley mRemote.transact(GET_TASK_FOR_ACTIVITY_TRANSACTION, data, reply, 0); 325128bbe4b8acc338476fe0825769b41fb32b423c72John Wiegley reply.readException(); 325228bbe4b8acc338476fe0825769b41fb32b423c72John Wiegley int res = reply.readInt(); 325328bbe4b8acc338476fe0825769b41fb32b423c72John Wiegley data.recycle(); 325428bbe4b8acc338476fe0825769b41fb32b423c72John Wiegley reply.recycle(); 3255ef8225444452a1486bd721f3285301fe84643b00Stephen Hines return res; 325628bbe4b8acc338476fe0825769b41fb32b423c72John Wiegley } 325728bbe4b8acc338476fe0825769b41fb32b423c72John Wiegley public ContentProviderHolder getContentProvider(IApplicationThread caller, 325828bbe4b8acc338476fe0825769b41fb32b423c72John Wiegley String name, int userId, boolean stable) throws RemoteException { 325928bbe4b8acc338476fe0825769b41fb32b423c72John Wiegley Parcel data = Parcel.obtain(); 326028bbe4b8acc338476fe0825769b41fb32b423c72John Wiegley Parcel reply = Parcel.obtain(); 326128bbe4b8acc338476fe0825769b41fb32b423c72John Wiegley data.writeInterfaceToken(IActivityManager.descriptor); 326228bbe4b8acc338476fe0825769b41fb32b423c72John Wiegley data.writeStrongBinder(caller != null ? caller.asBinder() : null); 326328bbe4b8acc338476fe0825769b41fb32b423c72John Wiegley data.writeString(name); 326428bbe4b8acc338476fe0825769b41fb32b423c72John Wiegley data.writeInt(userId); 326558f14c012e5d739b09532bb12645dc161f88cfcfFrancois Pichet data.writeInt(stable ? 1 : 0); 326658f14c012e5d739b09532bb12645dc161f88cfcfFrancois Pichet mRemote.transact(GET_CONTENT_PROVIDER_TRANSACTION, data, reply, 0); 326758f14c012e5d739b09532bb12645dc161f88cfcfFrancois Pichet reply.readException(); 326828bbe4b8acc338476fe0825769b41fb32b423c72John Wiegley int res = reply.readInt(); 326928bbe4b8acc338476fe0825769b41fb32b423c72John Wiegley ContentProviderHolder cph = null; 3270ef8225444452a1486bd721f3285301fe84643b00Stephen Hines if (res != 0) { 327128bbe4b8acc338476fe0825769b41fb32b423c72John Wiegley cph = ContentProviderHolder.CREATOR.createFromParcel(reply); 327228bbe4b8acc338476fe0825769b41fb32b423c72John Wiegley } 327328bbe4b8acc338476fe0825769b41fb32b423c72John Wiegley data.recycle(); 327428bbe4b8acc338476fe0825769b41fb32b423c72John Wiegley reply.recycle(); 327528bbe4b8acc338476fe0825769b41fb32b423c72John Wiegley return cph; 327628bbe4b8acc338476fe0825769b41fb32b423c72John Wiegley } 3277ef8225444452a1486bd721f3285301fe84643b00Stephen Hines public ContentProviderHolder getContentProviderExternal(String name, int userId, IBinder token) 3278ef8225444452a1486bd721f3285301fe84643b00Stephen Hines throws RemoteException { 3279ef8225444452a1486bd721f3285301fe84643b00Stephen Hines Parcel data = Parcel.obtain(); 3280ef8225444452a1486bd721f3285301fe84643b00Stephen Hines Parcel reply = Parcel.obtain(); 3281ef8225444452a1486bd721f3285301fe84643b00Stephen Hines data.writeInterfaceToken(IActivityManager.descriptor); 3282ef8225444452a1486bd721f3285301fe84643b00Stephen Hines data.writeString(name); 3283ef8225444452a1486bd721f3285301fe84643b00Stephen Hines data.writeInt(userId); 3284ef8225444452a1486bd721f3285301fe84643b00Stephen Hines data.writeStrongBinder(token); 3285ef8225444452a1486bd721f3285301fe84643b00Stephen Hines mRemote.transact(GET_CONTENT_PROVIDER_EXTERNAL_TRANSACTION, data, reply, 0); 3286ef8225444452a1486bd721f3285301fe84643b00Stephen Hines reply.readException(); 3287ef8225444452a1486bd721f3285301fe84643b00Stephen Hines int res = reply.readInt(); 3288ef8225444452a1486bd721f3285301fe84643b00Stephen Hines ContentProviderHolder cph = null; 328928bbe4b8acc338476fe0825769b41fb32b423c72John Wiegley if (res != 0) { 3290ba0513de93d2fab6db5ab30b6927209fcc883078Douglas Gregor cph = ContentProviderHolder.CREATOR.createFromParcel(reply); 3291ba0513de93d2fab6db5ab30b6927209fcc883078Douglas Gregor } 3292ba0513de93d2fab6db5ab30b6927209fcc883078Douglas Gregor data.recycle(); 3293ba0513de93d2fab6db5ab30b6927209fcc883078Douglas Gregor reply.recycle(); 3294ba0513de93d2fab6db5ab30b6927209fcc883078Douglas Gregor return cph; 3295ba0513de93d2fab6db5ab30b6927209fcc883078Douglas Gregor } 3296ba0513de93d2fab6db5ab30b6927209fcc883078Douglas Gregor public void publishContentProviders(IApplicationThread caller, 3297ba0513de93d2fab6db5ab30b6927209fcc883078Douglas Gregor List<ContentProviderHolder> providers) throws RemoteException 32981093f4928a4263d08b44d96e468a42515d8a28f3Chad Rosier { 3299ba0513de93d2fab6db5ab30b6927209fcc883078Douglas Gregor Parcel data = Parcel.obtain(); 3300ba0513de93d2fab6db5ab30b6927209fcc883078Douglas Gregor Parcel reply = Parcel.obtain(); 3301ba0513de93d2fab6db5ab30b6927209fcc883078Douglas Gregor data.writeInterfaceToken(IActivityManager.descriptor); 3302ba0513de93d2fab6db5ab30b6927209fcc883078Douglas Gregor data.writeStrongBinder(caller != null ? caller.asBinder() : null); 33031093f4928a4263d08b44d96e468a42515d8a28f3Chad Rosier data.writeTypedList(providers); 3304ba0513de93d2fab6db5ab30b6927209fcc883078Douglas Gregor mRemote.transact(PUBLISH_CONTENT_PROVIDERS_TRANSACTION, data, reply, 0); 33051093f4928a4263d08b44d96e468a42515d8a28f3Chad Rosier reply.readException(); 3306ba0513de93d2fab6db5ab30b6927209fcc883078Douglas Gregor data.recycle(); 3307ba0513de93d2fab6db5ab30b6927209fcc883078Douglas Gregor reply.recycle(); 33081093f4928a4263d08b44d96e468a42515d8a28f3Chad Rosier } 3309ba0513de93d2fab6db5ab30b6927209fcc883078Douglas Gregor public boolean refContentProvider(IBinder connection, int stable, int unstable) 3310ba0513de93d2fab6db5ab30b6927209fcc883078Douglas Gregor throws RemoteException { 3311ba0513de93d2fab6db5ab30b6927209fcc883078Douglas Gregor Parcel data = Parcel.obtain(); 3312ba0513de93d2fab6db5ab30b6927209fcc883078Douglas Gregor Parcel reply = Parcel.obtain(); 33136afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj data.writeInterfaceToken(IActivityManager.descriptor); 33146afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj data.writeStrongBinder(connection); 33158c045ace381972f41d385b0a661ccf172834f459Ben Langmuir data.writeInt(stable); 33168c045ace381972f41d385b0a661ccf172834f459Ben Langmuir data.writeInt(unstable); 33176afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj mRemote.transact(REF_CONTENT_PROVIDER_TRANSACTION, data, reply, 0); 33186afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj reply.readException(); 33196afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj boolean res = reply.readInt() != 0; 33206afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj data.recycle(); 33216bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines reply.recycle(); 33226afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj return res; 33236bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines } 33246bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines 33256afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj public void unstableProviderDied(IBinder connection) throws RemoteException { 33266bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines Parcel data = Parcel.obtain(); 33276afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj Parcel reply = Parcel.obtain(); 33286afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj data.writeInterfaceToken(IActivityManager.descriptor); 33296afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj data.writeStrongBinder(connection); 33306afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj mRemote.transact(UNSTABLE_PROVIDER_DIED_TRANSACTION, data, reply, 0); 33316afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj reply.readException(); 33326bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines data.recycle(); 33338c045ace381972f41d385b0a661ccf172834f459Ben Langmuir reply.recycle(); 33346afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj } 33356afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj 33366afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj @Override 33376afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj public void appNotRespondingViaProvider(IBinder connection) throws RemoteException { 33386afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj Parcel data = Parcel.obtain(); 33396afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj Parcel reply = Parcel.obtain(); 33406afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj data.writeInterfaceToken(IActivityManager.descriptor); 33416afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj data.writeStrongBinder(connection); 33426afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj mRemote.transact(APP_NOT_RESPONDING_VIA_PROVIDER_TRANSACTION, data, reply, 0); 33436afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj reply.readException(); 33446afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj data.recycle(); 33456afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj reply.recycle(); 33466afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj } 33476afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj 33486afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj public void removeContentProvider(IBinder connection, boolean stable) throws RemoteException { 33490d8e9646bc000bab521ce52ed294209a92298cefRichard Smith Parcel data = Parcel.obtain(); 33506afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj Parcel reply = Parcel.obtain(); 33516afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj data.writeInterfaceToken(IActivityManager.descriptor); 33526afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj data.writeStrongBinder(connection); 33536afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj data.writeInt(stable ? 1 : 0); 33546afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj mRemote.transact(REMOVE_CONTENT_PROVIDER_TRANSACTION, data, reply, 0); 33556afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj reply.readException(); 33566afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj data.recycle(); 33576afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj reply.recycle(); 33586afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj } 33590d8e9646bc000bab521ce52ed294209a92298cefRichard Smith 33606afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj public void removeContentProviderExternal(String name, IBinder token) throws RemoteException { 33616afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj Parcel data = Parcel.obtain(); 33626afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj Parcel reply = Parcel.obtain(); 33636afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj data.writeInterfaceToken(IActivityManager.descriptor); 33649fd6b8f5a73788f288edd01fa99d434d1e6588adWei Pan data.writeString(name); 33659fd6b8f5a73788f288edd01fa99d434d1e6588adWei Pan data.writeStrongBinder(token); 33666bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines mRemote.transact(REMOVE_CONTENT_PROVIDER_EXTERNAL_TRANSACTION, data, reply, 0); 33678c045ace381972f41d385b0a661ccf172834f459Ben Langmuir reply.readException(); 33686afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj data.recycle(); 33696bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines reply.recycle(); 33706bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines } 33716bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines 33726bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines public PendingIntent getRunningServiceControlPanel(ComponentName service) 33736bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines throws RemoteException 33746bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines { 33756bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines Parcel data = Parcel.obtain(); 33766bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines Parcel reply = Parcel.obtain(); 33776bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines data.writeInterfaceToken(IActivityManager.descriptor); 33786bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines service.writeToParcel(data, 0); 33796bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines mRemote.transact(GET_RUNNING_SERVICE_CONTROL_PANEL_TRANSACTION, data, reply, 0); 33806bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines reply.readException(); 33816bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines PendingIntent res = PendingIntent.readPendingIntentOrNullFromParcel(reply); 33826bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines data.recycle(); 33836bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines reply.recycle(); 33846bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines return res; 33856bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines } 33866bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines 33876bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines public ComponentName startService(IApplicationThread caller, Intent service, 33886bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines String resolvedType, int userId) throws RemoteException 33896bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines { 33906bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines Parcel data = Parcel.obtain(); 33916bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines Parcel reply = Parcel.obtain(); 33926bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines data.writeInterfaceToken(IActivityManager.descriptor); 33936bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines data.writeStrongBinder(caller != null ? caller.asBinder() : null); 33946bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines service.writeToParcel(data, 0); 33956bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines data.writeString(resolvedType); 33966bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines data.writeInt(userId); 33976bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines mRemote.transact(START_SERVICE_TRANSACTION, data, reply, 0); 33986bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines reply.readException(); 33996bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines ComponentName res = ComponentName.readFromParcel(reply); 34006bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines data.recycle(); 34016bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines reply.recycle(); 34026bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines return res; 34036bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines } 34046bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines public int stopService(IApplicationThread caller, Intent service, 34056bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines String resolvedType, int userId) throws RemoteException 34066bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines { 34076bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines Parcel data = Parcel.obtain(); 34086bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines Parcel reply = Parcel.obtain(); 34096bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines data.writeInterfaceToken(IActivityManager.descriptor); 34106bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines data.writeStrongBinder(caller != null ? caller.asBinder() : null); 34116bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines service.writeToParcel(data, 0); 34126bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines data.writeString(resolvedType); 34136bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines data.writeInt(userId); 34146bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines mRemote.transact(STOP_SERVICE_TRANSACTION, data, reply, 0); 34156bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines reply.readException(); 34166bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines int res = reply.readInt(); 34176bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines reply.recycle(); 34186bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines data.recycle(); 34196bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines return res; 34206bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines } 34216bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines public boolean stopServiceToken(ComponentName className, IBinder token, 34226bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines int startId) throws RemoteException { 34236bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines Parcel data = Parcel.obtain(); 34246bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines Parcel reply = Parcel.obtain(); 34256bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines data.writeInterfaceToken(IActivityManager.descriptor); 34266bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines ComponentName.writeToParcel(className, data); 34276bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines data.writeStrongBinder(token); 34286bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines data.writeInt(startId); 34296bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines mRemote.transact(STOP_SERVICE_TOKEN_TRANSACTION, data, reply, 0); 34306bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines reply.readException(); 34316afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj boolean res = reply.readInt() != 0; 34326afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj data.recycle(); 34336afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj reply.recycle(); 34346afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj return res; 34356afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj } 34366afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj public void setServiceForeground(ComponentName className, IBinder token, 34376afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj int id, Notification notification, boolean removeNotification) throws RemoteException { 34386afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj Parcel data = Parcel.obtain(); 34396afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj Parcel reply = Parcel.obtain(); 34406afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj data.writeInterfaceToken(IActivityManager.descriptor); 34416afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj ComponentName.writeToParcel(className, data); 34429fd6b8f5a73788f288edd01fa99d434d1e6588adWei Pan data.writeStrongBinder(token); 34436afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj data.writeInt(id); 34446afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj if (notification != null) { 34456afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj data.writeInt(1); 34466afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj notification.writeToParcel(data, 0); 34476afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj } else { 34486afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj data.writeInt(0); 34496afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj } 3450651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines data.writeInt(removeNotification ? 1 : 0); 34516bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines mRemote.transact(SET_SERVICE_FOREGROUND_TRANSACTION, data, reply, 0); 34526bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines reply.readException(); 34536afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj data.recycle(); 34549fd6b8f5a73788f288edd01fa99d434d1e6588adWei Pan reply.recycle(); 34556afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj } 34566afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj public int bindService(IApplicationThread caller, IBinder token, 34576afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj Intent service, String resolvedType, IServiceConnection connection, 34586afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj int flags, int userId) throws RemoteException { 34596afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj Parcel data = Parcel.obtain(); 34606afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj Parcel reply = Parcel.obtain(); 34616afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj data.writeInterfaceToken(IActivityManager.descriptor); 34626afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj data.writeStrongBinder(caller != null ? caller.asBinder() : null); 34636afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj data.writeStrongBinder(token); 34646afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj service.writeToParcel(data, 0); 34656afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj data.writeString(resolvedType); 34666afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj data.writeStrongBinder(connection.asBinder()); 34676afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj data.writeInt(flags); 34689fd6b8f5a73788f288edd01fa99d434d1e6588adWei Pan data.writeInt(userId); 34699fd6b8f5a73788f288edd01fa99d434d1e6588adWei Pan mRemote.transact(BIND_SERVICE_TRANSACTION, data, reply, 0); 34706afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj reply.readException(); 34716afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj int res = reply.readInt(); 34726afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj data.recycle(); 34736afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj reply.recycle(); 34746afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj return res; 34759fd6b8f5a73788f288edd01fa99d434d1e6588adWei Pan } 34769fd6b8f5a73788f288edd01fa99d434d1e6588adWei Pan public boolean unbindService(IServiceConnection connection) throws RemoteException 34779fd6b8f5a73788f288edd01fa99d434d1e6588adWei Pan { 34786afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj Parcel data = Parcel.obtain(); 34796afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj Parcel reply = Parcel.obtain(); 34806afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj data.writeInterfaceToken(IActivityManager.descriptor); 3481ef8225444452a1486bd721f3285301fe84643b00Stephen Hines data.writeStrongBinder(connection.asBinder()); 34826afcf8875d4e447645cd7bf3733dd8e2eb8455dcTareq A. Siraj mRemote.transact(UNBIND_SERVICE_TRANSACTION, data, reply, 0); 3483 reply.readException(); 3484 boolean res = reply.readInt() != 0; 3485 data.recycle(); 3486 reply.recycle(); 3487 return res; 3488 } 3489 3490 public void publishService(IBinder token, 3491 Intent intent, IBinder service) throws RemoteException { 3492 Parcel data = Parcel.obtain(); 3493 Parcel reply = Parcel.obtain(); 3494 data.writeInterfaceToken(IActivityManager.descriptor); 3495 data.writeStrongBinder(token); 3496 intent.writeToParcel(data, 0); 3497 data.writeStrongBinder(service); 3498 mRemote.transact(PUBLISH_SERVICE_TRANSACTION, data, reply, 0); 3499 reply.readException(); 3500 data.recycle(); 3501 reply.recycle(); 3502 } 3503 3504 public void unbindFinished(IBinder token, Intent intent, boolean doRebind) 3505 throws RemoteException { 3506 Parcel data = Parcel.obtain(); 3507 Parcel reply = Parcel.obtain(); 3508 data.writeInterfaceToken(IActivityManager.descriptor); 3509 data.writeStrongBinder(token); 3510 intent.writeToParcel(data, 0); 3511 data.writeInt(doRebind ? 1 : 0); 3512 mRemote.transact(UNBIND_FINISHED_TRANSACTION, data, reply, 0); 3513 reply.readException(); 3514 data.recycle(); 3515 reply.recycle(); 3516 } 3517 3518 public void serviceDoneExecuting(IBinder token, int type, int startId, 3519 int res) throws RemoteException { 3520 Parcel data = Parcel.obtain(); 3521 Parcel reply = Parcel.obtain(); 3522 data.writeInterfaceToken(IActivityManager.descriptor); 3523 data.writeStrongBinder(token); 3524 data.writeInt(type); 3525 data.writeInt(startId); 3526 data.writeInt(res); 3527 mRemote.transact(SERVICE_DONE_EXECUTING_TRANSACTION, data, reply, IBinder.FLAG_ONEWAY); 3528 reply.readException(); 3529 data.recycle(); 3530 reply.recycle(); 3531 } 3532 3533 public IBinder peekService(Intent service, String resolvedType) throws RemoteException { 3534 Parcel data = Parcel.obtain(); 3535 Parcel reply = Parcel.obtain(); 3536 data.writeInterfaceToken(IActivityManager.descriptor); 3537 service.writeToParcel(data, 0); 3538 data.writeString(resolvedType); 3539 mRemote.transact(PEEK_SERVICE_TRANSACTION, data, reply, 0); 3540 reply.readException(); 3541 IBinder binder = reply.readStrongBinder(); 3542 reply.recycle(); 3543 data.recycle(); 3544 return binder; 3545 } 3546 3547 public boolean bindBackupAgent(ApplicationInfo app, int backupRestoreMode) 3548 throws RemoteException { 3549 Parcel data = Parcel.obtain(); 3550 Parcel reply = Parcel.obtain(); 3551 data.writeInterfaceToken(IActivityManager.descriptor); 3552 app.writeToParcel(data, 0); 3553 data.writeInt(backupRestoreMode); 3554 mRemote.transact(START_BACKUP_AGENT_TRANSACTION, data, reply, 0); 3555 reply.readException(); 3556 boolean success = reply.readInt() != 0; 3557 reply.recycle(); 3558 data.recycle(); 3559 return success; 3560 } 3561 3562 public void clearPendingBackup() throws RemoteException { 3563 Parcel data = Parcel.obtain(); 3564 Parcel reply = Parcel.obtain(); 3565 data.writeInterfaceToken(IActivityManager.descriptor); 3566 mRemote.transact(CLEAR_PENDING_BACKUP_TRANSACTION, data, reply, 0); 3567 reply.recycle(); 3568 data.recycle(); 3569 } 3570 3571 public void backupAgentCreated(String packageName, IBinder agent) throws RemoteException { 3572 Parcel data = Parcel.obtain(); 3573 Parcel reply = Parcel.obtain(); 3574 data.writeInterfaceToken(IActivityManager.descriptor); 3575 data.writeString(packageName); 3576 data.writeStrongBinder(agent); 3577 mRemote.transact(BACKUP_AGENT_CREATED_TRANSACTION, data, reply, 0); 3578 reply.recycle(); 3579 data.recycle(); 3580 } 3581 3582 public void unbindBackupAgent(ApplicationInfo app) throws RemoteException { 3583 Parcel data = Parcel.obtain(); 3584 Parcel reply = Parcel.obtain(); 3585 data.writeInterfaceToken(IActivityManager.descriptor); 3586 app.writeToParcel(data, 0); 3587 mRemote.transact(UNBIND_BACKUP_AGENT_TRANSACTION, data, reply, 0); 3588 reply.readException(); 3589 reply.recycle(); 3590 data.recycle(); 3591 } 3592 3593 public boolean startInstrumentation(ComponentName className, String profileFile, 3594 int flags, Bundle arguments, IInstrumentationWatcher watcher, 3595 IUiAutomationConnection connection, int userId, String instructionSet) 3596 throws RemoteException { 3597 Parcel data = Parcel.obtain(); 3598 Parcel reply = Parcel.obtain(); 3599 data.writeInterfaceToken(IActivityManager.descriptor); 3600 ComponentName.writeToParcel(className, data); 3601 data.writeString(profileFile); 3602 data.writeInt(flags); 3603 data.writeBundle(arguments); 3604 data.writeStrongBinder(watcher != null ? watcher.asBinder() : null); 3605 data.writeStrongBinder(connection != null ? connection.asBinder() : null); 3606 data.writeInt(userId); 3607 data.writeString(instructionSet); 3608 mRemote.transact(START_INSTRUMENTATION_TRANSACTION, data, reply, 0); 3609 reply.readException(); 3610 boolean res = reply.readInt() != 0; 3611 reply.recycle(); 3612 data.recycle(); 3613 return res; 3614 } 3615 3616 public void finishInstrumentation(IApplicationThread target, 3617 int resultCode, Bundle results) throws RemoteException { 3618 Parcel data = Parcel.obtain(); 3619 Parcel reply = Parcel.obtain(); 3620 data.writeInterfaceToken(IActivityManager.descriptor); 3621 data.writeStrongBinder(target != null ? target.asBinder() : null); 3622 data.writeInt(resultCode); 3623 data.writeBundle(results); 3624 mRemote.transact(FINISH_INSTRUMENTATION_TRANSACTION, data, reply, 0); 3625 reply.readException(); 3626 data.recycle(); 3627 reply.recycle(); 3628 } 3629 public Configuration getConfiguration() throws RemoteException 3630 { 3631 Parcel data = Parcel.obtain(); 3632 Parcel reply = Parcel.obtain(); 3633 data.writeInterfaceToken(IActivityManager.descriptor); 3634 mRemote.transact(GET_CONFIGURATION_TRANSACTION, data, reply, 0); 3635 reply.readException(); 3636 Configuration res = Configuration.CREATOR.createFromParcel(reply); 3637 reply.recycle(); 3638 data.recycle(); 3639 return res; 3640 } 3641 public void updateConfiguration(Configuration values) throws RemoteException 3642 { 3643 Parcel data = Parcel.obtain(); 3644 Parcel reply = Parcel.obtain(); 3645 data.writeInterfaceToken(IActivityManager.descriptor); 3646 values.writeToParcel(data, 0); 3647 mRemote.transact(UPDATE_CONFIGURATION_TRANSACTION, data, reply, 0); 3648 reply.readException(); 3649 data.recycle(); 3650 reply.recycle(); 3651 } 3652 public void setRequestedOrientation(IBinder token, int requestedOrientation) 3653 throws RemoteException { 3654 Parcel data = Parcel.obtain(); 3655 Parcel reply = Parcel.obtain(); 3656 data.writeInterfaceToken(IActivityManager.descriptor); 3657 data.writeStrongBinder(token); 3658 data.writeInt(requestedOrientation); 3659 mRemote.transact(SET_REQUESTED_ORIENTATION_TRANSACTION, data, reply, 0); 3660 reply.readException(); 3661 data.recycle(); 3662 reply.recycle(); 3663 } 3664 public int getRequestedOrientation(IBinder token) throws RemoteException { 3665 Parcel data = Parcel.obtain(); 3666 Parcel reply = Parcel.obtain(); 3667 data.writeInterfaceToken(IActivityManager.descriptor); 3668 data.writeStrongBinder(token); 3669 mRemote.transact(GET_REQUESTED_ORIENTATION_TRANSACTION, data, reply, 0); 3670 reply.readException(); 3671 int res = reply.readInt(); 3672 data.recycle(); 3673 reply.recycle(); 3674 return res; 3675 } 3676 public ComponentName getActivityClassForToken(IBinder token) 3677 throws RemoteException { 3678 Parcel data = Parcel.obtain(); 3679 Parcel reply = Parcel.obtain(); 3680 data.writeInterfaceToken(IActivityManager.descriptor); 3681 data.writeStrongBinder(token); 3682 mRemote.transact(GET_ACTIVITY_CLASS_FOR_TOKEN_TRANSACTION, data, reply, 0); 3683 reply.readException(); 3684 ComponentName res = ComponentName.readFromParcel(reply); 3685 data.recycle(); 3686 reply.recycle(); 3687 return res; 3688 } 3689 public String getPackageForToken(IBinder token) throws RemoteException 3690 { 3691 Parcel data = Parcel.obtain(); 3692 Parcel reply = Parcel.obtain(); 3693 data.writeInterfaceToken(IActivityManager.descriptor); 3694 data.writeStrongBinder(token); 3695 mRemote.transact(GET_PACKAGE_FOR_TOKEN_TRANSACTION, data, reply, 0); 3696 reply.readException(); 3697 String res = reply.readString(); 3698 data.recycle(); 3699 reply.recycle(); 3700 return res; 3701 } 3702 public IIntentSender getIntentSender(int type, 3703 String packageName, IBinder token, String resultWho, 3704 int requestCode, Intent[] intents, String[] resolvedTypes, int flags, 3705 Bundle options, int userId) throws RemoteException { 3706 Parcel data = Parcel.obtain(); 3707 Parcel reply = Parcel.obtain(); 3708 data.writeInterfaceToken(IActivityManager.descriptor); 3709 data.writeInt(type); 3710 data.writeString(packageName); 3711 data.writeStrongBinder(token); 3712 data.writeString(resultWho); 3713 data.writeInt(requestCode); 3714 if (intents != null) { 3715 data.writeInt(1); 3716 data.writeTypedArray(intents, 0); 3717 data.writeStringArray(resolvedTypes); 3718 } else { 3719 data.writeInt(0); 3720 } 3721 data.writeInt(flags); 3722 if (options != null) { 3723 data.writeInt(1); 3724 options.writeToParcel(data, 0); 3725 } else { 3726 data.writeInt(0); 3727 } 3728 data.writeInt(userId); 3729 mRemote.transact(GET_INTENT_SENDER_TRANSACTION, data, reply, 0); 3730 reply.readException(); 3731 IIntentSender res = IIntentSender.Stub.asInterface( 3732 reply.readStrongBinder()); 3733 data.recycle(); 3734 reply.recycle(); 3735 return res; 3736 } 3737 public void cancelIntentSender(IIntentSender sender) throws RemoteException { 3738 Parcel data = Parcel.obtain(); 3739 Parcel reply = Parcel.obtain(); 3740 data.writeInterfaceToken(IActivityManager.descriptor); 3741 data.writeStrongBinder(sender.asBinder()); 3742 mRemote.transact(CANCEL_INTENT_SENDER_TRANSACTION, data, reply, 0); 3743 reply.readException(); 3744 data.recycle(); 3745 reply.recycle(); 3746 } 3747 public String getPackageForIntentSender(IIntentSender sender) throws RemoteException { 3748 Parcel data = Parcel.obtain(); 3749 Parcel reply = Parcel.obtain(); 3750 data.writeInterfaceToken(IActivityManager.descriptor); 3751 data.writeStrongBinder(sender.asBinder()); 3752 mRemote.transact(GET_PACKAGE_FOR_INTENT_SENDER_TRANSACTION, data, reply, 0); 3753 reply.readException(); 3754 String res = reply.readString(); 3755 data.recycle(); 3756 reply.recycle(); 3757 return res; 3758 } 3759 public int getUidForIntentSender(IIntentSender sender) throws RemoteException { 3760 Parcel data = Parcel.obtain(); 3761 Parcel reply = Parcel.obtain(); 3762 data.writeInterfaceToken(IActivityManager.descriptor); 3763 data.writeStrongBinder(sender.asBinder()); 3764 mRemote.transact(GET_UID_FOR_INTENT_SENDER_TRANSACTION, data, reply, 0); 3765 reply.readException(); 3766 int res = reply.readInt(); 3767 data.recycle(); 3768 reply.recycle(); 3769 return res; 3770 } 3771 public int handleIncomingUser(int callingPid, int callingUid, int userId, boolean allowAll, 3772 boolean requireFull, String name, String callerPackage) throws RemoteException { 3773 Parcel data = Parcel.obtain(); 3774 Parcel reply = Parcel.obtain(); 3775 data.writeInterfaceToken(IActivityManager.descriptor); 3776 data.writeInt(callingPid); 3777 data.writeInt(callingUid); 3778 data.writeInt(userId); 3779 data.writeInt(allowAll ? 1 : 0); 3780 data.writeInt(requireFull ? 1 : 0); 3781 data.writeString(name); 3782 data.writeString(callerPackage); 3783 mRemote.transact(HANDLE_INCOMING_USER_TRANSACTION, data, reply, 0); 3784 reply.readException(); 3785 int res = reply.readInt(); 3786 data.recycle(); 3787 reply.recycle(); 3788 return res; 3789 } 3790 public void setProcessLimit(int max) throws RemoteException 3791 { 3792 Parcel data = Parcel.obtain(); 3793 Parcel reply = Parcel.obtain(); 3794 data.writeInterfaceToken(IActivityManager.descriptor); 3795 data.writeInt(max); 3796 mRemote.transact(SET_PROCESS_LIMIT_TRANSACTION, data, reply, 0); 3797 reply.readException(); 3798 data.recycle(); 3799 reply.recycle(); 3800 } 3801 public int getProcessLimit() throws RemoteException 3802 { 3803 Parcel data = Parcel.obtain(); 3804 Parcel reply = Parcel.obtain(); 3805 data.writeInterfaceToken(IActivityManager.descriptor); 3806 mRemote.transact(GET_PROCESS_LIMIT_TRANSACTION, data, reply, 0); 3807 reply.readException(); 3808 int res = reply.readInt(); 3809 data.recycle(); 3810 reply.recycle(); 3811 return res; 3812 } 3813 public void setProcessForeground(IBinder token, int pid, 3814 boolean isForeground) throws RemoteException { 3815 Parcel data = Parcel.obtain(); 3816 Parcel reply = Parcel.obtain(); 3817 data.writeInterfaceToken(IActivityManager.descriptor); 3818 data.writeStrongBinder(token); 3819 data.writeInt(pid); 3820 data.writeInt(isForeground ? 1 : 0); 3821 mRemote.transact(SET_PROCESS_FOREGROUND_TRANSACTION, data, reply, 0); 3822 reply.readException(); 3823 data.recycle(); 3824 reply.recycle(); 3825 } 3826 public int checkPermission(String permission, int pid, int uid) 3827 throws RemoteException { 3828 Parcel data = Parcel.obtain(); 3829 Parcel reply = Parcel.obtain(); 3830 data.writeInterfaceToken(IActivityManager.descriptor); 3831 data.writeString(permission); 3832 data.writeInt(pid); 3833 data.writeInt(uid); 3834 mRemote.transact(CHECK_PERMISSION_TRANSACTION, data, reply, 0); 3835 reply.readException(); 3836 int res = reply.readInt(); 3837 data.recycle(); 3838 reply.recycle(); 3839 return res; 3840 } 3841 public boolean clearApplicationUserData(final String packageName, 3842 final IPackageDataObserver observer, final int userId) throws RemoteException { 3843 Parcel data = Parcel.obtain(); 3844 Parcel reply = Parcel.obtain(); 3845 data.writeInterfaceToken(IActivityManager.descriptor); 3846 data.writeString(packageName); 3847 data.writeStrongBinder((observer != null) ? observer.asBinder() : null); 3848 data.writeInt(userId); 3849 mRemote.transact(CLEAR_APP_DATA_TRANSACTION, data, reply, 0); 3850 reply.readException(); 3851 boolean res = reply.readInt() != 0; 3852 data.recycle(); 3853 reply.recycle(); 3854 return res; 3855 } 3856 public int checkUriPermission(Uri uri, int pid, int uid, int mode, int userId) 3857 throws RemoteException { 3858 Parcel data = Parcel.obtain(); 3859 Parcel reply = Parcel.obtain(); 3860 data.writeInterfaceToken(IActivityManager.descriptor); 3861 uri.writeToParcel(data, 0); 3862 data.writeInt(pid); 3863 data.writeInt(uid); 3864 data.writeInt(mode); 3865 data.writeInt(userId); 3866 mRemote.transact(CHECK_URI_PERMISSION_TRANSACTION, data, reply, 0); 3867 reply.readException(); 3868 int res = reply.readInt(); 3869 data.recycle(); 3870 reply.recycle(); 3871 return res; 3872 } 3873 public void grantUriPermission(IApplicationThread caller, String targetPkg, 3874 Uri uri, int mode, int userId) throws RemoteException { 3875 Parcel data = Parcel.obtain(); 3876 Parcel reply = Parcel.obtain(); 3877 data.writeInterfaceToken(IActivityManager.descriptor); 3878 data.writeStrongBinder(caller.asBinder()); 3879 data.writeString(targetPkg); 3880 uri.writeToParcel(data, 0); 3881 data.writeInt(mode); 3882 data.writeInt(userId); 3883 mRemote.transact(GRANT_URI_PERMISSION_TRANSACTION, data, reply, 0); 3884 reply.readException(); 3885 data.recycle(); 3886 reply.recycle(); 3887 } 3888 public void revokeUriPermission(IApplicationThread caller, Uri uri, 3889 int mode, int userId) throws RemoteException { 3890 Parcel data = Parcel.obtain(); 3891 Parcel reply = Parcel.obtain(); 3892 data.writeInterfaceToken(IActivityManager.descriptor); 3893 data.writeStrongBinder(caller.asBinder()); 3894 uri.writeToParcel(data, 0); 3895 data.writeInt(mode); 3896 data.writeInt(userId); 3897 mRemote.transact(REVOKE_URI_PERMISSION_TRANSACTION, data, reply, 0); 3898 reply.readException(); 3899 data.recycle(); 3900 reply.recycle(); 3901 } 3902 3903 @Override 3904 public void takePersistableUriPermission(Uri uri, int mode, int userId) 3905 throws RemoteException { 3906 Parcel data = Parcel.obtain(); 3907 Parcel reply = Parcel.obtain(); 3908 data.writeInterfaceToken(IActivityManager.descriptor); 3909 uri.writeToParcel(data, 0); 3910 data.writeInt(mode); 3911 data.writeInt(userId); 3912 mRemote.transact(TAKE_PERSISTABLE_URI_PERMISSION_TRANSACTION, data, reply, 0); 3913 reply.readException(); 3914 data.recycle(); 3915 reply.recycle(); 3916 } 3917 3918 @Override 3919 public void releasePersistableUriPermission(Uri uri, int mode, int userId) 3920 throws RemoteException { 3921 Parcel data = Parcel.obtain(); 3922 Parcel reply = Parcel.obtain(); 3923 data.writeInterfaceToken(IActivityManager.descriptor); 3924 uri.writeToParcel(data, 0); 3925 data.writeInt(mode); 3926 data.writeInt(userId); 3927 mRemote.transact(RELEASE_PERSISTABLE_URI_PERMISSION_TRANSACTION, data, reply, 0); 3928 reply.readException(); 3929 data.recycle(); 3930 reply.recycle(); 3931 } 3932 3933 @Override 3934 public ParceledListSlice<UriPermission> getPersistedUriPermissions( 3935 String packageName, boolean incoming) throws RemoteException { 3936 Parcel data = Parcel.obtain(); 3937 Parcel reply = Parcel.obtain(); 3938 data.writeInterfaceToken(IActivityManager.descriptor); 3939 data.writeString(packageName); 3940 data.writeInt(incoming ? 1 : 0); 3941 mRemote.transact(GET_PERSISTED_URI_PERMISSIONS_TRANSACTION, data, reply, 0); 3942 reply.readException(); 3943 final ParceledListSlice<UriPermission> perms = ParceledListSlice.CREATOR.createFromParcel( 3944 reply); 3945 data.recycle(); 3946 reply.recycle(); 3947 return perms; 3948 } 3949 3950 public void showWaitingForDebugger(IApplicationThread who, boolean waiting) 3951 throws RemoteException { 3952 Parcel data = Parcel.obtain(); 3953 Parcel reply = Parcel.obtain(); 3954 data.writeInterfaceToken(IActivityManager.descriptor); 3955 data.writeStrongBinder(who.asBinder()); 3956 data.writeInt(waiting ? 1 : 0); 3957 mRemote.transact(SHOW_WAITING_FOR_DEBUGGER_TRANSACTION, data, reply, 0); 3958 reply.readException(); 3959 data.recycle(); 3960 reply.recycle(); 3961 } 3962 public void getMemoryInfo(ActivityManager.MemoryInfo outInfo) throws RemoteException { 3963 Parcel data = Parcel.obtain(); 3964 Parcel reply = Parcel.obtain(); 3965 data.writeInterfaceToken(IActivityManager.descriptor); 3966 mRemote.transact(GET_MEMORY_INFO_TRANSACTION, data, reply, 0); 3967 reply.readException(); 3968 outInfo.readFromParcel(reply); 3969 data.recycle(); 3970 reply.recycle(); 3971 } 3972 public void unhandledBack() throws RemoteException 3973 { 3974 Parcel data = Parcel.obtain(); 3975 Parcel reply = Parcel.obtain(); 3976 data.writeInterfaceToken(IActivityManager.descriptor); 3977 mRemote.transact(UNHANDLED_BACK_TRANSACTION, data, reply, 0); 3978 reply.readException(); 3979 data.recycle(); 3980 reply.recycle(); 3981 } 3982 public ParcelFileDescriptor openContentUri(Uri uri) throws RemoteException 3983 { 3984 Parcel data = Parcel.obtain(); 3985 Parcel reply = Parcel.obtain(); 3986 data.writeInterfaceToken(IActivityManager.descriptor); 3987 mRemote.transact(OPEN_CONTENT_URI_TRANSACTION, data, reply, 0); 3988 reply.readException(); 3989 ParcelFileDescriptor pfd = null; 3990 if (reply.readInt() != 0) { 3991 pfd = ParcelFileDescriptor.CREATOR.createFromParcel(reply); 3992 } 3993 data.recycle(); 3994 reply.recycle(); 3995 return pfd; 3996 } 3997 public void setLockScreenShown(boolean shown) throws RemoteException 3998 { 3999 Parcel data = Parcel.obtain(); 4000 Parcel reply = Parcel.obtain(); 4001 data.writeInterfaceToken(IActivityManager.descriptor); 4002 data.writeInt(shown ? 1 : 0); 4003 mRemote.transact(SET_LOCK_SCREEN_SHOWN_TRANSACTION, data, reply, 0); 4004 reply.readException(); 4005 data.recycle(); 4006 reply.recycle(); 4007 } 4008 public void setDebugApp( 4009 String packageName, boolean waitForDebugger, boolean persistent) 4010 throws RemoteException 4011 { 4012 Parcel data = Parcel.obtain(); 4013 Parcel reply = Parcel.obtain(); 4014 data.writeInterfaceToken(IActivityManager.descriptor); 4015 data.writeString(packageName); 4016 data.writeInt(waitForDebugger ? 1 : 0); 4017 data.writeInt(persistent ? 1 : 0); 4018 mRemote.transact(SET_DEBUG_APP_TRANSACTION, data, reply, 0); 4019 reply.readException(); 4020 data.recycle(); 4021 reply.recycle(); 4022 } 4023 public void setAlwaysFinish(boolean enabled) throws RemoteException 4024 { 4025 Parcel data = Parcel.obtain(); 4026 Parcel reply = Parcel.obtain(); 4027 data.writeInterfaceToken(IActivityManager.descriptor); 4028 data.writeInt(enabled ? 1 : 0); 4029 mRemote.transact(SET_ALWAYS_FINISH_TRANSACTION, data, reply, 0); 4030 reply.readException(); 4031 data.recycle(); 4032 reply.recycle(); 4033 } 4034 public void setActivityController(IActivityController watcher) throws RemoteException 4035 { 4036 Parcel data = Parcel.obtain(); 4037 Parcel reply = Parcel.obtain(); 4038 data.writeInterfaceToken(IActivityManager.descriptor); 4039 data.writeStrongBinder(watcher != null ? watcher.asBinder() : null); 4040 mRemote.transact(SET_ACTIVITY_CONTROLLER_TRANSACTION, data, reply, 0); 4041 reply.readException(); 4042 data.recycle(); 4043 reply.recycle(); 4044 } 4045 public void enterSafeMode() throws RemoteException { 4046 Parcel data = Parcel.obtain(); 4047 data.writeInterfaceToken(IActivityManager.descriptor); 4048 mRemote.transact(ENTER_SAFE_MODE_TRANSACTION, data, null, 0); 4049 data.recycle(); 4050 } 4051 public void noteWakeupAlarm(IIntentSender sender, int sourceUid, String sourcePkg) 4052 throws RemoteException { 4053 Parcel data = Parcel.obtain(); 4054 data.writeInterfaceToken(IActivityManager.descriptor); 4055 data.writeStrongBinder(sender.asBinder()); 4056 data.writeInt(sourceUid); 4057 data.writeString(sourcePkg); 4058 mRemote.transact(NOTE_WAKEUP_ALARM_TRANSACTION, data, null, 0); 4059 data.recycle(); 4060 } 4061 public boolean killPids(int[] pids, String reason, boolean secure) throws RemoteException { 4062 Parcel data = Parcel.obtain(); 4063 Parcel reply = Parcel.obtain(); 4064 data.writeInterfaceToken(IActivityManager.descriptor); 4065 data.writeIntArray(pids); 4066 data.writeString(reason); 4067 data.writeInt(secure ? 1 : 0); 4068 mRemote.transact(KILL_PIDS_TRANSACTION, data, reply, 0); 4069 reply.readException(); 4070 boolean res = reply.readInt() != 0; 4071 data.recycle(); 4072 reply.recycle(); 4073 return res; 4074 } 4075 @Override 4076 public boolean killProcessesBelowForeground(String reason) throws RemoteException { 4077 Parcel data = Parcel.obtain(); 4078 Parcel reply = Parcel.obtain(); 4079 data.writeInterfaceToken(IActivityManager.descriptor); 4080 data.writeString(reason); 4081 mRemote.transact(KILL_PROCESSES_BELOW_FOREGROUND_TRANSACTION, data, reply, 0); 4082 boolean res = reply.readInt() != 0; 4083 data.recycle(); 4084 reply.recycle(); 4085 return res; 4086 } 4087 public boolean testIsSystemReady() 4088 { 4089 /* this base class version is never called */ 4090 return true; 4091 } 4092 public void handleApplicationCrash(IBinder app, 4093 ApplicationErrorReport.CrashInfo crashInfo) throws RemoteException 4094 { 4095 Parcel data = Parcel.obtain(); 4096 Parcel reply = Parcel.obtain(); 4097 data.writeInterfaceToken(IActivityManager.descriptor); 4098 data.writeStrongBinder(app); 4099 crashInfo.writeToParcel(data, 0); 4100 mRemote.transact(HANDLE_APPLICATION_CRASH_TRANSACTION, data, reply, 0); 4101 reply.readException(); 4102 reply.recycle(); 4103 data.recycle(); 4104 } 4105 4106 public boolean handleApplicationWtf(IBinder app, String tag, boolean system, 4107 ApplicationErrorReport.CrashInfo crashInfo) throws RemoteException 4108 { 4109 Parcel data = Parcel.obtain(); 4110 Parcel reply = Parcel.obtain(); 4111 data.writeInterfaceToken(IActivityManager.descriptor); 4112 data.writeStrongBinder(app); 4113 data.writeString(tag); 4114 data.writeInt(system ? 1 : 0); 4115 crashInfo.writeToParcel(data, 0); 4116 mRemote.transact(HANDLE_APPLICATION_WTF_TRANSACTION, data, reply, 0); 4117 reply.readException(); 4118 boolean res = reply.readInt() != 0; 4119 reply.recycle(); 4120 data.recycle(); 4121 return res; 4122 } 4123 4124 public void handleApplicationStrictModeViolation(IBinder app, 4125 int violationMask, 4126 StrictMode.ViolationInfo info) throws RemoteException 4127 { 4128 Parcel data = Parcel.obtain(); 4129 Parcel reply = Parcel.obtain(); 4130 data.writeInterfaceToken(IActivityManager.descriptor); 4131 data.writeStrongBinder(app); 4132 data.writeInt(violationMask); 4133 info.writeToParcel(data, 0); 4134 mRemote.transact(HANDLE_APPLICATION_STRICT_MODE_VIOLATION_TRANSACTION, data, reply, 0); 4135 reply.readException(); 4136 reply.recycle(); 4137 data.recycle(); 4138 } 4139 4140 public void signalPersistentProcesses(int sig) throws RemoteException { 4141 Parcel data = Parcel.obtain(); 4142 Parcel reply = Parcel.obtain(); 4143 data.writeInterfaceToken(IActivityManager.descriptor); 4144 data.writeInt(sig); 4145 mRemote.transact(SIGNAL_PERSISTENT_PROCESSES_TRANSACTION, data, reply, 0); 4146 reply.readException(); 4147 data.recycle(); 4148 reply.recycle(); 4149 } 4150 4151 public void killBackgroundProcesses(String packageName, int userId) throws RemoteException { 4152 Parcel data = Parcel.obtain(); 4153 Parcel reply = Parcel.obtain(); 4154 data.writeInterfaceToken(IActivityManager.descriptor); 4155 data.writeString(packageName); 4156 data.writeInt(userId); 4157 mRemote.transact(KILL_BACKGROUND_PROCESSES_TRANSACTION, data, reply, 0); 4158 reply.readException(); 4159 data.recycle(); 4160 reply.recycle(); 4161 } 4162 4163 public void killAllBackgroundProcesses() throws RemoteException { 4164 Parcel data = Parcel.obtain(); 4165 Parcel reply = Parcel.obtain(); 4166 data.writeInterfaceToken(IActivityManager.descriptor); 4167 mRemote.transact(KILL_ALL_BACKGROUND_PROCESSES_TRANSACTION, data, reply, 0); 4168 reply.readException(); 4169 data.recycle(); 4170 reply.recycle(); 4171 } 4172 4173 public void forceStopPackage(String packageName, int userId) throws RemoteException { 4174 Parcel data = Parcel.obtain(); 4175 Parcel reply = Parcel.obtain(); 4176 data.writeInterfaceToken(IActivityManager.descriptor); 4177 data.writeString(packageName); 4178 data.writeInt(userId); 4179 mRemote.transact(FORCE_STOP_PACKAGE_TRANSACTION, data, reply, 0); 4180 reply.readException(); 4181 data.recycle(); 4182 reply.recycle(); 4183 } 4184 4185 public void getMyMemoryState(ActivityManager.RunningAppProcessInfo outInfo) 4186 throws RemoteException 4187 { 4188 Parcel data = Parcel.obtain(); 4189 Parcel reply = Parcel.obtain(); 4190 data.writeInterfaceToken(IActivityManager.descriptor); 4191 mRemote.transact(GET_MY_MEMORY_STATE_TRANSACTION, data, reply, 0); 4192 reply.readException(); 4193 outInfo.readFromParcel(reply); 4194 reply.recycle(); 4195 data.recycle(); 4196 } 4197 4198 public ConfigurationInfo getDeviceConfigurationInfo() throws RemoteException 4199 { 4200 Parcel data = Parcel.obtain(); 4201 Parcel reply = Parcel.obtain(); 4202 data.writeInterfaceToken(IActivityManager.descriptor); 4203 mRemote.transact(GET_DEVICE_CONFIGURATION_TRANSACTION, data, reply, 0); 4204 reply.readException(); 4205 ConfigurationInfo res = ConfigurationInfo.CREATOR.createFromParcel(reply); 4206 reply.recycle(); 4207 data.recycle(); 4208 return res; 4209 } 4210 4211 public boolean profileControl(String process, int userId, boolean start, 4212 ProfilerInfo profilerInfo, int profileType) throws RemoteException 4213 { 4214 Parcel data = Parcel.obtain(); 4215 Parcel reply = Parcel.obtain(); 4216 data.writeInterfaceToken(IActivityManager.descriptor); 4217 data.writeString(process); 4218 data.writeInt(userId); 4219 data.writeInt(start ? 1 : 0); 4220 data.writeInt(profileType); 4221 if (profilerInfo != null) { 4222 data.writeInt(1); 4223 profilerInfo.writeToParcel(data, Parcelable.PARCELABLE_WRITE_RETURN_VALUE); 4224 } else { 4225 data.writeInt(0); 4226 } 4227 mRemote.transact(PROFILE_CONTROL_TRANSACTION, data, reply, 0); 4228 reply.readException(); 4229 boolean res = reply.readInt() != 0; 4230 reply.recycle(); 4231 data.recycle(); 4232 return res; 4233 } 4234 4235 public boolean shutdown(int timeout) throws RemoteException 4236 { 4237 Parcel data = Parcel.obtain(); 4238 Parcel reply = Parcel.obtain(); 4239 data.writeInterfaceToken(IActivityManager.descriptor); 4240 data.writeInt(timeout); 4241 mRemote.transact(SHUTDOWN_TRANSACTION, data, reply, 0); 4242 reply.readException(); 4243 boolean res = reply.readInt() != 0; 4244 reply.recycle(); 4245 data.recycle(); 4246 return res; 4247 } 4248 4249 public void stopAppSwitches() throws RemoteException { 4250 Parcel data = Parcel.obtain(); 4251 Parcel reply = Parcel.obtain(); 4252 data.writeInterfaceToken(IActivityManager.descriptor); 4253 mRemote.transact(STOP_APP_SWITCHES_TRANSACTION, data, reply, 0); 4254 reply.readException(); 4255 reply.recycle(); 4256 data.recycle(); 4257 } 4258 4259 public void resumeAppSwitches() throws RemoteException { 4260 Parcel data = Parcel.obtain(); 4261 Parcel reply = Parcel.obtain(); 4262 data.writeInterfaceToken(IActivityManager.descriptor); 4263 mRemote.transact(RESUME_APP_SWITCHES_TRANSACTION, data, reply, 0); 4264 reply.readException(); 4265 reply.recycle(); 4266 data.recycle(); 4267 } 4268 4269 public void addPackageDependency(String packageName) throws RemoteException { 4270 Parcel data = Parcel.obtain(); 4271 Parcel reply = Parcel.obtain(); 4272 data.writeInterfaceToken(IActivityManager.descriptor); 4273 data.writeString(packageName); 4274 mRemote.transact(ADD_PACKAGE_DEPENDENCY_TRANSACTION, data, reply, 0); 4275 reply.readException(); 4276 data.recycle(); 4277 reply.recycle(); 4278 } 4279 4280 public void killApplicationWithAppId(String pkg, int appid, String reason) 4281 throws RemoteException { 4282 Parcel data = Parcel.obtain(); 4283 Parcel reply = Parcel.obtain(); 4284 data.writeInterfaceToken(IActivityManager.descriptor); 4285 data.writeString(pkg); 4286 data.writeInt(appid); 4287 data.writeString(reason); 4288 mRemote.transact(KILL_APPLICATION_WITH_APPID_TRANSACTION, data, reply, 0); 4289 reply.readException(); 4290 data.recycle(); 4291 reply.recycle(); 4292 } 4293 4294 public void closeSystemDialogs(String reason) throws RemoteException { 4295 Parcel data = Parcel.obtain(); 4296 Parcel reply = Parcel.obtain(); 4297 data.writeInterfaceToken(IActivityManager.descriptor); 4298 data.writeString(reason); 4299 mRemote.transact(CLOSE_SYSTEM_DIALOGS_TRANSACTION, data, reply, 0); 4300 reply.readException(); 4301 data.recycle(); 4302 reply.recycle(); 4303 } 4304 4305 public Debug.MemoryInfo[] getProcessMemoryInfo(int[] pids) 4306 throws RemoteException { 4307 Parcel data = Parcel.obtain(); 4308 Parcel reply = Parcel.obtain(); 4309 data.writeInterfaceToken(IActivityManager.descriptor); 4310 data.writeIntArray(pids); 4311 mRemote.transact(GET_PROCESS_MEMORY_INFO_TRANSACTION, data, reply, 0); 4312 reply.readException(); 4313 Debug.MemoryInfo[] res = reply.createTypedArray(Debug.MemoryInfo.CREATOR); 4314 data.recycle(); 4315 reply.recycle(); 4316 return res; 4317 } 4318 4319 public void killApplicationProcess(String processName, int uid) throws RemoteException { 4320 Parcel data = Parcel.obtain(); 4321 Parcel reply = Parcel.obtain(); 4322 data.writeInterfaceToken(IActivityManager.descriptor); 4323 data.writeString(processName); 4324 data.writeInt(uid); 4325 mRemote.transact(KILL_APPLICATION_PROCESS_TRANSACTION, data, reply, 0); 4326 reply.readException(); 4327 data.recycle(); 4328 reply.recycle(); 4329 } 4330 4331 public void overridePendingTransition(IBinder token, String packageName, 4332 int enterAnim, int exitAnim) throws RemoteException { 4333 Parcel data = Parcel.obtain(); 4334 Parcel reply = Parcel.obtain(); 4335 data.writeInterfaceToken(IActivityManager.descriptor); 4336 data.writeStrongBinder(token); 4337 data.writeString(packageName); 4338 data.writeInt(enterAnim); 4339 data.writeInt(exitAnim); 4340 mRemote.transact(OVERRIDE_PENDING_TRANSITION_TRANSACTION, data, reply, 0); 4341 reply.readException(); 4342 data.recycle(); 4343 reply.recycle(); 4344 } 4345 4346 public boolean isUserAMonkey() throws RemoteException { 4347 Parcel data = Parcel.obtain(); 4348 Parcel reply = Parcel.obtain(); 4349 data.writeInterfaceToken(IActivityManager.descriptor); 4350 mRemote.transact(IS_USER_A_MONKEY_TRANSACTION, data, reply, 0); 4351 reply.readException(); 4352 boolean res = reply.readInt() != 0; 4353 data.recycle(); 4354 reply.recycle(); 4355 return res; 4356 } 4357 4358 public void setUserIsMonkey(boolean monkey) throws RemoteException { 4359 Parcel data = Parcel.obtain(); 4360 Parcel reply = Parcel.obtain(); 4361 data.writeInterfaceToken(IActivityManager.descriptor); 4362 data.writeInt(monkey ? 1 : 0); 4363 mRemote.transact(SET_USER_IS_MONKEY_TRANSACTION, data, reply, 0); 4364 reply.readException(); 4365 data.recycle(); 4366 reply.recycle(); 4367 } 4368 4369 public void finishHeavyWeightApp() throws RemoteException { 4370 Parcel data = Parcel.obtain(); 4371 Parcel reply = Parcel.obtain(); 4372 data.writeInterfaceToken(IActivityManager.descriptor); 4373 mRemote.transact(FINISH_HEAVY_WEIGHT_APP_TRANSACTION, data, reply, 0); 4374 reply.readException(); 4375 data.recycle(); 4376 reply.recycle(); 4377 } 4378 4379 public boolean convertFromTranslucent(IBinder token) 4380 throws RemoteException { 4381 Parcel data = Parcel.obtain(); 4382 Parcel reply = Parcel.obtain(); 4383 data.writeInterfaceToken(IActivityManager.descriptor); 4384 data.writeStrongBinder(token); 4385 mRemote.transact(CONVERT_FROM_TRANSLUCENT_TRANSACTION, data, reply, 0); 4386 reply.readException(); 4387 boolean res = reply.readInt() != 0; 4388 data.recycle(); 4389 reply.recycle(); 4390 return res; 4391 } 4392 4393 public boolean convertToTranslucent(IBinder token, ActivityOptions options) 4394 throws RemoteException { 4395 Parcel data = Parcel.obtain(); 4396 Parcel reply = Parcel.obtain(); 4397 data.writeInterfaceToken(IActivityManager.descriptor); 4398 data.writeStrongBinder(token); 4399 if (options == null) { 4400 data.writeInt(0); 4401 } else { 4402 data.writeInt(1); 4403 data.writeBundle(options.toBundle()); 4404 } 4405 mRemote.transact(CONVERT_TO_TRANSLUCENT_TRANSACTION, data, reply, 0); 4406 reply.readException(); 4407 boolean res = reply.readInt() != 0; 4408 data.recycle(); 4409 reply.recycle(); 4410 return res; 4411 } 4412 4413 public ActivityOptions getActivityOptions(IBinder token) throws RemoteException { 4414 Parcel data = Parcel.obtain(); 4415 Parcel reply = Parcel.obtain(); 4416 data.writeInterfaceToken(IActivityManager.descriptor); 4417 data.writeStrongBinder(token); 4418 mRemote.transact(GET_ACTIVITY_OPTIONS_TRANSACTION, data, reply, 0); 4419 reply.readException(); 4420 Bundle bundle = reply.readBundle(); 4421 ActivityOptions options = bundle == null ? null : new ActivityOptions(bundle); 4422 data.recycle(); 4423 reply.recycle(); 4424 return options; 4425 } 4426 4427 public void setImmersive(IBinder token, boolean immersive) 4428 throws RemoteException { 4429 Parcel data = Parcel.obtain(); 4430 Parcel reply = Parcel.obtain(); 4431 data.writeInterfaceToken(IActivityManager.descriptor); 4432 data.writeStrongBinder(token); 4433 data.writeInt(immersive ? 1 : 0); 4434 mRemote.transact(SET_IMMERSIVE_TRANSACTION, data, reply, 0); 4435 reply.readException(); 4436 data.recycle(); 4437 reply.recycle(); 4438 } 4439 4440 public boolean isImmersive(IBinder token) 4441 throws RemoteException { 4442 Parcel data = Parcel.obtain(); 4443 Parcel reply = Parcel.obtain(); 4444 data.writeInterfaceToken(IActivityManager.descriptor); 4445 data.writeStrongBinder(token); 4446 mRemote.transact(IS_IMMERSIVE_TRANSACTION, data, reply, 0); 4447 reply.readException(); 4448 boolean res = reply.readInt() == 1; 4449 data.recycle(); 4450 reply.recycle(); 4451 return res; 4452 } 4453 4454 public boolean isTopOfTask(IBinder token) throws RemoteException { 4455 Parcel data = Parcel.obtain(); 4456 Parcel reply = Parcel.obtain(); 4457 data.writeInterfaceToken(IActivityManager.descriptor); 4458 data.writeStrongBinder(token); 4459 mRemote.transact(IS_TOP_OF_TASK_TRANSACTION, data, reply, 0); 4460 reply.readException(); 4461 boolean res = reply.readInt() == 1; 4462 data.recycle(); 4463 reply.recycle(); 4464 return res; 4465 } 4466 4467 public boolean isTopActivityImmersive() 4468 throws RemoteException { 4469 Parcel data = Parcel.obtain(); 4470 Parcel reply = Parcel.obtain(); 4471 data.writeInterfaceToken(IActivityManager.descriptor); 4472 mRemote.transact(IS_TOP_ACTIVITY_IMMERSIVE_TRANSACTION, data, reply, 0); 4473 reply.readException(); 4474 boolean res = reply.readInt() == 1; 4475 data.recycle(); 4476 reply.recycle(); 4477 return res; 4478 } 4479 4480 public void crashApplication(int uid, int initialPid, String packageName, 4481 String message) throws RemoteException { 4482 Parcel data = Parcel.obtain(); 4483 Parcel reply = Parcel.obtain(); 4484 data.writeInterfaceToken(IActivityManager.descriptor); 4485 data.writeInt(uid); 4486 data.writeInt(initialPid); 4487 data.writeString(packageName); 4488 data.writeString(message); 4489 mRemote.transact(CRASH_APPLICATION_TRANSACTION, data, reply, 0); 4490 reply.readException(); 4491 data.recycle(); 4492 reply.recycle(); 4493 } 4494 4495 public String getProviderMimeType(Uri uri, int userId) throws RemoteException { 4496 Parcel data = Parcel.obtain(); 4497 Parcel reply = Parcel.obtain(); 4498 data.writeInterfaceToken(IActivityManager.descriptor); 4499 uri.writeToParcel(data, 0); 4500 data.writeInt(userId); 4501 mRemote.transact(GET_PROVIDER_MIME_TYPE_TRANSACTION, data, reply, 0); 4502 reply.readException(); 4503 String res = reply.readString(); 4504 data.recycle(); 4505 reply.recycle(); 4506 return res; 4507 } 4508 4509 public IBinder newUriPermissionOwner(String name) 4510 throws RemoteException { 4511 Parcel data = Parcel.obtain(); 4512 Parcel reply = Parcel.obtain(); 4513 data.writeInterfaceToken(IActivityManager.descriptor); 4514 data.writeString(name); 4515 mRemote.transact(NEW_URI_PERMISSION_OWNER_TRANSACTION, data, reply, 0); 4516 reply.readException(); 4517 IBinder res = reply.readStrongBinder(); 4518 data.recycle(); 4519 reply.recycle(); 4520 return res; 4521 } 4522 4523 public void grantUriPermissionFromOwner(IBinder owner, int fromUid, String targetPkg, 4524 Uri uri, int mode, int sourceUserId, int targetUserId) throws RemoteException { 4525 Parcel data = Parcel.obtain(); 4526 Parcel reply = Parcel.obtain(); 4527 data.writeInterfaceToken(IActivityManager.descriptor); 4528 data.writeStrongBinder(owner); 4529 data.writeInt(fromUid); 4530 data.writeString(targetPkg); 4531 uri.writeToParcel(data, 0); 4532 data.writeInt(mode); 4533 data.writeInt(sourceUserId); 4534 data.writeInt(targetUserId); 4535 mRemote.transact(GRANT_URI_PERMISSION_TRANSACTION, data, reply, 0); 4536 reply.readException(); 4537 data.recycle(); 4538 reply.recycle(); 4539 } 4540 4541 public void revokeUriPermissionFromOwner(IBinder owner, Uri uri, 4542 int mode, int userId) throws RemoteException { 4543 Parcel data = Parcel.obtain(); 4544 Parcel reply = Parcel.obtain(); 4545 data.writeInterfaceToken(IActivityManager.descriptor); 4546 data.writeStrongBinder(owner); 4547 if (uri != null) { 4548 data.writeInt(1); 4549 uri.writeToParcel(data, 0); 4550 } else { 4551 data.writeInt(0); 4552 } 4553 data.writeInt(mode); 4554 data.writeInt(userId); 4555 mRemote.transact(REVOKE_URI_PERMISSION_TRANSACTION, data, reply, 0); 4556 reply.readException(); 4557 data.recycle(); 4558 reply.recycle(); 4559 } 4560 4561 public int checkGrantUriPermission(int callingUid, String targetPkg, 4562 Uri uri, int modeFlags, int userId) throws RemoteException { 4563 Parcel data = Parcel.obtain(); 4564 Parcel reply = Parcel.obtain(); 4565 data.writeInterfaceToken(IActivityManager.descriptor); 4566 data.writeInt(callingUid); 4567 data.writeString(targetPkg); 4568 uri.writeToParcel(data, 0); 4569 data.writeInt(modeFlags); 4570 data.writeInt(userId); 4571 mRemote.transact(CHECK_GRANT_URI_PERMISSION_TRANSACTION, data, reply, 0); 4572 reply.readException(); 4573 int res = reply.readInt(); 4574 data.recycle(); 4575 reply.recycle(); 4576 return res; 4577 } 4578 4579 public boolean dumpHeap(String process, int userId, boolean managed, 4580 String path, ParcelFileDescriptor fd) throws RemoteException { 4581 Parcel data = Parcel.obtain(); 4582 Parcel reply = Parcel.obtain(); 4583 data.writeInterfaceToken(IActivityManager.descriptor); 4584 data.writeString(process); 4585 data.writeInt(userId); 4586 data.writeInt(managed ? 1 : 0); 4587 data.writeString(path); 4588 if (fd != null) { 4589 data.writeInt(1); 4590 fd.writeToParcel(data, Parcelable.PARCELABLE_WRITE_RETURN_VALUE); 4591 } else { 4592 data.writeInt(0); 4593 } 4594 mRemote.transact(DUMP_HEAP_TRANSACTION, data, reply, 0); 4595 reply.readException(); 4596 boolean res = reply.readInt() != 0; 4597 reply.recycle(); 4598 data.recycle(); 4599 return res; 4600 } 4601 4602 public int startActivities(IApplicationThread caller, String callingPackage, 4603 Intent[] intents, String[] resolvedTypes, IBinder resultTo, 4604 Bundle options, int userId) throws RemoteException { 4605 Parcel data = Parcel.obtain(); 4606 Parcel reply = Parcel.obtain(); 4607 data.writeInterfaceToken(IActivityManager.descriptor); 4608 data.writeStrongBinder(caller != null ? caller.asBinder() : null); 4609 data.writeString(callingPackage); 4610 data.writeTypedArray(intents, 0); 4611 data.writeStringArray(resolvedTypes); 4612 data.writeStrongBinder(resultTo); 4613 if (options != null) { 4614 data.writeInt(1); 4615 options.writeToParcel(data, 0); 4616 } else { 4617 data.writeInt(0); 4618 } 4619 data.writeInt(userId); 4620 mRemote.transact(START_ACTIVITIES_TRANSACTION, data, reply, 0); 4621 reply.readException(); 4622 int result = reply.readInt(); 4623 reply.recycle(); 4624 data.recycle(); 4625 return result; 4626 } 4627 4628 public int getFrontActivityScreenCompatMode() throws RemoteException { 4629 Parcel data = Parcel.obtain(); 4630 Parcel reply = Parcel.obtain(); 4631 data.writeInterfaceToken(IActivityManager.descriptor); 4632 mRemote.transact(GET_FRONT_ACTIVITY_SCREEN_COMPAT_MODE_TRANSACTION, data, reply, 0); 4633 reply.readException(); 4634 int mode = reply.readInt(); 4635 reply.recycle(); 4636 data.recycle(); 4637 return mode; 4638 } 4639 4640 public void setFrontActivityScreenCompatMode(int mode) throws RemoteException { 4641 Parcel data = Parcel.obtain(); 4642 Parcel reply = Parcel.obtain(); 4643 data.writeInterfaceToken(IActivityManager.descriptor); 4644 data.writeInt(mode); 4645 mRemote.transact(SET_FRONT_ACTIVITY_SCREEN_COMPAT_MODE_TRANSACTION, data, reply, 0); 4646 reply.readException(); 4647 reply.recycle(); 4648 data.recycle(); 4649 } 4650 4651 public int getPackageScreenCompatMode(String packageName) throws RemoteException { 4652 Parcel data = Parcel.obtain(); 4653 Parcel reply = Parcel.obtain(); 4654 data.writeInterfaceToken(IActivityManager.descriptor); 4655 data.writeString(packageName); 4656 mRemote.transact(GET_PACKAGE_SCREEN_COMPAT_MODE_TRANSACTION, data, reply, 0); 4657 reply.readException(); 4658 int mode = reply.readInt(); 4659 reply.recycle(); 4660 data.recycle(); 4661 return mode; 4662 } 4663 4664 public void setPackageScreenCompatMode(String packageName, int mode) 4665 throws RemoteException { 4666 Parcel data = Parcel.obtain(); 4667 Parcel reply = Parcel.obtain(); 4668 data.writeInterfaceToken(IActivityManager.descriptor); 4669 data.writeString(packageName); 4670 data.writeInt(mode); 4671 mRemote.transact(SET_PACKAGE_SCREEN_COMPAT_MODE_TRANSACTION, data, reply, 0); 4672 reply.readException(); 4673 reply.recycle(); 4674 data.recycle(); 4675 } 4676 4677 public boolean getPackageAskScreenCompat(String packageName) throws RemoteException { 4678 Parcel data = Parcel.obtain(); 4679 Parcel reply = Parcel.obtain(); 4680 data.writeInterfaceToken(IActivityManager.descriptor); 4681 data.writeString(packageName); 4682 mRemote.transact(GET_PACKAGE_ASK_SCREEN_COMPAT_TRANSACTION, data, reply, 0); 4683 reply.readException(); 4684 boolean ask = reply.readInt() != 0; 4685 reply.recycle(); 4686 data.recycle(); 4687 return ask; 4688 } 4689 4690 public void setPackageAskScreenCompat(String packageName, boolean ask) 4691 throws RemoteException { 4692 Parcel data = Parcel.obtain(); 4693 Parcel reply = Parcel.obtain(); 4694 data.writeInterfaceToken(IActivityManager.descriptor); 4695 data.writeString(packageName); 4696 data.writeInt(ask ? 1 : 0); 4697 mRemote.transact(SET_PACKAGE_ASK_SCREEN_COMPAT_TRANSACTION, data, reply, 0); 4698 reply.readException(); 4699 reply.recycle(); 4700 data.recycle(); 4701 } 4702 4703 public boolean switchUser(int userid) throws RemoteException { 4704 Parcel data = Parcel.obtain(); 4705 Parcel reply = Parcel.obtain(); 4706 data.writeInterfaceToken(IActivityManager.descriptor); 4707 data.writeInt(userid); 4708 mRemote.transact(SWITCH_USER_TRANSACTION, data, reply, 0); 4709 reply.readException(); 4710 boolean result = reply.readInt() != 0; 4711 reply.recycle(); 4712 data.recycle(); 4713 return result; 4714 } 4715 4716 public boolean startUserInBackground(int userid) throws RemoteException { 4717 Parcel data = Parcel.obtain(); 4718 Parcel reply = Parcel.obtain(); 4719 data.writeInterfaceToken(IActivityManager.descriptor); 4720 data.writeInt(userid); 4721 mRemote.transact(START_USER_IN_BACKGROUND_TRANSACTION, data, reply, 0); 4722 reply.readException(); 4723 boolean result = reply.readInt() != 0; 4724 reply.recycle(); 4725 data.recycle(); 4726 return result; 4727 } 4728 4729 public int stopUser(int userid, IStopUserCallback callback) throws RemoteException { 4730 Parcel data = Parcel.obtain(); 4731 Parcel reply = Parcel.obtain(); 4732 data.writeInterfaceToken(IActivityManager.descriptor); 4733 data.writeInt(userid); 4734 data.writeStrongInterface(callback); 4735 mRemote.transact(STOP_USER_TRANSACTION, data, reply, 0); 4736 reply.readException(); 4737 int result = reply.readInt(); 4738 reply.recycle(); 4739 data.recycle(); 4740 return result; 4741 } 4742 4743 public UserInfo getCurrentUser() throws RemoteException { 4744 Parcel data = Parcel.obtain(); 4745 Parcel reply = Parcel.obtain(); 4746 data.writeInterfaceToken(IActivityManager.descriptor); 4747 mRemote.transact(GET_CURRENT_USER_TRANSACTION, data, reply, 0); 4748 reply.readException(); 4749 UserInfo userInfo = UserInfo.CREATOR.createFromParcel(reply); 4750 reply.recycle(); 4751 data.recycle(); 4752 return userInfo; 4753 } 4754 4755 public boolean isUserRunning(int userid, boolean orStopping) throws RemoteException { 4756 Parcel data = Parcel.obtain(); 4757 Parcel reply = Parcel.obtain(); 4758 data.writeInterfaceToken(IActivityManager.descriptor); 4759 data.writeInt(userid); 4760 data.writeInt(orStopping ? 1 : 0); 4761 mRemote.transact(IS_USER_RUNNING_TRANSACTION, data, reply, 0); 4762 reply.readException(); 4763 boolean result = reply.readInt() != 0; 4764 reply.recycle(); 4765 data.recycle(); 4766 return result; 4767 } 4768 4769 public int[] getRunningUserIds() throws RemoteException { 4770 Parcel data = Parcel.obtain(); 4771 Parcel reply = Parcel.obtain(); 4772 data.writeInterfaceToken(IActivityManager.descriptor); 4773 mRemote.transact(GET_RUNNING_USER_IDS_TRANSACTION, data, reply, 0); 4774 reply.readException(); 4775 int[] result = reply.createIntArray(); 4776 reply.recycle(); 4777 data.recycle(); 4778 return result; 4779 } 4780 4781 public boolean removeTask(int taskId, int flags) throws RemoteException { 4782 Parcel data = Parcel.obtain(); 4783 Parcel reply = Parcel.obtain(); 4784 data.writeInterfaceToken(IActivityManager.descriptor); 4785 data.writeInt(taskId); 4786 data.writeInt(flags); 4787 mRemote.transact(REMOVE_TASK_TRANSACTION, data, reply, 0); 4788 reply.readException(); 4789 boolean result = reply.readInt() != 0; 4790 reply.recycle(); 4791 data.recycle(); 4792 return result; 4793 } 4794 4795 public void registerProcessObserver(IProcessObserver observer) throws RemoteException { 4796 Parcel data = Parcel.obtain(); 4797 Parcel reply = Parcel.obtain(); 4798 data.writeInterfaceToken(IActivityManager.descriptor); 4799 data.writeStrongBinder(observer != null ? observer.asBinder() : null); 4800 mRemote.transact(REGISTER_PROCESS_OBSERVER_TRANSACTION, data, reply, 0); 4801 reply.readException(); 4802 data.recycle(); 4803 reply.recycle(); 4804 } 4805 4806 public void unregisterProcessObserver(IProcessObserver observer) throws RemoteException { 4807 Parcel data = Parcel.obtain(); 4808 Parcel reply = Parcel.obtain(); 4809 data.writeInterfaceToken(IActivityManager.descriptor); 4810 data.writeStrongBinder(observer != null ? observer.asBinder() : null); 4811 mRemote.transact(UNREGISTER_PROCESS_OBSERVER_TRANSACTION, data, reply, 0); 4812 reply.readException(); 4813 data.recycle(); 4814 reply.recycle(); 4815 } 4816 4817 public boolean isIntentSenderTargetedToPackage(IIntentSender sender) throws RemoteException { 4818 Parcel data = Parcel.obtain(); 4819 Parcel reply = Parcel.obtain(); 4820 data.writeInterfaceToken(IActivityManager.descriptor); 4821 data.writeStrongBinder(sender.asBinder()); 4822 mRemote.transact(IS_INTENT_SENDER_TARGETED_TO_PACKAGE_TRANSACTION, data, reply, 0); 4823 reply.readException(); 4824 boolean res = reply.readInt() != 0; 4825 data.recycle(); 4826 reply.recycle(); 4827 return res; 4828 } 4829 4830 public boolean isIntentSenderAnActivity(IIntentSender sender) throws RemoteException { 4831 Parcel data = Parcel.obtain(); 4832 Parcel reply = Parcel.obtain(); 4833 data.writeInterfaceToken(IActivityManager.descriptor); 4834 data.writeStrongBinder(sender.asBinder()); 4835 mRemote.transact(IS_INTENT_SENDER_AN_ACTIVITY_TRANSACTION, data, reply, 0); 4836 reply.readException(); 4837 boolean res = reply.readInt() != 0; 4838 data.recycle(); 4839 reply.recycle(); 4840 return res; 4841 } 4842 4843 public Intent getIntentForIntentSender(IIntentSender sender) throws RemoteException { 4844 Parcel data = Parcel.obtain(); 4845 Parcel reply = Parcel.obtain(); 4846 data.writeInterfaceToken(IActivityManager.descriptor); 4847 data.writeStrongBinder(sender.asBinder()); 4848 mRemote.transact(GET_INTENT_FOR_INTENT_SENDER_TRANSACTION, data, reply, 0); 4849 reply.readException(); 4850 Intent res = reply.readInt() != 0 4851 ? Intent.CREATOR.createFromParcel(reply) : null; 4852 data.recycle(); 4853 reply.recycle(); 4854 return res; 4855 } 4856 4857 public String getTagForIntentSender(IIntentSender sender, String prefix) 4858 throws RemoteException { 4859 Parcel data = Parcel.obtain(); 4860 Parcel reply = Parcel.obtain(); 4861 data.writeInterfaceToken(IActivityManager.descriptor); 4862 data.writeStrongBinder(sender.asBinder()); 4863 data.writeString(prefix); 4864 mRemote.transact(GET_TAG_FOR_INTENT_SENDER_TRANSACTION, data, reply, 0); 4865 reply.readException(); 4866 String res = reply.readString(); 4867 data.recycle(); 4868 reply.recycle(); 4869 return res; 4870 } 4871 4872 public void updatePersistentConfiguration(Configuration values) throws RemoteException 4873 { 4874 Parcel data = Parcel.obtain(); 4875 Parcel reply = Parcel.obtain(); 4876 data.writeInterfaceToken(IActivityManager.descriptor); 4877 values.writeToParcel(data, 0); 4878 mRemote.transact(UPDATE_PERSISTENT_CONFIGURATION_TRANSACTION, data, reply, 0); 4879 reply.readException(); 4880 data.recycle(); 4881 reply.recycle(); 4882 } 4883 4884 public long[] getProcessPss(int[] pids) throws RemoteException { 4885 Parcel data = Parcel.obtain(); 4886 Parcel reply = Parcel.obtain(); 4887 data.writeInterfaceToken(IActivityManager.descriptor); 4888 data.writeIntArray(pids); 4889 mRemote.transact(GET_PROCESS_PSS_TRANSACTION, data, reply, 0); 4890 reply.readException(); 4891 long[] res = reply.createLongArray(); 4892 data.recycle(); 4893 reply.recycle(); 4894 return res; 4895 } 4896 4897 public void showBootMessage(CharSequence msg, boolean always) throws RemoteException { 4898 Parcel data = Parcel.obtain(); 4899 Parcel reply = Parcel.obtain(); 4900 data.writeInterfaceToken(IActivityManager.descriptor); 4901 TextUtils.writeToParcel(msg, data, 0); 4902 data.writeInt(always ? 1 : 0); 4903 mRemote.transact(SHOW_BOOT_MESSAGE_TRANSACTION, data, reply, 0); 4904 reply.readException(); 4905 data.recycle(); 4906 reply.recycle(); 4907 } 4908 4909 public void keyguardWaitingForActivityDrawn() throws RemoteException { 4910 Parcel data = Parcel.obtain(); 4911 Parcel reply = Parcel.obtain(); 4912 data.writeInterfaceToken(IActivityManager.descriptor); 4913 mRemote.transact(KEYGUARD_WAITING_FOR_ACTIVITY_DRAWN_TRANSACTION, data, reply, 0); 4914 reply.readException(); 4915 data.recycle(); 4916 reply.recycle(); 4917 } 4918 4919 public boolean shouldUpRecreateTask(IBinder token, String destAffinity) 4920 throws RemoteException { 4921 Parcel data = Parcel.obtain(); 4922 Parcel reply = Parcel.obtain(); 4923 data.writeInterfaceToken(IActivityManager.descriptor); 4924 data.writeStrongBinder(token); 4925 data.writeString(destAffinity); 4926 mRemote.transact(SHOULD_UP_RECREATE_TASK_TRANSACTION, data, reply, 0); 4927 reply.readException(); 4928 boolean result = reply.readInt() != 0; 4929 data.recycle(); 4930 reply.recycle(); 4931 return result; 4932 } 4933 4934 public boolean navigateUpTo(IBinder token, Intent target, int resultCode, Intent resultData) 4935 throws RemoteException { 4936 Parcel data = Parcel.obtain(); 4937 Parcel reply = Parcel.obtain(); 4938 data.writeInterfaceToken(IActivityManager.descriptor); 4939 data.writeStrongBinder(token); 4940 target.writeToParcel(data, 0); 4941 data.writeInt(resultCode); 4942 if (resultData != null) { 4943 data.writeInt(1); 4944 resultData.writeToParcel(data, 0); 4945 } else { 4946 data.writeInt(0); 4947 } 4948 mRemote.transact(NAVIGATE_UP_TO_TRANSACTION, data, reply, 0); 4949 reply.readException(); 4950 boolean result = reply.readInt() != 0; 4951 data.recycle(); 4952 reply.recycle(); 4953 return result; 4954 } 4955 4956 public int getLaunchedFromUid(IBinder activityToken) throws RemoteException { 4957 Parcel data = Parcel.obtain(); 4958 Parcel reply = Parcel.obtain(); 4959 data.writeInterfaceToken(IActivityManager.descriptor); 4960 data.writeStrongBinder(activityToken); 4961 mRemote.transact(GET_LAUNCHED_FROM_UID_TRANSACTION, data, reply, 0); 4962 reply.readException(); 4963 int result = reply.readInt(); 4964 data.recycle(); 4965 reply.recycle(); 4966 return result; 4967 } 4968 4969 public String getLaunchedFromPackage(IBinder activityToken) throws RemoteException { 4970 Parcel data = Parcel.obtain(); 4971 Parcel reply = Parcel.obtain(); 4972 data.writeInterfaceToken(IActivityManager.descriptor); 4973 data.writeStrongBinder(activityToken); 4974 mRemote.transact(GET_LAUNCHED_FROM_PACKAGE_TRANSACTION, data, reply, 0); 4975 reply.readException(); 4976 String result = reply.readString(); 4977 data.recycle(); 4978 reply.recycle(); 4979 return result; 4980 } 4981 4982 public void registerUserSwitchObserver(IUserSwitchObserver observer) throws RemoteException { 4983 Parcel data = Parcel.obtain(); 4984 Parcel reply = Parcel.obtain(); 4985 data.writeInterfaceToken(IActivityManager.descriptor); 4986 data.writeStrongBinder(observer != null ? observer.asBinder() : null); 4987 mRemote.transact(REGISTER_USER_SWITCH_OBSERVER_TRANSACTION, data, reply, 0); 4988 reply.readException(); 4989 data.recycle(); 4990 reply.recycle(); 4991 } 4992 4993 public void unregisterUserSwitchObserver(IUserSwitchObserver observer) throws RemoteException { 4994 Parcel data = Parcel.obtain(); 4995 Parcel reply = Parcel.obtain(); 4996 data.writeInterfaceToken(IActivityManager.descriptor); 4997 data.writeStrongBinder(observer != null ? observer.asBinder() : null); 4998 mRemote.transact(UNREGISTER_USER_SWITCH_OBSERVER_TRANSACTION, data, reply, 0); 4999 reply.readException(); 5000 data.recycle(); 5001 reply.recycle(); 5002 } 5003 5004 public void requestBugReport() throws RemoteException { 5005 Parcel data = Parcel.obtain(); 5006 Parcel reply = Parcel.obtain(); 5007 data.writeInterfaceToken(IActivityManager.descriptor); 5008 mRemote.transact(REQUEST_BUG_REPORT_TRANSACTION, data, reply, 0); 5009 reply.readException(); 5010 data.recycle(); 5011 reply.recycle(); 5012 } 5013 5014 public long inputDispatchingTimedOut(int pid, boolean aboveSystem, String reason) 5015 throws RemoteException { 5016 Parcel data = Parcel.obtain(); 5017 Parcel reply = Parcel.obtain(); 5018 data.writeInterfaceToken(IActivityManager.descriptor); 5019 data.writeInt(pid); 5020 data.writeInt(aboveSystem ? 1 : 0); 5021 data.writeString(reason); 5022 mRemote.transact(INPUT_DISPATCHING_TIMED_OUT_TRANSACTION, data, reply, 0); 5023 reply.readException(); 5024 long res = reply.readInt(); 5025 data.recycle(); 5026 reply.recycle(); 5027 return res; 5028 } 5029 5030 public Bundle getAssistContextExtras(int requestType) throws RemoteException { 5031 Parcel data = Parcel.obtain(); 5032 Parcel reply = Parcel.obtain(); 5033 data.writeInterfaceToken(IActivityManager.descriptor); 5034 data.writeInt(requestType); 5035 mRemote.transact(GET_ASSIST_CONTEXT_EXTRAS_TRANSACTION, data, reply, 0); 5036 reply.readException(); 5037 Bundle res = reply.readBundle(); 5038 data.recycle(); 5039 reply.recycle(); 5040 return res; 5041 } 5042 5043 public void reportAssistContextExtras(IBinder token, Bundle extras) 5044 throws RemoteException { 5045 Parcel data = Parcel.obtain(); 5046 Parcel reply = Parcel.obtain(); 5047 data.writeInterfaceToken(IActivityManager.descriptor); 5048 data.writeStrongBinder(token); 5049 data.writeBundle(extras); 5050 mRemote.transact(REPORT_ASSIST_CONTEXT_EXTRAS_TRANSACTION, data, reply, 0); 5051 reply.readException(); 5052 data.recycle(); 5053 reply.recycle(); 5054 } 5055 5056 public boolean launchAssistIntent(Intent intent, int requestType, String hint, int userHandle) 5057 throws RemoteException { 5058 Parcel data = Parcel.obtain(); 5059 Parcel reply = Parcel.obtain(); 5060 data.writeInterfaceToken(IActivityManager.descriptor); 5061 intent.writeToParcel(data, 0); 5062 data.writeInt(requestType); 5063 data.writeString(hint); 5064 data.writeInt(userHandle); 5065 mRemote.transact(LAUNCH_ASSIST_INTENT_TRANSACTION, data, reply, 0); 5066 reply.readException(); 5067 boolean res = reply.readInt() != 0; 5068 data.recycle(); 5069 reply.recycle(); 5070 return res; 5071 } 5072 5073 public void killUid(int uid, String reason) throws RemoteException { 5074 Parcel data = Parcel.obtain(); 5075 Parcel reply = Parcel.obtain(); 5076 data.writeInterfaceToken(IActivityManager.descriptor); 5077 data.writeInt(uid); 5078 data.writeString(reason); 5079 mRemote.transact(KILL_UID_TRANSACTION, data, reply, 0); 5080 reply.readException(); 5081 data.recycle(); 5082 reply.recycle(); 5083 } 5084 5085 public void hang(IBinder who, boolean allowRestart) throws RemoteException { 5086 Parcel data = Parcel.obtain(); 5087 Parcel reply = Parcel.obtain(); 5088 data.writeInterfaceToken(IActivityManager.descriptor); 5089 data.writeStrongBinder(who); 5090 data.writeInt(allowRestart ? 1 : 0); 5091 mRemote.transact(HANG_TRANSACTION, data, reply, 0); 5092 reply.readException(); 5093 data.recycle(); 5094 reply.recycle(); 5095 } 5096 5097 public void reportActivityFullyDrawn(IBinder token) throws RemoteException { 5098 Parcel data = Parcel.obtain(); 5099 Parcel reply = Parcel.obtain(); 5100 data.writeInterfaceToken(IActivityManager.descriptor); 5101 data.writeStrongBinder(token); 5102 mRemote.transact(REPORT_ACTIVITY_FULLY_DRAWN_TRANSACTION, data, reply, 0); 5103 reply.readException(); 5104 data.recycle(); 5105 reply.recycle(); 5106 } 5107 5108 public void notifyActivityDrawn(IBinder token) throws RemoteException { 5109 Parcel data = Parcel.obtain(); 5110 Parcel reply = Parcel.obtain(); 5111 data.writeInterfaceToken(IActivityManager.descriptor); 5112 data.writeStrongBinder(token); 5113 mRemote.transact(NOTIFY_ACTIVITY_DRAWN_TRANSACTION, data, reply, 0); 5114 reply.readException(); 5115 data.recycle(); 5116 reply.recycle(); 5117 } 5118 5119 public void restart() throws RemoteException { 5120 Parcel data = Parcel.obtain(); 5121 Parcel reply = Parcel.obtain(); 5122 data.writeInterfaceToken(IActivityManager.descriptor); 5123 mRemote.transact(RESTART_TRANSACTION, data, reply, 0); 5124 reply.readException(); 5125 data.recycle(); 5126 reply.recycle(); 5127 } 5128 5129 public void performIdleMaintenance() throws RemoteException { 5130 Parcel data = Parcel.obtain(); 5131 Parcel reply = Parcel.obtain(); 5132 data.writeInterfaceToken(IActivityManager.descriptor); 5133 mRemote.transact(PERFORM_IDLE_MAINTENANCE_TRANSACTION, data, reply, 0); 5134 reply.readException(); 5135 data.recycle(); 5136 reply.recycle(); 5137 } 5138 5139 public IActivityContainer createActivityContainer(IBinder parentActivityToken, 5140 IActivityContainerCallback callback) throws RemoteException { 5141 Parcel data = Parcel.obtain(); 5142 Parcel reply = Parcel.obtain(); 5143 data.writeInterfaceToken(IActivityManager.descriptor); 5144 data.writeStrongBinder(parentActivityToken); 5145 data.writeStrongBinder(callback == null ? null : callback.asBinder()); 5146 mRemote.transact(CREATE_ACTIVITY_CONTAINER_TRANSACTION, data, reply, 0); 5147 reply.readException(); 5148 final int result = reply.readInt(); 5149 final IActivityContainer res; 5150 if (result == 1) { 5151 res = IActivityContainer.Stub.asInterface(reply.readStrongBinder()); 5152 } else { 5153 res = null; 5154 } 5155 data.recycle(); 5156 reply.recycle(); 5157 return res; 5158 } 5159 5160 public void deleteActivityContainer(IActivityContainer activityContainer) 5161 throws RemoteException { 5162 Parcel data = Parcel.obtain(); 5163 Parcel reply = Parcel.obtain(); 5164 data.writeInterfaceToken(IActivityManager.descriptor); 5165 data.writeStrongBinder(activityContainer.asBinder()); 5166 mRemote.transact(DELETE_ACTIVITY_CONTAINER_TRANSACTION, data, reply, 0); 5167 reply.readException(); 5168 data.recycle(); 5169 reply.recycle(); 5170 } 5171 5172 public IActivityContainer getEnclosingActivityContainer(IBinder activityToken) 5173 throws RemoteException { 5174 Parcel data = Parcel.obtain(); 5175 Parcel reply = Parcel.obtain(); 5176 data.writeInterfaceToken(IActivityManager.descriptor); 5177 data.writeStrongBinder(activityToken); 5178 mRemote.transact(GET_ACTIVITY_CONTAINER_TRANSACTION, data, reply, 0); 5179 reply.readException(); 5180 final int result = reply.readInt(); 5181 final IActivityContainer res; 5182 if (result == 1) { 5183 res = IActivityContainer.Stub.asInterface(reply.readStrongBinder()); 5184 } else { 5185 res = null; 5186 } 5187 data.recycle(); 5188 reply.recycle(); 5189 return res; 5190 } 5191 5192 public IBinder getHomeActivityToken() throws RemoteException { 5193 Parcel data = Parcel.obtain(); 5194 Parcel reply = Parcel.obtain(); 5195 data.writeInterfaceToken(IActivityManager.descriptor); 5196 mRemote.transact(GET_HOME_ACTIVITY_TOKEN_TRANSACTION, data, reply, 0); 5197 reply.readException(); 5198 IBinder res = reply.readStrongBinder(); 5199 data.recycle(); 5200 reply.recycle(); 5201 return res; 5202 } 5203 5204 @Override 5205 public void startLockTaskMode(int taskId) throws RemoteException { 5206 Parcel data = Parcel.obtain(); 5207 Parcel reply = Parcel.obtain(); 5208 data.writeInterfaceToken(IActivityManager.descriptor); 5209 data.writeInt(taskId); 5210 mRemote.transact(START_LOCK_TASK_BY_TASK_ID_TRANSACTION, data, reply, 0); 5211 reply.readException(); 5212 data.recycle(); 5213 reply.recycle(); 5214 } 5215 5216 @Override 5217 public void startLockTaskMode(IBinder token) throws RemoteException { 5218 Parcel data = Parcel.obtain(); 5219 Parcel reply = Parcel.obtain(); 5220 data.writeInterfaceToken(IActivityManager.descriptor); 5221 data.writeStrongBinder(token); 5222 mRemote.transact(START_LOCK_TASK_BY_TOKEN_TRANSACTION, data, reply, 0); 5223 reply.readException(); 5224 data.recycle(); 5225 reply.recycle(); 5226 } 5227 5228 @Override 5229 public void startLockTaskModeOnCurrent() throws RemoteException { 5230 Parcel data = Parcel.obtain(); 5231 Parcel reply = Parcel.obtain(); 5232 data.writeInterfaceToken(IActivityManager.descriptor); 5233 mRemote.transact(START_LOCK_TASK_BY_CURRENT_TRANSACTION, data, reply, 0); 5234 reply.readException(); 5235 data.recycle(); 5236 reply.recycle(); 5237 } 5238 5239 @Override 5240 public void stopLockTaskMode() throws RemoteException { 5241 Parcel data = Parcel.obtain(); 5242 Parcel reply = Parcel.obtain(); 5243 data.writeInterfaceToken(IActivityManager.descriptor); 5244 mRemote.transact(STOP_LOCK_TASK_MODE_TRANSACTION, data, reply, 0); 5245 reply.readException(); 5246 data.recycle(); 5247 reply.recycle(); 5248 } 5249 5250 @Override 5251 public void stopLockTaskModeOnCurrent() throws RemoteException { 5252 Parcel data = Parcel.obtain(); 5253 Parcel reply = Parcel.obtain(); 5254 data.writeInterfaceToken(IActivityManager.descriptor); 5255 mRemote.transact(STOP_LOCK_TASK_BY_CURRENT_TRANSACTION, data, reply, 0); 5256 reply.readException(); 5257 data.recycle(); 5258 reply.recycle(); 5259 } 5260 5261 @Override 5262 public boolean isInLockTaskMode() throws RemoteException { 5263 Parcel data = Parcel.obtain(); 5264 Parcel reply = Parcel.obtain(); 5265 data.writeInterfaceToken(IActivityManager.descriptor); 5266 mRemote.transact(IS_IN_LOCK_TASK_MODE_TRANSACTION, data, reply, 0); 5267 reply.readException(); 5268 boolean isInLockTaskMode = reply.readInt() == 1; 5269 data.recycle(); 5270 reply.recycle(); 5271 return isInLockTaskMode; 5272 } 5273 5274 @Override 5275 public void setTaskDescription(IBinder token, ActivityManager.TaskDescription values) 5276 throws RemoteException { 5277 Parcel data = Parcel.obtain(); 5278 Parcel reply = Parcel.obtain(); 5279 data.writeInterfaceToken(IActivityManager.descriptor); 5280 data.writeStrongBinder(token); 5281 values.writeToParcel(data, 0); 5282 mRemote.transact(SET_TASK_DESCRIPTION_TRANSACTION, data, reply, IBinder.FLAG_ONEWAY); 5283 reply.readException(); 5284 data.recycle(); 5285 reply.recycle(); 5286 } 5287 5288 @Override 5289 public Bitmap getTaskDescriptionIcon(String filename) throws RemoteException { 5290 Parcel data = Parcel.obtain(); 5291 Parcel reply = Parcel.obtain(); 5292 data.writeInterfaceToken(IActivityManager.descriptor); 5293 data.writeString(filename); 5294 mRemote.transact(GET_TASK_DESCRIPTION_ICON_TRANSACTION, data, reply, 0); 5295 reply.readException(); 5296 final Bitmap icon = reply.readInt() == 0 ? null : Bitmap.CREATOR.createFromParcel(reply); 5297 data.recycle(); 5298 reply.recycle(); 5299 return icon; 5300 } 5301 5302 @Override 5303 public boolean requestVisibleBehind(IBinder token, boolean visible) throws RemoteException { 5304 Parcel data = Parcel.obtain(); 5305 Parcel reply = Parcel.obtain(); 5306 data.writeInterfaceToken(IActivityManager.descriptor); 5307 data.writeStrongBinder(token); 5308 data.writeInt(visible ? 1 : 0); 5309 mRemote.transact(REQUEST_VISIBLE_BEHIND_TRANSACTION, data, reply, 0); 5310 reply.readException(); 5311 boolean success = reply.readInt() > 0; 5312 data.recycle(); 5313 reply.recycle(); 5314 return success; 5315 } 5316 5317 @Override 5318 public boolean isBackgroundVisibleBehind(IBinder token) throws RemoteException { 5319 Parcel data = Parcel.obtain(); 5320 Parcel reply = Parcel.obtain(); 5321 data.writeInterfaceToken(IActivityManager.descriptor); 5322 data.writeStrongBinder(token); 5323 mRemote.transact(IS_BACKGROUND_VISIBLE_BEHIND_TRANSACTION, data, reply, 0); 5324 reply.readException(); 5325 final boolean visible = reply.readInt() > 0; 5326 data.recycle(); 5327 reply.recycle(); 5328 return visible; 5329 } 5330 5331 @Override 5332 public void backgroundResourcesReleased(IBinder token) throws RemoteException { 5333 Parcel data = Parcel.obtain(); 5334 Parcel reply = Parcel.obtain(); 5335 data.writeInterfaceToken(IActivityManager.descriptor); 5336 data.writeStrongBinder(token); 5337 mRemote.transact(BACKGROUND_RESOURCES_RELEASED_TRANSACTION, data, reply, 5338 IBinder.FLAG_ONEWAY); 5339 reply.readException(); 5340 data.recycle(); 5341 reply.recycle(); 5342 } 5343 5344 @Override 5345 public void notifyLaunchTaskBehindComplete(IBinder token) throws RemoteException { 5346 Parcel data = Parcel.obtain(); 5347 Parcel reply = Parcel.obtain(); 5348 data.writeInterfaceToken(IActivityManager.descriptor); 5349 data.writeStrongBinder(token); 5350 mRemote.transact(NOTIFY_LAUNCH_TASK_BEHIND_COMPLETE_TRANSACTION, data, reply, 5351 IBinder.FLAG_ONEWAY); 5352 reply.readException(); 5353 data.recycle(); 5354 reply.recycle(); 5355 } 5356 5357 @Override 5358 public void notifyEnterAnimationComplete(IBinder token) throws RemoteException { 5359 Parcel data = Parcel.obtain(); 5360 Parcel reply = Parcel.obtain(); 5361 data.writeInterfaceToken(IActivityManager.descriptor); 5362 data.writeStrongBinder(token); 5363 mRemote.transact(NOTIFY_ENTER_ANIMATION_COMPLETE_TRANSACTION, data, reply, 5364 IBinder.FLAG_ONEWAY); 5365 reply.readException(); 5366 data.recycle(); 5367 reply.recycle(); 5368 } 5369 5370 @Override 5371 public void bootAnimationComplete() throws RemoteException { 5372 Parcel data = Parcel.obtain(); 5373 Parcel reply = Parcel.obtain(); 5374 data.writeInterfaceToken(IActivityManager.descriptor); 5375 mRemote.transact(BOOT_ANIMATION_COMPLETE_TRANSACTION, data, reply, 0); 5376 reply.readException(); 5377 data.recycle(); 5378 reply.recycle(); 5379 } 5380 5381 private IBinder mRemote; 5382} 5383