<div id="article_content" class="article_content clearfix">
<link rel="stylesheet" href="https://csdnimg.cn/release/blogv2/dist/mdeditor/css/editerView/ck_htmledit_views-b5506197d8.css">
<div id="content_views" class="markdown_views prism-tomorrow-night-eighties">
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
<path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path>
</svg>
<h2><a name="t0"></a><a name="t0"></a><a id="_0"></a>【前言】</h2>
<p> 之前我写过一篇<a href="https://blog.csdn.net/qq_43278826/article/details/83541600">Android Studio 3.0+无源码调试apk</a>的博客,可能很多小伙伴试了,发现虽然apk是导入进Android Studio,但是却无法加断点,主要是因为新版本的Android Studio默认解析smali文件的插件是<code>Smali Support</code>,这个插件不支持断点,所以我们需要自己手动下载支持断点的smali解析插件:<a href="https://bitbucket.org/JesusFreke/smali/downloads/">smalidea</a><br> <img src="https://img-blog.csdnimg.cn/20200903104710120.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzMjc4ODI2,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p>
<h2><a name="t1"></a><a name="t1"></a><a id="smalidea_4"></a>一、smalidea下载配置</h2>
<p>1、下载支持断点的smali解析插件:<a href="https://bitbucket.org/JesusFreke/smalidea/downloads/">smalidea</a>,目前最新的版本是<a href="https://bitbucket.org/JesusFreke/smalidea/downloads/">0.0.6</a>,他们GitHub仓库源码在<a href="https://github.com/JesusFreke/smalidea">这里</a>,有兴趣的可以去瞅一瞅,注意:Android Studio 4.1.+的一定要用0.0.6版本以上的,否则没效果<br> <img src="https://img-blog.csdnimg.cn/20200903105143155.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzMjc4ODI2,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br> 2、下载完<code>smalidea-0.0.5.zip</code>之后,我们在Android Studio中依次点击<code>File</code> -> <code>Settting</code> -> <code>Plugins</code> -><code>小齿轮</code> -> <code>Install Plugins from Disk</code>,从我们本地磁盘中选择我们下载好的<code>smalidea-0.0.5.zip</code>,点击“OK”就导入进来了,导入成功之后,会提示让你重启一下Android Studio, 使得smalidea插件生效<br> <img src="https://img-blog.csdnimg.cn/20200903105831667.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzMjc4ODI2,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br> 3、重启Android Studio之后,依次点击<code>File</code> -> <code>Settting</code> -><code>Editor</code> -> <code>File Types</code>, 你会看到两个smali名字的插件,一个是<code>smali support</code> ,一个是刚安装的<code>smalidea</code><br> <img src="https://img-blog.csdnimg.cn/20200903110840154.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzMjc4ODI2,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br> 4、首先我们先点击<code>smali support插件</code>,把它支持处理*.smali文件的配置项去掉<br> <img src="https://img-blog.csdnimg.cn/20200903111031816.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzMjc4ODI2,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br> 5、然后给smalidea插件,新增支持处理<code>*.smali</code>文件配置项<br> <img src="https://img-blog.csdnimg.cn/20200903111213368.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzMjc4ODI2,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br> 6、到此,配置就结束啦,我们可以愉快地进行加断点了<br> <img src="https://img-blog.csdnimg.cn/20200903111400829.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzMjc4ODI2,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p>
<h2><a name="t2"></a><a name="t2"></a><a id="apk_19"></a>二、调试apk</h2>
<p>1、导入需要调试的apk,依次点击 <code>File</code> -> <code>Profile or Debug Apk</code>,选择导入apk,导入成功之后,显示如下:<br> <img src="https://img-blog.csdnimg.cn/20200903112213935.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzMjc4ODI2,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br> 2、点开java目录下,找到需要断点的代码行,点击最左边加上断点<br> <img src="https://img-blog.csdnimg.cn/20200903112346284.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzMjc4ODI2,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br> 3、准备一台支持debug apk的设备(以下满足任意一个条件即可)</p>
<ul><li>把你的手机设备root掉</li><li>修改测试机的 <code>/default.prop</code>文件的<code>ro.debuggable=1,</code>目测这一步也可能需要root。可以使用这个命令查看你的设备是否支持debug所有app: <code>adb shell “getprop ro.debuggable”</code>,显示1就是可以,显示0就是不可以</li><li>使用模拟器(这个最简单,市面上很多模拟器,比如:逍遥、夜神、雷电、mumu等)</li><li>修改apk的Manifest application 属性 <code>android:debuggable=“true”</code>,可以用apktool<br> 解出Manifest 然后修改,接着重新打包回去。</li></ul>
<p>4、为了能够让apk等待调试进程连接才开始运行,还需要设置调试应用<br> 1)先把第3步修改好的apk,安装到手机<br> 2)然后打开手机的<code>开发人员选项</code>-> <code>选择待调试应用</code>-> 选中需要调试的应用,接着把<code>等待调试器</code>开关打开<br> <img src="https://img-blog.csdnimg.cn/20200903143011142.png#pic_center" alt="在这里插入图片描述"><br> 5、点击启动需要调试的应用,会出现等待调试进程连接的对话框<br> <img src="https://img-blog.csdnimg.cn/20200903143155135.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzMjc4ODI2,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br> 6、回到第2步打开的Android Studio项目,点击将调试器连接到android进程<br> <img src="https://img-blog.csdnimg.cn/20200903143516449.png#pic_center" alt="在这里插入图片描述"><br> 7、上述点击之后,会弹出选择调试进程弹窗,这里显示的都是有debuggable标识的包名<br> <img src="https://img-blog.csdnimg.cn/20200903143701742.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzMjc4ODI2,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br> 8、双击选中,你想要调试的包名即可,不过假如你需要调试的apk有.so库,可能会提示这个错误<br> <img src="https://img-blog.csdnimg.cn/20200903143835732.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzMjc4ODI2,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br> 9、要解决上述问题,选择只调试java即可<br> <img src="https://img-blog.csdnimg.cn/20200903143927219.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzMjc4ODI2,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"><br> 10、终于搞掂,我们看看效果<br> <img src="https://img-blog.csdnimg.cn/2020090314403872.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzMjc4ODI2,size_16,color_FFFFFF,t_70#pic_center" alt="在这里插入图片描述"></p>
</div><div><div></div></div><div><div></div></div>
<link href="https://csdnimg.cn/release/blogv2/dist/mdeditor/css/editerView/markdown_views-d7a94ec6ab.css" rel="stylesheet">
<link href="https://csdnimg.cn/release/blogv2/dist/mdeditor/css/style-f1c5feb645.css" rel="stylesheet">
</div>
解决新版Android Studio 4.0+无法断点调试smali问题
最新推荐文章于 2022-12-30 23:27:24 发布