如何在Android设备上同时启用RNDIS与MTP功能
Android同时启用MTP与RNDIS共享给Windows的故障修复
你遇到的黄感叹号问题,核心原因是USB复合设备的功能枚举顺序错误,以及Windows对非标准顺序RNDIS复合设备的驱动自动匹配失效,按以下步骤操作即可正常启用:
安卓侧(高通平台)配置修正
你直接修改init.msm.usb.configfs.rc新增配置项的思路是对的,但忽略了USB Function的枚举顺序要求,以及高通平台的USB配置覆盖逻辑:
- 把你新增的配置项字符串从
mtp,rndis,adb调整为rndis,mtp,adb。Windows枚举USB复合设备时会按接口顺序绑定驱动,RNDIS接口必须排在MTP之前,否则会被识别为无效网络接口打黄标。 - 不要只修改configfs的静态rc配置,同步在同文件里找到默认USB属性的设置项,把
sys.usb.config的默认值也改为rndis,mtp,adb,避免高通USB服务开机后重置功能顺序。 - 替换修改后的rc文件到设备对应分区,确认文件权限为
644(所有者root,组root),重启设备后执行getprop sys.usb.config确认返回值和你设置的一致,再执行ls -l /config/usb_gadget/g1/configs/b.1/检查功能软链接序号:rndis.gs*的序号必须小于mtp.gs*的序号。 - 安卓12及以上版本还要额外检查系统权限白名单,确认
/system/etc/permissions/handheld_core_hardware.xml中存在RNDIS和MTP的功能声明,否则系统会自动剔除白名单外的USB功能。
Windows侧驱动手动绑定
安卓侧配置正确后如果仍有黄感叹号,是因为Windows自带的RNDIS驱动默认不会自动绑定复合设备内的网络接口,手动指定驱动即可:
- 打开设备管理器,找到带黄色感叹号的未知USB设备(硬件ID里带
RNDIS字段的就是对应网络接口),右键选择「更新驱动程序」。 - 依次选择「浏览我的电脑以查找驱动程序」→「让我从计算机上的可用驱动列表中选取」。
- 设备类型选择「网络适配器」,厂商选择「Microsoft」,型号选择「远程NDIS兼容设备」,不要选带特定版本号的RNDIS驱动,点击下一步完成安装。
- RNDIS驱动安装完成后,系统会自动识别同复合设备下的MTP便携设备接口和ADB调试接口,不需要额外操作。
注意事项
- 不要同时在USB功能列表里加入
mass_storage大容量存储功能,会和MTP抢存储访问权限导致两个功能都失效。 - 第一次插修改完配置的安卓设备到Windows时,等待10-15秒让系统完成所有接口枚举,不要提前刷新设备管理器,否则容易出现驱动绑定错位。
- 如果需要切换回其他USB配置(比如仅充电、文件传输),切回RNDIS+MTP组合后需要重新插拔一次USB线,避免接口枚举异常。
内容的提问来源于stack exchange,提问作者DTL
相关产品推荐
相关产品推荐

