利用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$

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,242评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,769评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,484评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,133评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,007评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,080评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,496评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,190评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,464评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,549评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,330评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,205评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,567评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,889评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,160评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,475评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,650评论 2 335

推荐阅读更多精彩内容