android 刷機ROM結構與編譯製作。
線刷 與線刷包 : 進入bootloader模式 進行刷機與刷機包
一般通過編譯官方系統原始碼 與核心原始碼 獲得所需檔案。或者單獨分別編譯CM原始碼也可以。
解壓線刷包有 userdata.img system.img boot.img recovery.img android-info.txt
編譯android 系統原始碼得到: userdata.img system.img ramdisk.img
編譯android核心原始碼 得到 bzimage
將bzimage ramdisk.img 打包成boot.img recovery.img與boot.img 類似 可以製作。
各種 img 分別有不同工具可以解壓---- 再修改與打包 android-info.txt 用於限制刷機條件。
將他們打包為.ZIP 檔案 進bootloader 擦除資料 刷機 fastboot -w update xx.zip
具體指令
進入fastboot : adb reboot bootloader
清除資料
fastboot erase system
fastboot erase boot
fastboot erase cache
fastboot erase userdata
// 檔案一個一個地刷
fastboot flash boot boot.img
fastboot flash system system.img
fastboot flash userdata data.img
fastboot flash recovery recovery..img
打包後一起刷:
fastboot -w update xx.zip
重啟: fastboot reboot
卡刷 卡刷包 : 編譯CM 原始碼直接得到 卡刷包.zip檔案。 編譯官方原始碼 需要 bzimage ramdisk.img
system資料夾的內容也可以製作卡刷包.ZIP
recovery 模式 ,與電腦的一鍵還原模式相同 需要先安裝recovery。fastboot flash recovery recovery.img 很多軟體可以安裝recovery
然後進入recovery 方法很多 1 手機進入 2 usb連線電腦進入
在Recovery模式下,首先是進行“雙清”操作,即“消除所有資料”和“消除快取資料”
卡刷包 結構
(一)、data資料夾:該資料夾可以全刪,點選date裡面是app資料夾
(二)、META-INF資料夾:這個資料夾開啟後是幾個格式未知的軟體,其實可以用文字編輯器開啟,能夠發現是系統軟體和系統資訊,但是不建議更改,沒有必要修改。
中間有update_script 更新指令碼 用edify 語言寫的。 update-binary 用於執行update_script
(三)、boot.img檔案:這個img格式的檔案就是“核心”,核心對於刷機包的地位很重要,同樣的核心需要專門的工具看來進行開啟修改,以及反編譯等一些工作,其實我也不懂怎麼修改,所以不涉及了,要提一下的就是有的刷機包無法開啟虛擬記憶體,就是和核心有關係,有時刷一個可以開虛擬的核心進如手機便可以開啟虛擬記憶體,這裡的核心就是指這個東西。由 編譯後的 bzimage ramdisk.img 打包而成
(四)、system資料夾:這是我們要更改的重點,裡面的內容很豐富,而且注意system資料夾刷機之後便存在於手機,他和手機內的system資料夾是對應的關係,我們在手機內用RE管理器開啟後找到system資料夾,其實就是現在這裡刷機包的system資料夾。
可以拷貝編譯後 system資料夾的內容 因為完全一樣。
主要修改system資料夾
相關文章
- Android機型rom下載,刷機方法Android
- Android刷機Android
- Rust 交叉編譯與條件編譯總結Rust編譯
- 編譯deno,deno結構解析編譯
- 自編譯製作docker版本的onlyoffice映象編譯Docker
- android反編譯相關命令總結Android編譯
- Lottie Android 動畫製作與使用Android動畫
- Android編譯通過,執行編譯錯誤問題總結Android編譯
- libusb android ndk編譯--編譯mipsAndroid編譯
- 如何製作一款線上編譯器編譯
- Ubuntu 15.04編譯Android 6.0.1原始碼-Nexus5真機編譯Ubuntu編譯Android原始碼
- Flutter Android 工程結構及應用層編譯原始碼深入分析FlutterAndroid編譯原始碼
- Mac 10.14 編譯Android 8.1原始碼及刷入nexus 6pMac編譯Android原始碼
- Assimp Android 編譯Android編譯
- android編譯方法Android編譯
- android 反編譯Android編譯
- Latex — 寫作編譯過程中遇到問題記錄與總結編譯
- Android 增量編譯小解Android編譯
- Android 反編譯指南Android編譯
- Android 編譯優化Android編譯優化
- Java編譯與反編譯Java編譯
- Ubuntu14.04下編譯Android8.1.0原始碼並刷入到裝置Ubuntu編譯Android原始碼
- C語言-->(十四)結構體、巨集、編譯C語言結構體編譯
- Android反編譯和微信機器人初探Android編譯機器人
- Android編譯環境搭建Android編譯
- Gluon 編譯 JavaFx -> android apk編譯JavaAndroidAPK
- 最簡單的定製openwrt,用線上編譯來做一個不怕恢復出廠設定的rom編譯
- JVM結構與機制JVM
- Android Apk反編譯系列教程(一)如何反編譯APKAndroidAPK編譯
- i.MX6ULL開發板-Buildroot製作交叉編譯器UI編譯
- Android:JNI與NDK(二)交叉編譯與動態庫,靜態庫Android編譯
- 微機結構和作業系統作業系統
- 為 Android 編譯並整合 FFmpeg 的嘗試與踩坑Android編譯
- Android JNI 篇 - 編譯 bilibili/ijkPlayerAndroid編譯
- MacOS X 編譯Android原始碼Mac編譯Android原始碼
- Android FrameWork 之原始碼編譯AndroidFramework原始碼編譯
- 編譯ROCKSDB總結編譯
- [譯] 使用CSS製作球體CSS
- Android開發編譯curl庫給Android使用Android編譯