安卓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:手機端使用上面提到的工具提?。?/p>

【鏡像助手】提取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

http://www.lxweimin.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/

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容