在Ubuntu 18.04 安装 adb
<h1 id="ubuntu下安装adb">Ubuntu下安装ADB</h1><h2 id="背景">背景</h2>
<p>电脑上的USB口有问题,不方便调试;发现用于开发的服务器就在工位旁边。</p>
<p>先拿过来用一下。</p>
<p>Ubuntu:18.04</p>
<h2 id="做法">做法</h2>
<h3 id="安装adb">安装adb</h3>
<p>做法有很多种,列举下列2种。</p>
<h4 id="下载二进制安装包">下载二进制安装包</h4>
<p>从谷歌的网站下载LINUX adb调试工具。</p>
<p><code>adb</code> 包含在 Android SDK 平台工具软件包中。您可以使用 SDK 管理器下载此软件包,</p>
<p>该管理器会将其安装在 <code>android_sdk/platform-tools/</code> 下。</p>
<p>或者,如果您需要独立的 Android SDK 平台工具软件包,也可以点击此处进行下载。</p>
<pre><code>wget https://dl.google.com/android/repository/platform-tools_r31.0.2-linux.zip
</code></pre>
<p>增加<code>export PATH=$PATH:/xxx/platform-tools</code>(<code>/xxx/platform-tools</code>代表adb下载下来的存放路径)</p>
<h4 id="根据apt安装">根据apt安装</h4>
<pre><code class="language-bash">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
</code></pre>
<h3 id="连接手机">连接手机</h3>
<p>lsusb查看USB设备的<code>PID:VID </code></p>
<p>这里插入的是高通平台的设备,对应的<code>PID</code>是<code>0x05c6</code>,<code>VID</code>为<code>0x9091</code>:</p>
<pre><code class="language-bash">$ lsusb
## Qualcomm
Bus 001 Device 006: ID 05c6:9091 Qualcomm, Inc.
</code></pre>
<h2 id="附录adb-devices时提示no-permissinons解决">附录:adb devices时提示no permissinons解决</h2>
<p>此时使用adb命令时,发现:</p>
<pre><code class="language-bash">$ 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
</code></pre>
<p>一般是因为udev规则没写好,大部分情况是 <code>PID</code>以及<code>VID</code>写错了,一定要通过<code>lsusb</code>确认好。</p>
<h3 id="adb_usbini">adb_usb.ini</h3>
<p>将PID写入:</p>
<pre><code class="language-bash">echo 0x18d1>> ~/.android/adb_usb.ini#关键,大部分第三方厂商设备在此文件中定义,才运行adb连接
</code></pre>
<h3 id="androidrules">android.rules</h3>
<p>增加udev规则,udev是用来管理设备的工具。</p>
<p>在<code>/etc/udev/rules.d/schips-android.rules</code>中,根据<code>VID</code>增加一条:,这样子可以直接覆盖对应的型号</p>
<pre><code>SUBSYSTEM=="usb", ATTRS{idProduct}=="9091", MODE="0666"
</code></pre>
<p>添加权限:</p>
<pre><code class="language-bash">sudo chmod 666 /etc/udev/rules.d/schips-android.rules
</code></pre>
<p>重启对应的服务:</p>
<pre><code class="language-bash">sudo udevadm control --reload-rules
sudo service udev restart
sudo udevadm trigger
adb kill-server;adb start-server
</code></pre>
<p>我的<code>android.rules</code>是这样子写的:</p>
<pre><code>SUBSYSTEM=="usb", ATTRS{idProduct}=="9091", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idProduct}=="90db", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idProduct}=="9008", MODE="0666"
</code></pre>
<h2 id="附录adb修订版本">附录:adb修订版本</h2>
<h4 id="31022021-年-4-月">31.0.2(2021 年 4 月)</h4>
<p>adb</p>
<ul>
<li>支持在 Linux 上转发到 vsock。</li>
<li>修复了 <code>adb track-devices</code> 中采用无线调试功能的设备不会立即收到更新的错误。</li>
<li>无需单独安装 mDNS 服务即可实现对 mDNS 设备发现的初步支持。此功能目前默认处于停用状态,可以在启动 adb 服务器时将环境变量 <code>ADB_MDNS_OPENSCREEN</code> 设置为 1 来启用。</li>
</ul>
<p>fastboot</p>
<ul>
<li>无法获取启动分区大小时不会失败。</li>
<li>会从属性派生设备锁定状态,而不是解析内核命令行。</li>
</ul>
<h4 id="31012021-年-3-月">31.0.1(2021 年 3 月)</h4>
<p>adb</p>
<ul>
<li>减少了 TCP keepalive 间隔。</li>
<li>提高了增量安装性能。</li>
</ul>
<p>fastboot</p>
<ul>
<li>添加了对压缩快照合并的支持。</li>
<li>恢复了对旧版 A/B 的支持。</li>
</ul>
<h4 id="31002021-年-2-月">31.0.0(2021 年 2 月)</h4>
<p>adb</p>
<ul>
<li>默认情况下,停用在 pull 时进行压缩。</li>
</ul>
<h4 id="30052020-年-11-月">30.0.5(2020 年 11 月)</h4>
<p>adb</p>
<ul>
<li>提升了通过高延迟连接推送许多文件时 <code>adb push</code> 的性能。</li>
<li>提升了 <code>adb push/pull</code> 在 Windows 上的性能。</li>
<li>修复了处理多个输入时 <code>adb push --sync</code> 的问题。</li>
<li>提升了增量 APK 安装的性能。</li>
<li>改进了针对增量 APK 安装的错误处理。</li>
</ul>
<h4 id="30042020-年-7-月">30.0.4(2020 年 7 月)</h4>
<p>adb</p>
<ul>
<li>修复了在搭载 Android 11 之前版本的设备上回退到非增量 APK 安装的问题。</li>
<li>修复了 <code>adb install-multi-package</code>。</li>
<li>修复了更多与 adb 无线配对相关的崩溃问题。</li>
<li>改进了一些错误消息。</li>
</ul>
<p>fastboot</p>
<ul>
<li>改进了 <code>fastboot oem</code> 命令的控制台输出。</li>
<li>修复了旧款设备(如 Nexus 7)上的 <code>fastboot flashall</code> 问题。</li>
</ul>
<h4 id="30032020-年-6-月">30.0.3(2020 年 6 月)</h4>
<p>adb</p>
<ul>
<li>修复了在搭载 Android 11 之前版本的设备上安装使用 v4 签名方案签名的 APK 的问题。</li>
<li>修复了在不使用 <code>ADB_VENDOR_KEYS</code> 的情况下进行身份验证时发生崩溃的问题。</li>
<li>修复了使用 <code>adb -H</code> 时发生崩溃的问题。</li>
</ul>
<h4 id="30022020-年-6-月">30.0.2(2020 年 6 月)</h4>
<p>adb</p>
<ul>
<li>改进了 adb 无线配对。</li>
<li>修复了在连接设备前运行时 <code>adb logcat</code> 挂起的问题。</li>
<li>添加了 <code>adb transport-id</code>,以允许脚本在运行 root/unroot/reboot 后安全地等待设备断开连接。</li>
</ul>
<h4 id="30012020-年-5-月">30.0.1(2020 年 5 月)</h4>
<p>adb</p>
<ul>
<li>默认会停用 adb mdns 自动连接。此设置可通过 <code>ADB_MDNS_AUTO_CONNECT</code> 环境变量重新启用。</li>
<li>改进了 <code>adb install-multi</code> 在搭载 Android 10 或更高版本的设备上的性能。</li>
<li>修复了在通过 TCP 连接的设备上使用 <code>adb root/unroot</code> 时超时的问题。</li>
<li>更新了对无线配对的支持。</li>
</ul>
<h4 id="30002020-年-4-月">30.0.0(2020 年 4 月)</h4>
<p>adb</p>
<ul>
<li>添加了对无线配对的初步支持。</li>
<li>添加了对增量 APK 安装的支持。</li>
<li>实现了对 <code>adb {push, pull, sync}</code> 压缩的客户端支持(在搭载 Android 11 的设备上使用时)。</li>
<li>提升了连接延迟时间较长时 <code>adb push</code> 的性能。</li>
<li>提升了 Windows 上的 push/pull 性能。</li>
</ul>
<h4 id="29062020-年-2-月">29.0.6(2020 年 2 月)</h4>
<p>adb</p>
<ul>
<li>对 <code>adb ls</code> 提供 64 位大小/时间支持(在搭载 Android 11 的设备上使用时)。</li>
<li>支持在 POSIX 上监听 <code>::1</code>。</li>
<li>在发布 WinUSB 描述符的 WinUSB 设备上,应该不需要再安装 U 盘,即可实现客户端支持(这对 Android 11 是必需的)。</li>
<li>修复了在实际上并非文件的项中使用 <code>adb install</code> 时挂起的问题。</li>
</ul>
<h4 id="29052019-年-10-月">29.0.5(2019 年 10 月)</h4>
<p>adb</p>
<ul>
<li>使用许多同步连接时,在 Linux 上的性能略有提升。</li>
<li>向 <code>adb install</code> 添加了 <code>--fastdeploy</code> 选项,可在开发过程中对 APK 进行增量更新。</li>
</ul>
<h4 id="29042019-年-9-月">29.0.4(2019 年 9 月)</h4>
<p>adb</p>
<ul>
<li>LLDB 原生调试超时的修补程序(详见错误 #134613180)。这也修复了 Android Studio 性能剖析器中导致 <code>AdbCommandRejectedException</code> 的相关错误,您可以在 <code>idea.log</code> 文件中看到该错误。</li>
</ul>
<h4 id="29032019-年-9-月">29.0.3(2019 年 9 月)</h4>
<p>adb</p>
<ul>
<li><code>adb forward --list</code> 可与多台连接的设备配合使用。</li>
<li>修复了设备在 Windows 上进入离线状态的问题。</li>
<li>改进了 <code>adb install</code> 输出和帮助文本。</li>
<li>可在不指定端口的情况下恢复 <code>adb connect <host></code> 之前的行为。</li>
</ul>
<h4 id="29022019-年-7-月">29.0.2(2019 年 7 月)</h4>
<p>adb</p>
<ul>
<li>修复了 Windows 堆完整性崩溃问题。</li>
</ul>
<p>fastboot</p>
<ul>
<li>添加了对即将推出的新设备的分区布局的支持。</li>
</ul>
<h4 id="29012019-年-6-月">29.0.1(2019 年 6 月)</h4>
<p>adb</p>
<ul>
<li>Windows 崩溃问题的修补程序 (https://issuetracker.google.com/134613180)</li>
</ul>
<h4 id="29002019-年-6-月">29.0.0(2019 年 6 月)</h4>
<p>adb</p>
<ul>
<li><code>adb reconnect</code> 会在 Linux 上执行 USB 重置。</li>
<li>在 Linux 上,当连接到较新的 adb 服务器时,adb 会尝试以透明的方式启动新版本,而不是先终止服务器,再启动旧版本。</li>
<li>断开连接后,<code>adb root</code> 会等待设备重新连接。 以前,如果 <code>adb wait-for-device</code> 在 adb 注意到设备已断开连接之前启动,<code>adb root; adb wait-for-device</code> 可能会错误地立即返回。</li>
</ul>
<p>fastboot</p>
<ul>
<li>停用了当 fastboot 试图在 macOS 上打开触控栏或键盘时出现的错误消息。</li>
</ul>
<h4 id="28022019-年-3-月">28.0.2(2019 年 3 月)</h4>
<p>adb</p>
<ul>
<li>修复了导致“对等方重置了连接”错误消息的 <code>adb shell</code> 端口转发不稳定问题。</li>
<li>修复了重新连接设备时通过 <code>ADB_VENDOR_KEYS</code> 进行身份验证的问题。</li>
<li>通过根据私钥计算公钥(而不是假定私钥和公钥匹配)修复了身份验证问题(当用于进行身份验证的私钥与公钥不匹配时)。</li>
</ul>
<p>fastboot</p>
<ul>
<li>
<p>添加了对动态分区的支持。</p>
</li>
<li>
<p>更新了 Windows 的相关要求</p>
<ul>
<li>平台工具现在依赖于 Windows 通用 C 运行时,它通常是通过 Windows Update 默认安装的。如果您看到提及缺少 DLL 的错误,那么可能需要手动获取并安装运行时软件包。</li>
</ul>
</li>
</ul>
<h4 id="28012018-年-9-月">28.0.1(2018 年 9 月)</h4>
<p>adb</p>
<ul>
<li>添加了对重新连接 TCP 连接的支持。断开连接后,adb 会尝试重新连接最多 60 秒,如果仍不成功,才会放弃连接。</li>
<li>修复了 Windows 上的 Unicode 控制台输出问题。(感谢外部贡献者 Spencer Low!)</li>
<li>修复了可能发生的文件描述符 double-close 问题,此问题会导致连接在 <code>adb connect</code> 发生的同时关闭。</li>
<li>修复了在与多个设备连接的情况下使用时 <code>adb forward --list</code> 的问题。</li>
</ul>
<p>fastboot</p>
<ul>
<li>将命令超时增加到了 30 秒,以更好地支持一些速度较慢的引导加载程序命令。</li>
</ul>
<h4 id="28002018-年-6-月">28.0.0(2018 年 6 月)</h4>
<p>adb:</p>
<ul>
<li>添加了对搭载 Android P 的设备的无校验和操作的支持,使吞吐量提高了多达 40%。</li>
<li>按连接类型和设备序列号对 <code>adb devices</code> 的输出进行了排序。</li>
<li>增加了套接字监听积压量,以允许同时执行更多 adb 命令。</li>
<li>改进了 <code>adb connect</code> 的错误输出。</li>
</ul>
<p>fastboot:</p>
<ul>
<li>改进了输出格式,添加了详细输出模式 (<code>-v</code>)。</li>
<li>清理了帮助输出。</li>
<li>将 <code>product.img</code> 和 <code>odm.img</code> 添加到了由 <code>fastboot flashall</code> 刷写的分区列表。</li>
<li>通过允许出厂映像软件包要求对特定分区的支持,避免在使用过旧版本的 fastboot 时导致新设备死机。</li>
</ul>
<h4 id="27012017-年-12-月">27.0.1(2017 年 12 月)</h4>
<p><strong>adb</strong>:修复了在使用 USB 3.0 连接设备时在 MacOS 上出现的断言失败问题。</p>
<p><strong>fastboot</strong>:在 Windows 上,添加了对擦除使用 F2FS(闪存友好型文件系统)的设备的支持。</p>
<h4 id="27002017-年-12-月">27.0.0(2017 年 12 月)</h4>
<ul>
<li>重新修复了 macOS 10.13 fastboot 错误,此错误在 26.0.1 中首次修复,但在 26.0.2 中重新引入。</li>
</ul>
<h4 id="26022017-年-10-月">26.0.2(2017 年 10 月)</h4>
<ul>
<li>为 Pixel 2 设备添加了 fastboot 支持。</li>
</ul>
<h4 id="26012017-年-9-月">26.0.1(2017 年 9 月)</h4>
<ul>
<li>修复了 macOS 10.13 High Sierra 上的 fastboot 问题(详见错误 64292422)。</li>
</ul>
<h4 id="26002017-年-6-月">26.0.0(2017 年 6 月)</h4>
<ul>
<li>通过发布 Android O 最终版本 SDK(API 级别 26)进行了更新。</li>
</ul>
<h4 id="25052017-年-4-月-24-日">25.0.5(2017 年 4 月 24 日)</h4>
<ul>
<li>修复了 Windows 上大型更新的 adb 旁加载问题,此问题在清单中显示为“std::bad_alloc”(详见错误 37139736)。</li>
<li>修复了某些 Windows 防火墙存在的 adb 问题,此问题在清单中显示为“cannot open transport registration socketpair”(详见错误 37139725)。</li>
<li><code>adb --version</code> 和 <code>fastboot --version</code> 现在都包含安装路径。</li>
<li>adb 已更改为不解析 <code>localhost</code>,以便解决配置错误的 VPN。</li>
<li>adb 已更改为不再在 Linux 上重置 USB 设备,因为重置 USB 设备可能会影响其他连接的 USB 设备。</li>
</ul>
<h4 id="25042017-年-3-月-16-日">25.0.4(2017 年 3 月 16 日)</h4>
<ul>
<li>为 Linux 和 Mac adb 添加了实验性 libusb 支持</li>
</ul>
<p>如需使用 libusb 后端,请先设置环境变量 ADB_LIBUSB=true,然后再启动新的 adb 服务器。新的 <code>adb host-features</code> 命令会告知您是否在使用 libusb。</p>
<p>如需使用 libusb 重启 adb 并检查它是否正常运行,请使用 <code>adb kill-server; ADB_LIBUSB=1 adb start-server; adb host-features</code>。输出应包含“libusb”。</p>
<p>在此版本中,旧版的非 libusb 实现仍然是默认实现。</p>
<ul>
<li>fastboot 不再挂起 2016 MacBook Pros(详见错误 231129)</li>
<li>修复了 Mac 上的 Systrace 命令行捕获问题</li>
</ul>
<h4 id="25032016-年-12-月-16-日">25.0.3(2016 年 12 月 16 日)</h4>
<ul>
<li>修复了导致 Android Things 设备无法刷写的 fastboot 错误</li>
</ul>
<h4 id="25022016-年-12-月-12-日">25.0.2(2016 年 12 月 12 日)</h4>
<ul>
<li>通过发布 Android N MR1 稳定版(API 25)进行了更新</li>
</ul>
<h4 id="25012016-年-11-月-22-日">25.0.1(2016 年 11 月 22 日)</h4>
<ul>
<li>通过发布 Android N MR1 开发者预览版 2(API 25)进行了更新</li>
</ul>
<h4 id="25002016-年-10-月-19-日">25.0.0(2016 年 10 月 19 日)</h4>
<ul>
<li>通过发布 Android N MR1 开发者预览版 1(API 25)进行了更新</li>
</ul>
<h4 id="24042016-年-10-月-14-日">24.0.4(2016 年 10 月 14 日)</h4>
<ul>
<li>已更新并解决了 ADB 和 Mac OS Sierra 中的问题</li>
</ul>
</div>
<div id="MySignature" role="contentinfo">
如果说我的文章对你有用,只不过是我站在巨人的肩膀上再继续努力罢了。<br>若在页首无特别声明,本篇文章由 Schips 经过整理后发布。<br>博客地址:https://www.cnblogs.com/schips/<br><br>
来源:https://www.cnblogs.com/schips/p/install_adb_in_ubuntu_18.html
頁:
[1]