1. 程式人生 > >卡刷包無法通過ROM制作工具修改的解決辦法

卡刷包無法通過ROM制作工具修改的解決辦法

卡刷 rom 制作工具

據有些朋友反饋說在制作ROM過程中遇到了 解包失敗、解包出來的文件為空或直接不識別ROM等問題,這些問題都可以歸納為一種問題,那就是ROM卡刷包命名不規範導致的。 在這裏,我們先來說一下正確的rom格式有哪些: 第一種是常規格式卡刷包:擁有system文件夾、META-INF刷機腳本和內核boot.img,data或其他文件夾不用管(註:華為機型可能會有cust文件夾)

技術分享圖片
第二種、img格式卡刷包:擁有系統system.img,內核boot.img和META-INF刷機腳本,firmware-update文件夾是官方底層問題,其他文件夾不用管
技術分享圖片

第三種、new.dat格式卡刷包:擁有系統system.new.dat、system.patch.dat(不重要)、system.transfer.list、內核boot.img和META-INF刷機腳本,其他文件夾不用管

技術分享圖片

以上這三種是最常見的ROM卡刷包格式,如果非以上格式那就說明rom結構命名被開發者自定義了,被自定義命名的ROM是沒辦法被ROM制作工具識別的,因此我們需要通過手動修改來解決ROM不規範導致解包失敗的問題。
那我們的解決方法就是:在處理之前我們首先要判斷ROM是以什麽方式刷入的,用壓縮軟件打開卡刷包,找到META-INF\com\google\android\updater-script,然後用“內部查看器”打開,然後從刷機腳本裏查看是否存在以下情況
技術分享圖片
這種是第一種格式的卡刷包,判斷是否為常規ROM的腳本條件:
首先裏面有很多條如上圖所示腳本,有package_extract_dir("xxx", "/system");xxx則表示可自定義

確定之後,將ROM包裏xxx對應的文件修改為system,改好後通過ROM制作工具修改,修改好ROM之後再把命名改回去就行。內核boot.img同理;

技術分享圖片

這種是第二種格式的卡刷包,判斷是否為img形式的腳本條件:
package_extract_file("xxx", "/dev/block/分區無視/system");xxx則表示可自定義
確定之後,將ROM包裏xxx對應的文件修改為system.img,改好後通過ROM制作工具修改,修改好ROM之後再把命名改回去就行。內核boot.img同理;

技術分享圖片

這種是第三種格式的卡刷包,判斷是否為new.dat形式的腳本條件:

block_image_update("/dev/block/分區無視/system",package_extract_file("system.transfer.list"), "xxx", "system.patch.dat");xxx則表示可自定義
確定之後,將ROM包裏xxx對應的文件修改為system.new.dat,改好後通過ROM制作工具修改,修改好ROM之後再把命名改回去就行。內核boot.img同理。
以上三種情況基本上已經覆蓋絕大多數ROM,大家要學會靈活運用判斷,在實際操作中可能遇到的情況和這個不大一樣,但是萬變不離其宗,都可以用這個方法解決。如果通過此方法解決不了,那就說明ROM已經加密或是問題ROM,遇到這種情況就換個ROM吧。
技術分享圖片

卡刷包無法通過ROM制作工具修改的解決辦法