ADB 工具全套工控实战:设备连接、日志抓取、文件推送、权限调试、重启刷机指令

发布时间:2026/7/26 0:10:11
ADB 工具全套工控实战:设备连接、日志抓取、文件推送、权限调试、重启刷机指令 ADB 工具全套工控实战设备连接、日志抓取、文件推送、权限调试、重启刷机指令adb 是工控开发者的瑞士军刀——不会玩 adb 的安卓工控开发约等于不会用万用表的硬件工程师。今天咱们把 adb 从头到尾盘一遍全是现场实战会用到的真东西。一、adb 基本原理与连接方式1.1 adb 架构adbAndroid Debug Bridge是个 C/S 架构的工具分为三部分ClientPC 端你在命令行敲的adb命令负责发送指令ServerPC 端后台进程管理 Client 和 Daemon 之间的通信端口 5037Daemon设备端 adbd跑在安卓设备上的守护进程负责执行指令一句话理解PC 上的 adb client → adb server → USB/网络 → 设备上的 adbd → 执行操作。1.2 USB 连接最常用的方式一条 USB 线解决。前提是设备开启了USB 调试# 查看已连接设备adb devices# 输出示例List of devices attached 1234567890ABCDEF device如果显示unauthorized说明设备上弹出了授权对话框需要在设备屏幕上点允许。工控设备如果没有触摸屏怎么办这就需要网络 adb。1.3 网络 adb 连接工控设备常用的远程调试方式不需要 USB 线# 先通过 USB 连上设置 adbd 监听 TCP 端口adb tcpip5555# 然后通过网络连接假设设备 IP 是 192.168.1.100adb connect192.168.1.100:5555# 拔掉 USB 线网络调试继续生效adb devices# 192.168.1.100:5555 device工控实战场景设备装在机柜里你想拆 USB 线得把整个柜子拆开。直接网络 adb 连上在工位上喝着茶就把问题调了。断开连接adb disconnect192.168.1.100:5555二、常用设备管理命令命令用途工控场景adb devices列出所有连接设备确认设备是否在线adb connect IP:PORT网络连接设备远程调试adb disconnect IP:PORT断开网络连接释放连接adb -s SERIAL shell指定某台设备执行命令多设备同时连接时指定adb reboot重启设备更新固件后重启adb reboot recovery重启到 Recovery 模式刷机adb reboot bootloader重启到 Fastboot 模式烧录 boot.img多设备管理工控测试台上可能同时挂着三四台平板这时候必须用-s指定设备adb devices# 192.168.1.100:5555 device# 192.168.1.101:5555 deviceadb-s192.168.1.100:5555 shell# 进入 100 这台adb-s192.168.1.101:5555 logcat# 看 101 的日志三、日志抓取实战logcat 的工控用法工控设备出问题第一反应不是改代码是抓日志。3.1 基本过滤原厂 logcat 输出是海量的不加过滤等于没看# 只显示 Error 级别日志adb logcat *:E# 按 tag 过滤——只显示自己 APP 的日志adb logcat-sMyAppTag# 清除旧日志从头开始看adb logcat-cadb logcat# 过滤多个 tagadb logcat MyServiceTag:D MyActivityTag:V *:S# DDebug, VVerbose, SSilence只显示明确指定的 tag3.2 按进程/包名过滤工控 APP 一般包名是固定的# 先通过包名找到 PIDadb shell pidof com.example.industrialcontrol# 只看这个进程的日志adb logcat--pid123453.3 保存日志到文件这是最常用的——设备在客户现场出问题让客户帮忙抓个日志发回来# 抓取全部日志保存到文件adb logcat-dd:/logs/factory_crash_20240301.txt# 只抓最近 500 行adb logcat-t500d:/logs/latest.txt# 长时间录制日志CtrlC 停止adb logcat-vtimed:/logs/long_run.txt参数说明参数含义-d输出后退出dump 模式-t N只输出最近 N 行-v time显示时间戳-v threadtime显示线程和时间推荐-f FILE直接写入设备本地文件3.4 工控专用日志技巧# 抓取内核日志驱动问题必看adb shelldmesgd:/logs/kernel.log# 抓取 ANR 日志APP 卡死无响应adb shellls/data/anr/ adb pull /data/anr/anr_2024-03-01-10-30-00 ./anr_logs/# 抓取 tombstoneNative CrashJNI 层崩溃adb shellls/data/tombstones/ adb pull /data/tombstones/ ./tombstones/# 抓取系统启动日志分析开机慢、服务启动失败adb logcat-bevents-dd:/logs/events.txt四、文件推送与拉取工控设备的文件传输场景极多推送更新包、拉取配置文件、导出数据库。4.1 push推送文件到设备# 推送 APK 到设备adb push C:/build/app-debug.apk /sdcard/# 推送配置文件adb push C:/config/serial_config.json /sdcard/config/# 推送整个目录adb push C:/update_package /sdcard/update_package/# 推送到系统目录需要 rootadb root adb remount adb push hosts /system/etc/hosts工控实战现场升级不需要插 U 盘直接 wifi 远程推送 APK然后pm install静默装好——流水线不用停。4.2 pull从设备拉取文件# 拉取日志adb pull /sdcard/logs/ ./local_logs/# 拉取数据库文件调试数据问题adb pull /data/data/com.example.app/databases/app.db ./# 拉取系统配置adb pull /system/build.prop ./4.3 安装与卸载# 正常安装adbinstallapp-release.apk# 覆盖安装保留数据adbinstall-rapp-release.apk# 降级安装adbinstall-dapp-release.apk# 允许 testOnly 标记的包adbinstall-tapp-debug.apk# 卸载adb uninstall com.example.industrialcontrol工控常用组合拳——远程静默升级adb connect192.168.1.100:5555 adb push update.apk /sdcard/ adb shell pminstall-r/sdcard/update.apk adb shellrm/sdcard/update.apk adbreboot五、权限调试shell 的深渊adb shell是进入设备内部的入口。工控开发中 shell 的使用频率远高于手机开发。5.1 基础操作# 进入 shelladb shell# 执行单条命令不进入交互模式adb shellls-la/dev/ttyS* adb shellcat/proc/cpuinfo adb shell dumpsys battery# 查看电池电源适配器状态adb shell dumpsys meminfo com.example.app# 内存占用adb shelltop-n1# 进程资源占用5.2 su 提权工控设备通常已 root可以直接suadb shellsu# 现在你是 root 了可以为所欲为# 修改文件权限chmod666/dev/ttyS1# 给串口设备读写权限chmod777/sys/class/gpio/export# 允许导出 GPIO# 修改系统属性setprop persist.sys.timezone Asia/Shanghai# 强制停止 APPam force-stop com.example.industrialcontrol# 启动 APPam start-ncom.example.industrialcontrol/.MainActivity5.3 SELinux 与权限问题工控设备有时会遇到Permission denied就算 root 也不行——这是 SELinux 在拦截# 查看 SELinux 状态adb shell getenforce# Enforcing 拦截中# Permissive 仅告警不拦截# 临时关闭重启失效adb shell setenforce0# 查看 SELinux 拒绝日志adb shelldmesg|grepavc六、重启与刷机指令工控设备固件升级是家常便饭这组命令必须烂熟于心。# 普通重启adbreboot# 重启到 Recovery刷机模式adbrebootrecovery# 重启到 Bootloader线刷模式adbrebootbootloader# Fastboot 模式下的操作fastboot devices# 查看设备fastboot flash boot boot.img# 刷 boot 分区fastboot flash system system.img# 刷 system 分区fastboot flash recovery recovery.img fastbootreboot# 重启出 FastbootRKDevTool瑞芯微工控常用很多工控板子用的是瑞芯微方案刷机不走 Fastboot而是用RKDevTool工具通过Loader模式刷写。这种设备需要按住物理按键上电进入 MASKROM 模式PC 端用 RKDevTool 加载固件一键烧录七、实用 adb 技巧汇总表场景命令备注截图adb exec-out screencap -p screen.png工控无屏设备远程截屏录屏adb shell screenrecord /sdcard/demo.mp4CtrlC 停止adb pull拉取模拟按键adb shell input keyevent 2626电源键3Home4返回模拟触摸adb shell input tap 500 300模拟点击坐标 (500,300)获取分辨率adb shell wm size确认设备屏幕分辨率获取 DPIadb shell wm densityUI 适配需要查看安装列表adb shell pm list packages加-3只看第三方查看进程adb shell ps -A | grep com.example确认 APP 在后台是否活着清除应用数据adb shell pm clear com.example.app相当于卸载重装设置系统时间adb shell date 030110302024.00格式月日时分年.秒无线投屏scrcpy开源工具工控神器无屏操作全靠它八、总结adb 这东西说简单就简单——连上、敲命令、看结果。说深也深——内核日志、SELinux 策略、Fastboot 刷写每一样都够你研究一阵的。工控开发的日常一半时间写代码一半时间用 adb 在设备上摸排滚打。把这篇文章里的命令练熟了你和设备之间的距离就差一条网线。