ADB 操作命令详解及用法大全(四)

2024-04-18 16:09:00 浏览数 (2)

查看 Android 设备系统属性

代码语言:javascript复制
adb shell getprop [options]

可以查看 Android 设备系统属性之外,还可以设置系统属性,设置系统属性的基本命令格式是:

代码语言:javascript复制
adb shell setprop <key> <value>
查看设备型号
代码语言:javascript复制
adb shell getprop ro.product.model
查看设备电池状况
代码语言:javascript复制
adb shell dumpsys battery
查看设备屏幕分辨率
代码语言:javascript复制
adb shell wm size
查看设备屏幕密度
代码语言:javascript复制
adb shell wm density
查看设备显示屏参数
代码语言:javascript复制
adb shell dumpsys window displays
查看设备 android_id
代码语言:javascript复制
adb shell settings get secure android_id
查看设备 Android 系统版本
代码语言:javascript复制
adb shell getprop ro.build.version.release
查看设备 IP 地址
代码语言:javascript复制
adb shell ifconfig | grep Mask

在有的设备上这个命令没有输出,如果设备连着 WiFi,可以使用如下命令来查看局域网 IP:

代码语言:javascript复制
adb shell ifconfig wlan0
  • 1

如果以上命令仍然不能得到期望的信息,那可以试试以下命令(部分系统版本里可用):

代码语言:javascript复制
adb shell netcfg
查看设备 Mac 地址
代码语言:javascript复制
adb shell cat /sys/class/net/wlan0/address
查看设备 CPU 信息
代码语言:javascript复制
adb shell cat /proc/cpuinfo
查看设备内存信息
代码语言:javascript复制
adb shell cat /proc/meminfo

查看设备更多硬件与系统属性

设备的更多硬件与系统属性可以通过如下命令查看:

代码语言:javascript复制
adb shell cat /system/build.prop

我们还可以adb shell getprop <属性名> 命令单独查看 ,下面是一些命令的含义;

ro.build.version.sdk SDK 版本

ro.build.version.release Android 系统版本

ro.build.version.security_patch Android 安全补丁程序级别

ro.product.model 型号

ro.product.brand 品牌

ro.product.name 设备名

ro.product.board 处理器型号

ro.product.cpu.abilist CPU 支持的 abi 列表[节注一]

persist.sys.isUsbOtgEnabled 是否支持 OTG

dalvik.vm.heapsize 每个应用程序的内存上限

ro.sf.lcd_density 屏幕密度

一些小厂定制的 ROM 可能修改过 CPU 支持的 abi 列表的属性名,如果用 ro.product.cpu.abilist 属性名查找不到,可以这样试试:

代码语言:javascript复制
adb shell cat /system/build.prop | grep ro.product.cpu.abi

修改设置

注:修改设置之后,运行恢复命令有可能显示仍然不太正常,可以运行 adb reboot 重启设备,或手动重启。

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

改分辨率
代码语言:javascript复制
adb shell wm size 480x1024

恢复原分辨率命令:

代码语言:javascript复制
adb shell wm size reset
修改屏幕密度
代码语言:javascript复制
adb shell wm density 160
  • 1

表示将屏幕密度修改为 160dpi。 恢复原屏幕密度命令:

代码语言:javascript复制
adb shell wm density reset
修改显示区域
代码语言:javascript复制
adb shell wm overscan 0,0,0,200
  • 1

四个数字分别表示距离左、上、右、下边缘的留白像素,以上命令表示将屏幕底部 200px 留白。 恢复原显示区域命令:

代码语言:javascript复制
adb shell wm overscan reset
修改关闭 USB 调试模式
代码语言:javascript复制
adb shell settings put global adb_enabled 0

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

修改允许/禁止访问非 SDK API

允许访问非 SDK API

代码语言:javascript复制
adb shell settings put global hidden_api_policy_pre_p_apps 1

adb shell settings put global hidden_api_policy_p_apps

禁止访问非 SDK API:

代码语言:javascript复制
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 禁止调用黑名单中的接口,但允许调用深灰名单中的接口。

修改状态栏和导航栏的显示隐藏
代码语言:javascript复制
adb shell settings put global policy_control <key-values>

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

key 含义

immersive.full 同时隐藏

immersive.status 隐藏状态栏

immersive.navigation 隐藏导航栏

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

value

含义

apps

所有应用

*

所有界面

package-name

指定应用

-package-name

排除指定应用

例如:

代码语言:javascript复制
adb shell settings put global policy_control immersive.full=*

表示设置在所有界面下都同时隐藏状态栏和导航栏。

代码语言:javascript复制
adb shell settings put global policy_control immersive.status=com.package1,com.package2:immersive.navigation=apps,-com.package3

表示设置在包名为 com.package1com.package2 的应用里隐藏状态栏,在除了包名为 com.package3 的所有应用里隐藏导航栏。

0 人点赞