对于一些不可以root的手机,我们可以通过修改boot.img的方式进行修改,修改boot.img后,需要重新打包boot.img,然后通过fastboot重新刷入新的boot.img
- 准备工作:
准备一台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
解压缩boot镜像
abootimg -x boot.img
mkdir ramdisk
cd ramdisk
gunzip -c ../initrd.img | cpio -i修改default.prop文件,使得
ro.secure=0
ro.debuggable=1修改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
修改fstab.freescale,使得挂载权限可写
/dev/block/mmcblk0p5 /system ext4 rw wait重新打包ramdisk文件
cd ramdisk/
find . | cpio –o –H newc | gzip > ../new-ramdisk.img生成新的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”将生成的new-boot.img作为boot.img重新刷入开发板,
重启后进入系统,system分区变成可写了。
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!