古詩詞大全網 - 個性簽名 - 如何制作Ext4文件系統鏡像

如何制作Ext4文件系統鏡像

編譯Android源碼最後是使用make_ext4生成 Ext4鏡像+簽名(更新:合理使用make_ext4參數是不會導致添加簽名的),如果需要純Ext4鏡像,那麽需要再去掉簽名,使用simg2img。這個兩個工具都是在編譯Android源碼時編譯出來的,如果沒有Android源碼編譯環境,當然也可以使用Ubuntu社區已經整理好的工具集android-tools-fsutils,該工具集文件列表如下:(來自android-tools-fsutils/filelist)

/usr/bin/ext2simg

/usr/bin/ext4fixup

/usr/bin/img2simg

/usr/bin/make_ext4fs

/usr/bin/mkuserimg

/usr/bin/simg2img

/usr/bin/simg2simg

/usr/bin/simg_dump

/usr/bin/test_ext4fixup

工具集安裝方法:

sudo apt-get install android-tools-fsutils

1

1

制作Ext4文件系統鏡像:

# 創建測試目錄

mkdir /tmp/ext4 && cd /tmp/ext4 &&

mkdir test test_mount &&

echo "Hello Ext4" > test/HelloExt4.txt &&

# 生成名為test.ext4的Ext4鏡像

make_ext4fs -l 512M test.ext4 test &&

# 掛載test.ext4到test_mount測試

mount -t ext4 -o loop test.ext4 test_mount &&

ls test_mount || echo "Error!"

壹、在(yourAndroid code path)/out/ 目錄裏查找這個工具 

unyaffs: 用於解壓system.img

mkyaffs2image: 用於打包system.img

呵呵, find 命令肯定會吧?  find out/ -name mkyaffs2image

找到了後,記住這個目錄. 我的是(codePATH)/out/host/linux-x86/bin/

1.在任意文件夾下面建立壹個system文件夾,我的是在home/changjiang/下面建的,這個是用來存放妳解壓system.img出來的文件,然後將找到的兩個工具 unyaffs、mkyaffs2image拷貝到/changjiang/home/system

2.將編譯出來的system.img或者下載的system.img復制到system文件夾中。

3.在終端中輸入如下命令操作(/home/changjiang/替換成自己電腦中的路徑,妳的不是我的)

cd /home/changjiang/system

./unyaffs /home/changjiang/system/system.img(用unyaffs命令解壓system.img),解壓出來的有各種應用,庫等等,妳可以修改或者替換

二、重新打包system.img,雖然我不知道為什麽要這樣做,但是我知道這樣做是可以的.

呵呵,linux沒有不可能的事情.朝鮮的 紅星操作系統就是例子.

具體辦法是

system/ 這個目錄,這個目錄就是用來生成system.img 的.

mkyaffs2image system/ system.img

在Ubuntu中第壹次使用mkyaffs2image命令時,會提示

mkyaffs2image:找不到命令

還需要安裝mkyaffs2image

/p/fatplus/downloads/detail?name=yaffs2-source.tar&can=2&q=

下載yaffs2-source.tar

解壓後,進入utils文件夾,然後make

將make之後生成的mkyaffs2image文件拷貝到/usr/bin目錄下

$ su

# cp mkyaffs2image /usr/bin/

# chmod 777 /usr/bin/mkyaffs2image

之後

$ mkyaffs2image

mkyaffs2image: image building tool for YAFFS2 built Jan 6 2012

usage: mkyaffs2image dir image_file [convert]

dir the directory tree to be converted

image_file the output file to hold the image

'convert' produce a big-endian image from a little-endian machine

表明安裝成功,同時也可以看到該命令的用法

mkyaffs2image dir image_file

例如:

mkyaffs2image am1808-fs am1808-fs.yaffs//創建jffs2文件

搞Android的同學經常會接觸到system.img。但是該文件經常以兩種格式出現:raw和sparse。

壹種是raw ext4 image,即經常說的raw image,使用file觀察它: 其特點是完整的ext4分區鏡像(包含很多全零的無效填充區),可以直接使用mount進行掛載,因此比較大(壹般1G左右)。

[java] view plain copy

$ file system.img

system.img: Linux rev 1.0 ext4 filesystem data, UUID=57f8f4bc-abf4-655f-bf67-946fc0f9f25b (extents) (large files)

信息非常明確了。