利用adb 在macOS上 为Nexus Android 手机线刷原生镜像固件

1. 前往 Google 开发者网站,下载对应手机型号的完整版工厂镜像 解压

2. 下载操作所需Android SDK Platform-tools工具,并进行解压备用

3.  下载TWRP for shamu

4.  下载Zip ROOT工具 SuperSU

Download Factory Images  https://developers.google.com/android/images

https://dl.google.com/dl/android/aosp/shamu-n6f27m-factory-bf5cce08.zip

1.  进入Bootloader模式

终端输入:        adb reboot bootloader

2.  解压镜像文件   cd到此文件夹路径下

终端输入:        cd /Users/XLsn0w/Desktop/shamu-mob31t

3.  执行命令行" sh ./ "   运行" flash-all.sh "文件,  执行刷机

终端输入:    sh ./flash-all.sh

手机将自动执行刷机脚本操作,请耐心等待直至手机重启并出现开机画面...

$  adb push /Users/XLsn0w/Desktop/SuperSU.zip /sdcard

$  adb reboot bootloader

$  cd /Users/XLsn0w/Desktop

$  fastboot flash recovery twrp-3.1.1-0-shamu.img 

adb reboot bootloader    进入bootloader刷机界面

fastboot reboot                重启

adb shell reboot -p          关机

fastboot devices               判断设备是否连接

fastboot flash recovery twrp.img    刷入TWRP

adb devices                    确定手机与电脑相连

adb reboot recovery    进入刷机界面

Mac 通过命令行adb install安装apk

$      cd 到apk所在文件夹路径

$    adb install xlsn0w.apk

1、安装APK(如果加 -r 参数,保留已设定数据,重新安装filename.apk)

adb install xxx.apk

adb install -r xxx.apk

2、卸载APK(如果加 -k 参数,为卸载软件但是保留配置和缓存文件)

adb uninstall xxx.apk

adb uninstall -k xxx.apk

3、查看当前所有连接的模拟器设备

adb devices

4、对某一模拟器操作

adb -s 模拟器编号 命令

5、导入文件到模拟器 (该命令也可以实现安装APK,只要把APK导入到"/system/app"或者"/data/app"就OK)

adb push 文件 模拟器路径

6、从模拟器导出文件

adb pull 模拟器文件 本地路径

7、查看模拟器log信息

adb logcat

8、获取管理员权限

adb root

9、进入shell模式

adb shell

10、启动activity (adb shell后面跟的命令主要来自源码\system\core\toolbox目录和源码\frameworks\base\cmds目录)

adb shell am start -n 包名/包名+类名(-n 类名,-a action,-d date,-m MIME-TYPE,-c category,-e 扩展数据,等)

11、获取设备ID号

adb get-serialno

12、开启adb服务

adb start-server

13、关闭adb服务

adb kill-server

14、访问sqlite3

adb shell

sqlite3

15、重启设备

adb reboot

16、挂在分区(可使系统分区重新可写)

adb remount

17、发布端口(可以设置任意的端口号,做为主机向模拟器或设备的请求端口)

adb forward tcp:5555 tcp:8000

18、关机命令

adb shell reboot -p

Android SDK Platform-tools 工具里面包含的 adb 及 fastboot 指令环境,是我们在后面运行相关指令所需要的,接下来先讲解如何让 macOS 运行 Android SDK。

配置 macOS 中 Android SDK 的环境变量

无论是 Windows 还是 macOS 环境中,我们都是通过 Terminal(Windows 称为「命令提示符」) 来对手机下达操作指令的。

而在对手机控制之前,我们需要先搭建好 Android SDK 的环境变量,使得 Terminal 能够调取、运行 adb 和 fastboot 指令。在 macOS 中搭建 Android SDK 的操作如下:

启动 Spotlight,输入「终端」找到 Terminal;

1.    在 Terminal 中输入cd ~,并按下回车执行,将 Terminal 中目录位置切换至目前登陆用户的「Home目录」位置;

2.    输入touch .bash_profile,并按下回车执行,创建出「.bash_profile」环境配置文件;

3.  输入open -e .bash_profile,并按下回车执行,编辑「.bash_profile」环境配置文件;

4.   输入路径

export PATH=$PATH:/Users/XLsn0w/Desktop/platform-tools

此时将会打开「.bash_profile」文件,在里面输入export PATH=$PATH:/Users/登陆用户名/存放的文件夹路径名称/platform-tools/代码。在此举个例子,若电脑登陆用户名为xlsn0w,且 Platform-tools 工具解压并放置在了「下载」文件夹,则此处需输入的代码为:export PATH=$PATH:/Users/xlsn0w/Downloads/platform-tools/,随后保存并关闭即可;

5.   输入source .bash_profile,并按下回车执行,执行创建好的环境配置。

完成上述几步简单的指令操作后,我们便完成了 Android SDK 的环境变量配置,往后运行 Platform-tools 工具的基础准备工作也已完成。

解锁 Bootloader

Bootloader 是我们在启动 Android 系统内核之前运行的底层模式,在这个底层模式下,我们能够对手机进行初始化硬件设备、建立内存空间映射图等操作。刷入官方工厂镜像等操作也是需要在这个模式下执行的。

(注意:此操作将清除手机中的所有资料,建议备份好手机中的所需资料后,再进行下述解锁 Bootloader 操作)

打开「开发者选项」:在「设置」中进入「关于手机」,持续点击「 版本号」7次;

依次打开「USB 调试」及「OEM 解锁」:在「设置」找到「开发者选项」,找到并打开对应选项。而 Pixel 用户需注意的是,「OEM 解锁」选项必须是在能够连接至 Google 服务器的联网状态才可打开;

随后进入 Bootloader 界面等候操作:将手机关机,随后同时按住「电源键+音量下键」,进入到 Bootloader 界面并使用数据线与电脑连接;

执行解锁 Bootloader 操作指令:在 macOS 打开 Terminal,并输入fastboot flashing unlock指令,手机将会提示你是否要解锁 Bootloader。

完成 Bootloader 解锁:随后按音量键选中「Yes」选项 ,并按下电源键确认,此时手机便完成了解锁 Bootloader,此时请勿关闭手机,我们将继续执行刷机操作。

完成刷入 Android 官方系统操作

完成了 Bootloader 解锁操作,我们现在可以执行刷入官方工厂镜像到手机了。

在 Finder 找到下载好的完整版工厂镜像,并确认已经解压完成;

在 Terminal 将路径切换至镜像文件夹中。假设我的文件夹路径为/Users/jackcivlie/Downloads/bullhead-opp1.170223.012/,则输入cd /Users/jackcivlie/Downloads/bullhead-opp1.170223.012/即可;

倘若对 macOS 文件夹路径不熟悉,难以辨别其路径位置的话,这里可以使用一个取巧的办法:先在 Terminal 中输入cd(注意「cd」后面有空格),并在 Finder 将镜像文件夹下拖拽任意一个文件到 Terminal 窗口,并将生成的路径代码中,将文件名的部分删除,按下回车便完成了操作;

终端代码如下

XLsn0ws-MacBook:~ XLsn0w$ adb reboot bootloader

* daemon not running. starting it now at tcp:5037 *

* daemon started successfully *

XLsn0ws-MacBook:~ XLsn0w$ cd /Users/XLsn0w/Desktop/shamu-mob31t

XLsn0ws-MacBook:shamu-mob31t XLsn0w$ sh ./flash-all.sh

(bootloader) slot-count: not found

(bootloader) slot-suffixes: not found

(bootloader) slot-suffixes: not found

(bootloader) has-slot:bootloader: not found

target reported max download size of 536870912 bytes

sending 'bootloader' (3807 KB)...

OKAY [0.120s]

writing 'bootloader'...

(bootloader) flashing partition ...

(bootloader) This may take a few seconds if a

(bootloader) different partition table is being

(bootloader) flashed since we need to backup

(bootloader) and restore a few partitions

(bootloader) Flashing primary GPT image...

(bootloader) Flashing backup GPT image...

(bootloader) flashing aboot ...

(bootloader) flashing sbl1 ...

(bootloader) flashing rpm ...

(bootloader) flashing tz ...

(bootloader) flashing sdi ...

(bootloader) flashing logo ...

OKAY [0.788s]

finished. total time: 0.908s

(bootloader) slot-count: not found

(bootloader) slot-suffixes: not found

(bootloader) slot-suffixes: not found

rebooting into bootloader...

OKAY [0.002s]

finished. total time: 0.002s

(bootloader) slot-count: not found

(bootloader) slot-suffixes: not found

(bootloader) slot-suffixes: not found

(bootloader) has-slot:radio: not found

target reported max download size of 536870912 bytes

sending 'radio' (115508 KB)...

OKAY [3.619s]

writing 'radio'...

(bootloader) flashing modem ...

(bootloader) flashing mdm1m9kefs1 ...

(bootloader) flashing mdm1m9kefs2 ...

(bootloader) flashing mdm1m9kefs3 ...

(bootloader) flashing versions ...

OKAY [1.689s]

finished. total time: 5.308s

(bootloader) slot-count: not found

(bootloader) slot-suffixes: not found

(bootloader) slot-suffixes: not found

rebooting into bootloader...

OKAY [0.002s]

finished. total time: 0.002s

(bootloader) slot-count: not found

(bootloader) slot-suffixes: not found

(bootloader) slot-suffixes: not found

(bootloader) current-slot: not found

(bootloader) slot-count: not found

(bootloader) slot-suffixes: not found

(bootloader) slot-count: not found

(bootloader) slot-suffixes: not found

target reported max download size of 536870912 bytes

(bootloader) has-slot:boot: not found

archive does not contain 'boot.sig'

(bootloader) has-slot:recovery: not found

archive does not contain 'recovery.sig'

(bootloader) has-slot:system: not found

archive does not contain 'system.sig'

archive does not contain 'vendor.img'

(bootloader) slot-count: not found

(bootloader) slot-suffixes: not found

(bootloader) slot-suffixes: not found

wiping userdata...

Creating filesystem with parameters:

Size: 59751923712

Block size: 4096

Blocks per group: 32768

Inodes per group: 8192

Inode size: 256

Journal blocks: 32768

Label:

Blocks: 14587872

Block groups: 446

Reserved block group size: 1024

Created filesystem with 11/3653632 inodes and 275392/14587872 blocks

wiping cache...

Creating filesystem with parameters:

Size: 268435456

Block size: 4096

Blocks per group: 32768

Inodes per group: 8192

Inode size: 256

Journal blocks: 1024

Label:

Blocks: 65536

Block groups: 2

Reserved block group size: 15

Created filesystem with 11/16384 inodes and 2089/65536 blocks

--------------------------------------------

Bootloader Version...: moto-apq8084-71.22

Baseband Version.....: D4.01-9625-05.34+FSG-9625-02.111

Serial Number........: ZX1G3268PW

--------------------------------------------

checking product...

OKAY [0.002s]

checking version-bootloader...

OKAY [0.002s]

checking version-baseband...

OKAY [0.002s]

sending 'boot' (8183 KB)...

OKAY [0.259s]

writing 'boot'...

OKAY [0.275s]

sending 'recovery' (8901 KB)...

OKAY [0.284s]

writing 'recovery'...

OKAY [0.126s]

sending sparse 'system' 1/4 (517178 KB)...

OKAY [ 18.982s]

writing 'system' 1/4...

OKAY [7.726s]

sending sparse 'system' 2/4 (515137 KB)...

OKAY [ 19.296s]

writing 'system' 2/4...

OKAY [7.407s]

sending sparse 'system' 3/4 (515644 KB)...

OKAY [ 19.295s]

writing 'system' 3/4...

OKAY [7.353s]

sending sparse 'system' 4/4 (514697 KB)...

OKAY [ 19.084s]

writing 'system' 4/4...

OKAY [6.867s]

erasing 'userdata'...

OKAY [9.301s]

sending 'userdata' (141067 KB)...

OKAY [4.432s]

writing 'userdata'...

OKAY [2.187s]

erasing 'cache'...

OKAY [0.043s]

sending 'cache' (6248 KB)...

OKAY [0.210s]

writing 'cache'...

OKAY [0.094s]

rebooting...

finished. total time: 123.237s

XLsn0ws-MacBook:shamu-mob31t XLsn0w$

推荐阅读更多精彩内容