irpas技术客

android studio动态调试apk最详细教程_NarCln_androidstudio调试app

大大的周 3089

前提条件 首先要懂的smali得语法,知道在哪里下断点,代码逻辑,调试的位置定位很重要,不用太精通,但是最起码的知识点要知道你所调试的apk是否可以支持反编译后二次签名,有一些apk包是做了签名效验的,需要破解之后才能打包,有些是加了壳的,根据实际情况去处理你所调试的apk包,这里不仔细说明怎么破解签名效验和脱壳操作。需要准备安卓模拟器或者手机(无需ROOT),adb能够正常链接手机需要android studio (建议下载最新版本) 开始配置环境 android studio需要安装插件:1,Smalidea 2,Smali Support

1,Smalidea安装,网上很多都是v0.05版本的,由于我的android studio比较新,所以v0.5版本会导致无法正常下断点。所以建议安装v0.06版本 下载地址:smalidea-0.06 安装步骤: 打开setting>Plugins 右上角的齿轮 选择 Install Plugin from Disk 然后选择下载好的smalidea-0.06安装即可 2,Smali Support安装 可以直接在Plugins的Marketplace搜索Smali Support就可以直接安装 至此安装的东西已经就绪完毕了。

3,通过android studio 打开apk包 android studio 起始页面打开 profile or Debug APK 选择你要调试apk包 把Android改为Project 养成好习惯,把反编译出来的smali改为源码文件目录 smali文件右键>Make Directory as > Sources Root

4,Smali下断点 选择你要在smali源码里面下载断点了 根据自身情况下载断点 5,修改反编译的apk包改为调试模式

反编译工具很多,可以通过android killer或者apktool2.6都可以,根据自己习惯 (安装android killer需要配置java环境变量,这里不说明,网上大把资料自己可以搜索下 java安装环境配置 就行了) 这里我用android killer。 1,使用android killer打开apk包

2,反编译成功之后修改 AndroidManifest.xml文件 在Application 中添加

android:debuggable=“true”

点击保存后从新编译apk包 安装到手机或者模拟器上 到这里需要调试的apk包已经准备好了,下面就是准备调试

6,配置android studio调试器

打开Edit Configurations 点击左上角加号>选择Remote JVM Debug

Name:自己随便写 port:这个可以选择默认的 可以根据自己选择端口号 其他的不用修改 然后点击apply再点OK 然后选择刚刚创建的调试器 再打开Terminal 然后在手机上打开你刚刚编译修改的apk包运行起来, 通过shell查看包的pid进程

adb shell ps | grep 包名

包名在android killer可以查看 我这里包名:com.leeyou.td16489493

adb shell ps | grep com.leeyou.td16489493

会显示一下信息 记住这个pid 7751 等会儿要用到 然后输入

adb forward tcp:5005 jdwp:7751 tcp:端口是在第六步设置调试器设置端口 默认5005 jdwp:换成你apk包的pid

然后选择Attach Debugger to Android Process

然后选择apk包名 点击OK 如果出现Connected to the tarfet VM…说明已经连接成功了! 剩下的就是在代码段下断点进行调试了

运行手机的apk或者模拟器的apk调试器会自动在你下的断点停留然后出现参数值 教程到此结束。供大家参考。


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #最详细的android #studio动态调试apk教程