Android Studio动态调试第三方APK

1. 下载、安装smalidea插件

smalidea插件下载地址:https://bitbucket.org/JesusFreke/smali/downloads/

下载 smalidea-0.05.zip

打开AndroidStudio,点击Preferences... | Plugins, 选择Install plugin from disk

Android Studio动态调试第三方APK_第1张图片
安装插件

2. 下载apktool,反编译要调试的apk文件

Apktool下载地址

通过以下命令反编译APK文件

        java -jar apktool.jar d MyApp.apk

3. 将反编译的文件夹导入AndroidStudio

选择Import Project

Android Studio动态调试第三方APK_第2张图片
导入工程

选择Create preject from existing sources

Android Studio动态调试第三方APK_第3张图片
创建工程

一直选择“Next”,直至导入工程完成

 4. 修改代码

代码需要修改两个地方:

AndroidManifest.xml文件中在application中加上:

         android:debuggable="true"

找到主Activity或者Application,在其中加上Debug.waitForDebugger的smali代码

        invoke-static{}, Landroid/os/Debug;->waitForDebugger()V

Android Studio动态调试第三方APK_第4张图片
修改代码

5. 在AndroidStudio工程中右键点击smali文件夹,设定Mark Directory as -> Sources Root

Android Studio动态调试第三方APK_第5张图片
设置Source Root

 6. 使用apktool在把刚才修改完成的文件夹编译成apk文件,编译完成之后再签名一下,编译命令如下

        java -jar apktool.jar b MyApp -o newMyApp.apk

7. 在AndroidStudio里面配置远程调试的选项,选择Run -> Edit Configurations

Android Studio动态调试第三方APK_第6张图片
配置远程调试的选项1
Android Studio动态调试第三方APK_第7张图片
配置远程调试的选项2

8. 远端调试选项设置端口为8700

Android Studio动态调试第三方APK_第8张图片
远端调试选项设置端口为8700

9. AndroidStudio的File -> Project Structure, 配置JDK。

Android Studio动态调试第三方APK_第9张图片
配置JDK
Android Studio动态调试第三方APK_第10张图片
配置JDK

10. 安装之前编译好的APK,以调试状态启动APP

        adb shell am start -D -n PACKAGE_NAME/ACTIVITY_NAME

11. 下好断点之后, AndroidStudio点击Run -> Debug就可以调试了

你可能感兴趣的:(Android Studio动态调试第三方APK)