From 8266ae32ba930cbad0a71443d6dbc225656c7a41 Mon Sep 17 00:00:00 2001 From: atrost Date: Thu, 15 Aug 2019 16:53:01 +0100 Subject: [PATCH] Start platform compat service eariler. It's needed by ActivityManager and PackageManager. Also use a constant in Context for the name. Test: flashed device with ag/9025572 and ag/9204795 and the platfrom compat was accessible. Bug: 137769727 Change-Id: Ie1130a3f0bdd1769fe0755db0089702ea64d9db6 Merged-In: Ie1130a3f0bdd1769fe0755db0089702ea64d9db6 --- core/java/android/content/Context.java | 9 +++++++++ services/java/com/android/server/SystemServer.java | 11 +++++++---- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/core/java/android/content/Context.java b/core/java/android/content/Context.java index 73bc908632b2..8c6cbb1ff984 100644 --- a/core/java/android/content/Context.java +++ b/core/java/android/content/Context.java @@ -38,6 +38,7 @@ import android.app.ActivityManager; import android.app.IApplicationThread; import android.app.IServiceConnection; import android.app.VrManager; +import android.compat.IPlatformCompat; import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; import android.content.res.AssetManager; @@ -3228,6 +3229,7 @@ public abstract class Context { ROLE_SERVICE, //@hide ROLE_CONTROLLER_SERVICE, CAMERA_SERVICE, + //@hide: PLATFORM_COMPAT_SERVICE, PRINT_SERVICE, CONSUMER_IR_SERVICE, //@hide: TRUST_SERVICE, @@ -4586,6 +4588,13 @@ public abstract class Context { public static final String STATS_MANAGER = "stats"; /** + * Use with {@link android.os.ServiceManager.getService()} to retrieve a + * {@link IPlatformCompat} IBinder for communicating with the platform compat service. + * @hide + */ + public static final String PLATFORM_COMPAT_SERVICE = "platform_compat"; + + /** * Service to capture a bugreport. * @see #getSystemService(String) * @see android.os.BugreportManager diff --git a/services/java/com/android/server/SystemServer.java b/services/java/com/android/server/SystemServer.java index 1919f505f40a..6f7af3f49b57 100644 --- a/services/java/com/android/server/SystemServer.java +++ b/services/java/com/android/server/SystemServer.java @@ -635,6 +635,13 @@ public final class SystemServer { SystemServerInitThreadPool.get().submit(SystemConfig::getInstance, TAG_SYSTEM_CONFIG); traceEnd(); + // Platform compat service is used by ActivityManagerService, PackageManagerService, and + // possibly others in the future. b/135010838. + traceBeginAndSlog("PlatformCompat"); + ServiceManager.addService(Context.PLATFORM_COMPAT_SERVICE, + new PlatformCompat(mSystemContext)); + traceEnd(); + // Wait for installd to finish starting up so that it has a chance to // create critical directories such as /data/user with the appropriate // permissions. We need this to complete before we initialize other services. @@ -1091,10 +1098,6 @@ public final class SystemServer { SignedConfigService.registerUpdateReceiver(mSystemContext); traceEnd(); - traceBeginAndSlog("PlatformCompat"); - ServiceManager.addService("platform_compat", new PlatformCompat(context)); - traceEnd(); - } catch (RuntimeException e) { Slog.e("System", "******************************************"); Slog.e("System", "************ Failure starting core service", e); -- 2.11.0