zoukankan      html  css  js  c++  java
  • 8.eclipse调试smali

    一.重打开包APK
    1.apktool解包文件
    apktool d -d XXX.apk
    这里注意使用-d参数,生成的smali文件才是以java结尾的,才能被eclipse识别

    2.找到AndroidManifest文件,设置允许调试
    找到AndroidManifest.xml文件,在application节点中设置属性android:debuggable="true"

    或者在回编译时加入-d参数,会自动设置该属性,高版本apktool取消了该功能

    3. OnCreate函数中加入(不加入也可以)
    invoke-static {}, Landroid/os/Debug;->waitForDebugger()V

    4.重新编译打包

    5.签名apk
    上述过程太繁琐,我编写了一个python脚本来完成一键操作,使用时需要配置config.py环境


    安装完毕后运行程序,可以看到我们需要调试的程序的端口号为8620



    用Eclipse新建工程,然后导入解包之后的src目录



    在主Activity的OnCreate函数下断电


    配置调试选项
    工程右键->Debug AS->Debug Config->Remote Java Application->New-> Port 8620
    然后点击Debug,把程序退出到主界面,然后在点进去,断点就断下来了



    然后就可以开始单步调试了








  • 相关阅读:
    JUnit4.13环境配置
    OO第5-7次作业总结
    电梯的一点浅优化
    C++变量作用域、生存期、存储类别
    最后一次OO博客
    OO第三次总结
    OO第二次总结
    OO第一次总结
    POJ3934
    POJ刷题计划
  • 原文地址:https://www.cnblogs.com/bingghost/p/5792968.html
Copyright © 2011-2022 走看看