令App可调试的几种方法

令App可调试的几种方法

来源 http://fancy-blogs.com/2018/01/17/fordebugger/

  一般自己编写的应用安装到设备上都是可调试的,但是拿到一个发行版本的应用安装上去,发现在DDMS中看不到,选择可调试应用也不能选择,我们就需要让应用可调试。

修改debuggable属性

反编译包修改

一般对于小程序,用apktool反编译修改<applcation>标签,添加android:debuggable="true",然后回编译即可。

解包时只解码资源文件

1
apktool d -s xx.apk -o xxx

查看AndroidManifest.xml,一般<application>标签里没有debuggable项或者该项为false。

添加debuggable属性:

1
<application android:debuggable="true" ...

回编译

1
apktool b xxx -o new.apk

别忘了签名:

1
jarsigner -verbose -keystore name.keystore(证书文件名) -signedjar after.apk before.apk bname(用户别名)

一些加壳应用有时候会出现无法回编译的情况,我们可以不反编译apk,直接解压,通过修改AndroidManifest.xml文件来添加属性。

AXMLEditor

Android中AndroidManifest ARSC 二进制文件修改器AXMLEditor
一般使用sdk中带的工具aapt,把包里的AndroidManifest.xml提取后移除。利用AXMLEditor向提取出来的AndroidManifest.xml中添加debuggable属性。

打包好的apk中移除文件
aapt r[emove] [-v] file.{zip,jar,apk} file1 [file2 …]
例如:aapt r <你的apk文件> AndroidManifest.xml, 这个就是将apk中的AndroidManifest移除掉

添加文件到打包好的apk中
aapt a[dd] [-v] file.{zip,jar,apk} file1 [file2 …]
例如:aapt a <你的apk文件> <要添加的文件路径>, 这个就是将文件添加到打包好的apk文件中

注意去签名和重签名

修改ro.debuggable

通过将default.prop中的ro.debuggable的值置为1来允许系统中应用均可调试。

刷机

通过修改boot.img中的属性文件,重新生成img,输入手机。

mprop

init进程会解析default.prop文件,然后把这些属性信息解析到内存中,给所有app进行访问使用,所以在init进程的内存块中是存在这些属性值的,那么这时候我们可以利用进程注入技术,我们可以使用ptrace注入到init进程,然后修改内存中的这些属性值,只要init进程不重启的话,那么这些属性值就会起效。

adb push mprop /data/local/tmp/

chmod +rx mprop

./mprop ro.debuggable 1

查看内存中该值
getprop ro.debuggable

重启adbd
stop;start

利用hook插件

Xposed中下载xinstaller插件,选择允许应用调试,重启即可。这种方法最方便。

=============== End

原文地址:https://www.cnblogs.com/lsgxeva/p/13490991.html