1. 程式人生 > >Android中system.img的兩種格式及其相互轉換方法

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

一種是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的下載路徑: 對於simg2img,到處都可以找到了,還有windows版本的,這裡就不提供了。 使用方法:
$ simg2img <sparse_image_files> <raw_image_file>
$ img2simg <raw_image_file> <sparse_image_file> [<block_size>]

歡迎轉載,但是請註明出處:http://weibo.com/howellzhu

相關推薦

Androidsystem.img格式及其相互轉換方法

一種是raw ext4 image,即經常說的raw image,使用file觀察它: 其特點是完整的ext4分割槽映象(包含很多全零的無效填充區),可以直接使用mount進行掛載,因此比較大(一般1G左右)。 $ file system.img system.img: Linux rev 1.0 ext4

Androidsystem.img格式raw,sparse及其相互轉換方法

搞Android的同學經常會接觸到system.img。但是該檔案經常以兩種格式出現:raw和sparse。 一種是raw ext4 image,即經常說的raw image,使用file觀察它: 其特點是完整的ext4分割槽映象(包含很多全零的無效填充區),可以直接使用mo

sp wp-Android定義了智慧指標強指標sp和弱指標wp

中定義了兩種智慧指標型別,一種是強指標sp(strong pointer),另外一種是弱指標(weak pointer)。其實稱之為強引用和弱引用更合適一些。強指標與一般意義的智慧指標概念相同,通過引用計數來記錄有多少使用者在使用一個物件,如果所有使用者都放棄了對該物件的

AndroidBroadcastReceiver的註冊方式(靜態和動態)詳解

今天我們一起來探討下安卓中BroadcastReceiver元件以及詳細分析下它的兩種註冊方式。 BroadcastReceiver也就是“廣播接收者”的意思,顧名思義,它就是用來接收來自系統和應用中的廣播。在Android系統中,廣播體現在方方面面,例如當開機完成後系統會

androidsystem.img的打包過程

這裡需要對file_contexts進行一下說明,該檔案是對selinux檔案系統的說明,一般在原來映象檔案的root目錄下可以找到,如果自己修改/增加/刪除了執行檔案,可能需要對檔案進行修改。具體的內容比較複雜,需要selinux的知識,這裡不說了。

linux 平臺中 androidsystem.img的打包過程

我們來看一個製作system.img的命令例項: $ ./make_ext4fs -s -T 1421464178 -S file_contexts -l 1073741824 -a system system.img system/ 引數說明: // -s

SQL語句 Case具有格式:簡單Case函式和Case搜尋函式

Case具有兩種格式。簡單Case函式和Case搜尋函式。 --簡單Case函式CASE sex          WHEN '1' THEN '男'          WHEN '2' THEN '女'ELSE '其他' END--Case搜尋函式CASE WHEN sex = '1' THEN '男'

android廣播的啟動方式淺析【自定義Action】

1:註冊廣播:(有兩種方式)      一是動態方式使用Context.registerReceiver()方法來註冊;      二是靜態方式,即在AndroidManifest.xml中通過<receiver> 。 2:傳送廣播:

web 常用的上傳檔案的方法總結

這裡我們來總結整理一下常用的兩種檔案上傳方式以及要注意的東西: 1、springmvc .MultipartFile 的上傳方式。 2、org.apache.commons.fileupload 使用apache的fileuoload 來實現 當我們使用springmvc

Android 如何將帶有html格式的文章轉換成能在Android顯示的內容

一、問題描述                   通常我們開發Android的時候免不了要和伺服器有資料互動,當然簡單的資料中是不會帶有html格式的,因為我們在後臺新增資料時都會利用<input/>或者<textarea/>進行新增。那麼我們如果利

Robotframework字典和JSON的區別,相互轉換方法

1、標準的Json格式如下:  { "firstName":"Eddy" , "lastName":"Peng" } key和value都是採用雙引號的方式進行包裹。 2、但是Robotframework中建立的字典預設採用的是單引號進行包裹,所以並不能直接作為JSON使用

Android退出程式的方式:killProcess()和System.exit()

KillProcess() 呼叫 android.os.Process.killProcess(android.os.Process.myPid()) 可以殺死當前應用活動的程序,這一操作將會把所有該程序內的資源(包括執行緒全部清理掉)。當然,由於ActivityManag

android/java 延時執行的方法

// 訊息處理方式實現延時        new Handler().postDelayed(new Runnable()        {            public void run()            {               myDialo

根文件系統移植(2)——根文件系統的格式

根文件系統 鏡像 文件夾一:鏡像格式的根文件系統 (1)鏡像文件的根文件系統的主要作用是用來以後燒錄到塊設備上面的,塊設備上的內核啟動後去掛載它。 (2)鏡像形式的根文件系統是由文件夾格式的根文件系統通過特定的工具(mke2fs)制作得到的 (3)鏡像文件系統具有一定的格式,格式是內化的

【Spark】篇---Sparkyarn模式提交任務方式

方式 div -s and clas client 命令 yarn 模式 一、前述 Spark可以和Yarn整合,將Application提交到Yarn上運行,和StandAlone提交模式一樣,Yarn也有兩種提交任務的方式。 二、具體 1、yarn

mybatis的sql字段映射(映射到實體)方式

tina 文件中 gpo entity 實體 body 映射 from tap mybatis的xml配置文件中,字段映射的兩種方式: 1.resultMap標簽中將數據庫的字段與實體類中的字段對應: <resultMap id="BaseResultMap" ty

Android 驗證碼倒計時方案

ans net ive gray remove public handler RM -s 使用 第一種方案:自定義控件 1.在布局中使用 <?xml version="1.0" encoding="utf-8"?> <RelativeLay

python的字典遍歷方式

方法 clas items color 兩種方法 pan code bsp for dic = {"k1":"v1", "k2":"v2"} for k in dic: print(dic[K]) for k, v in dic.items(): pri

css實現透明的方式及其區別

白色 class 子節點 new 透明度 區別 方式 ron pre 一、opacity:0~1 值越高,透明度越低,下面為示例 選擇器{ opacity:0.5 } 選擇器匹配到的節點們,包括節點們的孩子節點,都會實現%50透明,另 0.5 可直