安卓6.0+关机状态下通电自动开机方案

网上能找到的几篇教程都是安卓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/

推荐阅读更多精彩内容