android apk 包调试

转自 http://d-kovalenko.blogspot.com/2012/08/debugging-smali-code-with-apk-tool-and.html

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
  1. 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.
  2. 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. Build out directory to .apk file:
    java -jar apktool.jar b -d out my.app.to.debug.apk
    
  4. Sing and install my.app.to.debug.apk to the Android device used for debugging
  5. Delete out/build folder
  6. Run NetBeans, click "File" -> "New Project". Choose "Java"->"Java Project with Existing Sources". Click "Next".
  7. Specify out as "Project Folder". Click "Next".
  8. Add out/smali folder to the "Source Package Folder" list. Click "Next" and then "Finish".
  9. 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".
  10. 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.
posted on 2013-09-29 20:58  tanglaoya321  阅读(328)  评论(0)    收藏  举报