干货分享5:安卓手机阻止低电量关机的方法

王志勇 发表于 2018年08月24日 21:52

本文只适用于使用直流连供的手机。由于项目的需要,我把多台安卓手机改成4.2V、24×365天直流供电,去掉了锂电池,免去了经常充电的烦恼。

大部分手机可以正常运行,电量一直恒定在92%、或100%等等。但有个别机型,虽然是直流连供,但是电量一直在掉,约1小时掉1%,其实电压是一直不变的,两三天后手机会因为电量低于15%而自动关机(其实是满电的),这可能是手机的程序在自动掉电量。在网上搜索,并各种尝试、调试,花费了3个小时,都失败了。

失败过程:
1. /sys/class/power_supply/battery/capacity 权限改为只读,也就是将此文件的权限改为444,失败,电量还是在掉。
2. /sys/class/power_supply/battery/uevent 权限改为只读,将此文件的权限改为444,失败,电量还是在掉。
3. 手写一个电量95的capacity文件,替换 /sys/class/power_supply/battery/capacity,失败,会很快自动关机,而且这个文件在手机重启后、或平时会被自动重新替换成现有的电量。
4. /sys/class/power_supply/battery 目录还有多个目录,好几个目录里也有uevent,这些uevent文件的权限都改为444,失败,电量还是在掉。
5. 网上有一个阻止低电量关机的APK,安装后,无法运行,失败。
6. 使用电池较准软件,无效,失败。

成功过程,方法很简单:
最后,尝试把 /sys/class/power_supply/battery 目录的权限改为444,意外的惊喜出现了!几秒钟后出现“电池检查异常”。这样,手机的电量不会再掉,手机不再自动关机。同时,也减少了/sys/class/power_supply/battery 目录被频繁写入数据,而延长手机闪存的寿命。

修改权限的方法有2种:shell命令,或者用Root Explorer 2.21.1。这两种方法,手机都必须事先Root。

方法1:
给安卓手机安装一个“Shell终端”,shell命令如:

su
chmod 444 /sys/class/power_supply/battery

第1行的su命令是切换到root用户。我使用的是方法1,因为同时间我还用shell命令实现别的功能。

方法2:
用Root Explorer 2.21.1,/sys/class/power_supply/battery 的目录的权限设置如下图:

至此,发现Android、Linux系统的权限,有一个很大的好处是能阻止某些程序的运行、数据访问,正如本文发现的方法,是通过暴力,阻止某个目录的写入来实现的

需要注意的是,手机重启后,/sys/class/power_supply/battery 的权限会自动恢复为755,需要再次使用方法1、或方法2。

0条评论:

发表评论:
名字: (*必填)
博客: (可省,仅限于Blog地址)

正文:

    记住信息? 否   回复第

直接发送Trackback

Copyright © 2017-2018 blog.emxel.com 版权所有 Powered by Arsue