↓ 快轉到主要內容

LineageOS如何在OTA系統更新後維持Root權限,適用Magisk / APatch / KernelSU

· 民國115年丙午年
·
切換正體/简体 ·
分類 智慧型手機 Root與刷機
標籤 LineageOS APatch
目錄

Install OTA updates and keep root on your LineageOS.

討論永久保持root權限的方法。

刷了LineageOS的Android手機,如何在OTA更新後如何保持Root權限?其實不用電腦進Fastboot重刷,我們只要抓住A/B分區更新後的「那個瞬間」寫入就行,就能傳承root之力給下一代系統。

簡化步驟如下:

1. A/B分區原理
#

有的Android原廠系統偵測到Root後會拒絕OTA更新,得自己用線刷包升級。Google Pixel似乎是不管的。

而LineageOS,是不管你有無Root都可以OTA更新。

不過更新系統,重開機後,Root權限就會噴掉,需要進Fastboot或Recovery重刷。

目前Android 17的主流Root方案,包含Magisk、KernelSU、APatch,大多透過修補系統啟動所需的映像檔,來取得權限。這樣能防止直接修改系統分區,降低變磚風險。修改對象可能是boot.img或vendor_boot.img,更舊的還有recovery.img。安裝方法是你將LineageOS的boot.img丟給Magisk Manager修補後,然後傳到電腦,用Fastboot模式刷入分區。

現在Android 10以上的手機多半使用A/B分區機制(包含Virtual A/B),讓系統更新失敗時仍有機會還原到舊版,避免手機無法開機。A/B分區指的是手機會有A、B兩組啟動槽位(Slot)。

假設你目前使用的是A槽位,OTA更新便會在背景將新版系統寫入B槽位,等到下次重新開機,才會切換至B槽位啟動。如果目前使用的是B槽位,則下次OTA更新就會改裝到A槽位。

但是,原本的Root是安裝在A槽位的boot.img,新版系統的B槽位還沒有Root啊!於是,OTA更新後重新開機,系統就會切換到沒有Root的boot.img的B槽位,Root權限也就噴掉了。這樣還得進Fastboot,用電腦重刷修補過的boot.img。

(注解:Root權限噴掉,不代表系統就unroot了,解鎖Bootloader的痕跡還是會在,且Magisk模組位於/data/adb/modules/的檔案不會自動刪除)

不能在手機完成OTA並抱持Root嗎?

可以。

2. 在OTA更新後維持Root權限
#

將Root權限安裝到未使用槽位即可。

這裡我不考慮使用TWRP,因為需要每臺手機移植,然而LineageOS自己就有Recovery了,雖然功能很少。

具體步驟:

  1. 在LineageOS系統安裝好OTA更新之後,系統提示你重開機的時候,先不要手賤按下去

  2. 利用目前的系統還有Root權限的空檔,打開Root權限管理器,選擇「安裝到另外一個未使用的槽位」就行了,它其實就是寫入已經安裝了OTA更新的A/B分區,令其預先獲得root權限。Magisk、APatch、KernelSU都支援這個功能。

  3. 接著重開機即可,Root權限還會在。

  4. 在LineageOS我大部分都是用這樣完成系統更新的,鮮少遇到繼承Root後開不了機的。不過如果是跨版本大更新(如Android 16升Android 17)可能會發生模組不相容,就先解除Root,確保能開機比較安全。

相關文章


感謝您的閱讀。我寫作是為了誠實表達想法,而不是追逐社群互動與流量。我很樂意傾聽你在仔細閱讀我文章之後的心得。若有內容勘誤 or 技術問題 or 回饋想法,歡迎透過本站「關於」頁面的Email與我聯絡。