diff options
Diffstat (limited to 'services/java/com/android/server/SystemServer.java')
-rw-r--r-- | services/java/com/android/server/SystemServer.java | 54 |
1 files changed, 28 insertions, 26 deletions
diff --git a/services/java/com/android/server/SystemServer.java b/services/java/com/android/server/SystemServer.java index 55885e6..9455017 100644 --- a/services/java/com/android/server/SystemServer.java +++ b/services/java/com/android/server/SystemServer.java @@ -16,29 +16,27 @@ package com.android.server; -import android.accounts.AccountManagerService; import android.app.ActivityManagerNative; import android.bluetooth.BluetoothAdapter; import android.content.ComponentName; import android.content.ContentResolver; -import android.content.ContentService; import android.content.Context; import android.content.Intent; import android.content.pm.IPackageManager; +import android.content.pm.PackageManager; import android.content.res.Configuration; import android.media.AudioService; import android.net.wifi.p2p.WifiP2pService; +import android.os.Environment; import android.os.Handler; import android.os.HandlerThread; import android.os.Looper; import android.os.RemoteException; -import android.os.SchedulingPolicyService; import android.os.ServiceManager; import android.os.StrictMode; import android.os.SystemClock; import android.os.SystemProperties; import android.os.UserHandle; -import android.server.search.SearchManagerService; import android.service.dreams.DreamService; import android.util.DisplayMetrics; import android.util.EventLog; @@ -48,21 +46,25 @@ import android.view.WindowManager; import com.android.internal.os.BinderInternal; import com.android.internal.os.SamplingProfilerIntegration; -import com.android.internal.widget.LockSettingsService; import com.android.server.accessibility.AccessibilityManagerService; +import com.android.server.accounts.AccountManagerService; import com.android.server.am.ActivityManagerService; import com.android.server.am.BatteryStatsService; +import com.android.server.content.ContentService; import com.android.server.display.DisplayManagerService; import com.android.server.dreams.DreamManagerService; import com.android.server.input.InputManagerService; import com.android.server.net.NetworkPolicyManagerService; import com.android.server.net.NetworkStatsService; +import com.android.server.os.SchedulingPolicyService; import com.android.server.pm.Installer; import com.android.server.pm.PackageManagerService; import com.android.server.pm.UserManagerService; import com.android.server.power.PowerManagerService; import com.android.server.power.ShutdownThread; +import com.android.server.search.SearchManagerService; import com.android.server.usb.UsbService; +import com.android.server.wifi.WifiService; import com.android.server.wm.WindowManagerService; import dalvik.system.VMRuntime; @@ -147,7 +149,6 @@ class ServerThread extends Thread { TwilightService twilight = null; UiModeManagerService uiMode = null; RecognitionManagerService recognition = null; - ThrottleService throttle = null; NetworkTimeUpdateService networkTimeUpdater = null; CommonTimeManagementService commonTimeMgmtService = null; InputManagerService inputManager = null; @@ -207,9 +208,6 @@ class ServerThread extends Thread { installer = new Installer(); installer.ping(); - Slog.i(TAG, "Entropy Mixer"); - ServiceManager.addService("entropy", new EntropyMixer()); - Slog.i(TAG, "Power Manager"); power = new PowerManagerService(); ServiceManager.addService(Context.POWER_SERVICE, power); @@ -257,12 +255,14 @@ class ServerThread extends Thread { } ActivityManagerService.setSystemProcess(); - + + Slog.i(TAG, "Entropy Mixer"); + ServiceManager.addService("entropy", new EntropyMixer(context)); + Slog.i(TAG, "User Service"); ServiceManager.addService(Context.USER_SERVICE, UserManagerService.getInstance()); - mContentResolver = context.getContentResolver(); // The AccountManager must come before the ContentService @@ -331,6 +331,9 @@ class ServerThread extends Thread { Slog.i(TAG, "No Bluetooh Service (emulator)"); } else if (factoryTest == SystemServer.FACTORY_TEST_LOW_LEVEL) { Slog.i(TAG, "No Bluetooth Service (factory test)"); + } else if (!context.getPackageManager().hasSystemFeature + (PackageManager.FEATURE_BLUETOOTH)) { + Slog.i(TAG, "No Bluetooth Service (Bluetooth Hardware Not Present)"); } else { Slog.i(TAG, "Bluetooth Manager Service"); bluetooth = new BluetoothManagerService(context); @@ -513,15 +516,6 @@ class ServerThread extends Thread { } try { - Slog.i(TAG, "Throttle Service"); - throttle = new ThrottleService(context); - ServiceManager.addService( - Context.THROTTLE_SERVICE, throttle); - } catch (Throwable e) { - reportWtf("starting ThrottleService", e); - } - - try { Slog.i(TAG, "UpdateLock Service"); ServiceManager.addService(Context.UPDATE_LOCK_SERVICE, new UpdateLockService(context)); @@ -748,6 +742,13 @@ class ServerThread extends Thread { reportWtf("starting DreamManagerService", e); } } + + try { + Slog.i(TAG, "IdleMaintenanceService"); + new IdleMaintenanceService(context, battery); + } catch (Throwable e) { + reportWtf("starting IdleMaintenanceService", e); + } } // Before things start rolling, be sure we have decided whether @@ -841,7 +842,6 @@ class ServerThread extends Thread { final ConnectivityService connectivityF = connectivity; final DockObserver dockF = dock; final UsbService usbF = usb; - final ThrottleService throttleF = throttle; final TwilightService twilightF = twilight; final UiModeManagerService uiModeF = uiMode; final AppWidgetService appWidgetF = appWidget; @@ -867,6 +867,11 @@ class ServerThread extends Thread { public void run() { Slog.i(TAG, "Making services ready"); + try { + ActivityManagerService.self().startObservingNativeCrashes(); + } catch (Throwable e) { + reportWtf("observing native crashes", e); + } if (!headless) startSystemUi(contextF); try { if (mountServiceF != null) mountServiceF.systemReady(); @@ -954,11 +959,6 @@ class ServerThread extends Thread { reportWtf("making Country Detector Service ready", e); } try { - if (throttleF != null) throttleF.systemReady(); - } catch (Throwable e) { - reportWtf("making Throttle Service ready", e); - } - try { if (networkTimeUpdaterF != null) networkTimeUpdaterF.systemReady(); } catch (Throwable e) { reportWtf("making Network Time Service ready", e); @@ -1060,6 +1060,8 @@ public class SystemServer { // as efficient as possible with its memory usage. VMRuntime.getRuntime().setTargetHeapUtilization(0.8f); + Environment.setUserRequired(true); + System.loadLibrary("android_servers"); init1(args); } |