xiaomi_usb_driver安装与ADB/Fastboot调试排错
简介这份压缩包面向在 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_xxxxPID_xxxx这样的段落VID 后面那串十六进制就是厂商识别码PID 是产品识别码同一个厂商不同模式正常开机、fastboot、下载模式的 PID 是不一样的。看一眼就知道这套包覆盖了哪几种模式后面设备认不出来的时候回头对一下硬件 ID 就能定位是驱动没覆盖还是绑错了。子目录不要手动改名也不要把 x64 里的文件拷到 x86 里「合并」一下两边的.sys是不同编译产物混用会直接蓝屏或者报代码 10设备无法启动。这类操作看起来是「优化」实际是给自己埋雷。2.3 通用 ADB 驱动和厂商复合驱动怎么选很多人机器上已经装过一份通用的 ADB 驱动纠结还要不要再装这套。两者不是替代关系覆盖范围不同选错的表现是「明明装过驱动fastboot 还是认不到」。维度通用 ADB 驱动厂商复合驱动包本包正常开机 USB 调试支持支持fastboot / bootloader 模式多数情况要靠手动补硬件 ID一般已内置对应 PID9008 / 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 或 Compositefastboot 模式选 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 -lkill-server会终止后台的 adb 守护进程start-server重新拉起时会重新枚举 USB 设备、重新读取接口信息。驱动刚装完不重启服务adb devices很可能还是空列表这不是驱动没装上是服务缓存了旧状态。-l参数会多打印机型、设备名、传输协议几列排查时比不带参数有用得多。4. 绑定关系与模式切换装完不等于认得上驱动装进库和驱动绑定到设备是两件事。同一台手机在不同工作模式下对 Windows 来说是完全不同的三个设备硬件 ID 都不一样需要绑定的驱动也不一样。这一步搞不清就会出现「正常开机 adb 能用一进 fastboot 就失联」。4.1 三种模式下的硬件 ID 差异工作模式设备管理器里的名称硬件 ID 特征对应命令正常开机 USB 调试Android Composite ADB InterfaceUSB\VID_2717PID_FF48一类adb devicesfastboot / bootloaderAndroid Bootloader InterfaceUSB\VID_2717PID_FF40一类fastboot devices下载模式 / EDL9008 串口设备USB\VID_05C6PID_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, StatusStatus显示OK说明驱动绑定正常显示Error或者Unknown就是没绑上或者绑错了。InstanceId后半段那串 VID/PID 直接对应 inf 文件里的写法拿它去 inf 里搜能立刻确认这套包到底覆不覆盖当前这个模式。切换模式之后设备管理器需要几秒钟重新枚举插拔一次比干等更可靠。有个细节从正常模式切到 fastboot 时Windows 会先把旧的 ADB 设备移除再添加一个新的 bootloader 设备如果这时候 inf 里没有对应的 PID新设备就会以「未知设备」的身份出现且不报任何错误提示只挂个黄色感叹号在「其他设备」里。4.2 驱动绑错了怎么回滚绑错驱动最典型的症状是设备管理器里设备状态正常没有感叹号但对应的命令就是不认。这时候要做的是把绑定关系拆掉重来而不是再装一遍新的——重复安装只会让驱动库里堆更多的 oem 编号问题反而更难定位。第一步先查清楚现在绑的是哪个驱动# 查到设备的 InstanceId 之后看它当前用的是哪个 inf Get-PnpDeviceProperty -InstanceId USB\VID_2717PID_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 那个 PIDbootloader 的 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 一条、设备状态一条」的三连验证不管当时多着急。血泪经验是跳过验证省下的两分钟通常会在半小时后以更难看的姿势还回来尤其是在只有一台机器、设备又进不了系统的时候连后悔药都没得吃。希望帮到你。本文还有配套的精品资源点击获取