47

setprop <key> <value>我可以使用以下命令在 Android 手机(具有适当权限)上设置持久系统属性:

$ adb shell setprop persist.this.is.my.property testing

然后我可以确认该属性已设置:

$ adb shell getprop persist.this.is.my.property
testing

但是现在我无法删除密钥(因为在密钥开始时存在持久性,在手机重新启动后它就在那里)。没有 unsetprop 或 rmprop 或类似的东西。尝试将值设置为 nil 或 null 将其设置为值并将其留空会提示帮助说明。

有谁知道如何在设置后从命令行取消设置系统属性?

4

6 回答 6

57

在 Android 9 Pie 之前,持久属性存储为文件并且可以删除。

rm /data/property/persist.this.is.my.property && reboot

从 Android 9 Pie 开始,持久属性存储在单个文件中(提交16fad42)并且只能取消设置。

setprop persist.this.is.my.property \"\" && reboot
于 2013-05-13T07:46:11.877 回答
8
adb shell setprop persist.this.is.my.property \"\"
adb shell reboot

更改了属性值,因此它不会使用它以前的值。
空引号(“”)对我不起作用,我不得不转义它们(这是在 bash 中)。

于 2018-11-19T02:19:37.973 回答
5

您可以删除该属性adb shell setprop persist.this.is.my.property ""

于 2015-09-13T05:06:00.050 回答
1

编辑文件/data/property/persistent_properties对我有用(LineageOS 18.1,Android 11),但可能不值得冒损坏文件的风险......如果你朝那个方向走,我建议你看adb logcat一下persistent_properties代码的输出是否有任何输出警告或错误。

这对我有用:

adb root
adb pull /data/property/persistent_properties .

在您喜欢的编辑器中编辑文件。该属性将在其自己的行上,删除该行和之前的行(应该是单个字符)。

adb push persistent_properties /data/property/persistent_properties
adb shell
# chmod 0600 /data/property/persistent_properties
# getprop persist.vendor.qfp

记下persist.vendor.qfp; 如果您没有这个,请从 中选择另一个getprop | grep '^[[]persist\.。我有“真实”。现在,要强制重写文件,请更改现有属性并将其更改回更改之前的值:

# setprop persist.vendor.qfp t
# setprop persist.vendor.qfp true

https://stackoverflow.com/a/16517098/1214422 (当前接受的答案)中链接的代码似乎没有写入或期望这些换行符,因此该文件的格式必须从那时起发生变化。

于 2022-01-11T00:11:23.317 回答
-3

这个对我有用。
在 macOS 上:
echo -e "setprop wrap.$PACKAGE_NAME \"\"\n exit" > .temp adb shell < .temp rm ./.temp

在安卓上:
setprop wrap.$PACKAGE_NAME ""

于 2017-11-22T10:11:41.087 回答
-6

只需重新启动设备,该属性将取消设置。

于 2014-11-12T19:35:55.943 回答