news 2026/4/24 23:26:46

Linux--Android ADB工具使用

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Linux--Android ADB工具使用

adb shell本质是通过 ADB 协议在主机和设备之间建立一个 “远程 shell 通道”,你在主机终端输入的命令会被发送到设备端执行,执行结果再返回给主机显示。这和通过 SSH 登录远程 Linux 服务器的体验类似,相当于**“远程操控设备的终端”**。

MCU(开发板)能被上位机通过 ADB 连接的核心要求是设备端运行 ADB 服务程序(adbd,并正确配置通信权限(USB 或网络),并非必须是 Android 系统。Ubuntu、Debian 等 Linux 系统也可以支持 ADB 连接,但需要手动配置(Android 默认集成了 ADB 相关组件,更易实现)。

一、ADB 连接的通用前提(所有系统均需满足)

  1. 硬件连接
    • USB 连接:设备与上位机通过数据电缆(非仅充电线)连接,设备端接口支持 USB 调试(如 Type-C)。
    • 网络连接:设备与上位机处于同一局域网(有线 / 无线),能互相 ping 通。
  2. 上位机配置
    安装 ADB 工具(Windows 可下载 Android SDK Platform Tools,Linux 可通过apt install adb安装)。
  3. 设备端核心
    运行 ADB 服务程序(adbd,Android 自带,Linux 需手动安装),并监听指定端口(USB 默认通过 USB 接口通信,网络默认监听 5555 端口)。

二、不同系统的具体设置

1. Android 系统(最便捷,原生支持 ADB)

Android 系统默认集成了adbd服务,只需开启调试权限即可:

  • 步骤 1:开启 “开发者选项”
    进入系统设置 → 关于设备 → 连续点击 “版本号” 7 次,激活 “开发者选项”。
  • 步骤 2:启用 USB 调试
    进入开发者选项 → 勾选 “USB 调试”(部分设备需同时勾选 “允许 ADB 调试”“允许网络 ADB”)。
  • 步骤 3:授权上位机
    首次通过 USB 连接时,设备会弹出 “允许 USB 调试?” 对话框,勾选 “始终允许来自此计算机” 并确认。
  • 验证
    上位机输入adb devices,若显示设备序列号(如emulator-5554),则连接成功。

2. Ubuntu/Debian 系统(需手动配置adbd

Ubuntu/Debian 等 Linux 系统默认没有adbd服务,需手动安装并配置,步骤如下:

  • 步骤 1:安装adbd服务
    adbd属于 Android 工具集,可通过以下方式安装:

    # Ubuntu/Debian 安装Android工具包(含adbd)sudoaptupdate&&sudoaptinstallandroid-tools-adb android-tools-fastboot
  • 步骤 2:配置 USB 权限(USB 连接需此步)
    Linux 系统对 USB 设备有严格权限控制,需添加 udev 规则允许普通用户访问 ADB 设备:

    1. 创建规则文件:

      sudonano/etc/udev/rules.d/51-android.rules
    2. 添加内容(允许所有用户访问 USB 调试设备):

      SUBSYSTEM=="usb", ATTR{idVendor}=="xxxx", ATTR{idProduct}=="yyyy",MODE="0666",GROUP="plugdev"

      备注xxxxyyyy需替换为设备的 USB 厂商 ID 和产品 ID,可通过lsusb命令查看)

    3. 生效规则:

      sudoudevadm control --reload-rules&&sudoudevadm trigger
  • 步骤 3:启动adbd服务
    adbd需以 root 权限运行(否则无法访问系统资源):

    # 启动USB模式的adbd(默认通过USB接口通信)sudoadbd start# 若需网络ADB,指定监听端口(如5555)sudoadbd tcpip5555
  • 步骤 4:验证连接

    • USB 连接:上位机输入adb devices,显示设备(如12345678)。
    • 网络连接:先获取设备 IP(如192.168.1.10),上位机输入adb connect 192.168.1.10:5555

3. 其他 Linux 系统(如 Buildroot、Yocto 定制系统)

这类精简系统需在编译时集成adbd组件:

  • 步骤 1:编译时启用adbd

    • Buildroot:在make menuconfig中勾选Target packages → Debugging, profiling and benchmark → adbd
    • Yocto:在自定义层中添加IMAGE_INSTALL_append = " adbd",确保编译时包含adbd
  • 步骤 2:启动时自动运行adbd

    在系统启动脚本(如/etc/init.d/rcS)中添加:

    # 启动adbd(USB模式)/usr/bin/adbd start# 或网络模式(后台运行)/usr/bin/adbd tcpip5555&
  • 步骤 3:配置权限
    同 Ubuntu,如需 USB 连接,添加 udev 规则(或简化为chmod 0666 /dev/bus/usb/*/*临时开放权限)。

三、关键差异总结

系统类型是否原生支持 ADB核心依赖主要配置点
Android系统自带adbd和调试框架开启开发者选项 + USB 调试授权
Ubuntu/Debian需手动安装adbd安装工具包 + USB 权限 + 启动服务
定制 Linux编译时集成adbd编译配置 + 启动脚本 + 权限开放

四、命令速查

  • 连接管理

    #列出所有连接设备及其序列号adb devices#如果有多个连接设备,则需要使用序列号来区分exportANDROID_SERIAL=<设备序列号>adb shellls#多设备下连接指定设备adb-s序列号 shell#网络来连接 ADB#让设备端的 adbd 重启,并在 TCP 端口 5555 处监听adb tcpip5555# 远程连接设备,设备的 IP 地址是 192.168.1.100adb connect192.168.1.100:5555# 断开连接adb disconnect192.168.1.100:5555
  • 获取系统日志adb logcat

  • root 权限:要获得 root 权限,需要先运行:

    adb shell setprop persist.sys.root_access 3 adb root

    让 ADB 的设备端切换到 root 权限模式,这样adb remount等需要 root 权限的命令才会成功。

  • 运行shell命令adb shell

  • 安装应用adb install

  • 卸载应用adb uninstall

adb help

Android Debug Bridge version 1.0.31 devices [-l] - list all connected devices connect <host>[:<port>] - connect to a device via TCP/IP Port 5555 is used by default if no port number disconnect [<host>[:<port>]] - disconnect from a TCP/IP device. Port 5555 is used by default if no port number device commands: adb push [-p] <local> <remote> - copy file/dir to device adb pull [-p] [-a] <remote> [<local>] - copy file/dir from device adb sync [ <directory> ] - copy host->device only if changed adb shell - run remote shell interactively adb shell <command> - run remote shell command adb emu <command> - run emulator console command adb logcat [ <filter-spec> ] - View device log adb forward --list - list all forward socket connections. adb forward <local> <remote> - forward socket connections adb forward --no-rebind <local> <remote> adb forward --remove <local> - remove a specific forward socket connection adb forward --remove-all - remove all forward socket connections adb jdwp - list PIDs of processes hosting a JDWP transport adb install [-l] [-r] [-d] [-s] adb uninstall [-k] <package> - remove this app package from the device adb bugreport - return all information from the device adb backup [-f <file>] [-apk|-noapk] [-obb|-noobb] [-shared|-noshared] [-all] adb restore <file> - restore device contents from the <file> backup archive adb help - show this help message adb version - show version num scripting: adb wait-for-device - block until device is online adb start-server - ensure that there is a server running adb kill-server - kill the server if it is running adb get-state - prints: offline | bootloader | device adb get-serialno - prints: <serial-number> adb get-devpath - prints: <device-path> adb status-window - continuously print device status for a specified device adb remount - remounts the /system partition on the device read-write adb reboot [bootloader|recovery] adb reboot-bootloader - reboots the device into the bootloader adb root - restarts the adbd daemon with root permissions adb usb - restarts the adbd daemon listening on USB adb tcpip <port> - restarts the adbd daemon listening on TCP port networking: adb ppp <tty> [parameters] - Run PPP over USB. environmental variables: ADB_TRACE - Print debug information. ANDROID_SERIAL - The serial number to connect to. ANDROID_LOG_TAGS - When used with the logcat option

五、注意事项

  1. adbd版本兼容性:设备端adbd版本需与上位机 ADB 工具版本接近,否则可能出现 “版本不匹配” 错误(可统一升级为最新版)。
  2. 网络 ADB 安全性:默认端口 5555 无加密,公网环境需谨慎开启(可修改端口或限制 IP 访问)。
  3. 权限问题adbd若不以 root 运行,可能无法执行su、修改系统文件等操作,需根据需求配置权限。

综上,ADB 本质是 “客户端 - 服务端” 工具,只要设备端能运行adbd并正确配置通信,无论 Android 还是其他 Linux 系统,都可被上位机 ADB 连接,只是 Android 的配置更简单。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/24 23:25:57

异环倾陷破防输出技巧 异环倾陷破防输出攻略

想在异环中打出碾压级伤害&#xff0c;核心就是吃透异环倾陷破防输出技巧&#xff0c;它是贯穿所有战斗的核心增伤逻辑&#xff0c;从日常清怪到高难BOSS战都离不开这套机制。掌握异环倾陷破防输出技巧&#xff0c;能让你快速叠满敌人倾陷值触发瘫痪破防&#xff0c;在窗口期倾…

作者头像 李华
网站建设 2026/4/24 23:21:21

Zotero-Style插件标签显示问题完整修复指南:让文献标签重回视线

Zotero-Style插件标签显示问题完整修复指南&#xff1a;让文献标签重回视线 【免费下载链接】zotero-style Ethereal Style for Zotero 项目地址: https://gitcode.com/GitHub_Trending/zo/zotero-style Zotero-Style插件为学术文献管理带来了革命性的视觉体验&#xff…

作者头像 李华
网站建设 2026/4/24 23:21:19

LED线性可控硅调光芯片VAS1106A+VAS1001调光方案

VAS1106AVAS1001是一款成熟稳定的高压线性可控硅调光方案组合&#xff0c;具有线路简单、调光效果优异、兼容性高、无频闪、过振铃波能力强等特点&#xff0c;适用于AC120V/AC230V的小体积灯具应用&#xff0c;如G4/G9光源、灯丝灯、筒灯、射灯、球泡灯、GU10等&#xff0c;已广…

作者头像 李华