硬软件情况:
NEXUS 5X 32G
Android7.1 + SuperSU+ Xposed Install(XDebuggable)
问题:开启DDMS时发现进程无法访问,经过一番搜索发现是ro.debuggable值为0导致。
# adb shell "/data/local/tmp/mprop"
Usage: propmod [prop_name] [prop_value]
e.g.: propmod ro.secure 0
采取github方法未果,转向看雪论坛,下载mprop170119.zip 解压后上传至手机
└─# adb push mprop /data/local/tmp
mprop: 1 file pushed, 0 skipped. 90.9 MB/s (13784 bytes in 0.000s)
按看雪论坛流程
# 修改init进程中的ro属性判断逻辑
adb shell "/data/local/tmp/mprop"
# 之后就可以修改任意ro属性了,如
adb shell "setprop ro.debuggable 1"
结果未成功
└─# adb shell getprop ro.debuggable
└─# adb shell "/data/local/tmp/mprop"
start hacking ...
target mapped area: 0x0-0x0
!! ptrace : Operation not permitted
无意中尝试 -v参数成功
0012afb0 34 82 40 00 00 00 00 00 01 00 00 00 00 00 00 00 4.@.............
0012afc0 01 00 00 00 00 00 00 00 6c 82 40 00 00 00 00 00 ........l.@.....
0012afd0 01 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 ................
0012afe0 dc 82 40 00 00 00 00 00 00 00 00 00 00 00 00 00 ..@.............
0012aff0 00 00 00 00 00 00 00 00 0c 83 40 00 00 00 00 00 ..........@.....
>> patching at: 0x4f6629 [0x2e6f72 -> 0x002e6f73]
>> patched! reread: [0x4f6629] => 0x002e6f73
bullhead:/data/local/tmp # getprop ro.debuggable
0
bullhead:/data/local/tmp # setprop ro.debuggable 1
bullhead:/data/local/tmp # getprop ro.debuggable
1
bullhead:/data/local/tmp # stop;start
再次开启DDMS发现进程能正常显示在列表中
缺点:无法持久化,手机重启需要重设。另外在重启adbd服务前,启动DDMS也能看到手机中新启动的进程信息,但无法看到启动前的进程,有点非root用户的感觉。重启服务后就能完整看到手机中所有进程信息。