解决新版Android Studio 4.0+无法断点调试smali问题

tech2022-10-06  96

【前言】

   之前我写过一篇Android Studio 3.0+无源码调试apk的博客,可能很多小伙伴试了,发现虽然apk是导入进Android Studio,但是却无法加断点,主要是因为新版本的Android Studio默认解析smali文件的插件是Smali Support,这个插件不支持断点,所以我们需要自己手动下载支持断点的smali解析插件:smalidea

一、smalidea下载配置

1、下载支持断点的smali解析插件:smalidea,目前最新的版本是0.0.5,他们GitHub仓库源码在这里,有兴趣的可以去瞅一瞅 2、下载完smalidea-0.0.5.zip之后,我们在Android Studio中依次点击File -> Settting -> Plugins ->小齿轮 -> Install Plugins from Disk,从我们本地磁盘中选择我们下载好的smalidea-0.0.5.zip,点击“OK”就导入进来了,导入成功之后,会提示让你重启一下Android Studio, 使得smalidea插件生效 3、重启Android Studio之后,依次点击File -> Settting ->Editor -> File Types, 你会看到两个smali名字的插件,一个是smali support ,一个是刚安装的smalidea 4、首先我们先点击smali support插件,把它支持处理*.smali文件的配置项去掉 5、然后给smalidea插件,新增支持处理*.smali文件配置项 6、到此,配置就结束啦,我们可以愉快地进行加断点了

二、调试apk

1、导入需要调试的apk,依次点击 File -> Profile or Debug Apk,选择导入apk,导入成功之后,显示如下: 2、点开java目录下,找到需要断点的代码行,点击最左边加上断点 3、准备一台支持debug apk的设备(以下满足任意一个条件即可)

把你的手机设备root掉修改测试机的 /default.prop文件的ro.debuggable=1,目测这一步也可能需要root。可以使用这个命令查看你的设备是否支持debug所有app: adb shell “getprop ro.debuggable”,显示1就是可以,显示0就是不可以使用模拟器(这个最简单,市面上很多模拟器,比如:逍遥、夜神、雷电、mumu等)修改apk的Manifest application 属性 android:debuggable=“true”,可以用apktool 解出Manifest 然后修改,接着重新打包回去。

4、为了能够让apk等待调试进程连接才开始运行,还需要设置调试应用 1)先把第3步修改好的apk,安装到手机 2)然后打开手机的开发人员选项-> 选择待调试应用-> 选中需要调试的应用,接着把等待调试器开关打开 5、点击启动需要调试的应用,会出现等待调试进程连接的对话框 6、回到第2步打开的Android Studio项目,点击将调试器连接到android进程 7、上述点击之后,会弹出选择调试进程弹窗,这里显示的都是有debuggable标识的包名 8、双击选中,你想要调试的包名即可,不过假如你需要调试的apk有.so库,可能会提示这个错误 9、要解决上述问题,选择只调试java即可 10、终于搞掂,我们看看效果

最新回复(0)