1. 準備工作: 準備一臺ubuntu機器,將boot.img複製到該機器上,下載必要的工具sudo apt-get install abootimggit clone https://github.com/anestisb/android-simg2img.gitcd android-simg2i ...
1. 準備工作:
準備一臺ubuntu機器,將boot.img複製到該機器上,下載必要的工具
sudo apt-get install abootimg
git clone https://github.com/anestisb/android-simg2img.git
cd android-simg2img
make
sudo cp simg2img /usr/bin
2. 解壓縮boot鏡像
abootimg -x boot.img
mkdir ramdisk
cd ramdisk
gunzip -c ../initrd.img | cpio -i
3. 修改default.prop文件,使得
ro.secure=0
ro.debuggable=1
4. 修改init.rc,使得
on property:ro.debuggable=1
start console
service adbd /sbin/adbd
class core
socket adbd stream 660 system system
disabled
seclabel u:r:su:s0
on post-fs
# once everything is setup, no need to modify /
mount rootfs rootfs / rw remount
5. 修改fstab.freescale,使得掛載許可權可寫
/dev/block/mmcblk0p5 /system ext4 rw wait
6. 重新打包ramdisk文件
cd ramdisk/
find . | cpio –o –H newc | gzip > ../new-ramdisk.img
7. 生成新的boot.img
由於解壓縮後再打包,new-randisk.img文件大小會與原來的initrd.img大小不同,
如果比原來大,需要重新設置boot.img的大小,
查看原來的大小
cat bootimg.cfg,
第一行是原來的boot.img的大小,
使用ls -l 查看initrd.img和new-ramdisk.img兩個文件的大小,
在原來boot.img的大小基礎上加上兩個文件的大小差(NEWSIZE-BYTES),註意增加的位元組數最好是block的整數倍,例如4096位元組等等。
然後使用命令生成新的鏡像:
abootimg --create new-boot.img -f bootimg.cfg -k zImage -r new-ramdisk.img -c “bootsize=NEWSIZE-BYTES”
8. 將生成的new-boot.img作為boot.img重新刷入開發板,
重啟後進入系統,system分區變成可寫了。