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