• 红米手机/老米手机 adb devices 找不到设备


    主要有两个原因吧:

    • 没有正确开启开发者模式下的USB调试
    • 驱动列表里没有设备信息

    可以根据我下面的步骤对照一下看看操作对不对,下边儿是老米手机整adb的踩坑过程

    1. 手机端操作

    顺便说一下X米手机的前置步骤,以下部分的文字和图片摘自:
    小米手机开发者选项和USB调试打开步骤:https://miuiver.com/enable-miui-advanced-options/
    Windows 配置 fastboot 和 adb 命令环境变量:https://miuiver.com/add-fastboot-and-adb-environment-variables/

    小米手机开发者选项打开步骤

    依次点击:手机设置 -> 我的设备 -> 全部参数 -> 连续点击几次MIUI 版本”,之后便会提示已处于开发者模式:

    在这里插入图片描述

    手机USB调试打开步骤

    在开启开发者模式后,依次点击:手机设置 -> 更多设置 -> 开发者选项 -> 开启“USB调试

    在这里插入图片描述

    然而最近版本的有两个button:

    • 开启开发者选项
    • USB调试

    这两个都得点开,我就是第二个忘记点了…
    在这里插入图片描述
    在这里插入图片描述

    2. windows 环境配置

    建议直接看这个文章:
    https://miuiver.com/add-fastboot-and-adb-environment-variables/
    就是下载Android SDK Platform Tools,然后添加到环境变量中就行,最后检查一下是否添加正确:

    > adb --version
    
    Android Debug Bridge version 1.0.41
    Version 33.0.3-8952118
    Installed as xxx\platform-tools\adb.exe
    
    • 1
    • 2
    • 3
    • 4
    • 5

    这里弄完之后建议整一个三连:

    xxx>adb kill-server
    
    xxx>adb start-server
    * daemon not running; starting now at tcp:5037
    * daemon started successfully
    
    xxx>adb devices -l
    List of devices attached
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    如果下边的List为空,那就可能是需要后边的操作,如果是这样的,那就没啥问题了:

    C:\Users\zihao>adb devices -l
    List of devices attached
    35xxxx7c               device product:picasso model:Xiaomi_xxxxx device:picasso transport_id:1
    
    • 1
    • 2
    • 3

    3. 驱动部分

    基本参考自:
    https://www.jianshu.com/p/6131cbe22bea

    咱第一步先获取设备的VID,按照这个顺序:

    我的电脑右键 -> 管理 -> 设备管理器 -> 找到手机设备
    
    • 1

    在这里插入图片描述
    在这里插入图片描述
    然后在手机上,点击右键,点击属性
    在这里插入图片描述
    在这里插入图片描述
    上图这个字符串就是就是VID 添加到 adb_usb.ini 中,要加上一个0x

    在这里插入图片描述

    这个ini配置文件一般在 C:\Users\xxxx\.android 之下:

    如果没有就在 C:\Users\xxxx\.android 下创建一个adb_usb.ini文件

    在这里插入图片描述

    以上部分参考自:
    https://stackoverflow.com/questions/19830407/i-cant-find-adb-usb-ini-file-in-android-folder

    4. 验证一下

    cmd输入以下命令试试:

    C:\Users\xxx>adb exec-out screencap -p > bbskali.png
    
    • 1

    就是截图并输入到当前目录(windows上)的bbskali.png图片中:

    在这里插入图片描述

    使用 adb 点击 (250, 250)

    C:\Users\xxxx>adb shell input tap 250 250
    
    
    Exception occurred while executing 'tap':
    java.lang.SecurityException: Injecting to another application requires INJECT_EVENTS permission
            at com.android.server.input.InputManagerService.injectInputEventInternal(InputManagerService.java:928)
            at com.android.server.input.InputManagerService.injectInputEvent(InputManagerService.java:880)
            at android.hardware.input.InputManager.injectInputEvent(InputManager.java:1091)
            at com.android.server.input.InputShellCommand.injectMotionEvent(InputShellCommand.java:138)
            at com.android.server.input.InputShellCommand.sendTap(InputShellCommand.java:342)
            at com.android.server.input.InputShellCommand.runTap(InputShellCommand.java:336)
            at com.android.server.input.InputShellCommand.onCommand(InputShellCommand.java:192)
            at com.android.modules.utils.BasicShellCommandHandler.exec(BasicShellCommandHandler.java:97)
            at android.os.ShellCommand.exec(ShellCommand.java:38)
            at com.android.server.input.InputManagerService.onShellCommand(InputManagerService.java:3554)
            at android.os.Binder.shellCommand(Binder.java:953)
            at android.os.Binder.onTransact(Binder.java:837)
            at android.hardware.input.IInputManager$Stub.onTransact(IInputManager.java:1125)
            at android.os.Binder.execTransactInternal(Binder.java:1187)
            at android.os.Binder.execTransact(Binder.java:1146)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    但是,报了这个:

    SecurityException: Injecting to another application requires INJECT_EVENTS permission
    
    • 1

    要点开这个:
    在这里插入图片描述
    老米手机,开启这个还需要tm的插入SIM卡

    可以参考:
    https://blog.csdn.net/weixin_42600398/article/details/116520110
    想和我说同样的话的,可以看看这个:
    https://www.zhihu.com/question/263928602

    5. 其他设置

    点开这个方便调试的地方:
    在这里插入图片描述

    一些其他的测试指令

    # 点击屏幕的 250 250 位置
    adb shell input tap 250 250
    
    # 从屏幕的 250 250 滑动到 800 800 位置
    adb shell input swipe 250 250 800 800
    
    • 1
    • 2
    • 3
    • 4
    • 5
  • 相关阅读:
    运维必备 | ansible 自动化运维工具之变量的定义与调用
    为什么要替换 Object.defineProperty?
    k8s自动化安装脚本(二进制)
    【Vue】监视属性
    Java中的transient关键字是什么意思?
    使用vagrant安装CentOS7虚拟机
    [附源码]Python计算机毕业设计Django基于VUE的网上订餐系统
    hive 不同维度聚合 grouping sets 使用详情
    十四天学会C++之第四天(面向对象编程基础)
    Mac下用Charles实现Android http和https抓包
  • 原文地址:https://blog.csdn.net/HaoZiHuang/article/details/127188345