Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android中system.img的兩種格式及其相互轉換方法

Android中system.img的兩種格式及其相互轉換方法

編輯:關於Android編程

搞Android的同學經常會接觸到system.img。但是該文件經常以兩種格式出現:raw和sparse。
一種是raw ext4 image,即經常說的raw image,使用file觀察它: 其特點是完整的ext4分區鏡像(包含很多全零的無效填充區),可以直接使用mount進行掛載,因此比較大(一般1G左右)。
$ file system.img
system.img: Linux rev 1.0 ext4 filesystem data, UUID=57f8f4bc-abf4-655f-bf67-946fc0f9f25b (extents) (large files)
信息非常明確了。
另一種是sparse ext4 image,即經常說的simg,使用file觀察它:
$ file system.img
system.img: data
就是說是一個非常普通的dat文件。由於它將raw ext4進行稀疏描述,因此尺寸比較小(沒有全零的無效填充區,一般在300到500M之間)。
android本身提供了源代碼工具在兩者之間轉換,源代碼位於:
system/core/libsparse/simg2img.c // 將sparse image轉換為raw image;
system/core/libsparse/img2simg.c // 將raw image轉換為sparse image;

如果完整的進行過一次Android的編譯,默認會將simg2img當作主機工具編譯出來,放在out/host/linux-x86/bin/simg2img處。 但默認是不會編譯img2simg的,我們可以手工進行編譯:
$ . build/envsetup.sh
$ lunch aosp_hammerhead-userdebug
$ make img2simg_host

這樣就會編譯出out/host/linux-x86/bin/img2simg。 如果要將system.raw.img轉換為system.simg: $ img2simg system.raw.img system.simg
為了方便沒有源代碼的同學,這裡提供img2simg的下載路徑: http://download.csdn.net/detail/howellzhu/8399215
對於simg2img,到處都可以找到了,還有windows版本的,這裡就不提供了。 使用方法:
$ simg2img  
$ img2simg   []

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved