Debugging Smali code with apk-tool and NetBeans works!

我稍微修改了一下,正在实验中。

Debugging Smali code with apk-tool and NetBeans works!
Ho-ho-ho, it works now! Here is a (more or less detailed) how-to. To debug Smali code with apk-tool, you need

    Apk-tool 1.4.1 and NetBeans 6.8. Use these versions, not the latest ones! Currently, the latest versions of apk-tool and NetBeans do not allow to debug Smali code.
    Java, JDK and other stuff installed in your system to make Apk-tool and  NetBeans working

The step-by-step instruction:

1)Decode your .apk file to out directory, use -d option:
    java -jar apktool.jar d -d my.app.apk out
2)Add android:debuggable="true" attribute to <application> section in out/AndroidManifest.xml file.
3)在启动Activity的Init或者OnCreate方法中加入以下语句:
    invoke-static {}, Landroid/os/Debug;->waitForDebugger()V
4)Build out directory to .apk file:
    java -jar apktool.jar b -d out my.app.to.debug.apk
5)Sign and install my.app.to.debug.apk to the Android device used for debugging
6)Delete out/build folder
7)Run NetBeans, click "File" -> "New Project". Choose "Java"->"Java Project with Existing Sources". Click "Next".
8)Specify out as "Project Folder". Click "Next".
9)Add out/smali folder to the "Source Package Folder" list. Click "Next" and then "Finish".
10)Start my.app.to.debug.apk on the device, run DDMS, find your application on a list and click it. Note port information in last column - it should be something like 86xx / 8700".
    In Netbeans, click "Debug" -> "Attach Debugger" -> select "JPDA" and set "Port" to 8700 (or whatever you saw in previous step). Rest of fields should be ok, click "OK".
11)Debugging session should start: you will see some info in a log and debugging buttons will show up in top panel.
12)Set breakpoint. You must select line with some instruction, you can't set breakpoint on lines starting with ".", ":" or "#".
13)Trigger some action in application. If you run at breakpoint, then thread should stop and you will be able to debug step by step, watch variables, etc.

I copy-pasted steps 9-13 from the original instruction (sorry, English is not my native language... and I'm too lazy to "produce unique content for the blog"??, so just copy-pasted description of last 5 steps :)).

Questions are welcome. Have a nice day :)

P.S.  If you have problems with breakpoints, this may help.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值