aptk 發表於 2021-5-4 16:53
我的比較舊的手機,在 Android 9 之前的,確實是有裝了TWRP,就可以修改 /system 下的檔案,而不需要 roo ...
我把我修改過的services.jar刷入POCO M3的動態分區了,我是參考amjads1975寫的修改動態分區方法來做的,在此感謝a大
我的做法是,找了一台老舊的電腦來單獨安裝 Ubuntu 20.04,安裝完成後
進入終端機下輸入
sudo apt update && sudo apt upgrade -y
先更新現有已安裝的套件
接著輸入
sudo apt install git cpio aria2 brotli android-sdk-libsparse-utils openjdk-11-jre p7zip-full -y
安裝 git、cpio ... 等套件
再來是輸入
git clone https://gitee.com/sharpeter/DNA.git --depth 1
下載 DNA 解包打包等工具
我是嘗試使用歐版來修改 xiaomi.eu_multi_POCOM3_V12.0.6.0.QJFMIXM_v12-10.zip
把這個檔案放入 DNA 目錄
cd DNA && python3 run.py
進入 DNA 目錄,以python3執行 run.py
執行後,選擇0新建工程,輸入名稱,再選00選擇etc,選擇33解壓,再選擇這個zip檔,進行解包動作
看起來似乎一次就全部分解完成,
所以,後續的01分解bin、02分解bro、03分解dat、04分解img我都沒有選
下一個動作是把上次生成的services.jar放入 工作目錄/system/system/framework 目錄下,覆蓋原始的版本,若要修改其他檔案,也是這個時候處理
接下來依序選擇06合成img、07合成dat、08合成bro、09打包zip,就完成一個新的刷機包了
將這個zip複製到手機,以TWRP刷入,
結果會出現 error 7,無法成功
後來我的解決方法是將這個zip檔的updater-script解出來(在META-INF/com/google/android目錄下),抄歐版的刷機指令把最後面刷cust的指令
block_image_update(map_partition("cust"), package_extract_file("cust.transfer.list"), "cust.new.dat.br", "cust.patch.dat") ||
這一行改為
block_image_update("/dev/block/bootdevice/by-name/cust", package_extract_file("cust.transfer.list"), "cust.new.dat.br", "cust.patch.dat") ||
再把修改後的updater-script,放入zip檔的同目錄,取代原檔案,這樣就可以刷進手機了
刷完後重開機正常,就可把Magisk移除,目前測試仍都正常,後續若有發現其他問題,再來向大家回報
我對Ubuntu不熟,弄到可正常操作,花了不少時間。但後來在解包、打包的過程,都是用選單來選,感覺操作很簡單
不同手機、不同版本的卡刷線刷rom,操作過程可能會有所不同,請依自己的rom的內容來操作
原作者說支持分解部分的super.img(但不支持動態A/B雙系统),例如小米11的super.img目前就不支持,操作之前請先確認手機是否為動態分區、A/B雙系统
其餘的注意項目,可參考原作者網頁的使用說明 |