因爲爲了調試程序,需要修改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"
使用這個方法,終於可以調試了。