Android是通過sys僞文件系統中文件來獲取手機電池的電量及狀態。
路徑: /sys/class/power_supply/xxxx/
僞裝capacity文件來手動控件電池電量狀態, 基本思路是將/sys/class/power_supply/xxxx/作爲一個分區的掛載點, 然後在分區創建必要的文件,然後就可以模擬系統低電量狀態
#!/system/bin/sh
# create a fake battery level file and copy neccessary file that android use.
touch /data/capacity
echo 50 > /data/capacity
cp /sys/class/power_supply/XXXX/status /data/
cp /sys/class/power_supply/XXXX/temp /data/
cp /sys/class/power_supply/XXXX/health /data/
cp /sys/class/power_supply/XXXX/present /data/
cp /sys/class/power_supply/XXXX/voltage* /data/
# using mount command to get correspond partiton of /data/ directory
# remount partion to /sys/class/power_supply/xxxx
mount -rw -t ext4 /dev/block/mmcblk0pX /sys/class/power_supply/XXXX
# emulate empty battery status need to unplug USB as Android will think it's in charge status when USB plugged.
echo 0 > /data/capacity