【前置说明】本文为自己研究折腾研究经验分享,如不合适放在本版块,请版主帮忙移贴或删贴。
【背景】
- 有一部闲置老手机(honor 6x),想改成linux服务器+网络视频监控采集端。
- 原有电池已鼓包不能使用,需改成直供电模式(外接电源,模拟锂电池供电),改完后发现手机可以正常使用,但是发现电量也会随着时间缓慢下降(外接电源一直是稳定电压,是android系统会预测降低电量下降算法导致)
- 可以通过adb shell dumpsys battery set status 2 设置为充电模式,这样电量就不会再下降,adb shell dumpsys battery set level 98 可以设置系统当前电量。
- 但是上述的操作需要adb连接设备,且每次重启后都需要再设置一次,非常不适。理想状态:开机自动开启adb无线调试,再自动设置电池状态。
【环境】
- 手机honor 6x,系统android 8,已经root,安装migisk。如果大家感兴趣,下次开贴讲下如何解锁 HW bootlock 和 root,现有网上讲解锁和root的帖子基本都过时了。
- 已经通过linux delpoy安装Debian10,已经设置rc,local开机启动脚本
- 已有linux 版本 adb 执行文件
【操作】
- 要设置adb无线调试开机后自启用,网上有好几种方法:
[Java] 纯文本查看 复制代码 setprop persist.internet.adb.enable 1 ,该方法当次设置有效,重启后无效。[Java] 纯文本查看 复制代码 setprop service.adb.tcp.port 5555
adb push init.rc sdcard ,该方法是设置后,放到手机int.rc文件中,但是现在 The init.rc script resides in within the RAMDisk attached to the boot image. 所有重启也是无效的。- 提取手机boot.img,修改default.prop中的配置重新打包刷回,应该是可以的,但是太折腾。
- 最佳方案:
[Java] 纯文本查看 复制代码 setprop persist.adb.tcp.port 5555 ,应该就是在 /data/property目录下创建了persist.adb.tcp.port文件,内容为端口号,需要su。手机重启后,adb无线调试自动开启。
- 再通过设置linux deploy 开机启动,Debian10 linux开机脚本如下:
[Java] 纯文本查看 复制代码 /home/admin/adb connect 192.168.1.6sleep 3
/home/admin/adb -s 192.168.1.6 shell dumpsys battery set status 2
/home/admin/adb -s 192.168.1.6 shell dumpsys battery set level 98
即可完美实现,手机开机后,启动开启adb无线调试,自动adb连接手机,设置电池模式和电量。
|