diff options
author | Brian Orr <brianorr@google.com> | 2021-05-13 20:42:01 -0700 |
---|---|---|
committer | Brian Orr <brianorr@google.com> | 2021-05-13 20:42:01 -0700 |
commit | 1b62159ffcebb2c102e129b2e778a8f65b7e5948 (patch) | |
tree | c28571796470b5c9e3d9e8c2dc8d49ddf819fd60 /services/java/com/android/server | |
parent | 86a43bb54c1ed3c75d072a2c465bf0447b5188c1 (diff) | |
parent | 3a582255fbbf0840208ec8cee02f8401982f0e39 (diff) |
Merge SP1A.210510.001
Change-Id: Ia86f3e18206beabe334e3081cedbaf5b3274f78e
Diffstat (limited to 'services/java/com/android/server')
-rw-r--r-- | services/java/com/android/server/SystemServer.java | 36 |
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"); |