Android 11.0 充电指示灯红绿显示简单客制化
客制化充电指示灯的文章在网上也有不少了,项目的需求是在百分百情况下量绿灯,其它情况下都是红灯,这里简单记录下在Android11,kernel-4.19版本下的修改内容,也给有相关需求的各位提供下思路。
系统内上层的充电指示主要靠BatteryService下的BatteryManager负责管理,这里通过监测返回的status来提供指示的判断标准,具体修改部分如下:
old mode 100644
new mode 100755
index 8dd4fa6d8fd..04f70e1d836
--- a/frameworks/base/services/core/java/com/android/server/BatteryService.java
+++ b/frameworks/base/services/core/java/com/android/server/BatteryService.java
@@ -1117,7 +1117,7 @@ public final class BatteryService extends SystemService {}} else if (status == BatteryManager.BATTERY_STATUS_CHARGING|| status == BatteryManager.BATTERY_STATUS_FULL) {- if (status == BatteryManager.BATTERY_STATUS_FULL || level >= 90) {+ if (status == BatteryManager.BATTERY_STATUS_FULL || level >= 100) {// Solid green when full or charging and nearly fullmBatteryLight.setColor(mBatteryFullARGB);} else {...
另一部分就是LK充电指示,即设备关机充电显示,MTK平台在external下有专门的关机充电逻辑及LOGO显示代码,找到charger文件,里面的charging_control.cpp有对LK下充电的一系列控制逻辑的实现,具体修改部分如下:
diff --git a/vendor/mediatek/proprietary/external/charger/charging_control.cpp b/vendor/mediatek/proprietary/external/charger/charging_control.cpp
index 306cb94230d..4cd58c61b8e 100755
--- a/vendor/mediatek/proprietary/external/charger/charging_control.cpp
+++ b/vendor/mediatek/proprietary/external/charger/charging_control.cpp
@@ -310,7 +310,7 @@ static int on_uevent(const char *buf, __attribute__((unused))int len_buf){bc = get_capacity();- if (bc >= 99) {+ if (bc > 99) {lights_full();} else {if (nCurrentState != LIGHTS_STATE_CHGON)...
简单提及下,内核灯的定义:
led0:led@0 {compatible = "mediatek,red";led_mode = <0>;data = <1>;pwm_config = <0 0 0 0 0>;};
led1:led@1 {compatible = "mediatek,green";led_mode = <0>;data = <1>;pwm_config = <0 0 0 0 0>;};led2:led@2 {compatible = "mediatek,blue";led_mode = <0>;data = <1>;pwm_config = <0 0 0 0 0>;};
手动控制部分可以通过adb,在sys/class/leds下会枚举相应的灯,通过进入对应灯的目录设置brightness的大小就能实现简单的控制。这里不同项目名字可能会有稍微的不同,请具体参考驱动.c内ATTR创建的节点名称。
Android 11.0 充电指示灯红绿显示简单客制化相关推荐
- Android 系统序列号从哪里来,以及客制化序列号
Android 系统序列号从哪里来,以及客制化序列号 系统获取序列号过程 客制化序列号 系统获取序列号过程 Android系统的SN号,实际是从"cmdline"里面的" ...
- android 11.0 开机动画横屏显示
目录 1.概述 2.开机动画横屏显示的核心代码部分 3.开机动画横屏显示的核心代码部分分析以及实现功能
- 猿创征文|Android 11.0 12.0Launcher3 时钟动态图标的定制化
目录 1.概述 2.Launcher3 时钟动态图标的定制化的核心代码 3.Launcher3 时钟动态图标的定制化的代码功能分析
- 完成谷歌Android设置向导,Android RRO机制的运用-----google开机向导客制化
上周五的时候领导分了一个任务,客户让在google开机向导里面增加一页,首先就想到了android的Overlay,然后网上搜了下,发下有很多人写了这方面的技术.而且写的都还不错,所以本篇只当记录作用 ...
- Android 11.0 锁屏页面时钟显示样式
一.需求分析 Android 11.0系统默认的锁屏时钟 年月日 显示的样式不符合需求,现在需要定制化.下图是系统默认的时间样式. 目标是改成这样: 二.核心代码路径 frameworks/base/ ...
- MTK Android 11.0:充电低电指示灯会被未读消息信号灯灭掉,无优先级控制。
MTK Android 11.0:充电低电指示灯会被未读消息信号灯灭掉,无优先级控制: 1.电池充电.低电状态提示(红绿双色).(LIGHT_ID_BATTERY) 小于15%时: A 正在充电 亮红 ...
- Android 11.0 Settings源码分析 - 主界面加载
Android 11.0 Settings源码分析 - 主界面加载 本篇主要记录AndroidR Settings源码主界面加载流程,方便后续工作调试其流程. Settings代码路径: packag ...
- Android 11.0 无源码apk授予QUERY_ALL_PACKAGES权限
目录 1.概述 2.Android 11.0 无源码apk授予QUERY_ALL_PACKAGES权限的核心类 3.Android 11.0 无源码apk授予QUERY_ALL_
- Android 11.0 支持exfat格式
点滴积累,记录自己的成长. 最近系统要支持exfat格式,参考了大佬们的帖子之后,终于搞定了. 由于之前都是Android.mk,自己系统中使用的Android.bp,而且要求以模块的形式调用对应的k ...
最新文章
- Java泛型详解,通俗易懂只需5分钟
- maven依赖包下载地址
- java 504错误怎么解决_求助java.lang.NoClassDefFoundError怎么解决,报错信息如下
- java types.varchar_java statement.registerOutParameter(5, java.sql.Types.VARCHAR)返回值长度限制...
- 真无线蓝牙耳机霸主之争:苹果AirPods和索尼WF-1000XM3怎么选?
- 管理之道(七) - 不可奖励员工错误的行为
- 微信发朋友圈/评论/点赞/搜索 测试用例点
- 信息学奥赛一本通在线评测平台的一些bug
- 字符串的getBytes方法
- 如何为SharePoint文件添加标记
- 利用vim编辑器创建和编辑正文文件
- 使用Kaiju无组装计算宏基因组数据物种注释相对丰度
- 拉依达准则的python代码
- 2020-09-22Python爬取基金的排名信息,写入excel中方便挑选基金
- JAVA-Swing技术
- GitHub下载加速网站
- 今日头条:注册头条号3-7天就度过,掌握这四个关键点
- win10 + neo4j + jdk 完美安装教程 欲哭无泪贴!!教你彻底卸载老的jdk!
- 关于LINUX系统编程架构问题——4412 camera V4L2 RTMP流工程源码分析
- 使用opencv 识别圆圈