diff options
author | Mike Lockwood <lockwood@android.com> | 2011-08-12 13:55:22 -0700 |
---|---|---|
committer | Mike Lockwood <lockwood@google.com> | 2012-02-10 10:51:24 -0800 |
commit | 3a74bd36f8af1a12353db8ddbc5227d33c2ce680 (patch) | |
tree | 3f3de29d5d9014b8169d5d65b19d8c8e2b6bc1ee /services/java/com/android/server/PowerManagerService.java | |
parent | 2395527c9bb1cdc3bcd3dfcbc8b72b90ed3e7080 (diff) |
Add headless mode for running the framework without the surface flinger
Enabled by setting system property ro.config.headless to 1
This will allow the framework to run without starting activities,
system UI and the keyguard.
Framework can still run services, content providers and broadcast receivers.
Signed-off-by: Mike Lockwood <lockwood@android.com>
Conflicts:
policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
services/java/com/android/server/PowerManagerService.java
services/java/com/android/server/am/ActivityManagerService.java
Diffstat (limited to 'services/java/com/android/server/PowerManagerService.java')
-rw-r--r-- | services/java/com/android/server/PowerManagerService.java | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/services/java/com/android/server/PowerManagerService.java b/services/java/com/android/server/PowerManagerService.java index bb0ac3efcc61..7974951e4e83 100644 --- a/services/java/com/android/server/PowerManagerService.java +++ b/services/java/com/android/server/PowerManagerService.java @@ -50,6 +50,7 @@ import android.os.PowerManager; import android.os.Process; import android.os.RemoteException; import android.os.SystemClock; +import android.os.SystemProperties; import android.os.WorkSource; import android.provider.Settings; import android.util.EventLog; @@ -176,6 +177,7 @@ public class PowerManagerService extends IPowerManager.Stub private boolean mDoneBooting = false; private boolean mBootCompleted = false; + private boolean mHeadless = false; private int mStayOnConditions = 0; private final int[] mBroadcastQueue = new int[] { -1, -1, -1 }; private final int[] mBroadcastWhy = new int[3]; @@ -530,6 +532,7 @@ public class PowerManagerService extends IPowerManager.Stub mButtonLight = lights.getLight(LightsService.LIGHT_ID_BUTTONS); mKeyboardLight = lights.getLight(LightsService.LIGHT_ID_KEYBOARD); mAttentionLight = lights.getLight(LightsService.LIGHT_ID_ATTENTION); + mHeadless = "1".equals(SystemProperties.get("ro.config.headless", "0")); nativeInit(); synchronized (mLocks) { @@ -1894,9 +1897,11 @@ public class PowerManagerService extends IPowerManager.Stub } private void updateNativePowerStateLocked() { - nativeSetPowerState( - (mPowerState & SCREEN_ON_BIT) != 0, - (mPowerState & SCREEN_BRIGHT) == SCREEN_BRIGHT); + if (!mHeadless) { + nativeSetPowerState( + (mPowerState & SCREEN_ON_BIT) != 0, + (mPowerState & SCREEN_BRIGHT) == SCREEN_BRIGHT); + } } private int screenOffFinishedAnimatingLocked(int reason) { |