网上能找到的几篇教程都是安卓4.4、5.0时代的方法,安卓7.0+暂未有找到分享的方案,研究两个晚上,终于研究出来这个方案,理论上通杀安卓6~10系统(2020-03-01测试一加5,安卓10 红米 note4 有效 )
用途:手机改造成车载GPS、行车记录仪等等
需要的工具:
已root权限、已解BL锁的安卓机器
【镜像助手】 负责提取和刷入boot.img
【镜像工厂】 负责boot.img的解包和打包
【MT管理器2.0】 负责修改解包后的init.rc文件
提醒:
- 提前备份原版boot.img
记得备份!
记得备份!
记得备份!
以免翻车后求别人帮你提取~
- 墙裂建议先用twrp备份boot分区,翻车可直接进入rec恢复boot分区
- 不要直接修改根目录下的init.rc,某些系统开机会校验文件,修改过的文件会被直接覆盖成原版的文件
- 本方案理论上通杀安卓6.0+系统,已在刷了LineageOS的一加5和小米Note3上测试通过(系统底层均为安卓8.1)
步骤:
①提取boot.img
方法1:连接电脑,在电脑上用adb shell提取(自行百度)
方法2:手机端使用上面提到的工具提取:
【镜像助手】提取boot.img,存放在内置储存的根目录下,boot.img
【镜像工厂】其实也有提取和刷入功能,但本人的刷了LineageOS的一加5不知为何提取失败,所以改用“助手”
②解包
【镜像工厂】解包后存放路径ImageFactoryunpackedboot.img_unpacked\
③修改init.rc
用【MT管理器2.0】打开“手机内置储存ImageFactoryunpackedboot.img_unpackedramdiskinit.rc”,搜索关键词“charger”,找到下面这一段代码
on charger
class_start charger **#这句建议不删,某些系统需要先进入charger流程,否则会卡第一屏**
setprop sys.powerctl reboot ** #在加入重启命令**
保存,退出
④打包boot.img
用【镜像工厂】打包,打包后存放在“手机储存根目录ImageFactoryrepacked”,用【镜像助手】刷入即可
⑤测试
关机测试,插入充电线,手机自动开机,先执行充电流程,然后马上重启手机(重启后就会走正常的开机流程了)
研究过程:
- 尝试过把late-init(关机充电模式下长按电源键触发的命令)下的命令直接转移到on charger下,失败
- 写reboot命令的sh脚本,在init.rc内调用,失败
最后还是受到(setprop ctl.start pre-recovery)这条进入recovery模式的命令启发
,为何要舍近求远,直接用init.rc专属的AIL语言去重启手机岂不是方便快捷?网上那些旧方法基本都是新建一个sh脚本,写入reboot命令,还要考虑脚本权限等问题,其实最简便有效的方法还是用AIL语言执行重启
实践后果然成功了,配合神器Tasker,即可实现车载GPS、车载行车记录仪等功能。
引用自:「简书-随风_荡」