因为为了调试程序,需要修改ro.secure 和ro.debuggable,刚开始练习安卓逆向,手里的手机是pixel,最低是7.x的版本,结果按着网上的教程,什么使用setpropex-pie或者修改boot.img永久修改都没起作用,可能是能力有限,有些地方设置错误没有发现,最后再查资料时候,终于找到前辈的解决方法。链接如下
https://bbs.pediy.com/thread-215311.htm
说是7.x中属性数据结构及selinux策略变化太大,老的方式不好适配。直接ptrace init进程,对标红的ro.属性的判断逻辑进行修改,跳过,这样任意属性就都可以设置了。
使用该工具修改ro.属性的前提:
1. adb shell 拥有root权限,或者 adb shell su 以后可以拥有root权限;
2. 1中获取的shell 其 selinux domain为permissive domain,如 u:r:su:s0 或者 其他可以ptrace init进程且有设置ro.xx目标属性selinux权限的domain。
用法:
adb push .\libs\armeabi-v7a\mprop /data/local/tmp/
adb shell "chmod 755 /data/local/tmp/mprop"
# 修改init进程中的ro属性判断逻辑
adb shell "/data/local/tmp/mprop"
# 之后就可以修改任意ro属性了,如
adb shell "setprop ro.debuggable 1"
# 恢复init默认逻辑,之后就无法再修改ro属性了
adb shell "/data/local/tmp/mprop -r"
使用这个方法,终于可以调试了。