Android定製ROM,內嵌su和xposed

2021-09-11 12:55:33 字數 1976 閱讀 4211

本文同步自wing的地方酒館

從windows 98時代起,我就熱衷於裝系統。平均三天對著家裡的台式電腦重灌,重灌,再重灌。樂此不疲,後來到xp時代,有了ghost,裝的更瘋狂了。現在到android,仍然是刷刷刷,一直有個想法就是自己搞個rom玩,於是這幾天鼓搗了一下把su和xposed內嵌進去了。感謝大佬圖樂的指點和討論。

這裡選擇的是ota包,因為ota包可以修改updater-script來實現在recovery裡面進行一些操作。

將他解壓,可以看到一些boot.img映象之類的,這裡我們關心meta-inf資料夾,

裡面的updater-script就是recovery刷入zip包時候的一些指令碼拉,從這裡修改一下指令碼就可以做一些我們想做的事情。

ui_print("mounting system");

mount("ext4", "emmc", "/dev/block/platform/msm_sdcc.1/by-name/system", "/system");

複製**

package_extract_dir("system","/system");

複製**

解壓su.zip發現幾乎和刷機包的原理一樣,並且刷入su的過程其實是用指令碼解壓boot.img 修改檔案值 再重新合併boot.img 在進行刷入。 所以我們只要在指令碼裡執行刷入su.zip的操作即可執行:

複製**當然,這個時候zip目錄要有對應的zip包。

這個是我卡了很久的地方,因為並不知道run_program的pwd,所以後來使用絕對路徑並且用另乙個指令碼繞了一下:

run_program("/sbin/busybox", "chmod","777","/system/flash-script.sh");

run_program("/sbin/busybox", "chmod","777","/system/install_xposed.sh");

ui_print("run install_xposed.sh");

run_program("/system/install_xposed.sh");

複製**

其實xposed的刷入,就是把system的一些檔案通過flash-script.sh進行替換鏈結等操作,所以我們只需把xposed包的system資料夾換一下位置,然後執行flash-script.sh即可:

install_xopsed.sh:

#!/sbin/sh

cd /system/ && /system/flash-script.sh

複製**

這裡需要注意的是上面的注釋,這個坑了我好幾個小時,因為缺失注釋導致無法使用run_program()方法執行。

修改完畢以後,將zip包打包即可

zip -r rom.zip ./

複製**

這裡值得注意的一點是 必須在目錄內部打包,在外部會多一層目錄,導致無法找到updater-script,這裡也坑了我乙個多小時。。

參考資料bbs.gfan.com/android-832…

為手機定製ROM

一 修改化定製 android4.0系統 android 系統啟動時,先載入 linux 核心,在 linux 的framebuffer 驅動裡可以定製開機介面,linux 核心啟動成功後,掛載根檔案系統,啟動 android 系統,這個時候裝置螢幕上開始出現滾動的 android 動畫,等全部的 ...

如何定製自己的華為ROM

解析的工具 網上有幾個現成可用的程式 指令碼,如 huaweiupdateextractor 以及 split updata.pl,但是 huaweiupdateextractor 為exe,不方便研究的童鞋,split updata.pl 需要 安裝64位的 perl,不然會報 記憶體不夠 的錯,...

Android 獲取ROM資訊

android 獲取rom資訊沒有統一的介面,需要事先知道配置檔案中的對應的值 1 開啟cmd視窗 2 輸入adb shell 再輸入getprop命令 3 得到配置資訊 查詢關於rom資訊對應的鍵,然後根據鍵找到值 例如小公尺rom對應的值為 ro.miui.ui.version.name v8 ...