没有 XX 助手没关系,在 macOS 上照样玩转 Android 机

前几日突然萌生入一台安卓折腾折腾的想法,于是从朋友手里收到一台 Nexus 6P。
到货第一天便折腾到半夜,激情复燃,想写一写在 macOS 上搞机的心得,虽然没有 Windows 平台那么多『助手』和『大师』帮忙。
但其实也没有想象中那么蛋疼。
相反,没有这些『大师』对你手机的『指指点点』,搞机过程还更舒心一些。

前言

本文内容都基于 ADB(Android Debug Bridge)这个工具,它可以实现对 Android 设备应用的安装和设备的调试,所以以下的内容都基于它提供的功能,如果你仅仅知道 ADB,但还不熟悉,你可以把本文当做它的小白文档参考使用。如果你已经非常熟悉 ADB,你可以查看其它文章,因为本文只是在介绍它包含的功能而已。

详细全面的介绍也可以参考文章末尾附录提供的网址。

阅读约定

为了排版美观,减少理解错误,提高阅读效率,本文采用了一些自定的撰写规则。

请务必在阅读下文前在这里阅读本文章的 -> 阅读指南

定义区

  • file_on_pc = 电脑上文件的路径
  • file_on_phone = 手机上文件的路径
  • phone_ip = 你手机的 iP 地址

教程正文

进入模式 · 刷机第一步

刚拿到 Nexus 系列机器时需要做的第一件事就是解开 Bootloader 锁,之后才可以刷入任意的第三方 Recovery。
而在 macOS 上你只需要打开终端,输入以下命令,来安装本文的主角:ADB.

1
brew install android-platform-tools

走完进度条之后,输入以下命令来测试是否安装成功:

1
adb

如果看到提示一堆文字,而不是 Command not found,则表示已经安装成功,此时你只需要将手机连接至电脑,开启 USB 调试模式(一般在设置—开发者选项中),再选择信任此计算机即可,如下图:

开启 USB 调试,一切就好办了,此时,在终端输入:

1
adb devices

你会看到设备已经出现在列表中:

如果你想进入 Recovery/Bootloader 模式,亦或是简单的重启,就只需要输入:

1
adb reboot recovery/bootloader

拿到新机 · 解锁不麻烦

解决了进入模式的问题之后,你应该学会了如何进入 bootloader,我们这一步的步骤就是在这个模式下进行的。

进入 Bootloader 模式后,在终端输入:

1
fastboot flashing unlock

成功之后你的手机会进入解锁模式,问你要不要解锁,直接选择『Yes』即可:

以后再开机你就可以看到屏幕下放多了一个解开的小锁头,解锁就成功了。

本部分步骤参考:Google 官方教程

自由刷机 · 就几条命令

解完锁之后做的事就是刷个称手的第三方 Recovery,我推荐大家使用 TWRP,这是一个图形化,而且支持触摸操作的,功能强大的 Recovery,你可以在本文的附录中找到它的下载链接。

而刷入 Recovery 的命令也十分简单,你只需要把手机进入 Bootloader,然后输入以下命令:
(当然,除了 Recovery,只要你有镜像,Vendor,Bootloader,Radio 都是可以刷进去的。)

1
fastboot vendor/radio/bootloader/recovery xxx.img

注:需要刷入对应的 .img,本命令同时仅可刷入一种镜像,不可多选。

如果你想线刷官方原厂镜像,你可以在本文的附录中找到 Nexus 系列的工厂镜像,然后解压,即可在路径里找到:flash_all.bat 和 flash_all.sh 这两个脚本文件。

前者对应的是 Windows 系统, 后者对应的则是 macOS/Linux 系统,所以如果你想在 macOS 下线刷原厂镜像,只需要将机器置于 Bootloader 模式,然后在终端进入镜像目录,再输入:

1
sh flash_all.sh

即可进入如下图的自动刷机流程。

当然,如果你想刷入普通的刷机包,只需要进入 Recovery ,然后使用 push 命令将 Rom 推送到手机内存卡中,最后使用 Recovery 选择刷入即可:

1
adb push xxx.zip /sdcard/

除此之外,还有一种更省事的第三方 Rom 刷机方法,既不用传文件,也不用手动选择刷机包 —— 用 Sideload 来刷入,要使用这个,你得先在 Recovery 中开启 Sideload 隧道,以 TWRP 为例,隧道开关在 Advanced -> ADB SideLoad 中(记得勾选双清):

然后在终端输入:

1
adb sideload xxx.zip

即可进入 sideload 模式,不过按我的经验来讲,这个模式下成功率较低,建议先 push 再手动刷。

互传文件 · 不用找助手

接下来介绍一下利用 ADB 实现 macOS 与 Android 之间互传文件的方法,命令分别是 push 和 pull,顾名思义,push 是从电脑中『推送』到手机中,Pull 则是从手机中『拉取』到电脑中,命令格式如下,请根据实际情况替换以下代码块中的 file_on_pc 1 以及 file_on_phone 2

1
2
adb push file_on_pc file_on_phone
adb pull file_on_phone file_on_pc

如 adb push xxx.zip /sdcard/ 为将 xxx.zip 推送到手机内存卡根目录

需要注意的是,push & pull 的两个参数中,第一个参数为完整路径 + 文件名,第二个参数为完整路径。命令成功输入后会出现进度条,进度条走完会显示传输报告(传输速度,耗费时间,和字节数)
如下图:

Push & Pull 命令足够简洁,平时使用中推送一个 Rom 文件到手机根目录中时用它就再方便不过了。

不过也仅仅如此,要想方便高效的管理手机中的数据,或者与电脑互传数据,命令行确实不太方便,所以和大家推荐一款 macOS 上图形化的文件管理软件,界面非常的美观,而且没有广告和流氓助手《HandShaker》,你可以在这里下载:http://www.smartisan.com/apps/handshaker

安装程序 · 就这一下子

虽然平时传文件用 HandShaker 就完全可以胜任了,但我们有时需要在电脑上为手机安装 Apk 格式的软件,传文件进去再用手机安装就有点麻烦了。

为此,ADB 提供了一个命令:

1
adb install xx.apk

注:install 后面跟着的所安装的 apk 文件名需包含路径,即:路径/xxx.apk。

无线连接 · 啥姿势都行

一般情况下我们是使用 USB 来连接电脑的,但有些时候,比如手机在享受快充充电,我们只是想安装个软件,这种情况就没必要打断它了。因为我们可以无线连接来继续 ADB 操作。

第一次使用无线连接之前需要进行一下配置,请确保你的电脑和手机连接至同一个 Wi-Fi,手机也已通过 USB 连接至电脑,然后在终端输入:

1
adb tcpip 5555

即可断开手机与电脑的 USB 连接,到手机中查看本机的 iP 地址(设置—>关于手机—>状态信息)。

记下这个 iP 地址之后(此例中为 192.168.0.100),回到终端输入以下命令,请根据实际情况替换以下代码块中的 phone_ip 3

1
adb connect phone_ip

命令成功后即可收到已连接设备的提示

再输入 adb devices 就能看到你的设备:

之后你就可以按照本文前面介绍的方法来操作你的设备了,如果你重启电脑,则需要重新来一遍这个流程,如果你关闭了手机的 Wi-Fi,则需要输入 adb connect 来再次连接。

SSH接入 · 开启新天地

至此,本文已经将 macOS 下对 Android 手机常见的操作方法介绍完毕了,这一部分介绍的是在 macOS 上通过 SSH 连接 Android 机的方法。
如果你不了解什么是 SSH,可以跳过本部分,这并不会影响你的日常使用;如果你想了解什么是 SSH,你只要大概知道这是手机上的终端,然后去搜索引擎以『Unix Shell』为关键词搜索即可,那些资料里的内容都能套用在 Android 手机上。
在 macOS 下通过 SSH 连接 Android 的方法非常简单,你只需要输入:

1
adb shell

即可进入手机的 Shell 中:

附录最后 · 为了凑字数

最后附上几个你可能会需要的东西:

可能是最纯净的,Nexus 系列官方底包
可能是最全面的,谷歌官网对 ADB (Andorid Debug Bridge) 的介绍
可能是最好用的 Recovery:TWRP 的官方网站
可能是最好用的,为你提供方便各种版本 & 各种完整度的 Google 服务的网站


  1. 1.file_on_pc = 电脑上文件的路径
  2. 2.file_on_phone = 手机上文件的路径
  3. 3.phone_ip = 你手机的 iP 地址
Sunbelife wechat