ADB——修改手机默认

修改原理

  修改设置的原理主要是通过 settings 命令修改 /data/data/com.android.providers.settings/databases/settings.db 里存放的设置值。

  利用ADB的命令可以修改手机的一些默认设置,修改设置之后,运行恢复命令有可能显示仍然不太正常,可以运行 adb reboot 重启设备,或手动重启。

修改命令

修改分辨率

adb shell wm size 480x1024 # 表示将分辨率修改为 480px * 1024px。

# 恢复原分辨率
adb shell wm size reset

修改屏幕密度

adb shell wm density 160 # 表示将屏幕密度修改为 160dpi。

# 恢复原屏幕密度
adb shell wm density reset

修改显示区域

adb shell wm overscan 0,0,0,200 # 四个数字分别表示距离左、上、右、下边缘的留白像素,以上命令表示将屏幕底部 200px 留白。

# 恢复原显示区域
adb shell wm overscan reset

关闭USB调试:

adb shell settings put global adb_enabled 0

注意:用命令无法恢复,毕竟关闭了 USB 调试 adb 就连接不上 Android 设备了。去设备上手动恢复:「设置」-「开发者选项」-「Android 调试」。

允许访问非 SDK API:

adb shell settings put global hidden_api_policy_pre_p_apps 1
adb shell settings put global hidden_api_policy_p_apps 1

禁止访问非 SDK API:

adb shell settings delete global hidden_api_policy_pre_p_apps
adb shell settings delete global hidden_api_policy_p_apps

  上述个功能不需要设备获得 Root 权限。

  命令最后的数字的含义:

含义
0 禁止检测非 SDK 接口的调用。该情况下,日志记录功能被禁用,并且令 strict mode API,即 detectNonSdkApiUsage() 无效。不推荐。
1 仅警告——允许访问所有非 SDK 接口,但保留日志中的警告信息,可继续使用 strick mode API。
2 禁止调用深灰名单和黑名单中的接口。
3 禁止调用黑名单中的接口,但允许调用深灰名单中的接口。

状态栏和导航栏的显示隐藏

命令:

adb shell settings put global policy_control <key-values>

 

<key-value> 可由如下几种键及其对应的值组成,格式<key1>=<value1>:<key2>=<value2>

key 含义
immersive.full 同时隐藏
immersive.status 隐藏状态栏
immersive.navigation 隐藏导航栏
immersive.preconfirms ?

 

这些键对应的值可则如下值用逗号组合:

value 含义
apps 所有应用
* 所有界面
packagename 指定应用
-packagename 排除指定应用

  

例如:

# 设置在所有界面下都同时隐藏状态栏和导航栏。
adb shell settings put global policy_control immersive.full=*

# 设置在包名为 com.package1 和 com.package2 的应用里隐藏状态栏,在除了包名为 com.package3 的所有应用里隐藏导航栏。
adb shell settings put global policy_control immersive.status=com.package1,com.package2:immersive.navigation=apps,-com.package3

           

猜你喜欢

转载自www.cnblogs.com/zhuminghui/p/10515516.html