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

Commit d5092368 authored by Parth Sane's avatar Parth Sane
Browse files

Keep java cache for servicemanager

Removing the cache causes performance regression.
Reverting code back

Flag: android.server.Flags.removeJavaServiceManagerCache
Bug: 333854840
Test: atest binderCacheUnitTest
Change-Id: I1b36a03230787c117fa2503adaee7e880730c731
parent 1bf8d3aa
Loading
Loading
Loading
Loading
+19 −32
Original line number Diff line number Diff line
@@ -2861,10 +2861,8 @@ public class ActivityManagerService extends IActivityManager.Stub
                mIsolatedAppBindArgs = new ArrayMap<>(1);
                // See b/79378449 about the following exemption.
                addServiceToMap(mIsolatedAppBindArgs, "package");
                if (!android.server.Flags.removeJavaServiceManagerCache()) {
                addServiceToMap(mIsolatedAppBindArgs, "permissionmgr");
            }
            }
            return mIsolatedAppBindArgs;
        }
@@ -2874,12 +2872,9 @@ public class ActivityManagerService extends IActivityManager.Stub
            // Add common services.
            // IMPORTANT: Before adding services here, make sure ephemeral apps can access them too.
            // Enable the check in ApplicationThread.bindApplication() to make sure.
            // Removing User Service and App Ops Service from cache breaks boot for auto.
            // Removing permissionmgr breaks tests for Android Auto due to SELinux restrictions.
            // TODO: fix SELinux restrictions and remove caching for Android Auto.
            if (mContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_AUTOMOTIVE)
                    || !android.server.Flags.removeJavaServiceManagerCache()) {
            addServiceToMap(mAppBindArgs, "package");
            addServiceToMap(mAppBindArgs, "permissionmgr");
            addServiceToMap(mAppBindArgs, Context.WINDOW_SERVICE);
            addServiceToMap(mAppBindArgs, Context.ALARM_SERVICE);
            addServiceToMap(mAppBindArgs, Context.DISPLAY_SERVICE);
            addServiceToMap(mAppBindArgs, Context.NETWORKMANAGEMENT_SERVICE);
@@ -2888,25 +2883,17 @@ public class ActivityManagerService extends IActivityManager.Stub
            addServiceToMap(mAppBindArgs, Context.INPUT_METHOD_SERVICE);
            addServiceToMap(mAppBindArgs, Context.INPUT_SERVICE);
            addServiceToMap(mAppBindArgs, "graphicsstats");
            addServiceToMap(mAppBindArgs, Context.APP_OPS_SERVICE);
            addServiceToMap(mAppBindArgs, "content");
            addServiceToMap(mAppBindArgs, Context.JOB_SCHEDULER_SERVICE);
            addServiceToMap(mAppBindArgs, Context.NOTIFICATION_SERVICE);
            addServiceToMap(mAppBindArgs, Context.VIBRATOR_SERVICE);
            addServiceToMap(mAppBindArgs, Context.ACCOUNT_SERVICE);
            addServiceToMap(mAppBindArgs, Context.POWER_SERVICE);
            addServiceToMap(mAppBindArgs, Context.USER_SERVICE);
            addServiceToMap(mAppBindArgs, "mount");
            addServiceToMap(mAppBindArgs, Context.PLATFORM_COMPAT_SERVICE);
        }
            // See b/79378449
            // Getting the window service and package service binder from servicemanager
            // is blocked for Apps. However they are necessary for apps.
            // TODO: remove exception
            addServiceToMap(mAppBindArgs, "package");
            addServiceToMap(mAppBindArgs, Context.WINDOW_SERVICE);
            addServiceToMap(mAppBindArgs, Context.USER_SERVICE);
            addServiceToMap(mAppBindArgs, "permissionmgr");
            addServiceToMap(mAppBindArgs, Context.APP_OPS_SERVICE);
        }
        return mAppBindArgs;
    }
+0 −8
Original line number Diff line number Diff line
@@ -9,14 +9,6 @@ flag {
     bug: "324153471"
}

flag {
    name: "remove_java_service_manager_cache"
    namespace: "system_performance"
    description: "This flag turns off Java's Service Manager caching mechanism."
    bug: "333854840"
    is_fixed_read_only: true
}

flag {
     name: "remove_text_service"
     namespace: "wear_frameworks"