## 获取

在刷机之前,需要在电脑上下载 **Android Preview** 包,一般我都是到
[安卓中国](https://developer.android.google.cn/preview/download#flash) ,这里可以下载最新的包。

## 手机

相对下载包的获取,比较难的是有一部支持最新的安卓系统的手机,一般
**Preview** 版的系统都是默认支持 **Google** 自己的手机的。

主要有面向的是 Pixel 系列的手机。Google 还是对自己的 **亲儿子** 系列更喜欢。

## 刷机

刷机目前有两个比较麻烦的地方,第一就是需要安装 `adb` 的命令,也就是
**Android** 的功能模块,第二就是需要解锁手机。

### adb 配置

即将 **Android SDK** 下载下来,然后将其配置到环境变量中即可

#### Windows

1. 配置 **ANDROID\_HOME** 变量到环境变量中
2. 配置 **%ANDROID\_HOME%\platform-tools** 到 **path** 中
3. 配置 **%ANDROID\_HOME%\tools** 到 **path** 中

#### Linux & Mac

打开 **profile** 文件,默认为 _.bash\_profile_ 如果使用的是 **zsh** 则编辑 _.zshrc_ 文件。

将下面的内容放到 **profile** 文件中

```shell
ANDROID_HOME=~/developerTools/adt-mac/sdk
export ANDROID_HOME
PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools
```

#### Mac

Mac 电脑提供了一个自动安装的内容,可以将 `adb` 相关的内容直接安装,但是如果是想开发 **Android** 应用的话,则必须要按上面的方案进行配置。

首先需要先安装 **brew** ,具体方案见 [Homebrew](https://brew.sh/index%5Fzh-cn) ,或者可以直接看其
**GitHub** 的主页 [Homebrew/brew](https://github.com/Homebrew/brew) 。

然后执行下面的命令

```shell
brew cask install android-platform-tools
```

如果执行刷机的时候,提示 **fastboot is too old** 则需要重新安装
_android-platform-tools_ , 因为 `brew update` 更新是不能更新 _cask_ 库的内容的。

```shell
brew cask reinstall android-platform-tools
```

最后,在命令行中执行 `adb devices` 不报错刚配置成功。如果配置之后,还依然报错的话,可以检查一下是否在使用过程中,将 **USB 调试功能** 关闭了。

### 操作

1. 连接手机
2. `adb devices` 获取手机的 **device id**
3. `adb reboot bootloader` 进入 **bootloader** 模式
4. **如果已经解锁了,则进入第8步,如果未解锁则进入第五步**
5. 进入到 **bootloader** 之后,执行 `fastboot flashing unlock`
6. 如果是 **Pixel 2 XL** 则执行 `fastboot flashing unlock_critical`
7. 如果是更早的设备,则需要执行 `fastboot oem unlock`
8. 进入下载的目录,然后执行 **flash-all** 脚本,如果是 _Windows_ 则是
`flash-all.bat` ,其它的则执行 `flash-all.sh`
9. 执行结束后,手机就已经刷好了,重启就可以使用了
10. 如果执行失败的话,就需要解压目录下的 _image_ 对应的包,然后执行下面的命令

```shell
fastboot flash vendor vendor.img
fastboot flash boot boot.img
fastboot flash system system.img
```

然后重启手机就可以了。

### V 版手机解锁

需要刷入一个工具,才能解锁

```shell
adb push dePixel8 /data/local/tmp
adb shell chmod 755 /data/local/tmp/dePixel8
adb shell /data/local/tmp/dePixel8
```

然后再执行 `adb reboot bootloader` 就可以正常解锁了。

[dePixel8.zip 下载](http://theroot.ninja/depixel8.html)

判断是否 V 版手机

```shell
adb shell getprop|grep cid
```

如果出现 **VZW\_001** 就是 V 版手机

Android 刷机方案的更多相关文章

  1. (转)Android刷机的一些知识整理

    刷机概述刷机原因刷机可以升级和破解固件(在Android上:即可以升级系统,更改系统,获取Root权限):破解系统的原因①安装第三方软件不需要签名,不受证书的束缚:②修改系统的文件,达到系统的瘦身,以 ...

  2. Android刷机教程

    我的机器是Nexus 5 一. 安装驱动 如何进入fastboot模式 1. 拔掉数据线,将手机关机 2. 关机后同时按住[音量减小键]和[开关机键]即可进入Fastboot模式 开启usb调试  - ...

  3. Android刷机

    1.安装第三方recovery 下载自己手机适配的recovery包 https://twrp.me/lg/lgnexus5.html fastboot 卡在 waiting for device $ ...

  4. miui10 刷机

    起因 折腾一下老手机 名词解释 名称 内容 含义 REC Recovery的缩写 Android出厂时自带的恢复模式 (理解为win PE) 双清 data,cache 用户数据+系统缓存 三清 da ...

  5. Android手机刷机失败的自救方法

    刷机对于一些android手机的高级用户来说已经是家常便饭了,很多新手也都跟着教程轻松了学会刷机.升级系统,也都开始经常在网上搜罗一些自制的系统进行刷机,体验新系统带来的新感觉.但是有句古话叫常在河边 ...

  6. android [因为开了刷机精灵等软件 导致adb 无法使用]error: could not install *smartsocket* listener: cannot bind

    今天 使用 刷机精灵后 在使用android studio 时发现 adb 无法正常使用.   于是 想重启 adb.exe , 直接在DOS里杀掉adb输入:adb kill-server 再启动输 ...

  7. [Android Pro] Android fastboot刷机和获取Root权限

    参考文章: https://developers.google.com/android/nexus/images 转载自:    http://www.inexus.co/article-1280-1 ...

  8. Nexus 5 Android 6.0.1刷机、Root

    Nexus 5 Android 6.0.1刷机.Root 2016-01-24   一.     准备 1.      备份通讯录等数据,切记. 2.      准备adb .fastboot.网上搜 ...

  9. Android源码浅析(三)——Android AOSP 5.1.1源码的同步sync和编译make,搭建Samba服务器进行更便捷的烧录刷机

    Android源码浅析(三)--Android AOSP 5.1.1源码的同步sync和编译make,搭建Samba服务器进行更便捷的烧录刷机 最近比较忙,而且又要维护自己的博客,视频和公众号,也就没 ...

随机推荐

  1. vimrc配置文件

    目录 vimrc配置文件 参考 主要功能 使用方法 配置文件 文件下载 vimrc配置文件

  2. Vim 使用 DrawIt 画图

    简介 DrawIt 插件用来在 Vim 中进行简单的画图功能.可以方便地移动光标并画出横线.竖线.斜线.箭头和交叉字符,也带有实用的画图功能,轻松画带箭头的线.矩形及椭圆. 官方主页:https:// ...

  3. MySQL8身份验证问题解决

    开新项目.使用MySQL8,在经历过B级别的网速下载后,终于安装好了MySQL,虽然在终端上是可以直接登录的. 但是我使用Navicat就无法访问了,提示什么登录失败,还有乱码. 搜索了一下,发现是M ...

  4. servlet中的forward()和redirect()

    从地址栏显示来说 forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器 浏览器根本不知道服务器发送的内容从哪里来的,所以它的地址栏 ...

  5. aiohttp的安装

    之前介绍的requests库是一个阻塞式HTTP请求库,当我们发出一个请求后,程序会一直等待服务器响应,知道得到响应后,程序才会进行下一步处理.其实,这个过程比较耗时.如果程序可以在这个等待过程中做一 ...

  6. 终端 10X 工作法(一)

    目录 1. Terminal 2. Grep 3. Sed 4. Awk 5. Xargs 6. Find 在 github 上面有一个 700 多人 star 的 repo 叫做 Bash-Onel ...

  7. Flask中的数据连接池

    pymsql链接数据库 import pymysql conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd=' ...

  8. 算数运算符and数据类型转换

    一元(单目)运算符有且只有一个运算参数,二元(双目)运算符有且只有两个运算参数. 二元运算符:+(加).-(减).*(乘)./(求商).%(求余) 一元运算符:+(正),-(负),++(自增),--( ...

  9. UVA1420 Priest John's Busiest Day【贪心】

    题意简介 有一个司仪,要主持n场婚礼,给出婚礼的起始时间和终止时间,每个婚礼需要超过一半的时间做为仪式,并且仪式不能终止.问说司仪能否主持n场婚礼. 输入格式 多组数据,每组数据输入一个\(N\)(\ ...

  10. Vue框架构造

    Vue 程序结构框架 Vue.js是典型的MVVM框架,什么是MVVM框架,介绍之前我们先介绍下什么是MVC框架 MVC 即 Model-View-Controller 的缩写,就是 模型-视图-控制 ...