方法一:
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中添加寄存器