Android15 RK3588 修改默认不锁屏不休眠

对于非手机设备,有时候用户需要不锁屏不休眠,源码修改方式如下:

1.在frameworks\base\packages\SettingsProvider\res\values\defaults.xml里面

<bool name="def_lockscreen_disabled">true</bool>

<integer name="def_screen_off_timeout">2147483647</integer>

<integer name="def_sleep_timeout">-1</integer>

2.在frameworks\base\core\res\res\values\config.xml里面

<bool name="config_disableLockscreenByDefault">true</bool>

修改了这几个属性值后,系统开机后一般就不会进入锁屏和灭屏状态了。

注意:一般在RK的源码里面,通常会有overlay方式,有些时候修改了frameworks里面的def_screen_off_timeout值发现没有作用,所以需要修改overlay里面的配置,一般overlay路径如下:

device\rockchip\common\overlay\frameworks\base\packages\SettingsProvider\res\values\defaults.xml

device\rockchip\common\overlay_screenoff\frameworks\base\packages\SettingsProvider\res\values\defaults.xml

device\rockchip\rk35xx\overlay\frameworks\base\packages\SettingsProvider\res\values\defaults.xml

需要修改这里面的overlay配置这样修改就会生效了。

3.最暴力的方式修改:

直接修改frameworks\base\services\core\java\com\android\server\power\PowerManagerService.java

把系统休眠直接给禁止掉,这种情况适用于不带电池的设备,且自定义了launcher,不希望进入系统锁屏界面。修改如下:

在void readConfigurationLocked()方法里面:

java 复制代码
 // mMinimumScreenOffTimeoutConfig = resources.getInteger(
        //         com.android.internal.R.integer.config_minimumScreenOffTimeout);
        
        mMinimumScreenOffTimeoutConfig = 2147483600L;

直接把mMinimumScreenOffTimeoutConfig修改为最大,在goToSleepInternal方法里面直接return掉休眠功能:

java 复制代码
private void goToSleepInternal(IntArray groupIds, long eventTime, int reason, int flags) {

        boolean isExit = true;
        if(isExit)
            return;

        final long now = mClock.uptimeMillis();
        if (eventTime > now) {
            Slog.e(TAG, "Event time " + eventTime + " cannot be newer than " + now);
            throw new IllegalArgumentException("event time must not be in the future");
        }

        mContext.enforceCallingOrSelfPermission(android.Manifest.permission.DEVICE_POWER,
                /* message= */ null);

        boolean isNoDoze = (flags & PowerManager.GO_TO_SLEEP_FLAG_NO_DOZE) != 0;
        int uid = Binder.getCallingUid();
        final long ident = Binder.clearCallingIdentity();
        try {
            synchronized (mLock) {
                for (int i = 0; i < groupIds.size(); i++) {
                    int groupId = groupIds.get(i);
                    PowerGroup powerGroup = mPowerGroups.get(groupId);
                    if (powerGroup == null) {
                        throw new IllegalArgumentException("power group(" + groupId
                                + ") doesn't exist");
                    }
                    if ((flags & PowerManager.GO_TO_SLEEP_FLAG_SOFT_SLEEP) != 0) {
                        if (mFoldGracePeriodProvider.isEnabled()) {
                            if (!powerGroup.hasWakeLockKeepingScreenOnLocked()) {
                                mNotifier.showDismissibleKeyguard();
                            }
                            continue; // never actually goes to sleep for SOFT_SLEEP
                        } else {
                            if (powerGroup.hasWakeLockKeepingScreenOnLocked()) {
                                continue;
                            }
                        }
                    }
                    if (isNoDoze) {
                        sleepPowerGroupLocked(powerGroup, eventTime, reason, uid);
                    } else {
                        dozePowerGroupLocked(powerGroup, eventTime, reason, uid);
                    }
                }
            }
        } finally {
            Binder.restoreCallingIdentity(ident);
        }
    }

变成永不休眠了,因为在Android15上面自定义launcher后容易出现进入系统锁屏屏保界面。

相关推荐
我命由我1234513 分钟前
SQL 检测脚本
java·数据库·sql·功能测试·单元测试·压力测试·可用性测试
Hpc_Fun30 分钟前
GPU 工作站品牌怎么比?五把可核验尺子、加权评分脚本与场景重排
java·信创·gpu工作站·品牌对比·加权评分
const_qiu31 分钟前
第四章 03:4.3 Tools —— 让 Agent 会用工具
java·人工智能
Rain的Java大神之路36 分钟前
百万并发直播弹幕系统设计全解:看懂了扇出,你就看懂了高并发的八成
java·后端·面试
\光辉岁月/1 小时前
2.异常类
java·开发语言·异常类
十年Java程序媛1 小时前
JVM 基础与 GC 垃圾回收详解|可达性分析、分代模型、垃圾收集器、STW
java·开发语言·jvm·spring boot·后端·面试
2301_32241428041 小时前
基于SSM框架的在线考试管理系统的设计与实现14750-计算机毕设 原创(免费领源码+部署教程+开发环境)
java·redis·mysql·tomcat·maven·mybatis·ssm
clz13145211 小时前
RuoYi-Cloud 新建微服务并实现服务间调用(OpenFeign 实战)
java·ruoyi
Vitaliy Kostrov(柯维远)1 小时前
客户端如何检查直播流:从流内标记到停止播放
android·运维·服务器·驱动开发·网络安全·系统架构·cdn
const_qiu1 小时前
第四章 06:4.6 统一入口 —— analyze() 能力收束
java·人工智能