summaryrefslogtreecommitdiff
path: root/services/java/com/android/server/PowerManagerService.java
diff options
context:
space:
mode:
authorMike Lockwood <lockwood@android.com>2011-08-12 13:55:22 -0700
committerMike Lockwood <lockwood@google.com>2012-02-10 10:51:24 -0800
commit3a74bd36f8af1a12353db8ddbc5227d33c2ce680 (patch)
tree3f3de29d5d9014b8169d5d65b19d8c8e2b6bc1ee /services/java/com/android/server/PowerManagerService.java
parent2395527c9bb1cdc3bcd3dfcbc8b72b90ed3e7080 (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.java11
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) {