以下信息获取方法都是在设备 Redmi K30 Pro 以及 Crdroid Rom 上进行
如在联发科,华为设备上,可能部分命令无法使用。且不保证所有命令都可以使用
ADB Base command
1
2
3
| adb -s [serial/IP:Port] #使用指定的序列号/地址进行连接
adb devices -l #获取已连接的设备, -l 有更细节的参数
adb connect #ip:port 通过无线网络连接
|
state: authorizing (等待授权) ,device(已连接) no device(无设备) ,offline(未连接/无响应)
1
2
3
4
5
6
| usb: #有此参数表示该设备通过USB连接
product: lineage_lmi #设备的产品名称是lineage_lmi,它似乎运行的是LineageOS自定义ROM。
model: Redmi_K30_Pro #设备的模型名称是Redmi K30 Pro。
device: lmi #设备的代号
transport_id: 11 #传输ID为11
#由以下三个属性组成:ro.product.name ro.product.model ro.product.device
|
https://www.cnblogs.com/1996swg/p/9810424.html 要看一下
Get Hardware info
1
2
3
4
5
| adb shell getprop ro.product.manufacturer #获取设备制造商
adb shell getprop ro.product.model #获取设备型号
adb shell getprop ro.product.name #获取设备产品名称
adb shell getprop ro.product.device #获取设备代号
adb shell getprop ro.product.board #获取主板型号
|
CPU info
1
2
3
4
5
6
7
8
9
10
| adb shell getprop ro.soc.manufacturer #获取soc制造商
adb shell getprop ro.soc.model #获取soc名称
adb shell cat /sys/devices/soc0/vendor #获取soc0的制造商信息
adb shell cat /sys/devices/soc0/family #获取soc0的家族系列
adb shell cat /sys/devices/soc0/chip_name #获取soc0的芯片名称
adb shell cat /sys/devices/system/cpu/possible #获取 cpu 核心数
adb shell cat /proc/stat #获取 cpu 运行状态
adb shell cat /proc/cpuinfo
adb shell su -c cat '/dev/block/bootdevice/by-name/logfs | grep "Chip"' #芯片,版本,序列号(疑似联发科不可用)
|
processor: 0/1 表示第几个核。
BogoMIPS:伪MIPS,用于测量CPU速度
Features:表示当前CPU所支持的特性
CPU architecture:7表示arm-v7,8表示arm-v8
More CPU info
1
| adb shell cat /sys/devices/system/cpu/cpufreq/policy[id]/
|
affected_cpus
— 这一组policy可调度哪个核心cpuinfo_min_freq
— CPU 最小可用频率cpuinfo_max_freq
— CPU 最大可用频率scaling_driver
— CPUfreq 的驱动程序scaling_available_governors
— 列出CPU可用的调度器scaling_available_frequencies
— 列出CPU的可用频率scaling_governor
— 正在使用的CPUfreq调度器 (可更改)cpuinfo_cur_freq
— 显示 CPU 当前的处理频率scaling_min_freq
— 当前最小频率 (可更改)scaling_max_freq
— 当前最大频率 (可更改)
使用 echo [调度器] > /sys/devices/system/cpu/cpufreq/policy[id]/scaling_governor
(root)可以更改调度器
频率同理,但无论更改哪个,必须是可用的
1
| adb shell 'su -c "echo xxx > file"'
|
possible 可能的CPU核心数
present 展示的CPU核心数
modalias :CPU 类型和 feature
uevent :展示(?)信息 (需要Root) 作用不详
ofline online 下线/上线的CPU
Get GPU info
1
2
3
4
| adb shell dumpsys gfxinfo #信息过多需要精简(无用信息)
adb shell dumpsys graphicsstats #应用显卡占用历史信息(无用信息)
adb shell dumpsys SurfaceFlinger |grep GLES #显卡型号及OpenGL版本
adb shell cmd gpu vkjson # vulkan 信息(部分)(未来可能弃用)
|
在 /sys/kernel/gpu
目录下,可以修改调度器及频率信息(更改和读取均需要Root) 华为设备可能不在此目录
gpu_available_governor
— 可用的调度器列表gpu_governor
— 当前使用的调度器 (可更改)gpu_freq_table
— 支持频率列表gpu_min_clock
— 当前最小频率 (可更改)gpu_max_clock
— 当前最大频率 (可更改)gpu_busy
— 当前占用率gpu_clock
— 当前处理频率,单位Mhz
gpu_tmu
— 不知道
上述目录是软链接,真实目录为:
/sys/devices/platform/soc/3d00000.qcom,kgsl-3d0/devfreq/3d00000.qcom,kgsl-3d0
但使用真实目录可能会造成不兼容
OpenGL和Vulkan的更多信息只能通过代码实现
from Google:
如果设备包含 Vulkan 驱动程序,则该设备需要声明 FEATURE_VULKAN_HARDWARE_LEVEL
和 FEATURE_VULKAN_HARDWARE_VERSION
系统功能
Get Memory info
1
2
3
4
| adb shell cat /proc/meminfo #参数太多,等待理解
adb shell dumpsys procstats #内存占用情况,等待检查更多参数
adb shell dumpsys meminfo -h #等待检查更多参数
adb shell su -c cat '/dev/block/bootdevice/by-name/logfs | grep "DDR Frequency"' #疑似获取内存频率 (疑似联发科不可用)
|
Get Disk info
1
2
3
| adb shell dumpsys diskstats #磁盘状态
adb shell df #目前信息还少,需要其他方案
adb shell dd "if=/dev/block/bootdevice/by-name/recovery of=/sdcard/recovery.img" #备份recovery 到 /sdcard
|
Get Screen info
1
2
3
| adb shell dumpsys display #大量显示相关信息 (需筛选)
adb shell dumpsys SurfaceFlinger #图形合成器信息(包含屏幕信息,等筛选
adb shell getprop ro.sf.lcd_density #疑似获取默认屏幕密度
|
wm Command
1
2
3
4
| adb shell wm size #显示或更改尺寸
adb shell wm size reset #重置屏幕尺寸
adb shell wm density #显示或更改密度
adb shell wm density reset #重置屏幕密度
|
Get Battery info
1
2
| adb shell dumpsys battery -h #等待检查更多参数
adb shell dumpsys batterystats -h #等待检查更多参数
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| From adb shell dumpsys battery
AC powered: true #表示交流电充电 true为正在充电,false为未在充电
USB powered: false #表示USB充电,规则同上,省略
Wireless powered: false #表示无线充电
Max charging current: 1742674 #当前充电电流, 这里为 1742674 µA 微安培 换算为 1742.674 mA
Max charging voltage: 4289539 #当前充电电压, 这里为 4289539 nV 纳伏特 换算为 4.289539 mV
Charge counter: 2015801 #疑似单位为 µAh 微安时 换算为 2015.801mAh 充满电时为 3622.000mAh 可能是损耗
status: 2 #电池状态 1: 未知 2: 正在充电 3: 正在放电 4: (已连接)但未充电 5:已充满
health: 2 #电池健康 1: 未知 2: 良好 3: 过热 4: 已损坏 5: 电压过高。6: 未知故障。7: 温度过低
present: true #true表示已安装电池
level: 56 ##当前电池电量
scale: 100 ##最大电池电量
voltage: 4289 #电池电压
temperature: 307 #温度,这里是30.7°C
technology: Li-poly #电池技术,这里是锂电池
|
设计电池电量需要实用代码实现,充电信息可能只能使用Root获取
Use root Get Battery info
1
2
3
| adb shell su -c cat /sys/class/power_supply/bms/uevent
adb shell su -c cat /sys/class/power_supply/battery/uevent
adb shell su -c cat /sys/class/power_supply/usb/uevent
|
Get Camera info
1
| adb shell dumpsys media.camera #等待信息筛选
|
更多信息需要代码实现
Get Network info
1
2
3
4
| adb shell ifconfig #可以使用
adb shell dumpsys wifi #大量无用信息,懒得筛选
adb shell dumpsys telecom #可能有相关信息
adb shell dumpsys telephony.registry #可能有相关信息
|
目前无进度,使用代码实现,使用root可以使用iw
命令()
Get Bluetooth info
1
| adb shell dumpsys bluetooth_manager #一条命令基本足以
|
Get Audio info
1
| adb shell dumpsys media.audio_policy
|
Get OtherDevice info
1
2
| adb shell dumpsys input #输入设备
adb shell dumpsys sensorservice #传感器
|
Get System info
1
| adb shell pm list features #系统所支持的特性
|
Get Build info
1
2
3
4
5
6
7
8
9
10
11
| adb shell getprop ro.build.version.release # Android 版本号
adb shell getprop ro.build.version.sdk # API 版本
adb shell getprop ro.build.version.security_patch # 安全更新的日期
adb shell getprop ro.build.id # 构建的版本号
adb shell getprop ro.build.display.id # 显示的构建版本号
adb shell getprop ro.build.fingerprint # 构建的指纹
adb shell getprop ro.build.date # 构建时间
adb shell getprop ro.build.date.utc # 以unix时间戳显示的构建时间
adb shell getprop ro.build.tags # 构建的标签
adb shell getprop gsm.version.baseband # 获取基带信息
adb shell uname -a # 获取内核版本
|
Get permission info
1
2
| adb shell pm list permission-groups #列出所有权限组
adb shell pm list permissions #列出所有权限
|
Get Users info
1
2
3
4
5
6
7
8
| adb shell pm list users #列出所有用户
adb shell pm create-user #创建用户
adb shell pm remove-user #删除用户
adb shell pm get-max-users #获取最大用户数
adb shell setprop fw.max_users 10 #设置最大用户数为10 (需要root)
adb shell pm set-user-restriction #设置用户限制
adb shell pm get-max-running-users #获取系统可以运行的最大用户数
adb shell dumpsys activity users #活动中的用户信息
|
Get Other info
1
2
3
4
| adb shell dumpsys media.player # 编解码器信息
adb shell dumpsys media.extractor # 编解码器信息
adb shell dumpsys account # 获取用户下已登陆账户信息
adb shell dumpsys webviewupdate #WebView信息
|
Settings
当命令是setings get
为获取 put
为修改
使用 setprop
可以更改prop内容
1
2
3
4
5
| adb shell getprop persist.sys.locale # 设置的语言
adb shell getprop persist.sys.timezone # 设置的时区
adb shell settings get secure system_locales # 系统的语言地区信息(?)
adb shell settings get global device_name # 用户定义的设备名称
adb shell settings get global zram_enabled # 是否启用zram
|
Captive Protal
网络验证功能 修改后需要重启网络
1
2
3
4
5
| adb shell settings get global captive_portal_detection_enabled # 1为启用 0为禁用
adb shell settings get global captive_portal_use_https # 是否启用https
adb shell settings get global captive_portal_server # 验证服务地址
adb shell settings get global captive_portal_http_url
adb shell settings get global captive_portal_https_url
|