说明:仅供学习使用,请勿用于非法用途,若有侵权,请联系博主删除
作者:zhu6201976
目录
一、背景
二、如何解决?
三、操作步骤
一、背景
Android 10 开始的限制:ro.debuggable
是只读属性
从 Android 9(部分设备)和 Android 10 开始,Google 加强了对系统属性的保护:
-
ro.debuggable
是 只读属性,保存在只读的boot.img
中(准确地说,是 boot 的default.prop
区域或内核命令行)。 -
不能通过
setprop
、mprop
或任何用户态工具真正修改这个属性。
二、如何解决?
要真正开启 ro.debuggable
,通常需要更深层次的系统修改,例如:
-
修改 boot.img 并重新刷写 (Modify and Re-flash boot.img): 这是最常见也是最有效的方法,但需要解锁 Bootloader 并具备一定的 Android 刷机知识。
- 解锁 Bootloader。
- 获取 Boot Image: 从官方固件中提取
boot.img
文件。 - 修改
default.prop
: 在boot.img
内部,有一个default.prop
文件,其中包含ro.debuggable
属性的定义。你需要解包boot.img
,修改这个文件,将ro.debuggable=0
改为ro.debuggable=1
。 - 重新打包并刷写: 将修改后的
boot.img
重新打包,并通过fastboot
命令刷写到手机上。 - 注意: 这种方法会使您的设备脱离官方支持,并且可能会影响 OTA 更新。
-
使用 Magisk 等工具进行修改 (Using Magisk or Similar Tools): 某些 root 解决方案(如 Magisk)提供了修改系统属性的方法,有时甚至可以实现对
ro.
属性的“欺骗性”修改,让某些应用或服务认为ro.debuggable
为1
。你可以尝试安装 Magisk,然后使用其resetprop
命令来尝试修改ro.debuggable
。- 安装 Magisk: 这也需要解锁 Bootloader 并刷入修补过的
boot.img
。 - 使用
resetprop
: 在 Magisk 环境下,可以尝试resetprop ro.debuggable 1
。但同样,对于真正的只读属性,这可能只是在某些层面上生效,并不能改变底层系统行为。
- 安装 Magisk: 这也需要解锁 Bootloader 并刷入修补过的
三、操作步骤
此处通过方案二 使用 Magisk 工具进行修改 亲测有效
手机型号:Pixel3
系统版本:Android10
操作步骤:
1.安装Magisk GitHub - topjohnwu/Magisk: The Magic Mask for Android
2.进入手机shell 执行以下命令:
resetprop ro.debuggable 1
stop
start
getprop ro.debuggable 发现已成功修改为1