Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9df66924 authored by Suprabh Shukla's avatar Suprabh Shukla Committed by android-build-merger
Browse files

DO NOT MERGE Isolated processes don't get precached system service binders

am: 2aa7e5e8

Change-Id: Ied81e1f4b517627f0ced686e7485fa035b1f4c6a
parents 29e643bc 2aa7e5e8
Loading
Loading
Loading
Loading
+14 −2
Original line number Diff line number Diff line
@@ -788,6 +788,7 @@ public final class ActivityManagerService extends ActivityManagerNative
     * For example, references to the commonly used services.
     */
    HashMap<String, IBinder> mAppBindArgs;
    HashMap<String, IBinder> mIsolatedAppBindArgs;
    /**
     * Temporary to avoid allocations.  Protected by main lock.
@@ -2210,7 +2211,17 @@ public final class ActivityManagerService extends ActivityManagerNative
     * process when the bindApplication() IPC is sent to the process. They're
     * lazily setup to make sure the services are running when they're asked for.
     */
    private HashMap<String, IBinder> getCommonServicesLocked() {
    private HashMap<String, IBinder> getCommonServicesLocked(boolean isolated) {
        // Isolated processes won't get this optimization, so that we don't
        // violate the rules about which services they have access to.
        if (isolated) {
            if (mIsolatedAppBindArgs == null) {
                mIsolatedAppBindArgs = new HashMap<String, IBinder>();
                mIsolatedAppBindArgs.put("package", ServiceManager.getService("package"));
            }
            return mIsolatedAppBindArgs;
        }
        if (mAppBindArgs == null) {
            mAppBindArgs = new HashMap<String, IBinder>();
@@ -4990,7 +5001,8 @@ public final class ActivityManagerService extends ActivityManagerNative
                    app.instrumentationArguments, app.instrumentationWatcher,
                    app.instrumentationUiAutomationConnection, testMode, enableOpenGlTrace,
                    isRestrictedBackupMode || !normalMode, app.persistent,
                    new Configuration(mConfiguration), app.compat, getCommonServicesLocked(),
                    new Configuration(mConfiguration), app.compat,
                    getCommonServicesLocked(app.isolated),
                    mCoreSettingsObserver.getCoreSettingsLocked());
            updateLruProcessLocked(app, false, null);
            app.lastRequestedGc = app.lastLowMemory = SystemClock.uptimeMillis();