在 Android Shell 中对一些系统隐藏或因 bug 而无法正常显示的设置项进行设置。
本文以 MIUI 13 22.5.17 Pre (Android 12/Patched 22-05-01)版本为例。
对系统设置不正确的更改可能导致数据丢失!
Settings provider
Android 的设置是以键值对存储在位于/data
下 XML 文件的形式存储在设备中的,Settings provider 提供了对其读写的能力。
使用方法
官方帮助说明:
1 | Settings provider (settings) commands: |
简单来说分成几个部分:获取设置项get
和list
、添加设置项put
、移除设置项delete
和重置设置项reset
。
其中有个参数是NAMESPACE
,该参数的可用值为系统相关system
,安全相关secure
,通用设置global
,在一些国产定制 ROM 中可能会部分混淆系统设置和通用设置。
--user
参数指定用户ID,国产定制一般是0
,原生操作系统可能是用户名。这里提一嘴,国产很多操作系统会使用原生的工作空间功能,工作空间的用户ID和设置项都是不同于主用户的。这个参数也可以填current
,指目前登录用户。
部分设置项说明
这里记录的设置项仅为本人所用,可能不适用于其他版本的系统。
设置私人 DNS
命名空间:Global。
private_dns_mode
- 说明:
- 设置私人DNS模式。
- 可选值:
- 已关闭:
off
; - 自动:
opportunistic
; - 提供商的主机名:
hostname
。
- 已关闭:
- 说明:
private_dns_specifier
- 说明:
- 若
private_dns_mode
值为hostname
时,该值指定自定义的主机名。
- 若
- 说明:
示例(将私人DNS设定为自定义主机名且主机名为dot.lxnchan.cn
):
1 | lxnchan-testbench-vmware_android12_a33:/ $ settings put global private_dns_mode hostname |
修改最新版MIUI版本号
这一项的意义是修改目前系统中存储的最新系统的版本号从而达到消除“系统更新”的通知。
命名空间:Global。
设置项:miui_new_version
。
可设置为等于当前版本号或低于当前版本号,注意设置好之后最好不要再打开“系统更新”,否则设置项会被覆盖。
示例(将最新版本号设置为22.5.17
):
1 | lxnchan-testbench-vmware_miui220517_a10:/ $ settings put global miui_new_version 22.5.17 |