android 动态调试apk,Android apk包的动态调试方法

一、生成可调试的apk包。

1.将apk包用apktool进行调试解包,生成out输出文件夹,要加入参数-d。

apktool d -d xxxx.apk -o out

2.修改apk包中AndroidManifest.xml文件中application属性android:debuggable设为true。(不知道为什么,我这边解包出来就是true的)

3.在开始的activity的smali文件中的onCreate函数中加入

invoke-static {},Land/os/Debug;->waitForDebugger()V

以便在程序运行启动后,可以等待被调试。

4.重新打包apk

apktool b -d out -o xxxx.apk

5.用eclipse打开debug解包后的apk文件夹。

a.新建java工程。(这里不是android工程,因为我们要利用java的调试器)

b.选择已有的代码

6.为打包好的apk生成新的签名。

keytool -genkey -alias mykey -keyalg RSA -validity 40000

-keystore mydemo.keystore(生成自己的证书)

jarsgner-verbose-keystore[keystorePath]-singnedjar

[apkOut] [apkln] [alias] (为用已有证书为apk签名)

jarsgner命令格式:-verbose输出详细信息-keystore密钥库位置-alias

demo.keystore 别名 demo.keystore

-keyalg RSA 使用RSA算法对签名加密

-validity 40000 有效期限4000天<

你可能感兴趣的:(android,动态调试apk)