Den*_*nis 7 boot android battery
我有一个智能手机连接到太阳能充电器.白天,它正确供电.但是在夜晚,由于缺乏能量,它有时会自动关闭.
我的问题是:当电池电量超过一定百分比时,可以将其重新打开(以编程方式)?我正在寻找一种干净合法的方式.我对缺陷或漏洞不感兴趣.我在官方文档中找不到任何内容.谢谢.
执行此操作的机制依赖于更换电池动画脚本,该脚本在设备关闭但插入时运行,通常显示充电电池的图标.脚本的名称因设备而异,但通常位于/system/bin目录中.三星设备通常调用脚本playlpm,以及其他名字,我已经看到包括脚本ipod,lpm和battery_charging.这不一定适用于每个设备,因为这远远超出了标准的Android框架 - 某些设备可能没有等效的脚本,或者它们可能以不同的方式实现它.
这可以被描述为"漏洞利用",因为它需要root并且在Linux级别而不是Android框架级别工作,但是目前没有替代方法来实现此行为.
此处描述了进行此更改的一般机制:https://android.stackexchange.com/questions/20021/automatically-power-on-android-when-the-charger-is-connected.当然,在执行任何此操作之前备份先前的电池动画脚本是个好主意.
以下脚本在多个设备(多个三星设备和Verizon Ellipsis 7)上为我工作.基本上,它会检查手机是否已插入交流电源并且电量是否充足.如果是这样,它会启动.如果没有,它等待N秒并再次尝试.作为副作用,原始电池动画脚本将无法运行,您将永远不会看到漂亮的充电动画.
#!/system/bin/sh
# battery threshold before boot-up (in percent)
bthresh=10
# time to sleep between checks (in seconds)
sleeptime=600
# file that contains current battery level as integer between 0 and 100
cfi=/sys/class/power_supply/battery/capacity
# file that contains 1 if we're plugged in to AC, 0 if not
acfi=/sys/class/power_supply/battery/subsystem/ac/online
# if either file doesn't exist, just do normal sleep+boot
[ ! -f $cfi ] && sleep $sleeptime && /system/bin/reboot
[ ! -f $acfi ] && sleep $sleeptime && /system/bin/reboot
# populate capacity and AC variables
c=`cat $cfi`
ac=`cat $acfi`
# stop loop if we're not plugged into AC
until [ "$ac" -eq 0 ]
do
# if capacity above threshold, boot up
if [ "$c" -gt "$bthresh" ]; then
/system/bin/reboot
fi
# wait some time before next check
sleep $sleeptime
# update capacity and AC variables
c=`cat $cfi`
ac=`cat $acfi`
done
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3944 次 |
| 最近记录: |