安卓4.4,去锁屏+禁止休眠

来源:互联网 发布:淘宝怎么输入口令 编辑:程序博客网 时间:2024/06/05 17:40

一、开机禁止锁屏


Platform: RK3288

OS: Android 6.0
Kernel: 3.10.92
Uboot: v2014.10

之前在Android4.4上通过修改KeyguardViewMediator.java里的showLocked()和doKeyguardLocked()
以及mExternallyEnabled变量来实现是可行的, 但到6.0之后第一次开机加载正常,第二次画面就异常了.

解决方法:
通过设置 ro.lockscreen.disable.default=true 可以正常实现此功能了.
可以添加到 rk3288/device/rockchip/rk3288/system.prop中.


使用到的地方:
rk3288/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java:
/*如果为True则更新"禁止锁屏"到DB.*/
if (SystemProperties.getBoolean("ro.lockscreen.disable.default", false) == true) {
    loadSetting(stmt, Settings.System.LOCKSCREEN_DISABLED, "1");
} else {
/*否则加载
frameworks/base/packages/SettingsProvider/res/values/defaults.xml
中的def_lockscreen_disabled属性值.*/
    loadBooleanSetting(stmt, Settings.System.LOCKSCREEN_DISABLED,
            R.bool.def_lockscreen_disabled);
}

还有一处:
rk3288/frameworks/base/services/core/java/com/android/server/LockSettingsService.java:
public void initialize(SQLiteDatabase db) {
    // Get the lockscreen default from a system property, if available
    boolean lockScreenDisable = SystemProperties.getBoolean(
            "ro.lockscreen.disable.default", false);
    if (lockScreenDisable) {
        mStorage.writeKeyValue(db, LockPatternUtils.DISABLE_LOCKSCREEN_KEY, "1", 0);
    }

}


二、禁止休眠


  1. [kris@:~/daogou/frameworks/base]$ g df services/java/com/android/server/power/PowerManagerService.java  
  2. diff --git a/services/java/com/android/server/power/PowerManagerService.java b/s  
  3. index da9548f..4382df0 100644  
  4. --- a/services/java/com/android/server/power/PowerManagerService.java  
  5. +++ b/services/java/com/android/server/power/PowerManagerService.java  
  6. @@ -1429,7 +1429,10 @@ public final class PowerManagerService extends IPowerMana  
  7.          if (mUserActivityTimeoutOverrideFromWindowManager >= 0) {  
  8.              timeout = (int)Math.min(timeout, mUserActivityTimeoutOverrideFromWi  
  9.          }  
  10. -        return Math.max(timeout, MINIMUM_SCREEN_OFF_TIMEOUT);  
  11. +  
  12. +        /*Kris, 20150811, disable system sleep forever.*/  
  13. +        return mMaximumScreenOffTimeoutFromDeviceAdmin;  
  14. +        //return Math.max(timeout, MINIMUM_SCREEN_OFF_TIMEOUT);  
  15.      }