summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Gavin Corkery <gavincorkery@google.com> 2021-11-18 09:57:57 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2021-11-18 09:57:57 +0000
commit29b5b4da7d409c8e67c4333353ba7534b7a9c03f (patch)
treed2747d70e9e229652e977d0d01478e209db80d95
parent703e5740fca418b45041cb691f138dda00e1ea40 (diff)
parent02958c9aff067e18b27598a2f8b86ac9a1abd95a (diff)
Merge "Start SupplementalProcessManagerService"
-rw-r--r--core/api/current.txt1
-rw-r--r--core/java/android/app/SystemServiceRegistry.java2
-rw-r--r--core/java/android/content/Context.java8
-rw-r--r--services/java/com/android/server/SystemServer.java11
4 files changed, 22 insertions, 0 deletions
diff --git a/core/api/current.txt b/core/api/current.txt
index 48d44f91dc20..ea4097bb3578 100644
--- a/core/api/current.txt
+++ b/core/api/current.txt
@@ -10794,6 +10794,7 @@ package android.content {
field public static final String STATUS_BAR_SERVICE = "statusbar";
field public static final String STORAGE_SERVICE = "storage";
field public static final String STORAGE_STATS_SERVICE = "storagestats";
+ field public static final String SUPPLEMENTAL_PROCESS_SERVICE = "supplemental_process";
field public static final String SYSTEM_HEALTH_SERVICE = "systemhealth";
field public static final String TELECOM_SERVICE = "telecom";
field public static final String TELEPHONY_IMS_SERVICE = "telephony_ims";
diff --git a/core/java/android/app/SystemServiceRegistry.java b/core/java/android/app/SystemServiceRegistry.java
index fc40179890b6..74e28581717d 100644
--- a/core/java/android/app/SystemServiceRegistry.java
+++ b/core/java/android/app/SystemServiceRegistry.java
@@ -204,6 +204,7 @@ import android.service.oemlock.OemLockManager;
import android.service.persistentdata.IPersistentDataBlockService;
import android.service.persistentdata.PersistentDataBlockManager;
import android.service.vr.IVrManager;
+import android.supplementalprocess.SupplementalProcessFrameworkInitializer;
import android.telecom.TelecomManager;
import android.telephony.MmsManager;
import android.telephony.TelephonyFrameworkInitializer;
@@ -1527,6 +1528,7 @@ public final class SystemServiceRegistry {
MediaFrameworkInitializer.registerServiceWrappers();
RoleFrameworkInitializer.registerServiceWrappers();
SchedulingFrameworkInitializer.registerServiceWrappers();
+ SupplementalProcessFrameworkInitializer.registerServiceWrappers();
UwbFrameworkInitializer.registerServiceWrappers();
} finally {
// If any of the above code throws, we're in a pretty bad shape and the process
diff --git a/core/java/android/content/Context.java b/core/java/android/content/Context.java
index 4b5111e5cacd..d6271038a425 100644
--- a/core/java/android/content/Context.java
+++ b/core/java/android/content/Context.java
@@ -3841,6 +3841,7 @@ public abstract class Context {
//@hide: SPEECH_RECOGNITION_SERVICE,
UWB_SERVICE,
MEDIA_METRICS_SERVICE,
+ SUPPLEMENTAL_PROCESS_SERVICE,
})
@Retention(RetentionPolicy.SOURCE)
public @interface ServiceName {}
@@ -5857,6 +5858,13 @@ public abstract class Context {
public static final String LOCALE_SERVICE = "locale";
/**
+ * Use with {@link #getSystemService(String)} to retrieve a Supplemental Process Manager.
+ *
+ * @see #getSystemService(String)
+ */
+ public static final String SUPPLEMENTAL_PROCESS_SERVICE = "supplemental_process";
+
+ /**
* Determine whether the given permission is allowed for a particular
* process and user ID running in the system.
*
diff --git a/services/java/com/android/server/SystemServer.java b/services/java/com/android/server/SystemServer.java
index fab30727f9c4..6d542bf47386 100644
--- a/services/java/com/android/server/SystemServer.java
+++ b/services/java/com/android/server/SystemServer.java
@@ -395,6 +395,11 @@ public final class SystemServer implements Dumpable {
"/apex/com.android.uwb/javalib/service-uwb.jar";
private static final String UWB_SERVICE_CLASS = "com.android.server.uwb.UwbService";
+ private static final String SUPPLEMENTALPROCESS_APEX_PATH =
+ "/apex/com.android.supplementalprocess/javalib/service-supplementalprocess.jar";
+ private static final String SUPPLEMENTALPROCESS_SERVICE_CLASS =
+ "com.android.server.supplementalprocess.SupplementalProcessManagerService$Lifecycle";
+
private static final String TETHERING_CONNECTOR_CLASS = "android.net.ITetheringConnector";
private static final String PERSISTENT_DATA_BLOCK_PROP = "ro.frp.pst";
@@ -2541,6 +2546,12 @@ public final class SystemServer implements Dumpable {
mSystemServiceManager.startService(IncidentCompanionService.class);
t.traceEnd();
+ // Supplemental Process
+ t.traceBegin("StartSupplementalProcessManagerService");
+ mSystemServiceManager.startServiceFromJar(SUPPLEMENTALPROCESS_SERVICE_CLASS,
+ SUPPLEMENTALPROCESS_APEX_PATH);
+ t.traceEnd();
+
if (safeMode) {
mActivityManagerService.enterSafeMode();
}