如何让 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 的就得了。


现在,把我们 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,你就会发现,世界变得如此美好~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Unity Shader调试Debug包的过程主要包括以下几个步骤: 1. 确定调试目标:首先,需要明确需要调试Shader。可以选择自定义的Shader,或者是Unity内置的Shader。 2. 在Shader中添加调试信息:为了方便调试,可以在Shader中添加一些调试信息,例如通过在特定位置输出颜色、纹理坐标等信息。可以使用Unity内置函数`discard`、`clip`等来控制是否绘制像素,或者使用其他自定义函数来输出需要的信息。 3. 使用Debug包进行调试:将Shader所在的材质使用的Shader替换为调试版本的Shader,这个版本中加入了需要的调试信息。在Unity中,可以通过修改`GraphicsSettings.renderPipelineAsset`来切换Shader。在调试版本的Shader下,运行游戏并观察输出的调试信息。 4. 观察调试结果:通过观察调试信息的输出,可以判断Shader在渲染过程中的问题。例如,颜色信息可以用来判断光照计算是否正确,纹理坐标可以用来判断UV贴图是否正确等。 5. 根据调试结果进行修复:根据观察到的调试信息,找到Shader中可能存在的问题,并进行修正。在修复过程中,可以多次反复进行调试和观察,直到达到预期的效果。 需要注意的是,Shader调试过程通常需要一定的经验和技巧,对于初学者可能会稍显困难。建议参考Unity官方文档,学习和了解更多关于Shader调试的技巧和方法,以提高调试效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值