最新消息:20210917 已从crifan.com换到crifan.org

【已解决】Mac中升级adb到最新版本

Mac crifan 2199浏览 0评论
折腾:
【未解决】Mac中用adb install安装安卓apk卡死
期间,去看看和确认Mac此处的adb是否是最新版本
如果不是,则去升级到最新版本
此处Mac中adb版本是
 ~  adb --version
Android Debug Bridge version 1.0.41
Version 29.0.5-5949299
Installed as /usr/local/bin/adb
去网上找找是否有最新版adb
android latest adb
SDK 平台工具版本说明  |  Android 开发者  |  Android Developers
“29.0.5(2019 年 10 月)
* adb
    * 使用许多同步连接时,在 Linux 上的性能略有提升。
    * 向 adb install 添加了 –fastdeploy 选项,可在开发过程中对 APK 进行增量更新。”
此处29.0.5,是之前的,2019年10月份的版本
估计是有bug
最新的是:
“30.0.5(2020 年 11 月)
    * 提升了 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 时挂起的问题。”
-》其中有很多adb install方面的更新
或许就是:已经解决了install卡死的问题。
其中最相关的一个是
“* 修复了在实际上并非文件的项中使用 adb install 时挂起的问题。”
不确定是否是,但是还是很有必要去升级此处adb到最新版本
Google Releases Separate ADB and Fastboot Binary Downloads
-》
platform-tools-latest-darwin.zip
-》
eabcd8b4b7ab518c6af9c941af8494072f17ec4b.platform-tools_r30.0.5-darwin.zip
去下载:
解压后文件:
去看看版本
 ~/dev/tools/android/adb/platform-tools  ll
total 28592
-rw-rw----@ 1 xxx  CORP\Domain Users   321K 10  1 18:37 NOTICE.txt
-rwxrwxr-x@ 1 xxx  CORP\Domain Users   6.2M 10 21 15:27 adb
drwxrwx---@ 4 xxx  CORP\Domain Users   128B 10  1 18:37 api
-rwxrwxr-x@ 1 xxx  CORP\Domain Users    78K 10 21 15:27 dmtracedump
-rwxrwxr-x@ 1 xxx  CORP\Domain Users   1.4M 10 21 15:27 e2fsdroid
-rwxrwxr-x@ 1 xxx  CORP\Domain Users   304K 10 21 15:27 etc1tool
-rwxrwxr-x@ 1 xxx  CORP\Domain Users   1.6M 10 21 15:27 fastboot
-rwxrwxr-x@ 1 xxx  CORP\Domain Users    35K 10 21 15:27 hprof-conv
drwxrwx---@ 3 xxx  CORP\Domain Users    96B 10 21 15:27 lib64
-rwxrwxr-x@ 1 xxx  CORP\Domain Users   256K 10 21 15:27 make_f2fs
-rwxrwxr-x@ 1 xxx  CORP\Domain Users   252K 10 21 15:27 make_f2fs_casefold
-rwxrwxr-x@ 1 xxx  CORP\Domain Users   762K 10 21 15:27 mke2fs
-rwxrwxr-x@ 1 xxx  CORP\Domain Users   1.1K 10  1 18:36 mke2fs.conf
-rwxrwxr-x@ 1 xxx  CORP\Domain Users   1.4M 10 21 15:27 sload_f2fs
-rw-rw-r--@ 1 xxx  CORP\Domain Users    38B 10  1 18:36 source.properties
-rwxrwxr-x@ 1 xxx  CORP\Domain Users   1.3M 10 21 15:27 sqlite3
drwxrwx---@ 6 xxx  CORP\Domain Users   192B 10  1 18:36 systrace
 xxx@xxx  ~/dev/tools/android/adb/platform-tools  ./adb --version
Android Debug Bridge version 1.0.41
Version 30.0.5-6877874
Installed as /Users/xxx/dev/tools/android/adb/platform-tools/./adb
最新版本是:30.0.5
那去把此处adb加到环境变量中,此时,可以考虑把此处路径,加到PATH的最前方,则可以保证用上最新的adb
去试试
注意到之前的路径是:
cat ~/.zshrc
...
#PATH=$PATH:/Users/xxx/Library/Android/sdk/build-tools/29.0.2
export ANDROID_SDK_ROOT=/Users/xxx/Library/Android/sdk
ANDROID_HOME=$ANDROID_SDK_ROOT
PATH=$PATH:$ANDROID_SDK_ROOT/build-tools/29.0.2
PATH=$PATH:$ANDROID_SDK_ROOT/tools:$ANDROID_SDK_ROOT/platform-tools
去看看
xxx@xx  ~  cd /Users/xxx/Library/Android/sdk/platform-tools
 xxx@xx  ~/Library/Android/sdk/platform-tools  ll
total 28064
-rw-r--r--  1 xxx  CORP\Domain Users   308K  8  5 15:18 NOTICE.txt
-rwxr-xr-x  1 xxx  CORP\Domain Users   6.2M  8  5 15:18 adb
drwxr-xr-x  4 xxx  CORP\Domain Users   128B  8  5 15:18 api
-rwxr-xr-x  1 xxx  CORP\Domain Users    78K  8  5 15:18 dmtracedump
-rwxr-xr-x  1 xxx  CORP\Domain Users   1.4M  8  5 15:18 e2fsdroid
-rwxr-xr-x  1 xxx  CORP\Domain Users   304K  8  5 15:18 etc1tool
-rwxr-xr-x  1 xxx  CORP\Domain Users   1.6M  8  5 15:18 fastboot
-rwxr-xr-x  1 xxx  CORP\Domain Users    35K  8  5 15:18 hprof-conv
drwxr-xr-x  3 xxx  CORP\Domain Users    96B  8  5 15:18 lib64
-rwxr-xr-x  1 xxx  CORP\Domain Users   251K  8  5 15:18 make_f2fs
-rwxr-xr-x  1 xxx  CORP\Domain Users   762K  8  5 15:18 mke2fs
-rwxr-xr-x  1 xxx  CORP\Domain Users   1.1K  8  5 15:18 mke2fs.conf
-rw-r--r--  1 xxx  CORP\Domain Users    17K  8  5 15:18 package.xml
-rwxr-xr-x  1 xxx  CORP\Domain Users   1.4M  8  5 15:18 sload_f2fs
-rw-r--r--  1 xxx  CORP\Domain Users    38B  8  5 15:18 source.properties
-rwxr-xr-x  1 xxx  CORP\Domain Users   1.3M  8  5 15:18 sqlite3
drwxr-xr-x  6 xxx  CORP\Domain Users   192B  8  5 15:18 systrace
 xxx@xxx  ~/Library/Android/sdk/platform-tools  ./adb --version
Android Debug Bridge version 1.0.41
Version 30.0.4-6686687
Installed as /Users/xxx/Library/Android/sdk/platform-tools/./adb
 xxx@xx  ~/Library/Android/sdk/platform-tools 
-》其实
/Users/xxx/Library/Android/sdk/platform-tools
下面的adb也是很新的版本:30.0.4
而此处的adb是:
 xxx@xxx  ~  which adb
/usr/local/bin/adb
 xxx@xxx  ~  adb --version
Android Debug Bridge version 1.0.41
Version 29.0.5-5949299
Installed as /usr/local/bin/adb
好像是之前:
重新安装了android的SDK?(内置adb)
导致了adb是旧版本。
去看了看
/Users/xxx/Library/Android/sdk/platform-tools/29.0.2
里面有:
aapt
想起来了:
之前是升级aapt,导致路径用别的,导致adb是旧版本
xxx@x  ~  which aapt
/Users/xxx/Library/Android/sdk/build-tools/29.0.2/aapt
 xxx@x  ~  aapt --version
ERROR: Unknown command '--version'
Android Asset Packaging Tool

Usage:
 aapt l[ist] [-v] [-a] file.{zip,jar,apk}
   List contents of Zip-compatible archive.
。。。
看来aapt导致新的
去找找 之前aapt升级的前后过程
为何adb是旧版本
发现:
 xxx@xxx  ~  ll /usr/local/bin/adb
lrwxr-xr-x  1 xxx  admin    68B 11  7  2019 /usr/local/bin/adb -> /usr/local/Caskroom/android-platform-tools/29.0.5/platform-tools/adb
adb指向的是Caskroom
-》说明是brew安装的。
找到之前的:
【已解决】macOS中安装安卓开发工具adb
brew cask install android-platform-tools
和:
【已解决】Mac中安装获取安卓apk信息的工具aapt
的:
brew tap caskroom/cask
brew cask install android-sdk
总之是,从brew安装的adb
所以才能看到adb是指向Caskroom下面的adb
此处的adb应该是之前的android-platform-tools或android-sdk安装得到的。
另外
也再去看看
/usr/local/Caskroom/android-platform-tools/29.0.5/platform-tools/adb
然后发现了:
/usr/local/Caskroom/android-platform-tools/29.0.5/platform-tools/
下面有adb
以及:
/usr/local/Caskroom/android-sdk
下面有:
很少用到。
-》说明前面的adb,的确是之前的:
brew cask install android-platform-tools
安装得到的:
/usr/local/Caskroom/android-platform-tools/29.0.5/platform-tools/adb
也觉得需要:删除掉之前的adb
或许是:
brew cast uninstall android-platform-tools
希望用之前在PATH中加的:
#PATH=$PATH:/Users/xxx/Library/Android/sdk/build-tools/29.0.2
export ANDROID_SDK_ROOT=/Users/xxx/Library/Android/sdk
ANDROID_HOME=$ANDROID_SDK_ROOT
PATH=$PATH:$ANDROID_SDK_ROOT/build-tools/29.0.2
PATH=$PATH:$ANDROID_SDK_ROOT/tools:$ANDROID_SDK_ROOT/platform-tools
就可以用,此处相对很新的,30.0.4(离最新的30.0.5)已经很接近了。
去试试
 xxx@xx  ~  brew cast uninstall android-platform-tools
Error: Unknown command: cast
 ✘ xxx@xx  ~  brew uninstall android-platform-tools
==> Uninstalling Cask android-platform-tools
==> Unlinking Binary '/usr/local/bin/adb'.
==> Unlinking Binary '/usr/local/bin/dmtracedump'.
==> Unlinking Binary '/usr/local/bin/etc1tool'.
==> Unlinking Binary '/usr/local/bin/fastboot'.
==> Unlinking Binary '/usr/local/bin/hprof-conv'.
==> Unlinking Binary '/usr/local/bin/mke2fs'.
==> Purging files for version 29.0.5 of Cask android-platform-tools
卸载后,立刻发现:
 xxx@xxx  ~  which adb
/Users/xxx/Library/Android/sdk/platform-tools/adb
 xxx@xxx  ~  adb --version
Android Debug Bridge version 1.0.41
Version 30.0.4-6686687
Installed as /Users/xxx/Library/Android/sdk/platform-tools/adb
当然,还可以加上额外的变量定义,把最新的30.0.5的adb的路径:
/Users/xxx/dev/tools/android/adb/platform-tools
放到PATH最前面:
#PATH=$PATH:/Users/xxx/Library/Android/sdk/build-tools/29.0.2
PATH=/Users/xxx/dev/tools/android/adb/platform-tools:$PATH
export ANDROID_SDK_ROOT=/Users/xxx/Library/Android/sdk
ANDROID_HOME=$ANDROID_SDK_ROOT
PATH=$PATH:$ANDROID_SDK_ROOT/build-tools/29.0.2
PATH=$PATH:$ANDROID_SDK_ROOT/tools:$ANDROID_SDK_ROOT/platform-tools
生效,看看:
 xxx@xxx  ~/dev/tools/android/adb/platform-tools  source ~/.zshrc
 xxx@xxx  ~/dev/tools/android/adb/platform-tools  which adb
/Users/xxx/dev/tools/android/adb/platform-tools/adb
 xxx@xx  ~/dev/tools/android/adb/platform-tools  adb --version
Android Debug Bridge version 1.0.41
Version 30.0.5-6877874
Installed as /Users/xxx/dev/tools/android/adb/platform-tools/adb
就是我们希望的了。
【总结】
此处之前的adb版本是:
~  adb --version
Android Debug Bridge version 1.0.41
Version 29.0.5-5949299
Installed as /usr/local/bin/adb
发现是2019 年 10 月发布的29.0.5,版本太老了
此处想要换最新版本的:截止20201203,是 30.0.5
而之前的旧版本,经过查证,是之前用brew安装的:
brew cask install android-platform-tools
所以先去卸载
brew uninstall android-platform-tools
然后去下载最新版本的adb:
来源1:
安卓官网
SDK 平台工具版本说明  |  Android 开发者  |  Android Developers
->
  • * 下载适用于 Windows 的 SDK Platform-Tools
  • * 下载适用于 Mac 的 SDK Platform-Tools
  • * 下载适用于 Linux 的 SDK Platform-Tools
来源2:
Google Releases Separate ADB and Fastboot Binary Downloads
-》
始终是最新地址:
然后下载后解压,得到platform-tools目录,把其放到合适位置
此处是:
/Users/xxx/dev/tools/android/adb/platform-tools
再去把对应路径加到PATH环境变量中
vi ~/.zshrc
编辑成:
PATH=/Users/xxx/dev/tools/android/adb/platform-tools:$PATH
注:
相关完整配置:
#PATH=$PATH:/Users/xxx/Library/Android/sdk/build-tools/29.0.2
PATH=/Users/xxx/dev/tools/android/adb/platform-tools:$PATH
export ANDROID_SDK_ROOT=/Users/xxx/Library/Android/sdk
ANDROID_HOME=$ANDROID_SDK_ROOT
PATH=$PATH:$ANDROID_SDK_ROOT/build-tools/29.0.2
PATH=$PATH:$ANDROID_SDK_ROOT/tools:$ANDROID_SDK_ROOT/platform-tools
即可确保是最新版:
 xxx@xxx  ~/dev/tools/android/adb/platform-tools  which adb
/Users/xxx/dev/tools/android/adb/platform-tools/adb
 xxx@xxx  ~/dev/tools/android/adb/platform-tools  adb --version
Android Debug Bridge version 1.0.41
Version 30.0.5-6877874
Installed as /Users/xxx/dev/tools/android/adb/platform-tools/adb
附录:

转载请注明:在路上 » 【已解决】Mac中升级adb到最新版本

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
92 queries in 0.195 seconds, using 23.41MB memory