## 获取

在刷机之前,需要在电脑上下载 **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. unzip 命令指定解压路径

    在使用unzip进行文件包解压,可以用来解压zip/jar/war包类型,有时解压时需要解压到指定路径时可以使用参数 -d 来指定,例如: unzip services-bak.jar -d ./we ...

  2. layDate——设置最大日期不能超过当前日期

    例如,当前年份是2018年,实现效果如下,2018年之后年份不可操作: 具体代码实现: layui.use([ 'laydate'], function () { var laydate = layu ...

  3. MongoDB 学习笔记之 TTL索引,部分索引和文本索引

    TTL索引: TTL集合支持mongodb对存储的数据进行失效时间设置,经过指定的时间段后.或在指定的时间点过期,集合自动被mongod清除.这一特性有利于对一些只需要保存一定时间的数据信息进行存储, ...

  4. 终端-Linux命令之非交互SSH密码验证-Sshpass

    Sshpass是使用SSH所谓的"交互式键盘密码身份验证"以非交互方式执行密码身份验证的工具 通俗来说就是 使用ssh密码登录 是需要在连接时手动输入密码的,没办法明文连接,如下图 ...

  5. UnicodeDecodeError: 'gbk' codec can't decode byte 0xae in position 357: illegal multibyte sequence 错误解决方法(已解决)

    今天在搭建数据驱动测试框架的时候遇到这个错误: 好在我英语水平还不错(也就六级水平吧),根据英文提示说是多字节数据顺序是非法的 顺着错误往上找发现 File "C:\Users\Mr雷的电脑 ...

  6. Azure pipeline 配置根据条件执行脚本

    Azure pipeline 配置根据条件执行脚本 Intro 我的应用通过 azure pipeline 来做持续集成,之前已经介绍了根据不同分支去打包不同的package,具体的就不再这里详细介绍 ...

  7. springmvc处理局部异常和全局异常

    springmvc通过HandlerExceptionResolver(是一个接口,在spring-webmvc依赖下)处理程序异常,包括处理器异常.数据绑定异常以及处理器执行时发生的异常.Handl ...

  8. 一个纯CSS实现的卡片翻转效果

    先上代码 <div id="box"> <div class="front">正面</div> <div class= ...

  9. bugku 各种·绕过

    点开是一段PHP的代码,先来审计一波代码. 发现将uname和passwd用sha1进行了加密,那么我们只要绕过这个函数构造相等就可以了. 可以使这两个值sha1的值相等,但他们本身的值又不等.(想详 ...

  10. Selenium+PhantomJS使用时报错原因

    运行下面代码:'''PhantomJS运用''' from selenium import webdriverimport time # 通过keys模拟键盘from selenium.webdriv ...