Android-MTK平台功能需求解决:客户电池NTC功能(高低温报警功能)--第2天分析与解决

news/2024/7/5 2:06:46

一、进一步修改代码内容-过程

今日了解到,昨日所修改的kernel层的mtk_charger.h文件位于A13部分,然6769平台A13部分的kernel层不参与编译,那么修改后再编译等等后续操作验证结果自然无效,参与编译kernel层是A12部分的kernel-4.19,

1:代码修改

所以取消昨日的①修改,重新改在kernel-4.19目录文件下,具体修改文件位于:

\kernel-4.19\drivers\misc\mediatek\include\mt-plat\mt6739\include\mach\的目录下

修改内容同昨日的①修改一样,只是说,今日换了一个修改地址。

2:保存、检查代码

我使用的主要是git status 与git diff 这两个命令:

>git status -查看状态,检查本地代码修改情况
>git diff      -查看修改具体内容

二、编译、打包、刷机测试-过程

1:编译

注意一下编译的规范,除了确定编译命令外,还要注意编译顺序:
先编A12部分:

>python vendor/mediatek/proprietary/scripts/releasetools/split_build_helper.py --run full_AGN_2263RD_DS12848_T-userdebug --layers vnd 2>&1 |tee total_build1.log

再编A13部分:

> ./MSSI_COPY_Make AGN_2263RD_DS12848_T userdebug

2:打包

打包路径位于A13部分:

> python out_sys/target/product/mssi_64_cn/images/split_build.py
> --system-dir out_sys/target/product/mssi_64_cn/images --vendor-dir ../S/out/target/product/AGN_2263RD_DS12848_T/images --output-dir
> output_load

3:刷机

不同平台刷机工具不同,针对MTK平台使用的工具为:FlashToolSelector
刷机步骤:

start— — —
1-打开FlashToolSelector
2-选择打包完成后生成的软件版本路径,
3-点击绿色按钮下载
4-将测试手机关机后,
5-手机USB线连接到电脑, 工具界面进度条开始刷新,
6-刷机中途发生了报错:—解决方案为把下拉选框中的<下载>选项切换为<全部格式化和下载> 断开手机USB连接,再次点击绿色按钮下载
7-再次用USB线将手机连接到电脑
8-刷机完成,手机自动开机
— — —end

4:测试(模拟测试)

BUG需求功能是在60度65度这种高温环境,申请让硬件部门使用专门的工具测试,在此之前要提前模拟测试有效后再说。
模拟测试是在测试手机连接电脑的情况下,使用终端命令进行模拟,
测试:adb模拟电池信息

> adb shell am broadcast -a android.intent.action.BATTERY_CHANGED --ei
> level 100 --ei plugged 1 --ei temperature 600

上面这句命令的具体解释如下:

 adb shell am broadcast -发送广播通知
 adb shell am broadcast -a android.intent.action.BATTERY_CHANGED -发送一个电池状态改变的广播
 adb shell am broadcast -a android.intent.action.BATTERY_CHANGED --ei level 100 --ei plugged 1 --ei temperature 600  -设置电池电量为 100%,设置电池充电状态为充电中,设置电池温度为 60

以下是模拟测试相关命令:

                          adb -查看是否安装有adb
                          adb root -获取系统root权限
                          adb devices -查看设备连接状态
                          adb shell setenforce 0 -临时关闭权限
                          adb shell getprop -输出所有能查询到的参数信息
                          adb shell getprop xxx.xxx.xxxxxx -查询某某属性
                          adb shell am broadcast -发送广播通知
                          adb shell am broadcast -a android.intent.action.BATTERY_CHANGED -发送一个电池状态改变的广播
                          adb shell am broadcast -a android.intent.action.BATTERY_CHANGED --ei level 100 --ei plugged 1 --ei temperature 600 -设置电池电量为 100%,设置电池充电状态为充电中,设置电池温度为 60

三、测试结果与分析

测试结果:电池电量发生变化,充电器状态改变也有效,但是不同级别的温度并没有引起提示框
继续分析:
前面的分析发送提示广播后并没显示提示的逻辑,回到framework层分析PowerNotificationWarnings.java
该源码编写了电池提示警告的各种方法,其中包括解除高温提示,解除关机提示,显示高温提示,显示关机提示等等,
其中onReceive中条件判断语句中如果ACTION_CLICKED_TEMP_WARNING.equals(action)为真,执行两个方法,第一个是解除高温提示,第二个是显示高温提示。
所以注释第一个执行的方法,同理,在显示高温提示方法中只有在mHighTempWarning为false时才执行显示语句,所以注释这个条件,使方法只要被调用就执行显示语句。
再次验证结果无变化。。。
目前而言,直接改动的是kernel层自定义温度数值与app层的相关温度值,
但对温度发生变化达到高温的判断逻辑,判断完成后执行提示语的逻辑,以及调用的提示语资源等没有清晰了解。。。


http://lihuaxi.xjx100.cn/news/1241526.html

相关文章

springcloud 父项目建立(一)

我们开发项目&#xff0c;现在基本都用到maven&#xff0c;以及用父子项目&#xff0c;以及公共模块依赖&#xff0c;来构建方便扩展的项目体系&#xff1b; 首先我们建立父项目 microservice &#xff0c;主要是一个pom&#xff0c;管理module&#xff0c;以及管理依赖&#x…

是德DSOX3014T MSOX3014T数字逻辑示波器

概述&#xff1a; keysight是德DSOX3014T MSOX3014T数字逻辑示波器8.5 英寸电容触摸屏让操作和归档变得更加简单&#xff0c;可以加速您的测试&#xff0c;独有的区域触控触发技术支持您在几秒钟内轻松隔离信号&#xff0c;独有的区域触控触发技术支持您在几秒钟内轻松隔…

面向对象练习(3)

封装与继承 目录 1.使用封装实现企鹅类 2.选民投票 3.使用继承实现电子宠物系统 4.游戏开发-面向对象 5.信息输出-面向对象 6.电子宠物系统 7.程序分析 1.使用封装实现企鹅类 package dh03;/*** * author XXX 保证健康值的有效性&#xff08;0-100&#xff09;&#xf…

云服务器上使用Docker Compose创建Redis三主三从集群

一、环境 云服务器Ubuntu20.4Dokcer 24.0.2 二、步骤 目录结构是这样&#xff1a; 绿色的目录是用来存储容器中的文件&#xff0c;不需要我们手动创建&#xff0c;将路径配置在配置文件中即可。黑色的目录和文件需要自己手动创建。 我们一共创建7个容器&#xff1a; redis…

java基础(多线程)-常用方法具体使用

一、Thread.start()方法 start()方法&#xff1a;启动子线程 new Thread();当前线程的状态为NEW 调用start()方法之后当前线程的状态变为RUNNABLE 二、Thread.sleep()静态方法 1. 调用sleep会让当前线程从Running进入Timed Waiting 状态 2.其他线程可以使用interrupt方法…

散热差、设计古板,因循守旧的联想Thinkpad还能获得忠粉的青睐吗?

拥有航天梦想的联想ThinkPad&#xff0c;在5月18日的新品发布会上&#xff0c;再次与中国航天太空创想达成了合作&#xff0c;将整场发布会的格调提升到了没有“边际”的高度。 发布会上&#xff0c;联想ThinkPad宣布了几款新品的面世&#xff0c;产品性能的升级和优化必不可少…

电脑多久重装一次系统比较好

在长时间使用电脑后&#xff0c;一些用户可能会考虑重装系统来提升性能和稳定性。然而&#xff0c;电脑重装系统的频率是一个有争议的问题。本文将探讨电脑重装系统的最佳频率&#xff0c;以帮助您做出明智的决策。 工具/原料&#xff1a; 系统版本&#xff1a;win7旗舰版 品…

新能源汽车保养vr仿真教学软件为职业培训带来新的思路和方法

电动车电池更换VR虚拟体验是一种利用VR虚拟现实技术实现对电动车电池更换进行模拟仿真演示和实操训练的虚拟仿真实验教学课件&#xff0c;相比传统教学模式&#xff0c;有效提高学生的实践能力和技能水平。 通过VR技术模拟现场&#xff0c;使培训人员可以身临其境滴观摩操作过程…