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

<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> -&gt; <code>Settting</code> -&gt; <code>Plugins</code> -&gt;<code>小齿轮</code> -&gt; <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> -&gt; <code>Settting</code> -&gt;<code>Editor</code> -&gt; <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> -&gt; <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>-&gt; <code>选择待调试应用</code>-&gt; 选中需要调试的应用,接着把<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>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值