修改手机的ro.debuggable配置
来源 https://cloud.tencent.com/developer/article/1351915
我们自己编译的源码刷机ro.debuggable就是为1,这个时候所有的进程都可以远程调试。但是自己编译的源码里面没有GooglePlay,有些应用的部分功能又依赖于GooglePlay。那怎么办呢?
有人发布过工具,通过ptrace方式,动态修改了内存值,将ro.debuggable改为1,那工具在高版本上似乎没有适配不起作用,而且是临时解决方案,重启手机就失效了。
下面说一种通过刷机永久解决方案。
虽然说刷机有风险,但是你要是按照正确的姿势来,也没有那么多风险(注意看完全文再实践)
环境: nexus6p 刷了Google发布的7.1.2(N2G48C)OTA,其他版本也没什么问题。
ro.debuggable的配置位于/default.prop, /default.prop又来源于手机每次启动时boot.img中ramdisk的挂载,所以想要直接通过修改/default.prop是不可行的(被覆盖)。 只有修改boot.img中的内容才可以。
0x01:获取boot.img
我本地就有OTA文件,所以可以直接从里面解压出boot.img,如果没有OTA文件,那就是只能从手机中导出boot.img。
如何导出?
- 首先,手机得root,才能有权限访问,如何root,参考:nexus5 android5.0.1 使用TWRP Recovery安装supersu,其他版本Root搜索 版本+twrp 即可找到解决方案。
- 手机root后,执行
adb root
让adb 运行在root权限下,假如之后的adb shell
没有进入root的shell环境,说明没成功,此时,可以通过安装adbd-insecure来解决,它通过对adbd的一些修改,让adbd能运行在root权限下。 - 查找boot.img位置, 在/dev/block子目录下通过by-name查看,手机不同,具体路径可能会不同。
# ls -al /dev/block/platform/soc.0/f9824900.sdhci/by-name/
total 0
drwxr-xr-x 2 root root 920 1970-03-19 13:19 .
drwxr-xr-x 4 root root 1000 1970-03-19 13:19 ..
lrwxrwxrwx 1 root root 20 1970-03-19 13:19 DDR -> /dev/block/mmcblk0p8
lrwxrwxrwx 1 root root 21 1970-03-19 13:19 aboot -> /dev/block/mmcblk0p10
lrwxrwxrwx 1 root root 21 1970-03-19 13:19 abootbak -> /dev/block/mmcblk0p16
lrwxrwxrwx 1 root root 21 1970-03-19 13:19 apdp -> /dev/block/mmcblk0p22
lrwxrwxrwx 1 root root 21 1970-03-19 13:19 boot -> /dev/block/mmcblk0p34
lrwxrwxrwx 1 root root 21 1970-03-19 13:19 cache -> /dev/block/mmcblk0p38
lrwxrwxrwx 1 root root 21 1970-03-19 13:19 cmnlib -> /dev/block/mmcblk0p25
lrwxrwxrwx 1 root root 21 1970-03-19 13:19 cmnlibbak -> /dev/block/mmcblk0p27
lrwxrwxrwx 1 root root 21 1970-03-19 13:19 devinfo -> /dev/block/mmcblk0p17
lrwxrwxrwx 1 root root 21 1970-03-19 13:19 dpo -> /dev/block/mmcblk0p28
lrwxrwxrwx 1 root root 21 1970-03-19 13:19 frp -> /dev/block/mmcblk0p41
lrwxrwxrwx 1 root root 21 1970-03-19 13:19 fsc -> /dev/block/mmcblk0p29
lrwxrwxrwx 1 root root 21 1970-03-19 13:19 fsg -> /dev/block/mmcblk0p18
lrwxrwxrwx 1 root root 20 1970-03-19 13:19 hyp -> /dev/block