OSDN Git Service

Start platform compat service eariler.
authoratrost <atrost@google.com>
Thu, 15 Aug 2019 15:53:01 +0000 (16:53 +0100)
committerAnna Trostanetski <atrost@google.com>
Mon, 19 Aug 2019 16:10:31 +0000 (16:10 +0000)
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
services/java/com/android/server/SystemServer.java

index 73bc908..8c6cbb1 100644 (file)
@@ -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
index 1919f50..6f7af3f 100644 (file)
@@ -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);