如何让 android 项目的 shader 可以被 RenderDoc 调试

这里只以我手上有的 android 手机举例,不排除不同版本的 android 系统,或是硬件有不一样的问题,当然解决这些问题,不正是干这一行的乐趣所在吗。

首先我手上的这一台是 google 的 pixel3,android12

大家都知道,一般要调试 android apk 有2种方式:
1,apk AndroidManifest.xml 里面的 android:debuggable=”true”
2,/default.prop 中 ro.debuggable=1

1相当于是解包再打包,麻烦不说,还可能因为加壳或是apk校验,导致失败
2可以通过刷手机rom的方式达成
今天我们要用的手段就属于2

第一步,也是后续所有步骤的基础,就是先要把它给 root 了,这个请自行解决。
这里我怕自己太久没干这个了,手生,所以到 ROM乐园 花了点小钱让人家远程帮忙用 Magisk 给 root 了。
幸亏没自己来,现在的我,连 Magisk 是啥都不知道~

找一台 windows 电脑,安装好 RenderDoc 和 Android Studio 的环境,因为我们主要的操作都需要使用到 adb。

当然 RenderDoc 其实也自带一个 adb,但是它的版本很低,你要是想升级吧,又得从 Android Studio 里把下面3个文件给拷贝过来完成升级。所以说,直接用 Android Studio 的就得了。

如何让 android 项目的 shader 可以被 RenderDoc 调试_第1张图片
现在,把我们 root 好的手机,打开 usb 调试,开发者模式,把它的权限都放开了,然后连上我们的 pc。

用命令

adb devices

 来检查我们的设备是不是连接上来了,ok后我们就可以正式开始了。

修改手机的 ro.debuggable 一般一共有3种方式:
1,通过github上的工具 mprop
2,通过 Magisk 的命令设置
3,通过 Magisk 的扩展模块 MagiskHide Props Config

不过经过我的验证,1工具太老了,已经失效了,3的新版本已经不再支持修改 ro.debuggable 了,
所以这里我们只讲2怎么弄。

1,

adb shell

进入 shell 命令行模式


2,

su

变成超级用户


3,

getprop ro.debuggable

 查看当前的值,0 就是不能调试


4,

magisk resetprop ro.debuggable 1

 修改配置


5,

stop;start;

 重启系统

注意:以后要重启系统的话,也得这么来。如果通过物理手段重启的话,ro.debuggable会再变回0,你需要再把上面的命令再来一遍

这个时候,再用 RenderDoc 去连接我们要调试的 apk,你就会发现,世界变得如此美好~

你可能感兴趣的:(Shader,Android,android,反编译,ro.debuggable,RenderDoc,Shader)