☰
xiaomi_usb_driver安装与ADB/Fastboot调试排错
2026/10/26 12:04:46 网站建设 项目流程

简介:这份压缩包面向在 Windows 环境下连接、识别与管理小米手机、平板及其他 USB 设备的用户,重点解决设备无法被系统正常识别、驱动缺失或安装不匹配等常见问题,也可为刷机、数据传输、固件升级和设备调试前的驱动准备提供参考。包内共 15 个文件,约 8.28MB,以 6 个 dll 动态链接库、2 个 inf 安装信息文件、2 个 cat 数字签名文件为主,并配有 notice 说明、properties 配置信息与 txt 阅读文档,兼顾 32 位与 64 位系统的安装需要。目前已有 5524 人学习或下载,说明其在小米设备连接场景中具有一定的参考价值。借助包内驱动组件与说明文件,读者可完成驱动更新、设备管理器识别检查、连接异常排查,并了解不同 Windows 版本下的兼容性处理思路,适合需要稳定连接小米设备、处理 USB 驱动安装失败或排查识别问题的用户参考。

1. 一个插上没反应的下午:先装 xiaomi_usb_driver,再谈调试和刷机

前几天帮某开发者收拾一台开发机,手机插上去,设备管理器里只多出一个带黄色感叹号的「Android」,adb devices敲下去是空的。他先怀疑数据线,换了三根;又怀疑接口,从前置面板换到后置;最后开始怀疑手机本身坏了。真实原因朴素得有点气人:Windows 压根没认这台设备的 USB 接口,xiaomi_usb_driver 这套驱动还没装。

驱动不通,后面所有抓日志、解锁、刷机、售后工具链全是空转,工具报的错还各不相同,很容易把人带到错误的方向上去排查。这篇记的是从环境盘点、解包认文件、图形界面和命令行两条装法,到装错怎么回滚、装完怎么验证的一整套过程。手上是 Windows 10/11、需要让 adb 和 fastboot 同时认出设备的人,照着走一遍就行。

2. 装之前把环境盘清楚:系统版本、架构与签名策略

装驱动最容易犯的错,是拿到 zip 就双击里面的 exe,一路下一步,然后开始祈祷。这套包对系统是有要求的,装之前花两分钟确认几件事,能省掉后面半小时的瞎猜。

2.1 三件必须先确认的事

第一件是系统版本和架构。包里的.inf和.sys是按 32 位、64 位分别编译的,ARM64 的 Windows(骁龙本那一类)跑不了 x86 驱动,装到中途会甩一句「该 INF 中的安装节无效」,很多人以为是包坏了,其实是架构不对。Win10 从 1607 起强制驱动签名,Win11 更严,没签名或者签名过期的驱动默认装不进去,设备管理器里表现为代码 52。

第二件是有没有管理员权限。inf 安装本质上是往 DriverStore 写文件、改注册表、绑定设备实例,权限不够时设备管理器会一路点下去都「成功」,最后什么也没变——这种假装成功最难查,我一般先在管理员 PowerShell 里跑一遍再动手。

第三件是 ADB 的 5037 端口有没有被占。不少人机器上装着手机助手、投屏工具、模拟器,它们各自带一份adb.exe并常驻后台,端口被抢走之后,驱动装得再对,adb devices也只会返回空列表或者一串看不懂的输出。

# 1) 系统版本与架构:AMD64 才继续往下走,ARM64 换机器 [System.Environment]::OSVersion.Version $env:PROCESSOR_ARCHITECTURE # 2) 当前窗口是不是管理员,返回 True 才够权限写 DriverStore ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole( [Security.Principal.WindowsBuiltInRole]::Administrator) # 3) 5037 端口占用:有输出说明已有别的 adb 服务在跑 Get-NetTCPConnection -LocalPort 5037 -ErrorAction SilentlyContinue | Select-Object LocalAddress, State, OwningProcess

第一条命令在 Win11 上仍然返回10.0.2xxxx,别被主版本号骗了,看 Build 号更靠谱,1809 以后的版本对签名校验的处理基本一致。第二条返回 False 就老老实实右键「以管理员身份运行」,不要试图用兼容模式绕。第三条一旦有输出,去任务管理器按 PID 找到对应进程,先退干净再装;如果发现是某个常驻助手类软件,我的习惯是直接卸载,留着它迟早还会再抢一次。

顺带提一句 USB 选择性暂停。电源计划里这个选项默认开着,驱动装好之后设备反复掉线、adb隔几十秒断一次,十有八九是它干的。可以在「电源选项 → 更改计划设置 → 更改高级电源设置 → USB 设置 → USB 选择性暂停设置」里改成「已禁用」,也可以按设备管理器里对应 USB 根集线器的电源管理页,把「允许计算机关闭此设备以节约电源」的勾去掉。

2.2 解开 zip 之后先认文件

把xiaomi_usb_driver.zip解到一个纯英文、无空格的路径下,比如D:\drv\xiaomi_usb_driver。带中文或者带空格的路径在 inf 解析阶段偶尔会出问题,尤其是C:\Users\某开发者\Downloads\新建文件夹 (2)\这种,排查起来毫无线索,属于典型的玄学现场。解压之后不要急着双击任何可执行文件,先看一眼目录结构,心里有数再动手。

文件 / 目录形态作用
主.inf文件几十 KB 的纯文本安装信息文件,写死了哪个 VID/PID 配哪个驱动
x86/x64子目录各含.sys、.dll按架构分开放的驱动本体,32 位系统只认 x86
.cat签名目录文件一个或几个小文件Win10/11 校验驱动签名用,缺了必报代码 52
安装器.exe可选,部分包里有图形化封装,本质还是调 inf 安装

主 inf 值得用记事本打开扫一眼。里面会有一堆[Manufacturer]、[Models]、USB\VID_xxxx&PID_xxxx这样的段落,VID 后面那串十六进制就是厂商识别码,PID 是产品识别码,同一个厂商不同模式(正常开机、fastboot、下载模式)的 PID 是不一样的。看一眼就知道这套包覆盖了哪几种模式,后面设备认不出来的时候,回头对一下硬件 ID 就能定位是驱动没覆盖还是绑错了。

子目录不要手动改名,也不要把 x64 里的文件拷到 x86 里「合并」一下,两边的.sys是不同编译产物,混用会直接蓝屏或者报代码 10(设备无法启动)。这类操作看起来是「优化」,实际是给自己埋雷。

2.3 通用 ADB 驱动和厂商复合驱动怎么选

很多人机器上已经装过一份通用的 ADB 驱动,纠结还要不要再装这套。两者不是替代关系,覆盖范围不同,选错的表现是「明明装过驱动,fastboot 还是认不到」。

维度通用 ADB 驱动厂商复合驱动包(本包)
正常开机 + USB 调试支持支持
fastboot / bootloader 模式多数情况要靠手动补硬件 ID一般已内置对应 PID
9008 / EDL 下载模式不带通常带,救砖必需
与已有驱动的冲突风险低与通用驱动共存时较高
适合谁只做应用调试、看日志刷机、解锁、救砖、跑售后工具

判断标准很简单:只跑adb logcat、装个 APK,通用驱动够用,不必折腾;要进 fastboot 解锁、要用下载模式救砖,就得把这套装上。但别两套都装——两个 inf 抢同一个设备实例的时候,Windows 会按驱动日期和签名等级挑一个绑定,经常挑中的是旧的那个,于是出现「刚装完驱动,fastboot 又不认了」这种看似矛盾的现象。

真遇到共存冲突,先记下现有驱动的 oem 编号(下一章会讲怎么查),再决定删哪个。我的做法是留厂商包,把通用驱动从 DriverStore 里清掉,只保留platform-tools里的adb.exe和fastboot.exe命令行工具,两者互不干扰。

3. 装驱动:设备管理器点选和 pnputil 命令行两条路

装法有两条:图形界面适合装一台、看着设备状态一步步确认;命令行适合批量、或者设备管理器里那个「其他设备」压根不出现的场景。两条路最后都落到同一个 inf 上,选顺手的就行。

3.1 设备管理器里手动指定 inf

先把手机连上,正常开机状态,进「设置 → 关于手机 → 连续点版本号」打开开发者选项,再进开发者选项打开「USB 调试」。插线之后手机会弹一个「是否允许 USB 调试」的授权框,先点允许,这个框不点,后面adb devices会显示unauthorized,跟驱动没关系。

打开设备管理器(devmgmt.msc),正常情况下能在「其他设备」或者「便携设备」下面看到一个带黄色感叹号的条目,名字可能是Android、ADB Interface、未知设备。右键它 → 更新驱动程序 → 浏览我的电脑以查找驱动程序 → 让我从计算机上的可用驱动程序列表中选取 → 从磁盘安装 → 浏览到解压目录里的主 inf 文件。

选中之后会列出一串设备类型,比如Android ADB Interface、Android Bootloader Interface、Android Composite ADB Interface。这里是最容易点错的一步:正常开机状态选 ADB Interface 或 Composite,fastboot 模式选 Bootloader。选错了驱动能装上,设备管理器也不报错,但fastboot devices永远是空的——这就是典型的「装了等于没装」。

装的过程中 Windows 会弹一个「Windows 无法验证此驱动程序软件的发布者」,选「始终安装此驱动程序软件」。这一步只在签名链不完整的老包上出现,正规包一般不会弹。如果弹的是「安装此类驱动程序软件时遇到问题」,错误代码 52,那就是签名问题,解决方案在第五章细说。

装完设备管理器里的黄色感叹号应该消失,条目会挪到「Android Device」或者「通用串行总线设备」下面。这时候先别急着庆祝,去命令行敲一句adb devices,能列出设备序列号加device状态才算真的通了。

3.2 用 pnputil 走命令行安装

设备管理器点不动、或者要一次给好几台机器装的时候,pnputil是更省事的路子。它是 Windows 自带的驱动库管理工具,不需要额外装任何东西,Win10 1809 之后参数也稳定了。

# 进入解压目录,先看清楚 inf 的准确文件名 Set-Location "D:\drv\xiaomi_usb_driver" Get-ChildItem -Filter *.inf | Select-Object Name, Length # 把驱动加进 DriverStore,/install 表示顺带尝试匹配当前已连接的设备 pnputil /add-driver ".\主inf文件名.inf" /install # 递归安装子目录里的所有 inf(部分包把 x86/x64 的 inf 分开放) pnputil /add-driver ".\*.inf" /subdirs /install

/add-driver只负责把文件塞进驱动库,/install才是让它去匹配硬件。两个参数分开用也有意义:先只加不装,确认入库成功,再单独执行安装,出问题时能分清是「包有问题」还是「设备没匹配上」。/subdirs会递归扫子目录,适合那种把 x86、x64 各放一个 inf 的包,不加这个参数只会读根目录那一层。

执行完应该看到类似正在安装驱动程序包... 已成功添加驱动程序包: 1的输出。如果提示「未找到适用于该设备的驱动程序」,说明 inf 里的 VID/PID 跟你当前设备的硬件 ID 对不上,这时候别硬装,先按 4.1 的方法把硬件 ID 打出来比对。

装完可以用一条命令确认驱动确实进了库:

# 列出驱动库里所有第三方驱动,按 Provider 或原始 inf 名过滤 pnputil /enum-drivers | Select-String -Pattern "xiaomi|Android|ADB" -Context 2,3

输出里会带发布名称: oemXX.inf这样的字段。这个oemXX编号要记下来,后面回滚、卸载全靠它,Windows 的驱动库里 oem 编号是按入库顺序分配的,跟原始文件名没有关系,不记就只能靠猜。

3.3 ADB 与 fastboot 的环境变量配置

驱动装好只是让系统认了设备,命令行工具还得单独准备。从官方平台工具包里解出一份platform-tools,同样放到纯英文路径下,比如C:\platform-tools,然后把目录加进系统 Path。

# 当前会话临时生效,验证路径没问题 $env:Path += ";C:\platform-tools" adb version fastboot --version # 确认无误后写入系统级 Path(需要管理员权限) [Environment]::SetEnvironmentVariable( "Path", [Environment]::GetEnvironmentVariable("Path", "Machine") + ";C:\platform-tools", "Machine")

为什么要用Machine而不是User:驱动安装、刷机脚本经常以管理员身份或者系统服务身份跑,用户级 Path 在这些上下文里读不到。改完必须新开一个终端窗口,已经开着的窗口不会重新加载环境变量,很多人改完 Path 发现adb还是「不是内部或外部命令」,原因就在这里。

adb version能出版本号之后,还有关键一步:重启 adb 服务。

# 老服务可能还挂着旧驱动或者别的助手软件的进程,先杀掉再起 adb kill-server adb start-server adb devices -l

kill-server会终止后台的 adb 守护进程,start-server重新拉起时会重新枚举 USB 设备、重新读取接口信息。驱动刚装完不重启服务,adb devices很可能还是空列表,这不是驱动没装上,是服务缓存了旧状态。-l参数会多打印机型、设备名、传输协议几列,排查时比不带参数有用得多。

4. 绑定关系与模式切换:装完不等于认得上

驱动装进库和驱动绑定到设备是两件事。同一台手机在不同工作模式下,对 Windows 来说是完全不同的三个设备,硬件 ID 都不一样,需要绑定的驱动也不一样。这一步搞不清,就会出现「正常开机 adb 能用,一进 fastboot 就失联」。

4.1 三种模式下的硬件 ID 差异

工作模式设备管理器里的名称硬件 ID 特征对应命令
正常开机 + USB 调试Android Composite ADB InterfaceUSB\VID_2717&PID_FF48一类adb devices
fastboot / bootloaderAndroid Bootloader InterfaceUSB\VID_2717&PID_FF40一类fastboot devices
下载模式 / EDL9008 串口设备USB\VID_05C6&PID_9008厂商刷机工具

表里的 PID 只是示例,不同批次、不同平台会有差异,别照抄,用命令打出来看实际值。

# 列出当前连接的所有 USB 设备,过滤出厂商 VID 段 Get-PnpDevice -PresentOnly | Where-Object { $_.InstanceId -like "USB\VID_2717*" } | Select-Object Status, Class, FriendlyName, InstanceId # 设备管理器不显示的时候,用这个直接读注册表里的硬件 ID Get-WmiObject Win32_PnPEntity | Where-Object { $_.DeviceID -like "USB\VID_2717*" } | Select-Object Name, DeviceID, Status

Status显示OK说明驱动绑定正常,显示Error或者Unknown就是没绑上或者绑错了。InstanceId后半段那串 VID/PID 直接对应 inf 文件里的写法,拿它去 inf 里搜,能立刻确认这套包到底覆不覆盖当前这个模式。

切换模式之后设备管理器需要几秒钟重新枚举,插拔一次比干等更可靠。有个细节:从正常模式切到 fastboot 时,Windows 会先把旧的 ADB 设备移除,再添加一个新的 bootloader 设备,如果这时候 inf 里没有对应的 PID,新设备就会以「未知设备」的身份出现,且不报任何错误提示,只挂个黄色感叹号在「其他设备」里。

4.2 驱动绑错了怎么回滚

绑错驱动最典型的症状是:设备管理器里设备状态正常,没有感叹号,但对应的命令就是不认。这时候要做的是把绑定关系拆掉重来,而不是再装一遍新的——重复安装只会让驱动库里堆更多的 oem 编号,问题反而更难定位。

第一步,先查清楚现在绑的是哪个驱动:

# 查到设备的 InstanceId 之后,看它当前用的是哪个 inf Get-PnpDeviceProperty -InstanceId "USB\VID_2717&PID_FF48\xxxx" -KeyName "DEVPKEY_Device_DriverInfPath"

第二步,卸载设备并勾选「删除此设备的驱动程序软件」。在设备管理器里右键 → 卸载设备,弹出的对话框里那个复选框一定要勾上,不勾只是解除绑定,驱动文件还留在库里,下次插上又被自动绑回去,很多人卡在这一步反复循环。

第三步,从 DriverStore 里彻底删掉旧的驱动包:

# oemXX.inf 是 3.2 节记下来的编号,先把所有第三方驱动列出来确认 pnputil /enum-drivers # /uninstall 解除所有设备绑定,/force 强制删除,两个参数要一起用 pnputil /delete-driver oem12.inf /uninstall /force

/uninstall单独用只是解除绑定,驱动包还在库里;/force单独用可能因为设备还绑着而失败。两个一起用才能干净移除。删完之后重新插拔设备,Windows 会退回到「未知设备」状态,这时候再按第三章的流程装正确的驱动。

这里留个后悔药:删之前先执行一次pnputil /enum-drivers把输出存成文本,万一删错了还能从原始 zip 重新装回来。我自己吃过一次亏,把系统自带的一个 USB 复合设备驱动当成厂商包删了,结果键盘鼠标一起失灵,最后靠另一台机器远程操作才救回来。

4.3 USB 口、线、Hub 的优先级

硬件层面的干扰比想象中多,而且症状和驱动问题是重叠的,都是「时好时坏」「偶尔认不到」。排查顺序我一般按「口 → 线 → Hub」来。

口优先选主板后置的 USB 2.0 接口。USB 3.0 的口在 fastboot 和下载模式下兼容性反而差一些,尤其是老的 bootloader,枚举阶段会超时。前置面板的口经过一段机箱内部延长线,供电和信号质量都不稳定,能不用就不用。

线要用能传数据的,不是所有 Type-C 线都带数据线芯,纯充电线插上去设备管理器什么都不会出现,连「未知设备」都没有——这个症状太有迷惑性,我见过有人为此重装了三次系统。

Hub 的问题在供电。不带外部电源的 Hub 带不动大电流设备,手机在 fastboot 模式下电流需求会跳一下,供电不足直接导致枚举失败。真要接多个设备,用带独立供电的 Hub,或者干脆一台机器一个口。还有一类带开关的 USB 集线器,切换的瞬间会产生电平抖动,adb 连接会断,这种也尽量避开。

5. 踩坑排查:五个让驱动「装了等于没装」的现场

这一章是我自己踩过、也帮别人收拾过的五类现场,症状各不相同,但都能归结到「驱动没真正绑定到设备」上。按现象、原因、解决的顺序记,遇到问题时对着症状找。

现象一:设备管理器里一个黄色感叹号,属性里错误代码 28「未安装驱动程序」。

原因很直接:Windows 找到了设备,也读到了硬件 ID,但驱动库里没有任何 inf 声明支持这个 ID。可能是包没解压完整,也可能这套包压根不覆盖当前模式。

解决:先按 4.1 的命令打出真实硬件 ID,拿它去主 inf 里搜。搜不到就是包不覆盖,得换包;搜得到但装不上,检查是不是解压时被杀毒软件拦掉了.sys文件——这种情况在压缩包直接双击运行时特别常见,一定要先完整解压到本地目录再装。

现象二:adb devices显示设备但状态是unauthorized。

原因:这不是驱动问题,是手机端没授权。USB 调试的 RSA 密钥授权框被关掉了,或者之前点了「拒绝并记住」。

解决:手机开发者选项里找「撤销 USB 调试授权」,撤销后重新插拔,弹框出现时点允许并勾选「一律允许」。如果弹框一直不出现,把手机上的 USB 连接模式从「仅充电」改成「传输文件」,很多机型在这个模式下才会触发授权流程。

现象三:adb devices正常,fastboot devices永远是空的。

原因:ADB 和 bootloader 是两个不同的 USB 设备,绑的是两套驱动。通用 ADB 驱动通常只声明了 ADB 那个 PID,bootloader 的 PID 没覆盖,切到 fastboot 模式后设备以「未知设备」身份出现,不报错,只是不工作。

解决:切到 fastboot 模式,看设备管理器有没有新增未知设备,有就手动指定 inf,在设备类型列表里选 Bootloader 那一项。装完重启一次adb服务再测。

现象四:安装时提示「Windows 无法验证此驱动程序软件的发布者」,或者装完报错误代码 52。

原因:签名问题。包太老、签名证书过期、或者.cat文件在解压时丢了。Win10 1607 之后对驱动签名是强制的。

解决:先确认.cat文件在不在,不在就重新解压。在的话,检查系统时间是否正确——时间偏差过大也会导致证书校验失败,这个坑很隐蔽。最后的手段是临时禁用驱动签名强制(开机按住 Shift 点重启,进疑难解答 → 启动设置 → 重启,选禁用驱动程序签名强制),装完立刻重启恢复。这只是临时手段,不适合长期开着,也不适合在生产机器上用。

现象五:刚装完能用,重启之后又认不到了。

原因:驱动没真正写进 DriverStore,只是临时绑定了当前设备实例;或者被系统里另一份日期更新的驱动抢了回去。

解决:用pnputil /enum-drivers确认包里那个 inf 到底在不在库里,不在就重新用/add-driver /install装一遍,别用图形界面点。在库里但还是被抢,按 4.2 的流程把冲突的那个 oem 包删掉,只留一个。

还有一个不成文的现象:设备管理器里一切正常,驱动也绑对了,adb devices就是空的。这时候先看手机屏幕有没有亮着、锁屏状态下部分机型会断开 ADB;再看是不是开了「USB 调试(安全设置)」这类需要额外确认的开关。这两个都不是驱动问题,但症状一模一样,混在一起排查非常耗时间。

6. 装完怎么验证:三条命令加一张对照表

驱动装完,别急着去刷机或者跑工具,先花两分钟把下面三条命令走一遍。这三条覆盖了「系统认不认设备」「adb 通道通不通」「bootloader 通道通不通」三个层次,任何一层断了都能立刻定位,不至于等到刷机刷到一半才发现问题。

# 第一条:adb 服务重启后枚举设备,-l 会多打印机型与传输协议 adb kill-server adb start-server adb devices -l # 第二条:切到 fastboot 模式后再测一次 adb reboot bootloader fastboot devices
# 第三条:从系统层面确认驱动绑定状态,Status 必须是 OK Get-PnpDevice -PresentOnly | Where-Object { $_.InstanceId -like "USB\VID_2717*" } | Select-Object Status, Class, FriendlyName

对照着看输出,比猜快得多:

检查项正常结果异常时的指向
adb devices -l序列号 +device+ 机型信息空列表看驱动,unauthorized看手机授权
fastboot devices序列号 +fastboot空则 bootloader 驱动没绑上
Get-PnpDeviceStatus为OKError说明绑定失败,回第四章重绑

还有一个小技巧:adb devices能出设备但adb shell进去就断,多半是 USB 选择性暂停或者线材问题,不是驱动。这时候换根短一点的线、插后置口,把电源管理里那个选项关掉,基本就解决了。反过来,fastboot devices出设备但刷写中途失败,那要看的是镜像和分区,跟驱动没关系,别在驱动上继续耗。

从那以后我每次装完这套 xiaomi_usb_driver,都强制走一遍「adb 一条、fastboot 一条、设备状态一条」的三连验证,不管当时多着急。血泪经验是:跳过验证省下的两分钟,通常会在半小时后以更难看的姿势还回来,尤其是在只有一台机器、设备又进不了系统的时候,连后悔药都没得吃。希望帮到你。

本文还有配套的精品资源,点击获取

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询