前言
我们想调试一个Android应用时,往往需要保证该应用的apk文件是debuggable,或者当前手机是debuggable模式的,下面就介绍一下修改调试模式的几种常用方法
一、应用无签名/完整性校验
1.借助apktool
(1) java -jar apktool_2.4.0.jar d target.apk -o out #将目标apk反编译到out目录下
(2) 编辑AndroidManifest.xml文件,在application标签下修改或者添加 android:debuggable="true"
(3) java -jar apktool_2.4.0.jar b out -o target_debug.apk #将out目录回编译为apk
(4) 重新签名安装即可
2.借助xml2axml
工具下载链接:
https://github.com/hzw1199/xml2axml
(1) unzip target.apk AndroidManifest.xml #将清单文件解压出来
(2) java -jar xml2axml-1.1.0-SNAPSHOT.jar d AndroidManifest.xml manifest.xml #将清单文件反编译为文本文件
(3) 编辑manifest.xml文本文件,在application标签下修改或者添加 android:debuggable="true"
(4) java -jar xml2axml-1.1.0-SNAPSHOT.jar e manifest.xml AndroidManifest.xml #将修改后的文本文件回编译为二进制清单文件
(5) zip target.apk -d AndroidManifest.xml #删除apk中原来的清单文件
(6) zip target.apk AndroidManifest.xml #添加修改后的清单文件到目标应用中
(7) 重新签名安装即可
3.自定义axml
基于Android xml文件的解析库(
https://github.com/wtchoi/axml
) , 可以参照大佬的测试类,在application的标签下添加android:debuggable=”true”属性进去,如果需要自动化操作的话可以考虑使用这种方式,具体就不放了,有兴趣的可以自行研究下
二、应用有签名/完整性校验
事实上,在实际操作时可能目标应用做了签名校验或者完整性保护等措施,这时候就不能用上述修改apk文件的方式了,但是可以借助magisk root直接修改手机为debuggable, 可以说是非常的方便了!
如果你的手机刚好有magisk root了,只需要简单的几个命令就可以了,具体操作如下:
adb shell #adb进入命令行模式
su #切换至超级用户
magisk resetprop ro.debuggable 1
stop;start; #一定要通过该方式重启
(参考链接:
https://www.cnblogs.com/yongfengnice/p/15620235.html
)
总结
以上就是我自己用过的几种修改debuggable的姿势了。其实还有一些其他的方法例如:
https://bbs.pediy.com/thread-246081.htm
,文章写的很清楚,有兴趣的也可以研究下
版权声明:本文为qq_33530663原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。