Ubuntu下安装ADB

背景

电脑上的USB口有问题,不方便调试;发现用于开发的服务器就在工位旁边。

先拿过来用一下。

Ubuntu:18.04

做法

安装adb

做法有很多种,列举下列2种。

下载二进制安装包

谷歌的网站下载LINUX adb调试工具。

adb 包含在 Android SDK 平台工具软件包中。您可以使用 SDK 管理器下载此软件包,

该管理器会将其安装在 android_sdk/platform-tools/ 下。

或者,如果您需要独立的 Android SDK 平台工具软件包,也可以点击此处进行下载

wget https://dl.google.com/android/repository/platform-tools_r31.0.2-linux.zip

增加export PATH=$PATH:/xxx/platform-tools/xxx/platform-tools代表adb下载下来的存放路径)

根据apt安装

sudo apt-get install -y android-tools-adb 

# 如果发现源中没有这个程序:
sudo add-apt-repository ppa:nilarimogard/webupd8
sudo apt-get update
sudo apt-get install -y android-tools-adb

连接手机

lsusb 查看USB设备的PID:VID

这里插入的是高通平台的设备,对应的PID0x05c6VID0x9091

$ lsusb
## Qualcomm
Bus 001 Device 006: ID 05c6:9091 Qualcomm, Inc.

附录:adb devices时提示no permissinons解决

此时使用adb命令时,发现:

$ adb devices
List of devices attached
* daemon not running; starting now at tcp:5037
* daemon started successfully
(no serial number) no permissions (user xx is not in the plugdev group); see [http://developer.android.com/tools/device.html]

一般是因为udev规则没写好,大部分情况是 PID以及VID写错了,一定要通过lsusb确认好。

adb_usb.ini

将PID写入:

echo 0x18d1>> ~/.android/adb_usb.ini  #关键,大部分第三方厂商设备在此文件中定义,才运行adb连接

android.rules

增加udev规则,udev是用来管理设备的工具。

/etc/udev/rules.d/schips-android.rules中,根据VID增加一条:,这样子可以直接覆盖对应的型号

SUBSYSTEM=="usb", ATTRS{idProduct}=="9091", MODE="0666"

添加权限:

sudo chmod 666 /etc/udev/rules.d/schips-android.rules

重启对应的服务:

sudo udevadm control --reload-rules
sudo service udev restart
sudo udevadm trigger
adb kill-server;adb start-server

我的android.rules是这样子写的:

SUBSYSTEM=="usb", ATTRS{idProduct}=="9091", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idProduct}=="90db", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idProduct}=="9008", MODE="0666"

附录:adb修订版本

31.0.2(2021 年 4 月)

adb

  • 支持在 Linux 上转发到 vsock。
  • 修复了 adb track-devices 中采用无线调试功能的设备不会立即收到更新的错误。
  • 无需单独安装 mDNS 服务即可实现对 mDNS 设备发现的初步支持。此功能目前默认处于停用状态,可以在启动 adb 服务器时将环境变量 ADB_MDNS_OPENSCREEN 设置为 1 来启用。

fastboot

  • 无法获取启动分区大小时不会失败。
  • 会从属性派生设备锁定状态,而不是解析内核命令行。

31.0.1(2021 年 3 月)

adb

  • 减少了 TCP keepalive 间隔。
  • 提高了增量安装性能。

fastboot

  • 添加了对压缩快照合并的支持。
  • 恢复了对旧版 A/B 的支持。

31.0.0(2021 年 2 月)

adb

  • 默认情况下,停用在 pull 时进行压缩。

30.0.5(2020 年 11 月)

adb

  • 提升了通过高延迟连接推送许多文件时 adb push 的性能。
  • 提升了 adb push/pull 在 Windows 上的性能。
  • 修复了处理多个输入时 adb push --sync 的问题。
  • 提升了增量 APK 安装的性能。
  • 改进了针对增量 APK 安装的错误处理。

30.0.4(2020 年 7 月)

adb

  • 修复了在搭载 Android 11 之前版本的设备上回退到非增量 APK 安装的问题。
  • 修复了 adb install-multi-package
  • 修复了更多与 adb 无线配对相关的崩溃问题。
  • 改进了一些错误消息。

fastboot

  • 改进了 fastboot oem 命令的控制台输出。
  • 修复了旧款设备(如 Nexus 7)上的 fastboot flashall 问题。

30.0.3(2020 年 6 月)

adb

  • 修复了在搭载 Android 11 之前版本的设备上安装使用 v4 签名方案签名的 APK 的问题。
  • 修复了在不使用 ADB_VENDOR_KEYS 的情况下进行身份验证时发生崩溃的问题。
  • 修复了使用 adb -H 时发生崩溃的问题。

30.0.2(2020 年 6 月)

adb

  • 改进了 adb 无线配对。
  • 修复了在连接设备前运行时 adb logcat 挂起的问题。
  • 添加了 adb transport-id,以允许脚本在运行 root/unroot/reboot 后安全地等待设备断开连接。

30.0.1(2020 年 5 月)

adb

  • 默认会停用 adb mdns 自动连接。此设置可通过 ADB_MDNS_AUTO_CONNECT 环境变量重新启用。
  • 改进了 adb install-multi 在搭载 Android 10 或更高版本的设备上的性能。
  • 修复了在通过 TCP 连接的设备上使用 adb root/unroot 时超时的问题。
  • 更新了对无线配对的支持。

30.0.0(2020 年 4 月)

adb

  • 添加了对无线配对的初步支持。
  • 添加了对增量 APK 安装的支持。
  • 实现了对 adb {push, pull, sync} 压缩的客户端支持(在搭载 Android 11 的设备上使用时)。
  • 提升了连接延迟时间较长时 adb push 的性能。
  • 提升了 Windows 上的 push/pull 性能。

29.0.6(2020 年 2 月)

adb

  • adb ls 提供 64 位大小/时间支持(在搭载 Android 11 的设备上使用时)。
  • 支持在 POSIX 上监听 ::1
  • 在发布 WinUSB 描述符的 WinUSB 设备上,应该不需要再安装 U 盘,即可实现客户端支持(这对 Android 11 是必需的)。
  • 修复了在实际上并非文件的项中使用 adb install 时挂起的问题。

29.0.5(2019 年 10 月)

adb

  • 使用许多同步连接时,在 Linux 上的性能略有提升。
  • adb install 添加了 --fastdeploy 选项,可在开发过程中对 APK 进行增量更新。

29.0.4(2019 年 9 月)

adb

  • LLDB 原生调试超时的修补程序(详见错误 #134613180)。这也修复了 Android Studio 性能剖析器中导致 AdbCommandRejectedException 的相关错误,您可以在 idea.log 文件中看到该错误。

29.0.3(2019 年 9 月)

adb

  • adb forward --list 可与多台连接的设备配合使用。
  • 修复了设备在 Windows 上进入离线状态的问题。
  • 改进了 adb install 输出和帮助文本。
  • 可在不指定端口的情况下恢复 adb connect <host> 之前的行为。

29.0.2(2019 年 7 月)

adb

  • 修复了 Windows 堆完整性崩溃问题。

fastboot

  • 添加了对即将推出的新设备的分区布局的支持。

29.0.1(2019 年 6 月)

adb

29.0.0(2019 年 6 月)

adb

  • adb reconnect 会在 Linux 上执行 USB 重置。
  • 在 Linux 上,当连接到较新的 adb 服务器时,adb 会尝试以透明的方式启动新版本,而不是先终止服务器,再启动旧版本。
  • 断开连接后,adb root 会等待设备重新连接。 以前,如果 adb wait-for-device 在 adb 注意到设备已断开连接之前启动,adb root; adb wait-for-device 可能会错误地立即返回。

fastboot

  • 停用了当 fastboot 试图在 macOS 上打开触控栏或键盘时出现的错误消息。

28.0.2(2019 年 3 月)

adb

  • 修复了导致“对等方重置了连接”错误消息的 adb shell 端口转发不稳定问题。
  • 修复了重新连接设备时通过 ADB_VENDOR_KEYS 进行身份验证的问题。
  • 通过根据私钥计算公钥(而不是假定私钥和公钥匹配)修复了身份验证问题(当用于进行身份验证的私钥与公钥不匹配时)。

fastboot

  • 添加了对动态分区的支持。

  • 更新了 Windows 的相关要求

    • 平台工具现在依赖于 Windows 通用 C 运行时,它通常是通过 Windows Update 默认安装的。如果您看到提及缺少 DLL 的错误,那么可能需要手动获取并安装运行时软件包

28.0.1(2018 年 9 月)

adb

  • 添加了对重新连接 TCP 连接的支持。断开连接后,adb 会尝试重新连接最多 60 秒,如果仍不成功,才会放弃连接。
  • 修复了 Windows 上的 Unicode 控制台输出问题。(感谢外部贡献者 Spencer Low!)
  • 修复了可能发生的文件描述符 double-close 问题,此问题会导致连接在 adb connect 发生的同时关闭。
  • 修复了在与多个设备连接的情况下使用时 adb forward --list 的问题。

fastboot

  • 将命令超时增加到了 30 秒,以更好地支持一些速度较慢的引导加载程序命令。

28.0.0(2018 年 6 月)

adb:

  • 添加了对搭载 Android P 的设备的无校验和操作的支持,使吞吐量提高了多达 40%。
  • 按连接类型和设备序列号对 adb devices 的输出进行了排序。
  • 增加了套接字监听积压量,以允许同时执行更多 adb 命令。
  • 改进了 adb connect 的错误输出。

fastboot:

  • 改进了输出格式,添加了详细输出模式 (-v)。
  • 清理了帮助输出。
  • product.imgodm.img 添加到了由 fastboot flashall 刷写的分区列表。
  • 通过允许出厂映像软件包要求对特定分区的支持,避免在使用过旧版本的 fastboot 时导致新设备死机。

27.0.1(2017 年 12 月)

adb:修复了在使用 USB 3.0 连接设备时在 MacOS 上出现的断言失败问题。

fastboot:在 Windows 上,添加了对擦除使用 F2FS(闪存友好型文件系统)的设备的支持。

27.0.0(2017 年 12 月)

  • 重新修复了 macOS 10.13 fastboot 错误,此错误在 26.0.1 中首次修复,但在 26.0.2 中重新引入。

26.0.2(2017 年 10 月)

  • 为 Pixel 2 设备添加了 fastboot 支持。

26.0.1(2017 年 9 月)

  • 修复了 macOS 10.13 High Sierra 上的 fastboot 问题(详见错误 64292422)。

26.0.0(2017 年 6 月)

  • 通过发布 Android O 最终版本 SDK(API 级别 26)进行了更新。

25.0.5(2017 年 4 月 24 日)

  • 修复了 Windows 上大型更新的 adb 旁加载问题,此问题在清单中显示为“std::bad_alloc”(详见错误 37139736)。
  • 修复了某些 Windows 防火墙存在的 adb 问题,此问题在清单中显示为“cannot open transport registration socketpair”(详见错误 37139725)。
  • adb --versionfastboot --version 现在都包含安装路径。
  • adb 已更改为不解析 localhost,以便解决配置错误的 VPN。
  • adb 已更改为不再在 Linux 上重置 USB 设备,因为重置 USB 设备可能会影响其他连接的 USB 设备。

25.0.4(2017 年 3 月 16 日)

  • 为 Linux 和 Mac adb 添加了实验性 libusb 支持

如需使用 libusb 后端,请先设置环境变量 ADB_LIBUSB=true,然后再启动新的 adb 服务器。新的 adb host-features 命令会告知您是否在使用 libusb。

如需使用 libusb 重启 adb 并检查它是否正常运行,请使用 adb kill-server; ADB_LIBUSB=1 adb start-server; adb host-features。输出应包含“libusb”。

在此版本中,旧版的非 libusb 实现仍然是默认实现。

  • fastboot 不再挂起 2016 MacBook Pros(详见错误 231129
  • 修复了 Mac 上的 Systrace 命令行捕获问题

25.0.3(2016 年 12 月 16 日)

  • 修复了导致 Android Things 设备无法刷写的 fastboot 错误

25.0.2(2016 年 12 月 12 日)

  • 通过发布 Android N MR1 稳定版(API 25)进行了更新

25.0.1(2016 年 11 月 22 日)

  • 通过发布 Android N MR1 开发者预览版 2(API 25)进行了更新

25.0.0(2016 年 10 月 19 日)

  • 通过发布 Android N MR1 开发者预览版 1(API 25)进行了更新

24.0.4(2016 年 10 月 14 日)

  • 已更新并解决了 ADB 和 Mac OS Sierra 中的问题

在Ubuntu 18.04 安装 adb的更多相关文章

  1. Ubuntu 18.04 安装MySQL

    最近在写东西的时候,需要用到MySQL,在网上查了一下,都说Ubuntu18.04不能安装MySQL5.7.22, 总觉的不可能,所以自己就研究了一下,然后分享给大家 工具/原料   VMware W ...

  2. Ubuntu 18.04 安装博通(Broadcom)无线网卡驱动

    目录 Ubuntu 18.04 安装博通(Broadcom)无线网卡驱动 Package gcc is not configured yet. 解决办法 history history | grep ...

  3. 在Ubuntu 18.04 安装 MySQL 8.0

    在Ubuntu 18.04 安装 MySQL 8.0 ① 登入 mysql 官网,在官网中下载 deb 包,点击该链接,即可下载. https://dev.mysql.com/downloads/re ...

  4. Ubuntu 18.04 安装部署Net Core、Nginx全过程

    Ubuntu 18.04 安装部署Net Core.Nginx全过程 环境配置 Ubuntu 18.04 ,Nginx,.Net Core 2.1, Let's Encrypt 更新系统 sudo a ...

  5. Ubuntu 18.04 安装和常用软件安装

    Ubuntu 18.04 安装 下载 Ubuntu 制作 U 盘启动盘 设置电脑为 U 盘启动 插入 U 盘,重启电脑 按照提示安装 Ubuntu 更新 NVIDIA 显卡和 Broadcom 无线网 ...

  6. Ubuntu 18.04安装MongoDB 4.0(社区版)

    Ubuntu 18.04(虚拟机VirtualBox上),MongoDB 4.0, 听室友说,23点有世界杯决赛呢!可是,孤要写博文的啊!以记录这忙乱的下午和晚间成功安装了一个软件到Linux上.—— ...

  7. 真实机下 ubuntu 18.04 安装GPU +CUDA+cuDNN 以及其版本选择(亲测非常实用)【转】

    本文转载自:https://blog.csdn.net/u010801439/article/details/80483036 ubuntu 18.04 安装GPU +CUDA+cuDNN : 目前, ...

  8. [笔记] Ubuntu 18.04安装Docker CE及nvidia-docker2流程

    Docker的好处之一,就是在Container里面可以随意瞎搞,不用担心弄崩Host的环境. 而nvidia-docker2的好处是NVidia帮你配好了Host和Container之间的CUDA相 ...

  9. Ubuntu 18.04安装arm-linux-gcc交叉编译器

    Ubuntu 18.04安装arm-linux-gcc交叉编译器

  10. Ubuntu 18.04安装Samba服务器及配置

    Ubuntu 18.04安装Samba服务器及配置 局域网下使用samba服务在Linux系统与Windows系统直接共享文件是一项很方便的操作.以Ubuntu为例配置samba服务,Linux服务器 ...

随机推荐

  1. 实验8 #第8章 Verilog有限状态机设计-1 #Verilog #Quartus #modelsim

    8-1 流水灯控制器 1. 实验要求:采用有限状态机设计彩灯控制器,控制LED灯实现预想的演示花型. 2. 实验内容: (1)功能:设计彩灯控制器,要求控制18个LED灯实现如下的演示花型: 从两边往 ...

  2. rails 写入日志函数

    json_object={ "ip"=> "127.0.0.1", "ports"=> '80,135', "data ...

  3. HTML link标签中preload,prefetch,dns-prefetch,preconnect,prerender

    Preload 在我们的浏览器加载资源的时候,对于每一个资源都有其自身的默认优先级,倘若我们能修改每一个资源的默认优先级,那我们几乎可以按照我们的预期加载想要加载的资源. 以谷歌浏览器为例,我们打开控 ...

  4. 在Docker内部使用gdb调试器报错-Operation not permitted

    在docker内部使用gdb调试时刻遇到了gdb如下报错信息: warning: Error disabling address space randomization: Operation not ...

  5. Linux环境下:程序的链接, 装载和库[可执行文件的装载]

    现代操作系统如何装载可执行文件? 给进程分配独立的虚拟地址空间 建立虚拟地址空间和可执行文件的映射关系 把CPU指令寄存器设置成可执行文件的入口地址,启动执行 可执行文件在装载的过程中实际上是映射的虚 ...

  6. 2023年Clion插件推荐

    目录 搜素位置 插件 background-image plus 背景图片插件 Rainbow Brackets 彩虹括号 Xcode-Dark Theme 界面主题 Grep Console 日志颜 ...

  7. anaconda3部署以及使用详解

    Anaconda3-2019.10-Linux-x86_64.sh 某次执行Python程序,其中两个错误信息如下: ImportError: libcblas.so.3: cannot open s ...

  8. NumPy 正态分布与 Seaborn 可视化指南

    正态分布(高斯分布) 简介 正态分布(也称为高斯分布)是一种非常重要的概率分布,它描述了许多自然和人为现象的数据分布情况.正态分布的形状呈钟形,其峰值位于平均值处,两侧对称下降. 特征 正态分布可以用 ...

  9. .NET集成DeveloperSharp实现http网络请求&与其它工具的比较

    爆了,爆了,DeveloperSharp系列近期又被制造业ERP.民航飞行App.建筑BIM.电力掌上营业厅.等多家大型采用,站在巨人的肩膀上你能走的更远. 支持.Net Core2.0及以上,支持. ...

  10. harbor 构建企业级镜像仓库

    安装harbor 构建企业级镜像仓库 Harbor是由VMware公司开源的镜像仓库,harbor是在docker Registry上进行了企业级扩展,从而获得了更广泛的应用,这些新的企业级特性包括: ...