img解包工具_修改 boot.img 的 ro.debuggable 属于实现全局可调试

1、准备

boot.img解包打包工具(文章末尾)ubuntu系统(PS:mac无法运行mkbootimg)工具一加5手机

2、操作

查找 boot.img 位置, 在 / dev/block 子目录下通过 by-name 查看,手机不同,具体路径可能会不同。一加 5 的路径如如下:

OnePlus5:/ # cd /dev/block/platform/soc/1da4000.ufshc/by-name/
到如下目录下用 (英文)“ll” 命令显示并搜索一下 "boot", 如下:
OnePlus5:/dev/block/platform/soc/1da4000.ufshc/by-name # ll | grep bootlrwxrwxrwx 1 root root 16 1970-01-04 10:11 boot -> /dev/block/sde19lrwxrwxrwx 1 root root 16 1970-01-04 10:11 boot_aging -> /dev/block/sde20
第一个就是我们要找的了
/dev/block/sde19
然后把此文件 copy 到 sdcard
OnePlus5:/dev/block/platform/soc/1da4000.ufshc/by-name # cp /dev/block/sde19 /sdcard/boot.img
然后 pull 到电脑上
adb pull /sdcard/boot.img .(电脑当前目录)
然后使用工具 “plit_bootimg.pl” 解压 boot.img 文件,后面加 “###” 待会要用到,请记住
XXX@ubuntu:~/boottool$ ./split_bootimg.pl boot.imgPage size: 4096 (0x00001000)   ###Kernel size: 15134374 (0x00e6eea6)Ramdisk size: 3481493 (0x00351f95) ###Second size: 0 (0x00000000)Board name:Command line: androidboot.hardware=qcom user_debug=31 msm_rtb.filter=0x237 ehci-hcd.park=3 lpm_levels.sleep_disabled=1 sched_enable_hmp=1 sched_enable_power_aware=1 service_locator.enable=1 swiotlb=2048 buildvariant=user ###Writing boot.img-kernel ... complete.Writing boot.img-ramdisk.gz ... complete.

然后使用工具 "unpack_ramdisk" 解压 "ramdisk", 如下:

XXX@ubuntu:~/boottool$ sudo ./unpack_ramdisk boot.img-ramdisk.gz13880 blocks

如下图,ramdisk 其中就是我们根目录,可以看到框中的就是我们要改的。把 ro.debuggable=0 改成 ro.debuggable=1,保存ea3a6e54e11ea0153bddea1ef8411748.pnga4f270ba4cbc4673966028bec3075fad.png

然后使用工具 “repack_ramdisk” 重新打包 ramdisk

XXX@ubuntu:~/boottool$ sudo ./repack_ramdisk ramdisk13880 blocks

最后使用工具 “mkbootimg” 重新生成 boot.img,此时我们解压 boot.img 的一些参数就要用到了,其中参数不同手机不一样,请自行设定

# ./mkbootimg --kernel boot.img-kernel --ramdisk new-ramdisk.cpio.gz --cmdline "androidboot.hardware=qcom user_debug=31 msm_rtb.filter=0x237 ehci-hcd.park=3 lpm_levels.sleep_disabled=1 sched_enable_hmp=1 sched_enable_power_aware=1 service_locator.enable=1 swiotlb=2048 buildvariant=user" --base 0 --pagesize 4096 --ramdiskaddr 3481493 --output newboot.img
如下为我们新生成的 "newboot.img" 文件。

e1e22b34a8cdad4405158941d9e50447.png

最后把 img 刷入手机,在开机状态下输入 “adb reboot bootloader” 命令即可进入 fastboot 刷进模式,还可以通过电源键 + 音量 + 键进入 fastboot 模式, 不同手机可能会有一点差别,请自行设置

mimi:bootTool jack$ fastboot flash boot newboot.imgtarget reported max download size of 536870912 bytessending 'boot' (17392 KB)...OKAY [  0.370s]writing 'boot'...OKAY [  0.169s]finished. total time: 0.539smimi:bootTool jack$ fastboot rebootrebooting...finished. total time: 0.000s

成功刷入手机,重启进入根目录看看我们的设置是否成功,如下图,已经成功了。9c381f85995fc0239ed44aa473269047.png

3、总结

好像没啥好总结的。

工具:链接:https://pan.baidu.com/s/1TJkg6-ccyLLiQyYxiAJPmw 密码: 3fvm