草庐IT

android - ADB 不再识别设备

coder 2023-06-20 原文

一整系列的平板电脑不再显示在 ADB 设备上(一周前它们运行良好)。其他 Android 设备也能正常工作(比如我的 Nexus 5 手机)。这是我第一次面对这个问题。我已经阅读并尝试了我在 SO 和其他网站上找到的大多数解决方案,但都无济于事。情况是这样的:

  • 它们在 lsusb 中显示为 Bus 010 Device 004: ID 18d1:dddd Google Inc.
  • 创建/编辑 /etc/udev/rules.d/51-android.rules 并添加 SUBSYSTEM=="usb", ATTRS{idVendor}=="18d1", MODE ="0666"(以及此处的其他几个属性组合)。
  • 通过 sudo service udev restart 重新启动了 udev
  • 通过 adb kill-server 重新启动了 ADB 服务器; adb 启动服务器`。
  • 尝试了 PC 上的所有 USB 端口。
  • 尝试了另一条 USB 数据线。
  • 重新启动 PC 和平板电脑。

奇怪的是,即使我清空 /etc/udev/rules.d/51-android.rules 文件并重新启动 udev 守护程序, adb 仍然检测到我的 Nexus 5 手机。

我记得在这个问题开始发生之前我所做的更改:

  • 开始使用 Android Studio 而不是 Eclipse(尽管我使用的是相同的 ADK)和工具)
  • 已将 Ubuntu 升级到最新版本 14.04(这里可能有一些 udev 更改/问题?)

欢迎任何进一步的建议,在此先感谢。


编辑:按照评论中的建议运行 lsusb -v 时,我可以看到以下描述:

  bInterfaceClass         8 Mass Storage
  bInterfaceSubClass      6 SCSI
  bInterfaceProtocol     80 Bulk-Only
  iInterface              1 Mass Storage

而 Nexus 5 显示为

  bInterfaceClass       255 Vendor Specific Class
  bInterfaceSubClass    255 Vendor Specific Subclass
  bInterfaceProtocol      0
  iInterface              4 MTP

编辑:平板电脑通过 ADB 在其他计算机上运行良好(Windows 和 Linux)。所以一定是我的盒子有问题。


编辑:正如评论中所建议的,我在 TCP 模式下尝试了 ADB,并且工作正常。运行 dmesg 后,我可以看到系统正在尝试使用 ndiswrapper

为 ADB 加载 Windows 驱动程序
[277701.803751] usb 1-4: reset high-speed USB device number 48 using ehci-pci
[277701.952803] ndiswrapper (load_wrap_driver:103): couldn't load driver android_winusb; check system log for messages from 'loadndisdriver'

此消息不会在 ADB 通过 USB 正常工作的其他 Linux 机器上显示。

最佳答案

由于相同的设备可以在其他 PC 上运行,您已经可以排除平板电脑方面的硬件问题。进一步检查的事情是:

  • PC 上的 USB 权限:虽然其他设备可以使用,但您可能仍然没有足够的权限使用 adb 访问平板电脑。您提到的 udev 规则是特定于供应商的,有时也是特定于设备的。排除权限问题的唯一方法是以 root 用户身份启动 adb。 adb fork 一个守护进程,所以你必须在尝试这样做之前杀死任何 adb 实例:
    $ pkill adb
    $ sudo adb devices
    如果设备确实出现在列表中,您必须调整 udev 规则。暂时,您可以继续正常使用 adb - 它将连接到现在以 root 身份运行的服务,因此可以按预期工作。
  • 驱动程序问题:在您平板电脑的开发者菜单中,您可以选择“adb over tcp”作为一个选项。启用它并 then connect to it from your PC .如果这有效,则调试桥本身没有问题,因此 USB 连接一定是问题的根源。我们已经可以排除有缺陷的电缆,因为该设备确实出现在 lsusb 中并且其他功能按预期工作。运行 dmesg 应该会为您提供解决问题所需的信息,很可能是干扰设备驱动程序。尝试使用 rmmod/modprobe 卸载它。

关于android - ADB 不再识别设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26341443/

有关android - ADB 不再识别设备的更多相关文章

  1. 报告回顾丨模型进化狂飙,DetectGPT能否识别最新模型生成结果? - 2

    导读语言模型给我们的生产生活带来了极大便利,但同时不少人也利用他们从事作弊工作。如何规避这些难辨真伪的文字所产生的负面影响也成为一大难题。在3月9日智源Live第33期活动「DetectGPT:判断文本是否为机器生成的工具」中,主讲人Eric为我们讲解了DetectGPT工作背后的思路——一种基于概率曲率检测的用于检测模型生成文本的工具,它可以帮助我们更好地分辨文章的来源和可信度,对保护信息真实、防止欺诈等方面具有重要意义。本次报告主要围绕其功能,实现和效果等展开。(文末点击“阅读原文”,查看活动回放。)Ericmitchell斯坦福大学计算机系四年级博士生,由ChelseaFinn和Chri

  2. 【鸿蒙应用开发系列】- 获取系统设备信息以及版本API兼容调用方式 - 2

    在应用开发中,有时候我们需要获取系统的设备信息,用于数据上报和行为分析。那在鸿蒙系统中,我们应该怎么去获取设备的系统信息呢,比如说获取手机的系统版本号、手机的制造商、手机型号等数据。1、获取方式这里分为两种情况,一种是设备信息的获取,一种是系统信息的获取。1.1、获取设备信息获取设备信息,鸿蒙的SDK包为我们提供了DeviceInfo类,通过该类的一些静态方法,可以获取设备信息,DeviceInfo类的包路径为:ohos.system.DeviceInfo.具体的方法如下:ModifierandTypeMethodDescriptionstatic StringgetAbiList​()Obt

  3. [Vuforia]二.3D物体识别 - 2

    之前说过10之后的版本没有3dScan了,所以还是9.8的版本或者之前更早的版本。 3d物体扫描需要先下载扫描的APK进行扫面。首先要在手机上装一个扫描程序,扫描现实中的三维物体,然后上传高通官网,在下载成UnityPackage类型让Unity能够使用这个扫描程序可以从高通官网上进行下载,是一个安卓程序。点到Tools往下滑,找到VuforiaObjectScanner下载后解压数据线连接手机,将apk文件拷入手机安装然后刚才解压文件中的Media文件夹打开,两个PDF图打印第一张A4-ObjectScanningTarget.pdf,主要是用来辅助扫描的。好了,接下来就是扫描三维物体。将瓶

  4. ruby-on-rails - 在 heroku 的 .fonts 文件夹中包含自定义字体,似乎无法识别它们 - 2

    Heroku支持人员告诉我,为了在我的Web应用程序中使用自定义字体(未安装在系统中,您可以在bash控制台中使用fc-list查看已安装的字体)我必须部署一个包含所有字体的.fonts文件夹里面的字体。问题是我不知道该怎么做。我的意思是,我不知道文件名是否必须遵循heroku的任何特殊模式,或者我必须在我的代码中做一些事情来考虑这种字体,或者如果我将它包含在文件夹中它是自动的......事实是,我尝试以不同的方式更改字体的文件名,但根本没有使用该字体。为了提供更多详细信息,我们使用字体的过程是将PDF转换为图像,更具体地说,使用rghostgem。并且最终图像根本不使用自定义字体。在

  5. 安卓apk修改(Android反编译apk) - 2

    最近因为项目需要,需要将Android手机系统自带的某个系统软件反编译并更改里面某个资源,并重新打包,签名生成新的自定义的apk,下面我来介绍一下我的实现过程。APK修改,分为以下几步:反编译解包,修改,重打包,修改签名等步骤。安卓apk修改准备工作1.系统配置好JavaJDK环境变量2.需要root权限的手机(针对系统自带apk,其他软件免root)3.Auto-Sign签名工具4.apktool工具安卓apk修改开始反编译本文拿Android系统里面的Settings.apk做demo,具体如何将apk获取出来在此就不过多介绍了,直接进入主题:按键win+R输入cmd,打开命令窗口,并将路

  6. ruby-on-rails - 没有这样的文件或目录 - 用 Mini Magick 识别 - 2

    在我让另一个人重做我的前端UI之前,我的Rails应用程序运行平稳。我已经尝试解决此错误3天了。这是错误:Nosuchfileordirectory-identifyExtractedsource(aroundline#59):575859606162@post=Post.find(params[:id])authorize@postif@post.update_attributes(post_params)flash[:notice]="Postwasupdated."redirect_to[@topic,@post]else{"utf8"=>"✓","_method"=>"patc

  7. ruby-on-rails - 禁用设备的 :confirmable on-the-fly to batch-generate users - 2

    Devise是一个Ruby库,它为我提供了这个User类:classUser当写入:confirmable时,注册时会发送一封确认邮件。上周我不得不批量创建300个用户,所以我在恢复之前注释掉了:confirmable几分钟。现在我正在为用户批量创建创建一个UI,因此我需要即时添加/删除:confirmable。(我也可以直接修改Devise的源码,但我宁愿不去调和它)问题:如何即时添加/删除:confirmable? 最佳答案 WayneConrad的解决方案:user=User.newuser.skip_confirmation

  8. ruby - 使用 ruby​​ 识别阵列上的运行 - 2

    如果我们有一个数组array=[1,1,0,0,2,3,0,0,0,3,3,3]我们如何识别给定数字的运行(具有相同值的连续数字的数量)?例如:run_pattern_for(array,0)->2run_pattern_for(array,3)->1run_pattern_for(array,1)->1run_pattern_for(array,2)->0没有2的运行,因为没有连续出现2。3有一个运行,因为只有一个幻影以树为连续数字。 最佳答案 尝试:classArraydefcount_runs(element)chunk{|n

  9. 最新版人脸识别小程序 图片识别 生成二维码签到 地图上选点进行位置签到 计算签到距离 课程会议活动打卡日常考勤 上课签到打卡考勤口令签到 - 2

    技术选型1,前端小程序原生MINA框架cssJavaScriptWxml2,管理后台云开发Cms内容管理系统web网页3,数据后台小程序云开发云函数云开发数据库(基于MongoDB)云存储4,人脸识别算法基于百度智能云实现人脸识别一,用户端效果图预览老规矩我们先来看效果图,如果效果图符合你的需求,就继续往下看,如果不符合你的需求,可以跳过。1-1,登录注册页可以看到登录页有注册入口,注册页如下我们的注册,需要管理员审核,审核通过后才可以正常登录使用小程序1-2,个人中心页登录成功以后,我们会进入个人中心页我们在个人中心页可以注册人脸,因为我们做人脸识别签到,需要先注册人脸才可以进行人脸比对,进

  10. ruby-on-rails - 尝试登录和使用 heroku 时无法识别 ruby​​.exe - 2

    当尝试创建一个heroku应用程序并通过git推送到它时,我收到以下错误:$herokucreate'"C:\ProgramFiles\ruby-1.9.2\bin\ruby.exe"isnotrecognizedasaninternalorexternalcommand,operableprogramorbatchfile.但是,$ruby-vruby1.9.3p125[i386-mingw32]我已经检查了PATH环境,它肯定包含“C:\ProgramFiles(x86)\ruby-1.9.2\bin”。同样有趣的是,当导航到该目录时,它实际上并不包含名为ruby​​.exe的文件

随机推荐