安卓system userdata镜像解包打包
- linux環(huán)境解包打包
?
環(huán)境要求:Ubuntu
此處以system.img和userdata.img打包為例,基于谷歌源碼編譯的工具使用方法和命令。
?
1.轉(zhuǎn)換格式
在解包過程中,system或者userdata鏡像文件經(jīng)常以兩種格式出現(xiàn):raw和sparse。
?
一種是raw ext4 image,即經(jīng)常說的raw image,使用file觀察它:
其特點是完整的ext4分區(qū)鏡像(包含很多全零的無效填充區(qū)),可以直接使用mount進行掛載,因此比較大。
?
$ file system.img
system.img: Linux rev 1.0 ext4 filesystem data, UUID=57f8f4bc-abf4-655f-bf67-946fc0f9f25b (extents) (large files)
信息非常明確了。
?
另一種是sparse ext4 image,即經(jīng)常說的simg,使用file觀察它:
$ file system.img
system.img: data
如果格式為data,需要從data格式轉(zhuǎn)成ext4格式,也就是raw格式,如下
?
>?simg2img?system.img system.img.ext4 //轉(zhuǎn)換格式
> mkdir tmp //新建臨時文件夾
>?sudo mount -o loop system.img.ext4 tmp 將ext4文件掛載到tmp目錄
?
2.常規(guī)打包:
先ls -l system.img.ext4看大小,假設是1073741824,這個參數(shù)后邊用到。(此處l是英文字母L)
?
> ./make_ext4fs?-s?-l 2684354560 ?-a system new_system.img ./tmp
?
3.安卓5.0以及5.0以上版本打包,需注意:
?
命令如下:
$ ./make_ext4fs -s -T 1421464178 -S file_contexts -l 1073741824 -a system new_system.img system/
?
或者:
./make_ext4fs -s ?-S file_contexts -l 2048M -a system new_system.img system/
?
命令參數(shù)說明:
// -s?表示安靜處理,不輸出動作,可以不帶該參數(shù)
// -T?表示Unix時間戳,對system.img中的文件設置修改時間,執(zhí)行“
date +%s”獲取某個時間點的時間戳,也可以直接不用-T 1421464178?;
// -S?表示sepolicy?的file_contexts,把該文件放到此目錄下,文件取自官方system/root路徑和卡刷包自帶(或解壓內(nèi)核,在內(nèi)核里面)
// -l?表示最大的文件大小(受限于分區(qū)大小);可以ls -l 當前轉(zhuǎn)格式出來的system大小、單位也可以為MB
// -a?表示Android的mount點,比如system、userdata、recovery;
// oksystem.img?表示輸出文件名;
// system/?表示輸入目錄,該目錄下有framework、app、bin等目錄;
?
上述的simg2img和make_ext4fs是android自帶的工具,如果有android源碼而且編譯通過的話, 這些工具可以在/out/host/linux-x86/bin中找到。
?
- windows下解包打包
僅列出如下,不一一說明用法,如下:
1.第三方PC客戶端工具
2.第三方批處理腳本工具
3.主流客戶端工具:ROM定制大師,ROM制作工具和蘑菇助手
總結(jié)
以上是生活随笔為你收集整理的安卓system userdata镜像解包打包的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: kafka seek方法
- 下一篇: 井字棋LeetCode简单题