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后容易出现进入系统锁屏屏保界面。

相关推荐
合作小小程序员小小店3 小时前
web网页开发,在线%考试管理%系统,基于Idea,vscode,html,css,vue,java,maven,springboot,mysql
java·前端·系统架构·vue·intellij-idea·springboot
多多*3 小时前
maven常用的命令
java·log4j·maven
xie_pin_an3 小时前
MyBatis-Plus 实战:MPJLambdaWrapper 多表联查用法全解析
java·spring boot·spring·mybatis
ᐇ9593 小时前
Java LinkedList集合全面解析:双向链表的艺术与实战
java·开发语言·链表
luyun0202024 小时前
Windows 11操作更丝滑,绝了
java·运维·figma
码银4 小时前
【数据结构】顺序表
java·开发语言·数据结构
Boop_wu4 小时前
[Java EE] 计算机基础
java·服务器·前端
橘子海全栈攻城狮4 小时前
【源码+文档+调试讲解】基于Spring Boot的考务管理系统设计与实现 085
java·spring boot·后端·spring
神仙别闹4 小时前
基于QT(C++) 实现哈夫曼压缩(多线程)
java·c++·qt