Android 4.4系统获取root权限的方法

时间:2022-08-04 15:44:54

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分区变成可写了。