diff options
author | Scott Lobdell <slobdell@google.com> | 2019-01-31 11:53:41 -0800 |
---|---|---|
committer | Scott Lobdell <slobdell@google.com> | 2019-02-01 14:08:42 -0800 |
commit | 88b45c586d461df38b866d529bc98d1dfa3e8838 (patch) | |
tree | ae57a86275dac94c0899015923778f3016c865b2 /services/java/com/android/server/SystemServer.java | |
parent | 067596650927fa91a97355e84b152b21826f7ae2 (diff) | |
parent | 9b9ca46fc2d3da231bf9ef6ff630105720f94cf2 (diff) |
Merge QP1A.190122.001
Conflicts:
api/system-current.txt
core/java/android/bluetooth/BluetoothAdapter.java
core/jni/android_util_Process.cpp
core/jni/com_android_internal_os_Zygote.cpp
core/res/res/values/config.xml
core/res/res/values/symbols.xml
media/java/android/media/MediaCodecInfo.java
packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java
services/core/java/com/android/server/ConnectivityService.java
services/core/java/com/android/server/LocationManagerService.java
services/core/java/com/android/server/am/ActivityManagerService.java
services/core/java/com/android/server/connectivity/NetworkAgentInfo.java
services/core/java/com/android/server/location/GnssLocationProvider.java
services/core/java/com/android/server/wm/ActivityStack.java
services/net/java/android/net/ip/IpClient.java
telecomm/java/android/telecom/Connection.java
telephony/java/android/telephony/ims/ImsCallSession.java
telephony/java/android/telephony/ims/ImsCallSessionListener.java
telephony/java/android/telephony/ims/aidl/IImsCallSessionListener.aidl
telephony/java/android/telephony/ims/compat/stub/ImsCallSessionImplBase.java
telephony/java/com/android/ims/internal/IImsCallSessionListener.aidl
wifi/java/android/net/wifi/WifiConfiguration.java
Change-Id: I367301986f2ae80a528050c3d78776b5a4c6b5ee
Diffstat (limited to 'services/java/com/android/server/SystemServer.java')
-rwxr-xr-x | services/java/com/android/server/SystemServer.java | 77 |
1 files changed, 71 insertions, 6 deletions
diff --git a/services/java/com/android/server/SystemServer.java b/services/java/com/android/server/SystemServer.java index 7f84a9073327..09ecc7e3a915 100755 --- a/services/java/com/android/server/SystemServer.java +++ b/services/java/com/android/server/SystemServer.java @@ -75,6 +75,7 @@ import com.android.internal.util.EmergencyAffordanceManager; import com.android.internal.widget.ILockSettings; import com.android.server.am.ActivityManagerService; import com.android.server.appbinding.AppBindingService; +import com.android.server.attention.AttentionManagerService; import com.android.server.audio.AudioService; import com.android.server.biometrics.BiometricService; import com.android.server.biometrics.face.FaceService; @@ -103,10 +104,12 @@ import com.android.server.media.MediaUpdateService; import com.android.server.media.projection.MediaProjectionManagerService; import com.android.server.net.NetworkPolicyManagerService; import com.android.server.net.NetworkStatsService; +import com.android.server.net.ipmemorystore.IpMemoryStoreService; import com.android.server.net.watchlist.NetworkWatchlistService; import com.android.server.notification.NotificationManagerService; import com.android.server.oemlock.OemLockService; import com.android.server.om.OverlayManagerService; +import com.android.server.os.BugreportManagerService; import com.android.server.os.DeviceIdentifiersPolicyService; import com.android.server.os.SchedulingPolicyService; import com.android.server.pm.BackgroundDexOptService; @@ -119,6 +122,7 @@ import com.android.server.pm.PackageManagerService; import com.android.server.pm.ShortcutService; import com.android.server.pm.UserManagerService; import com.android.server.policy.PhoneWindowManager; +import com.android.server.policy.role.LegacyRoleResolutionPolicy; import com.android.server.power.PowerManagerService; import com.android.server.power.ShutdownThread; import com.android.server.power.ThermalManagerService; @@ -152,6 +156,8 @@ import dalvik.system.PathClassLoader; import java.lang.reflect.Constructor; import java.lang.reflect.Method; +import com.google.android.startop.iorap.IorapForwardingService; + import java.io.File; import java.io.IOException; import java.util.Locale; @@ -263,6 +269,10 @@ public final class SystemServer { "com.android.server.accessibility.AccessibilityManagerService$Lifecycle"; private static final String ADB_SERVICE_CLASS = "com.android.server.adb.AdbService$Lifecycle"; + private static final String APP_PREDICTION_MANAGER_SERVICE_CLASS = + "com.android.server.appprediction.AppPredictionManagerService"; + private static final String CONTENT_SUGGESTIONS_SERVICE_CLASS = + "com.android.server.contentsuggestions.ContentSuggestionsManagerService"; private static final String PERSISTENT_DATA_BLOCK_PROP = "ro.frp.pst"; @@ -789,6 +799,11 @@ public final class SystemServer { traceBeginAndSlog("StartRollbackManagerService"); mSystemServiceManager.startService(RollbackManagerService.class); traceEnd(); + + // Service to capture bugreports. + traceBeginAndSlog("StartBugreportManagerService"); + mSystemServiceManager.startService(BugreportManagerService.class); + traceEnd(); } /** @@ -1014,15 +1029,30 @@ public final class SystemServer { mSystemServiceManager.startService(PinnerService.class); traceEnd(); + traceBeginAndSlog("IorapForwardingService"); + mSystemServiceManager.startService(IorapForwardingService.class); + traceEnd(); + traceBeginAndSlog("SignedConfigService"); SignedConfigService.registerUpdateReceiver(mSystemContext); traceEnd(); - } catch (RuntimeException e) { Slog.e("System", "******************************************"); Slog.e("System", "************ Failure starting core service", e); } + // Before things start rolling, be sure we have decided whether + // we are in safe mode. + final boolean safeMode = wm.detectSafeMode(); + if (safeMode) { + // If yes, immediately turn on the global setting for airplane mode. + // Note that this does not send broadcasts at this stage because + // subsystems are not yet up. We will send broadcasts later to ensure + // all listeners have the chance to react with special handling. + Settings.Global.putInt(context.getContentResolver(), + Settings.Global.AIRPLANE_MODE_ON, 1); + } + StatusBarManagerService statusBar = null; INotificationManager notification = null; LocationManagerService location = null; @@ -1156,6 +1186,16 @@ public final class SystemServer { startContentCaptureService(context); + // App prediction manager service + traceBeginAndSlog("StartAppPredictionService"); + mSystemServiceManager.startService(APP_PREDICTION_MANAGER_SERVICE_CLASS); + traceEnd(); + + // Content suggestions manager service + traceBeginAndSlog("StartContentSuggestionsService"); + mSystemServiceManager.startService(CONTENT_SUGGESTIONS_SERVICE_CLASS); + traceEnd(); + // NOTE: ClipboardService indirectly depends on IntelligenceService traceBeginAndSlog("StartClipboardService"); mSystemServiceManager.startService(ClipboardService.class); @@ -1170,6 +1210,15 @@ public final class SystemServer { } traceEnd(); + traceBeginAndSlog("StartIpMemoryStoreService"); + try { + ServiceManager.addService(Context.IP_MEMORY_STORE_SERVICE, + new IpMemoryStoreService(context)); + } catch (Throwable e) { + reportWtf("starting IP Memory Store Service", e); + } + traceEnd(); + traceBeginAndSlog("StartIpSecService"); try { ipSecService = IpSecService.create(context); @@ -1190,6 +1239,10 @@ public final class SystemServer { traceEnd(); } + traceBeginAndSlog("StartAttentionManagerService"); + mSystemServiceManager.startService(AttentionManagerService.class); + traceEnd(); + traceBeginAndSlog("StartNetworkScoreService"); mSystemServiceManager.startService(NetworkScoreService.Lifecycle.class); traceEnd(); @@ -1816,9 +1869,6 @@ public final class SystemServer { mSystemServiceManager.startService(StatsCompanionService.Lifecycle.class); traceEnd(); - // Before things start rolling, be sure we have decided whether - // we are in safe mode. - final boolean safeMode = wm.detectSafeMode(); if (safeMode) { traceBeginAndSlog("EnterSafeModeAndDisableJitCompilation"); mActivityManagerService.enterSafeMode(); @@ -2002,7 +2052,8 @@ public final class SystemServer { // Grants default permissions and defines roles traceBeginAndSlog("StartRoleManagerService"); - mSystemServiceManager.startService(RoleManagerService.class); + mSystemServiceManager.startService(new RoleManagerService( + mSystemContext, new LegacyRoleResolutionPolicy(mSystemContext))); traceEnd(); // No dependency on Webview preparation in system server. But this should @@ -2035,6 +2086,20 @@ public final class SystemServer { reportWtf("starting System UI", e); } traceEnd(); + // Enable airplane mode in safe mode. setAirplaneMode() cannot be called + // earlier as it sends broadcasts to other services. + // TODO: This may actually be too late if radio firmware already started leaking + // RF before the respective services start. However, fixing this requires changes + // to radio firmware and interfaces. + if (safeMode) { + traceBeginAndSlog("EnableAirplaneModeInSafeMode"); + try { + connectivityF.setAirplaneMode(true); + } catch (Throwable e) { + reportWtf("enabling Airplane Mode during Safe Mode bootup", e); + } + traceEnd(); + } traceBeginAndSlog("MakeNetworkManagementServiceReady"); try { if (networkManagementF != null) { @@ -2229,7 +2294,7 @@ public final class SystemServer { windowManager.onSystemUiStarted(); } - private static void traceBeginAndSlog(String name) { + private static void traceBeginAndSlog(@NonNull String name) { Slog.i(TAG, name); BOOT_TIMINGS_TRACE_LOG.traceBegin(name); } |