Skip to content

Latest commit

 

History

History
337 lines (169 loc) · 11.1 KB

Changelog_All.md

File metadata and controls

337 lines (169 loc) · 11.1 KB

v68

Changelog

1.mimalloc切换为dev-slice分支

2.新增判断链表中是否有节点

3.优化代码

v67

Changelog

1.修复一处未将位置指针重新指向stream开头的严重bug

2.优化代码

v66

Changelog

1.不再使用bsd库函数strlcpy,使用glibc库函数strncpy并限制size

2.释放regex_t结构体,避免内存泄漏

3.优化代码

v65

Changelog

1.cmake可通过定义环境变量MIMALLOC_VERSION来查找指定版本的mimalloc

2.将bypass_charge.txt文件中的内容加载至内存,仅在文件发生修改时才重新加载,而不是每次循环都直接读取本地文件,减少系统资源消耗

3.修复潜在的内存溢出问题

4.优化代码,提高程序运行效率

v64

Changelog

1.推送通道更新日志仅显示当前版本,在模块压缩包中添加所有版本的更新日志

2.编译时CMake自动识别是否安装了mimalloc并使用不同的头文件及函数,函数部分使用函数指针实现

3.更改两处函数执行时机

4.优化代码

v61

Changelog

开始上班,随缘更新

1.使用mimalloc代替原版malloc家族,以略微增加程序大小为代价,解决musl函数库malloc家族执行效率低的短板,提高程序运行效率

2.编译链接优化等级调整为2

3.安装及开机时chattr -i云控目录下的所有文件,提高兼容性

4.开机时将上次的运行日志文件重命名为log.txt.old

v60

Changelog

1.使用链表代替数组来存储配置

2.使用设置函数属性+可变参数列表的全新方法打印时间

3.修复找不到部分文件夹时程序崩溃的BUG

4.优化文件大小

5.每次开机都尝试清空云控文件夹

优化代码 ✖

炫技 ✔️

v58

Changelog

1.日常维护,优化代码

2.重命名并更新安装脚本,以兼容使用KernelSU安装

3.规范shell命令,将service.sh文件中的2>&1放在重定向标准输出之后

v55

Changelog

1.使用另一种方式(define)来输出日期+文字

2.删除安装脚本一行多余的代码

v54

Changelog

补充更新,不再使用source读取配置文件,修复无旧配置文件时安装失败的问题

v53

Changelog

1.更新安装脚本,安装时保留原有的配置,不再使用音量键选择

2.修复配置文件禁用旁路供电后不会恢复充电电流的bug

3.读取配置文件改用子线程执行

4.添加互斥锁,多线程通信必备

5.修复潜在的无法读取文件的问题

6.优化代码

v52

Changelog

1.添加“伪”旁路供电功能并添加相关日志

2.重构温度读取部分代码

3.优化大量代码

4.代码添加注释,现在小学二年级的同学都能看懂代码的思路了呢

我是干嵌入式系统开发的,不熟悉安卓内核及AndroidNDK,无法使用纯c语言实现,我没那个能力,所以用多线程+popen执行shell命令来获取前台应用信息。多线程是为了能够确保主程序的执行效率,因为shell是脚本语言,执行效率很低。

“伪”旁路供电功能仅支持安卓7及以上的系统。之所以是“伪”旁路供电,是因为在不支持旁路供电的手机上无法实现真正的旁路供电,只能尽可能多的降低充电电流且充电电流无法降到0mA。具体查看Linux内核文档的power_supply_class章节。在我手机上测试500mA是最低值,低于这个值的话限制无效,所以将“伪”旁路供电的充电电流设置为500mA。

“伪”旁路供电功能的配置文件在/data/adb/turbo-charge/bypass_charge.txt,直接在此文件内输入需要“伪”旁路供电的应用的包名即可,一行一个。打开相应的应用会使模块的温控功能暂时失效。未经完全测试,如果日志没有提示该功能失效且开启后无效,请及时前往Github进行反馈。

v50

Changelog

1新增“是否启用强制显示28℃”功能,默认启用,可在配置文件中进行修改

2.优化温度传感器选择流程,修复部分手机无法正常获取温度的BUG

v48

Changelog

修改安装脚本执行顺序,安装时会有更好的观感

v47

Changelog

1.将默认循环时间改为1秒,因为间隔时间越长,程序虽然越省电,但越有可能导致抢充电协议,使得手机疯狂断充

2.优化代码逻辑

v46

Changelog

1.删除QQ群

2.修复一处缓冲区溢出

3.将循环时间添加进配置文件

4.添加更多判定

5.优化大量代码

QQ群不知为何被群主解散,我自己的事都忙不过来,根本没有时间和精力去管这些事,我也不想管,所以就这样吧。

v44

Changelog

1.修改传感器顺序

2.所有文件在写入数值前均先判断新数值与原数值是否相等,若不等才修改

3.读取配置文件时添加数值的判断,以减少BUG的产生

4.仅当配置文件更新时才获取新数据

5.所有文件换行符CRLF转LF

v43

Changelog

修复部分手机打开电量控制到达阈值停止充电后无法再恢复充电的BUG

v42

Changelog

开机完成后执行两次程序,间隔1分钟后杀死第一次执行的进程,以解决部分手机充电缓慢的BUG

v40

Changelog

1.修复部分设备充电缓慢的问题

2.不充电时强制显示28度的温度阈值更改为45度

3.等待手机启动完毕再执行程序,以确保时间准确。若log文件只看到一行内容,请立即联系模块作者!

v39

Changelog

1.安装时使用find命令代替ls命令查找温控文件,以解决部分手机安装后会在模块目录产生大量无用空文件夹的BUG

2.将循环间隔时间缩短为1秒,因为是C语言直接编译成机器语言,所以不用担心执行效率问题

v38

Changelog

1.添加更多温度传感器,让更多手机能够安装,但因为每个传感器的位置不同,导致传感器温度与体感温度会有偏差甚至大相径庭,所以仅添加了几个偏差不那么大的传感器

2.因上述原因,程序会对传感器进行选择,优先使用手机中存在且偏差小的传感器

3.日志新增温度传感器名字

4.优化安装脚本代码

5.优化代码,优化逻辑

v37

Changelog

1.缩小正则匹配文件范围,解决断充、充电缓慢问题,安装脚本的文件判断范围同步缩小

2.配置文件的最大电流改为50A(如果真的有充电电流这么高的手机发布,那锂电池应该就被淘汰了)

3.安装时重新将mi_thermald替换为空文件,以解决充电仍有温控的问题

4.优化代码,优化逻辑

注意,目前已知的所有内核映射到系统级的限流文件(三个)均已加入文件判断范围,如果还不支持,就是内核级的限流了,内核直接处理数据而不是读取文件内容,唯一途径是改内核,阶梯式充电同理,没有文件就代表数据直接在内核处理甚至写死。current_max、pd_current_max、hw_current_max等文件虽然是内核将充电IC数据读取出来后写入文件,然后再根据文件内容进行电流限制,可被修改,但是是有直接的硬件限制(这些文件中存储的就是这个硬件限制的值),若手机的充电电流超过了硬件的限制且硬件根据评估后判断此时的电池状态并不能提升充电电流,硬件就会启动保护程序直接断充,电流从0开始增加到硬件认为的应该有的充电电流,所以修改这些文件并没有什么用,甚至会造成断充、充电缓慢等问题

v36

Changelog

修改正则表达式,修复因匹配了不该匹配的文件导致的充电慢、断充问题

v35

Changelog

修复因手机疯狂抢充电协议导致手机卡顿断充的严重性BUG

v34

Changelog

1.弱化所有文件的必要性,只有当所有的所需文件均不存在时才安装失败/程序强制退出

2.使用C语言非标准库regex.h,使用正则表达式查找文件,而非指定文件名,解决电流文件查找不全的问题

3.新增更多电流文件,理论上电流调节支持更多机型

4.日志新增查找到的电流、温度文件

5.优化代码,优化逻辑,部分变量使用calloc和free动态申请内存空间,理论上优化内存占用

6.增加大量判定,尽可能包含每一种情况

v33

Changelog

将Magisk内部更新通道切换为Gitee,极大提升更新体验。

Gitee将实时同步GitHub的任何更改,但由于众所周知的原因,Gitee仅充当更新通道,我不会使用Gitee。

v32

Changelog

1.添加QQ群号

2.新增log文件(/data/adb/turbo-charge/log.txt),包含文件检测、配置更新、拔插充电器、温度控制、电量控制等信息,时间为UTC+8

3.修复温度控制生效时电量控制失效的BUG

4.修复温度控制的一处严重逻辑错误

5.启用电量控制时,若停止充电阈值设为100,则等待涓流充电结束后才停止充电

6.所有文件读取时均会在读取失败后将文件权限改为0644后再次尝试读取

7.增加多处判定,尽可能的包含各种情况

8.优化大量代码,优化代码逻辑

9.更新配置文件注释、模块描述等

v29-v31

因为30、31版本均为修复29版本才有的BUG,所以合并更新日志

Changelog

1.添加阶梯充电相关选项(安装时音量键选择以及option.txt中自行更改)

2.安装和运行时弱化必要文件检测,缺失非必要但程序完整运行需要的文件时显示相关信息。安装时提示缺少必要文件的手机请勿尝试强制运行程序,程序内也判断了必要文件是否存在,如不存在将强制停止运行,也就是说,缺少必要文件是肯定无法运行程序的

3.将相关信息存入/data/adb/turbo-charge/log.txt中,后续log.txt还将包含充电器拔插、配置更改、撞温度墙等信息(画饼要尽可能的大,但牙膏要一点一点的挤)

4.添加一处判定,当数据写入失败时修改文件权限为0644后重新尝试写入数据

5.安装失败时删除modules_update目录下的模块文件夹,已解决即使安装失败,重启手机后也会在Magisk中显示模块的BUG

v28

Changelog

1.在模块安装以及程序运行时判断必要文件是否存在,若不存在,则证明不适配此手机,模块安装失败/程序强制停止运行

2.电量大于等于15%时才关闭阶梯充电,以解决健康状态不太好的电池在低电量时充电疯狂断充的问题(酷安@来回拉扯 提供问题产生原因,@这谁顶得住呢 复现,只经过我手机的测试,阈值为15%,所以就设置为15%,但实测将阶梯充电关闭的一小段时间内仍有几率造成1-2次的断充,但总比疯狂断充要好)

3.添加Magisk内部的更新通道,使用Cloudflare做代理,国内劣质网络环境也能正常检测、下载更新,只不过延迟较高

4.重写安装脚本,以适配使用Magisk自带的util_functions.sh脚本进行安装(要求Magisk版本大于20.4)