summaryrefslogtreecommitdiff
path: root/services/java/com/android/server/SystemServer.java
diff options
context:
space:
mode:
authorBrian Orr <brianorr@google.com>2021-05-13 20:42:01 -0700
committerBrian Orr <brianorr@google.com>2021-05-13 20:42:01 -0700
commit1b62159ffcebb2c102e129b2e778a8f65b7e5948 (patch)
treec28571796470b5c9e3d9e8c2dc8d49ddf819fd60 /services/java/com/android/server/SystemServer.java
parent86a43bb54c1ed3c75d072a2c465bf0447b5188c1 (diff)
parent3a582255fbbf0840208ec8cee02f8401982f0e39 (diff)
Merge SP1A.210510.001
Change-Id: Ia86f3e18206beabe334e3081cedbaf5b3274f78e
Diffstat (limited to 'services/java/com/android/server/SystemServer.java')
-rw-r--r--services/java/com/android/server/SystemServer.java36
1 files changed, 7 insertions, 29 deletions
diff --git a/services/java/com/android/server/SystemServer.java b/services/java/com/android/server/SystemServer.java
index 1e882aed08e1..c70d8068f087 100644
--- a/services/java/com/android/server/SystemServer.java
+++ b/services/java/com/android/server/SystemServer.java
@@ -109,7 +109,6 @@ import com.android.server.attention.AttentionManagerService;
import com.android.server.audio.AudioService;
import com.android.server.biometrics.AuthService;
import com.android.server.biometrics.BiometricService;
-import com.android.server.biometrics.sensors.BiometricServiceCallback;
import com.android.server.biometrics.sensors.face.FaceService;
import com.android.server.biometrics.sensors.fingerprint.FingerprintService;
import com.android.server.biometrics.sensors.iris.IrisService;
@@ -181,6 +180,7 @@ import com.android.server.rotationresolver.RotationResolverManagerService;
import com.android.server.security.FileIntegrityService;
import com.android.server.security.KeyAttestationApplicationIdProviderService;
import com.android.server.security.KeyChainSystemService;
+import com.android.server.sensors.SensorService;
import com.android.server.signedconfig.SignedConfigService;
import com.android.server.soundtrigger.SoundTriggerService;
import com.android.server.soundtrigger_middleware.SoundTriggerMiddlewareService;
@@ -218,11 +218,9 @@ import java.io.FileDescriptor;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
-import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.LinkedList;
-import java.util.List;
import java.util.Locale;
import java.util.Timer;
import java.util.TreeSet;
@@ -434,7 +432,6 @@ public final class SystemServer implements Dumpable {
private final long mRuntimeStartElapsedTime;
private final long mRuntimeStartUptime;
- private static final String START_SENSOR_SERVICE = "StartSensorService";
private static final String START_HIDL_SERVICES = "StartHidlServices";
private static final String START_BLOB_STORE_SERVICE = "startBlobStoreManagerService";
@@ -442,7 +439,6 @@ public final class SystemServer implements Dumpable {
private static final String SYSPROP_START_ELAPSED = "sys.system_server.start_elapsed";
private static final String SYSPROP_START_UPTIME = "sys.system_server.start_uptime";
- private Future<?> mSensorServiceStart;
private Future<?> mZygotePreload;
private Future<?> mBlobStoreServiceStart;
@@ -456,9 +452,6 @@ public final class SystemServer implements Dumpable {
/** Start the IStats services. This is a blocking call and can take time. */
private static native void startIStatsService();
- /** Start the sensor service. This is a blocking call and can take time. */
- private static native void startSensorService();
-
/**
* Start the memtrack proxy service.
*/
@@ -1236,15 +1229,9 @@ public final class SystemServer implements Dumpable {
// The sensor service needs access to package manager service, app ops
// service, and permissions service, therefore we start it after them.
- // Start sensor service in a separate thread. Completion should be checked
- // before using it.
- mSensorServiceStart = SystemServerInitThreadPool.submit(() -> {
- TimingsTraceAndSlog traceLog = TimingsTraceAndSlog.newAsyncLog();
- traceLog.traceBegin(START_SENSOR_SERVICE);
- startSensorService();
- traceLog.traceEnd();
- }, START_SENSOR_SERVICE);
-
+ t.traceBegin("StartSensorService");
+ mSystemServiceManager.startService(SensorService.class);
+ t.traceEnd();
t.traceEnd(); // startBootstrapServices
}
@@ -1484,8 +1471,7 @@ public final class SystemServer implements Dumpable {
t.traceBegin("StartWindowManagerService");
// WMS needs sensor service ready
- ConcurrentUtils.waitForFutureNoInterrupt(mSensorServiceStart, START_SENSOR_SERVICE);
- mSensorServiceStart = null;
+ mSystemServiceManager.startBootPhase(t, SystemService.PHASE_WAIT_FOR_SENSOR_SERVICE);
wm = WindowManagerService.main(context, inputManager, !mFirstBoot, mOnlyCore,
new PhoneWindowManager(), mActivityManagerService.mActivityTaskManager);
ServiceManager.addService(Context.WINDOW_SERVICE, wm, /* allowIsolated= */ false,
@@ -1503,8 +1489,8 @@ public final class SystemServer implements Dumpable {
t.traceEnd();
// Start receiving calls from HIDL services. Start in in a separate thread
- // because it need to connect to SensorManager. This have to start
- // after START_SENSOR_SERVICE is done.
+ // because it need to connect to SensorManager. This has to start
+ // after PHASE_WAIT_FOR_SENSOR_SERVICE is done.
SystemServerInitThreadPool.submit(() -> {
TimingsTraceAndSlog traceLog = TimingsTraceAndSlog.newAsyncLog();
traceLog.traceBegin(START_HIDL_SERVICES);
@@ -2371,12 +2357,10 @@ public final class SystemServer implements Dumpable {
final boolean hasFeatureFingerprint
= mPackageManager.hasSystemFeature(PackageManager.FEATURE_FINGERPRINT);
- final List<BiometricServiceCallback> biometricServiceCallback = new ArrayList<>();
if (hasFeatureFace) {
t.traceBegin("StartFaceSensor");
final FaceService faceService =
mSystemServiceManager.startService(FaceService.class);
- biometricServiceCallback.add(faceService);
t.traceEnd();
}
@@ -2390,18 +2374,12 @@ public final class SystemServer implements Dumpable {
t.traceBegin("StartFingerprintSensor");
final FingerprintService fingerprintService =
mSystemServiceManager.startService(FingerprintService.class);
- biometricServiceCallback.add(fingerprintService);
t.traceEnd();
}
// Start this service after all biometric sensor services are started.
t.traceBegin("StartBiometricService");
mSystemServiceManager.startService(BiometricService.class);
- for (BiometricServiceCallback service : biometricServiceCallback) {
- Slog.d(TAG, "Notifying onBiometricServiceReady for: "
- + service.getClass().getSimpleName());
- service.onBiometricServiceReady();
- }
t.traceEnd();
t.traceBegin("StartAuthService");