方法一:
1、使用apktool的-d選項反編譯apk文件
?? java ?-jar ?apktool.jar ?d ?-d? target.apk? -o ?output
2、在AndroidManifest的application節點中添加 android:debuggable="true"
3、在入口點的類的onCreate中添加如下代碼等待調試
?? invoke-static{}, Landroid/os/Debug;->waitForDebugger()V
4、回編譯apk
?? java ?-jar ?apktool.jar ?b ?-d ?output ?-o ?newTarget.apk
5、對apk進行簽名
?? java -jar signapk.jar testkey.x509.pem testkey.pk8 newTarget.apk signed.apk
6、將簽名后的apk安裝到手機或者模擬器上
?? adb install signed.apk
7、將1中的smali代碼導入到Android Studio中
?? file→open→output目錄→下斷點
8、打開Monitor查找相應的進程
?? 運行→monitor 或者Tools ->Android ->Android Device Monitor
9、配置遠程調試選項
?? Run→Editor Configurations→Defaults→Remote,點擊+號新增一個,Host為localhost,Port為8700
10、打開apk,點擊綠色的小蟲子就可以開始調試了
?
?
方法二:無需修改原apk文件
1、用 Android killer等工具反編譯apk文件
2、將smali代碼入到Android Studio中,安裝smaliidea插件
File→Settings→Plugins→Install plugin from disk…→Restart
3、配置遠程調試選項,打開monitor
4、使用adb以debug方式啟動apk
?? adb shell am start -D -n package/activitiyname
5、下斷點開始調試,在watch中添加寄存器