自我介绍

笔者系计算机系在校生,搞机生涯丰富,强迫症患者,多年果粉 & Nexus 粉一枚,目前深陷 Apple Loop 无法自拔。

本文背景

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

目录

本文将会涉及以下内容:

  • 拿到新机  · 解锁不麻烦
  • 进入模式  · 刷机第一步
  • 自由刷机  · 就几条命令
  • 互传文件  · 不用找助手
  • 安装程序  · 就这一下子
  • 无线连接  · 啥姿势都行
  • SSH 接入 · 开启新天地
  • 附录最后  · 为了凑字数

前言

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

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

进入模式  · 刷机第一步

刚拿到 Nexus 系列机器时需要做的第一件事就是解开 Bootloader 锁,之后才可以刷入任意的第三方 Recovery,而在 Mac 上你只需要打开终端,就是如下的这个应用:

本文的所有命令均在上图所示的『终端』里操作

然后输入以下命令,来安装本文的主角:ADB。
brew install android-platform-tools
走完进度条之后可以输入以下命令来测试是否安装成功:
adb
如果看到提示一堆文字,而不是 Command not found,则表示已经安装成功,此时你只需要将手机连接至电脑,开启 USB 调试模式(一般在设置—开发者选项中),再选择信任此计算机即可,如下图:

开启 USB 调试,一切就好办了。

此时,在终端输入 

adb devices

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

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

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

adb reboot recovery/bootloader

拿到新机  · 解锁不麻烦

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

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

fastboot flashing unlock

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

选择 『 Yes 』即可

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

象征自由的小锁头

本部分步骤参考 Google 官方教程:https://developers.google.cn/android/images

自由刷机  · 就几条命令

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

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

fastboot vendor/radio/bootloader/recovery xxx.img 
注:需要刷入对应的 .img,本命令同时仅可刷入一种镜像,不可多选。

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

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

sh flash_all.sh

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

在 Mac 下刷工厂镜像也非常方便


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

 adb push xxx.zip /sdcard/

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

想使用 Sideload 得先开启隧道

然后在终端输入:

adb sideload xxx.zip

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

互传文件  · 不用找助手

接下来介绍一下利用 ADB 实现 Mac 与 Android 之间互传文件的方法,命令分别是 push 和 pull,顾名思义,push 是从电脑中『推送』到手机中,Pull 则是从手机中『拉取』到电脑中,命令格式为:
adb push 电脑上文件路径 手机上放置路径 (如 adb push xxx.zip /sdcard/ 为将 xxx.zip 推送到手机内存卡根目录)
adb pull 手机上文件路径 电脑上放置路径 (如 adb pull xxx.zip /User/)
需要注意的是,push & pull 的两个参数中,第一个参数为完整路径 + 文件名,第二个参数为完整路径。命令成功输入后会出现进度条,进度条走完会显示传输报告(传输速度,耗费时间,和字节数)
如下图:
 Pull & Push
Push & Pull 命令足够简洁,平时使用中推送一个 Rom 文件到手机根目录中时用它就再方便不过了。

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

安装程序  · 就这一下子

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

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

adb install xx.apk
注:install 后面跟着的所安装的 apk 文件名需包含路径,即:路径/xxx.apk。
软件安装成功之后,会显示命令行返回安装成功的字样:
软件安装成功之后,会显示命令行返回安装成功的字样

无线连接  · 啥姿势都行

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

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

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

设置—>关于手机—>状态信息

记下这个 iP 地址之后(此例中为 192.168.0.100),回到终端输入:

adb connect [你的 iP 地址]

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

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

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

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

SSH 接入 · 开启新天地

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

附录最后  · 为了凑字数

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

  1. 可能是最纯净的,Nexus 系列官方底包:https://developers.google.cn/android/images
  2. 可能是最全面的,谷歌官网对 ADB (Andorid Debug Bridge) 的介绍:https://developer.android.com/studio/command-line/adb.html
  3. 可能是最好用的 Recovery:TWRP 的官方网站:https://dl.twrp.me
  4. 可能是最好用的,为你提供方便各种版本 & 各种完整度的 Google 服务的网站:http://opengapps.org
  5. 可能是最有意思的,我的新浪微博:@Sunbelife,欢迎和我讨论和分享好玩的东西。