资讯动态

adb驱动工具集安装配置全指南:Windows与Linux环境搭建及避坑

发布时间:2026/10/16 11:05:35 来源:尧图企业网站定制
简介这份 adb 驱动工具集面向 Android 开发与调试人员尤其适合使用友坚 android210、Exynos4412 等早期平台进行设备连接、应用调试与日志分析的工程师。它整合了 adb 与 adb shell 所需的核心组件支持 USB 与远程网络两种调试方式可完成文件传输、设备控制、应用安装卸载及日志采集等常见任务。压缩包为 rar 格式共 54 个文件约 15.39MB其中包含 15 个 dll 动态库、13 个 inf 驱动配置、10 个 sys 系统文件、3 个 exe 可执行程序以及若干说明文档覆盖 Windows 平台 USB 通信、驱动安装与命令行工具等模块。目前已有 791 人学习下载。对于需要快速搭建调试环境、排查驱动兼容问题或进行无线远程调试的读者这份工具集提供了较完整的驱动与脚本支持可减少逐个查找组件的时间成本。1. 从一台不认手机的开发板说起adb 驱动工具集到底装什么上周帮一个做嵌入式的小团队调一块 Exynos4412 开发板板子跑的是 Android 4.0.4系统起来之后插上 USB 线开发机这边lsusb能看到设备但adb devices就是一片空白。换线、换口、重启 adb server 全试了一遍最后发现是开发机压根没装对驱动adb 工具集本身也是东拼西凑的版本。这种场景在 Android 底层开发和板级调试里太常见了——adb 驱动工具集不是装一个 exe 就完事它包含 USB 驱动、adb 可执行文件、fastboot 以及配套的 udev 规则任何一环版本对不上设备就认不出来。这套环境适合三类人刚拿到开发板不知道怎么连电脑的嵌入式新手、需要在 Windows 和 Linux 之间来回切换的驱动调试人员、以及要批量部署测试机的产线运维。装不好最直接的后果就是adb shell进不去logcat 抓不到fastboot 刷不了整个调试链路直接断掉。下面按我实际装过的顺序把版本选择、驱动安装、权限配置和验证方法一步步拆开。2. 环境准备与版本选择adb 驱动工具集装之前先对表2.1 确认主机系统和目标 Android 版本adb 驱动工具集的安装方式跟主机系统强相关Windows 和 Linux 走的是两条完全不同的路。Windows 下核心是 USB 驱动签名和 inf 文件匹配Linux 下核心是 udev 规则和用户组权限。目标设备的 Android 版本又决定了 adb 协议版本的下限——Android 4.0 到 4.3 用 adb 1.0.31 就够Android 4.4 以后建议 1.0.36 以上Android 8.0 以后必须 1.0.40 以上否则会出现adb server version doesnt match或者直接连上就断。我一般会先让读者跑两条命令确认现状# 查看主机系统版本确认是 Windows 10/11 还是 Ubuntu 18.04/20.04/22.04 uname -a # Linux 下看内核和架构 # Windows 下在 PowerShell 里执行 [System.Environment]::OSVersion.Version# 查看当前 adb 版本如果提示 command not found 说明根本没装 adb version # 正常输出类似Android Debug Bridge version 1.0.41 # Version 34.0.4-android-tools逻辑说明adb version输出的第一行是 adb 协议版本第二行是工具集版本。协议版本决定能不能跟设备握手工具集版本决定支持哪些新命令。参数上没什么可调的重点是把这两个版本号记下来后面选驱动包的时候要对照。2.2 版本对照表与下载选择不同 Android 版本对 adb 驱动工具集的要求差异很大我整理了一张实际调试中总结的对照表目标 Android 版本推荐 adb 工具集版本USB 驱动来源备注4.0 ~ 4.31.0.31 / 1.0.32厂商提供或通用 ADB DriverExynos4412 常见区间4.4 ~ 7.11.0.36 ~ 1.0.39Google USB Driver需要修改 inf 加 VID8.0 ~ 101.0.40 ~ 1.0.41Google USB Driver r13必须 64 位驱动11 及以上1.0.41 / 34.xGoogle USB Driver 最新注意无线调试端口选择原则很简单工具集版本可以高于设备要求但不能低于。比如你手头是 Exynos4412 跑 Android 4.0.4装 1.0.41 的工具集也能用只是部分新命令设备不支持反过来装 1.0.31 去连 Android 12 的设备连握手都过不去。下载渠道上Windows 我一般用 Google 官方 platform-tools 压缩包Linux 直接用发行版仓库或者官方包避免第三方打包夹带旧版 dll。提示不要混用不同来源的 adb.exe 和 AdbWinApi.dll版本不匹配会报0xc000007b这个坑后面避坑章节会细说。2.3 驱动安装前的设备识别准备装驱动之前必须先让系统知道有这么个设备。Windows 下打开设备管理器把开发板插上看有没有带黄色感叹号的未知设备Linux 下执行lsusb看 VID 和 PID。Exynos4412 开发板常见的 VID 是 18d1 或者厂商自定义的PID 随设备模式变化——正常系统下和 fastboot 模式下 PID 不一样这点要特别注意。# Linux 下查看 USB 设备找到开发板对应的行 lsusb # 输出示例Bus 001 Device 008: ID 18d1:4e22 Google Inc. # 18d1 是 VID4e22 是 PID记下来后面写 udev 规则要用# Windows PowerShell 下查看 USB 设备 Get-PnpDevice -PresentOnly | Where-Object { $_.InstanceId -like *USB* } | Format-Table -AutoSize # 找到 Status 为 Error 或 Unknown 的那一行记下 InstanceId逻辑说明lsusb的输出里 VID:PID 是驱动匹配的唯一依据Windows 下则是靠硬件 ID。参数上 Linux 要注意设备可能被内核自带的 usbfs 占用Windows 要注意驱动签名强制。这一步不做后面装驱动就是盲装。3. Windows 下安装 adb 驱动工具集inf 修改与签名绕过3.1 解压 platform-tools 并配置 PATHWindows 下我习惯把 platform-tools 解压到一个不带空格和中文的路径比如C:\android\platform-tools。带空格的路径在部分脚本里会出问题中文路径更是重灾区adb 有时候直接报找不到文件。# 解压后进入目录确认关键文件都在 cd C:\android\platform-tools dir # 应该看到 adb.exe、fastboot.exe、AdbWinApi.dll、AdbWinUsbApi.dll# 把 platform-tools 加入系统 PATH这样任意目录都能调 adb [Environment]::SetEnvironmentVariable( Path, $env:Path ;C:\android\platform-tools, [EnvironmentVariableTarget]::Machine ) # 执行完要重开一个终端才生效逻辑说明AdbWinApi.dll和AdbWinUsbApi.dll是 adb 跟 USB 驱动通信的中间层缺一个 adb 就起不来。PATH 配置用 Machine 级别是为了所有用户都能用如果只是当前用户改成 User 即可。参数上注意 PATH 拼接不要覆盖原有值我见过有人直接 Set 成单一路径结果系统命令全找不到。3.2 修改 Google USB Driver 的 inf 文件Google 官方 USB Driver 默认只认 Google 自家设备的 VIDExynos4412 这类开发板 VID 不在列表里直接装会提示「找不到兼容驱动」。解决办法是手动往android_winusb.inf里加一段设备条目。; 打开 android_winusb.inf在 [Google.NTamd64] 段落下添加 ; %SingleAdbInterface% 和 %CompositeAdbInterface% 是预定义变量 ; 把 VID_18D1PID_4E22 换成你 lsusb 或设备管理器里看到的实际值 %SingleAdbInterface% USB_Install, USB\VID_18D1PID_4E22 %CompositeAdbInterface% USB_Install, USB\VID_18D1PID_4E22MI_01逻辑说明USB_Install是 inf 里定义的安装节VID_xxxPID_xxx是硬件 ID 匹配串。MI_01表示复合设备的接口 1adb 接口通常是这个。参数上要注意 32 位和 64 位段落不同[Google.NTamd64]对应 64 位系统[Google.NTx86]对应 32 位加错段落等于没加。改完保存inf 文件编码要保持 UTF-8 无 BOM否则安装时报语法错误。3.3 禁用驱动签名强制并安装Windows 10/11 对未签名或修改过的驱动会拦截修改 inf 之后签名就对不上了必须临时禁用签名强制。# 以管理员身份打开 PowerShell执行后重启进入高级启动 bcdedit /set testsigning on # 重启后桌面右下角会出现「测试模式」水印这是正常的# 重启后回到设备管理器右键未知设备 - 更新驱动 - 浏览计算机 # 指向解压后的 usb_driver 目录勾选「包括子文件夹」 # 安装完成后设备管理器里应出现 Android ADB Interface逻辑说明testsigning on是让系统接受测试签名比每次按 F7 进禁用签名模式省事。参数上如果公司安全策略不允许开测试模式可以改用pnputil手动导入证书但步骤更繁琐。安装完成后用adb devices验证如果还是空列表看设备管理器里驱动有没有黄色感叹号有的话说明 inf 里的 VID/PID 写错了。注意调试完记得bcdedit /set testsigning off关掉测试模式长期开着会降低系统安全性部分游戏和办公软件也会拒绝运行。4. Linux 下配置 adb 驱动工具集udev 规则与权限4.1 安装 platform-tools 与依赖Linux 下装 adb 驱动工具集比 Windows 简单但发行版差异要留意。Ubuntu/Debian 系直接 apt但仓库里的版本往往偏旧要新版本还是得下官方压缩包。# Ubuntu/Debian 快速安装版本可能偏旧 sudo apt update sudo apt install -y android-tools-adb android-tools-fastboot # 或者用官方 platform-tools版本更新 wget https://dl.google.com/android/repository/platform-tools-latest-linux.zip unzip platform-tools-latest-linux.zip -d ~/android export PATH$PATH:~/android/platform-tools逻辑说明apt 装的 adb 依赖系统 libusb一般不用额外处理官方压缩包是静态链接居多但 64 位系统要确认libc6版本够。参数上export PATH只对当前会话有效要持久化得写进~/.bashrc或~/.zshrc。我一般两个都装apt 的做备用官方包做主力出问题好对照。4.2 编写 udev 规则让普通用户能访问设备Linux 下 adb 认不到设备九成是权限问题——设备节点属于 root普通用户没权限打开。标准做法是写一条 udev 规则。# 创建规则文件文件名随意但要以 .rules 结尾 sudo nano /etc/udev/rules.d/51-android.rules # 写入以下内容VID 换成你开发板的实际值 # 18d1 是 Google/部分开发板常用 VIDExynos4412 板子可能是别的 SUBSYSTEMusb, ATTR{idVendor}18d1, MODE0666, GROUPplugdev# 重新加载 udev 规则并重启服务 sudo udevadm control --reload-rules sudo udevadm trigger # 把当前用户加入 plugdev 组 sudo usermod -aG plugdev $USER # 注销重新登录使组权限生效逻辑说明MODE0666给所有用户读写权限简单粗暴但有效更严谨的做法是GROUPplugdev配合组权限避免全局开放。ATTR{idVendor}只匹配 VID如果同 VID 下有多个设备会全部放行要精确匹配可以加ATTR{idProduct}。参数上udevadm trigger之后不用重启系统但组权限变更必须重新登录。改完插拔一次设备adb devices应该就能看到了。4.3 处理 adb server 权限与端口占用有时候 udev 规则写对了adb devices还是报no permissions这通常是 adb server 启动时没拿到正确的设备权限或者 5037 端口被别的进程占了。# 杀掉旧 server 重启 adb kill-server adb start-server # 查看 5037 端口占用 sudo lsof -i :5037 # 如果有其他进程占用先停掉再启 adb# 如果还是 no permissions临时用 root 启一次 server 验证 sudo adb kill-server sudo adb start-server adb devices # 能认到说明就是权限问题回去检查 udev 规则和用户组逻辑说明adb server 是以当前用户身份跑的如果设备节点权限不对server 就拿不到句柄。lsof -i :5037能看出是不是有多个 adb 实例在抢端口这种情况在同时装了 IDE 自带 adb 和独立 adb 的机器上很常见。参数上sudo adb只是用来定位问题长期用 root 跑 adb 会让生成的密钥文件属主变成 root后面普通用户又用不了定位完记得把~/.android目录权限改回来。5. 避坑与常见问题排查adb 驱动工具集装完不认设备怎么办5.1 现象adb devices 列表为空但 lsusb 能看到设备原因驱动没装对或者 udev 规则没生效系统识别到了 USB 设备但 adb 拿不到访问权限。Windows 下多半是 inf 里 VID/PID 写错Linux 下多半是规则文件没 reload 或者用户没在 plugdev 组里。解决Windows 回设备管理器看驱动状态有感叹号就重新改 inf 装一遍Linux 执行udevadm control --reload-rules udevadm trigger然后groups确认当前用户在 plugdev 里不在就usermod -aG加完重新登录。5.2 现象adb server version doesnt match原因主机上存在多个 adb 版本比如 IDE 自带一个、PATH 里又有一个client 和 server 版本不一致。Exynos4412 这类老设备调试时经常遇到因为老项目环境里往往残留旧版 adb。解决which -a adb找出所有 adb 路径统一用一个版本或者adb kill-server之后用绝对路径启动指定版本。Windows 下检查 PATH 里 platform-tools 的顺序把要用的版本放最前面。5.3 现象Windows 报 0xc000007b 或缺少 AdbWinApi.dll原因adb.exe 和 dll 版本不匹配常见于从不同压缩包里各拿了一部分文件混用或者 32 位 dll 配了 64 位 exe。解决整个 platform-tools 目录重新解压一份不要单独替换某个文件。确认系统位数和工具包位数一致64 位系统就用 64 位包。杀毒软件有时会误删 dll检查隔离区。5.4 现象设备连上一会儿就掉线反复重连原因USB 线质量差、供电不足或者 adb 的 USB 超时设置太短。开发板这类设备功耗波动大劣质线材压降明显。解决换带屏蔽的短数据线别用延长线开发板单独供电Linux 下可以调adb的ADB_TRACE看 USB 通信日志定位。Windows 下在设备管理器里关掉 USB 根集线器的「允许计算机关闭此设备以节约电源」。5.5 现象fastboot 能认到但 adb 认不到或者反过来原因设备在不同模式下 VID/PID 不同驱动或 udev 规则只覆盖了一种模式。Exynos4412 进 fastboot 和进正常系统时 PID 通常不一样。解决把两种模式的 VID/PID 都写进 inf 或 udev 规则。Linux 下可以写多条规则Windows 下在 inf 里加多个硬件 ID 条目。切换模式后重新插拔一次 USB。6. 装完怎么验证跑通从 adb devices 到 shell 的完整链路验证 adb 驱动工具集是否真正装好不能只看adb devices出了序列号就完事得把整条链路走通。我一般按下面这个顺序逐层确认任何一层断了都能快速定位。第一层工具集自身完整性。执行adb version和fastboot --version两个命令都要能正常输出版本号且版本号一致。如果 fastboot 报错说明 platform-tools 解压不完整或者 PATH 只配了一半。第二层设备识别。插上开发板adb devices应该输出设备序列号和device状态。如果显示unauthorized说明设备端弹了授权框没点允许或者主机上的~/.android/adbkey跟设备里存的对不上删掉~/.android/adbkey*重新插拔会重新弹框。如果显示offline通常是 adb 协议版本跟设备不匹配换工具集版本。第三层shell 连通性。adb shell能进去执行getprop ro.build.version.release能返回 Android 版本号说明 adb 通道完全通了。这一步能过logcat、push、pull 基本都不会有问题。# 完整验证脚本按顺序执行 adb kill-server adb start-server # 重启 server 排除残留状态 adb devices # 确认设备在线且状态为 device adb shell getprop ro.build.version.release # 确认能进 shell 并读到系统属性 adb shell echo hello # 确认命令能正常返回 adb logcat -d | head -n 5 # 确认 logcat 能抓逻辑说明adb kill-server adb start-server是为了排除旧 server 缓存了错误状态的情况很多「明明装好了却认不到」的问题重启 server 就好。getprop读的是设备端系统属性能返回说明 shell 通道双向通。logcat -d是 dump 当前日志后退出不会卡住终端适合脚本里做健康检查。参数上head -n 5只是取前几行看有没有输出实际调试时去掉。第四层fastboot 验证如果设备支持。重启到 fastboot 模式fastboot devices能列出设备fastboot getvar all能读到分区信息说明刷机链路也通了。这一步对 Exynos4412 这类需要频繁刷 boot.img 的板子尤其重要。第五层多设备场景。如果同时接多块板子adb devices会列出多个序列号这时候所有命令都要加-s 序列号指定设备否则 adb 会报more than one device。我一般会写个环境变量export ANDROID_SERIAL序列号这样后续命令不用每次都带-s。提示验证通过后把adb devices的输出和adb version的输出一起记到部署笔记里下次换机器或者重装系统对照这两个输出就能快速判断环境是否一致。从那以后我每次装完 adb 驱动工具集都强制走一遍「version → devices → shell → logcat」这四步不管多急都不跳过。因为跳过一步省下的两分钟往往要在后面花两小时去排查一个本可以提前发现的问题。希望这套流程能帮到你少走点我当年踩过的弯路。本文还有配套的精品资源点击获取

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑