boot.img とか recovery.img の編集 (mkbootimg, mkbootfs のコンパイル)
Ubuntu 10.04 で確認。
必要なもの
- /dev/mtd とかから dump した raw イメージっぽいもの
- split_bootimg.pl
https://gist.github.com/1087743 (base address 出力なし)
https://gist.github.com/1832541 (base address 出力あり) ←推奨
- mkbootimg (mkbootfs)
手順
mkbootimg のコンパイル
AOSP 純正と Cyanogen 版で利用可能なオプションが異なる。基本的に Cyanogen ics ツリーからの入手を推奨。
http://github.com/CyanogenMod/android_system_core/tree/ics/
なぜかコンパイル手順が単体で github に上がってる‥
https://gist.github.com/1087757
うちの場合だとこんな具合になる。
$ cd ~/cm_ics
$ cd system/core/libmincrypt/
$ gcc -c *.c -I../include
$ ar rcs libmincrypt.a *.o
$ cd ../mkbootimg
$ gcc mkbootimg.c -o mkbootimg -I../include ../libmincrypt/libmincrypt.a
$ cd ../cpio
$ gcc mkbootfs.c -o mkbootfs -I../include
~/cm_ics/system/core/mkbootimg/ に mkbootimg、~/cm_ics/system/core/cpio/ に mkbootfs が出来上がってるはず。
boot.img の編集
- boot.img の展開
$ ./split_bootimg.pl boot.img
boot.img-kernel と boot.img-ramdisk.gz が生成される。
- ramdisk の展開・編集
$ mkdir ramdisk
$ cd ramdisk
$ zcat ../boot.img-ramdisk.gz |cpio -i
ramdisk ディレクトリ下に色々展開されるので、好きなように編集する。今回は default.prop を編集した。
$ vim default.prop
- ramdisk⇒.img の詰め直し
$ cd ../
$ ./mkbootfs ramdisk |gzip -c >boot.img-ramdisk_rebuild.gz
$ mkbootimg --kernel boot.img-kernel --ramdisk boot.img-ramdisk_rebuild.gz -o boot_modified.img
※ mkbootimg に使用するオプションとパラメータの値は端末ごとに異なる。パラメータが不明な場合はそもそも boot.img を編集すべきでないが、fastboot boot boot_rebuild.img とかで動作確認を繰り返すこと。