Soinice 2020-02-02
在Android真机上调试程序有一个前提,就是这个apk包必须有 debuggable=true 的属性才行。而除了自己开发的apk能够控制打包属性之外,其他的程序发行之后显然不会设这个值为 true 的(不然随随便便就能被Debug ,岂不是很没安全感 )。为了调试这些第三方的apk,我们可以从整个手机系统入手 —— 因为除了每个apk中的 debuggable 标志以外,这个标志还可以在系统中全局指定,换句话说,只要把系统里的 debuggable 值设为true,那么不管apk的这个属性是什么值 都可以被调试了。
Android手机系统的 ro.debuggable 这一配置位于 /default.prop 文件中,而 /default.prop 又来源于手机每次启动时 boot.img 中 ramdisk 的挂载,所以想要直接通过修改 /default.prop 是不可行的,但是系统文件是只读的,改了也没用。网上流传较广的是改 boot.img ,然而锤子并没有解锁 bootloader ,改了的话会变砖的。好在Magisk 有一个模块能够助我们实现这个修改,且看操作(默认手机已经 root 且安装了 Magisk ):
1、打开并在模块界面中搜索 MagiskHide Props Config ,并安装。
2、用PC 连接 Android 手机,在PC端 打开命令行或终端,依次输入以下指令(如图):
adb shell //adb进入命令行模式 su //切换至超级用户 magisk resetprop ro.debuggable 1 //设置debuggable stop;start; //一定要通过该方式重启
待手机重启过后,如同开启“上帝模式“,任意调试手机里的任何程序了!
参考资料:
1、渲染逆向工程:打造一台调试任意Android游戏的设备 https://zhuanlan.zhihu.com/p/100583752
2、Android修改ro.debuggable 华为真机adb调试所有进程 https://www.renyiwei.com/archives/1704.html
3、安卓8.0 Magisk 修改ro.debuggable 1的简单方法 https://bbs.pediy.com/thread-248322.htm