Android 刷机方案
## 获取
在刷机之前,需要在电脑上下载 **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 刷机方案的更多相关文章
- (转)Android刷机的一些知识整理
刷机概述刷机原因刷机可以升级和破解固件(在Android上:即可以升级系统,更改系统,获取Root权限):破解系统的原因①安装第三方软件不需要签名,不受证书的束缚:②修改系统的文件,达到系统的瘦身,以 ...
- Android刷机教程
我的机器是Nexus 5 一. 安装驱动 如何进入fastboot模式 1. 拔掉数据线,将手机关机 2. 关机后同时按住[音量减小键]和[开关机键]即可进入Fastboot模式 开启usb调试 - ...
- Android刷机
1.安装第三方recovery 下载自己手机适配的recovery包 https://twrp.me/lg/lgnexus5.html fastboot 卡在 waiting for device $ ...
- miui10 刷机
起因 折腾一下老手机 名词解释 名称 内容 含义 REC Recovery的缩写 Android出厂时自带的恢复模式 (理解为win PE) 双清 data,cache 用户数据+系统缓存 三清 da ...
- Android手机刷机失败的自救方法
刷机对于一些android手机的高级用户来说已经是家常便饭了,很多新手也都跟着教程轻松了学会刷机.升级系统,也都开始经常在网上搜罗一些自制的系统进行刷机,体验新系统带来的新感觉.但是有句古话叫常在河边 ...
- android [因为开了刷机精灵等软件 导致adb 无法使用]error: could not install *smartsocket* listener: cannot bind
今天 使用 刷机精灵后 在使用android studio 时发现 adb 无法正常使用. 于是 想重启 adb.exe , 直接在DOS里杀掉adb输入:adb kill-server 再启动输 ...
- [Android Pro] Android fastboot刷机和获取Root权限
参考文章: https://developers.google.com/android/nexus/images 转载自: http://www.inexus.co/article-1280-1 ...
- Nexus 5 Android 6.0.1刷机、Root
Nexus 5 Android 6.0.1刷机.Root 2016-01-24 一. 准备 1. 备份通讯录等数据,切记. 2. 准备adb .fastboot.网上搜 ...
- Android源码浅析(三)——Android AOSP 5.1.1源码的同步sync和编译make,搭建Samba服务器进行更便捷的烧录刷机
Android源码浅析(三)--Android AOSP 5.1.1源码的同步sync和编译make,搭建Samba服务器进行更便捷的烧录刷机 最近比较忙,而且又要维护自己的博客,视频和公众号,也就没 ...
随机推荐
- java调用python的几种用法(看这篇就够了)
java调用python的几种用法如下: 在java类中直接执行python语句 在java类中直接调用本地python脚本 使用Runtime.getRuntime()执行python脚本文件(推荐 ...
- forEach标签
1.forEach标签的简单使用: (1)未设置步长属性时,默认步长为1: <c:forEach "> <c:out value="${number}" ...
- wordpress访问速度慢
可能是google字体的原因 1.找到wordpress目录下wp-includes/script-loader.php这个文件 2.查找open_sans_font_url这个字段,把后面的font ...
- Mysql高手系列 - 第21篇:什么是索引?
Mysql系列的目标是:通过这个系列从入门到全面掌握一个高级开发所需要的全部技能. 这是Mysql系列第21篇. 本文开始连续3篇详解mysql索引: 第1篇来说说什么是索引? 第2篇详解Mysql中 ...
- java架构之路-(JVM优化与原理)JVM类的加载机制
话不多说,先上图. ***.class文件执行大概就是这样来走的.我们都知道我们的java文件经过编译以后会生成对应的class文件.先经过类装载子系统,然后塞进运行时内存模型的元空间,开始执行方法, ...
- [LeetCode] 824. Goat Latin
Description A sentence S is given, composed of words separated by spaces. Each word consists of lowe ...
- Kotlin编译时注解,简单实现ButterKnife
ButterKnife在之前的Android开发中还是比较热门的工具,帮助Android开发者减少代码编写,而且看起来更加的舒适,于是简单实现一下ButterKnife,相信把下面的代码都搞懂,看Bu ...
- Web调用Linux客户端remmina运维
相信你遇到过这样的场景,在浏览器网页中点击QQ图标咨询,就能唤起本机的装的qq或tim,下载百度网盘的资源的时候,点击链接浏览器会启动本地百度云进行下载. 最近因为项目需要,也要实现类似的操作,不 ...
- Linux虚拟机中配置JDK环境变量(Ubuntu系统)
首先通过Xshell中文件传输想你的虚拟机上传你的jdk,如图所示:(需要本机安装Xftp:链接: https://pan.baidu.com/s/1sWHmywZ2C6V2n4aa1FqqFg 提取 ...
- C# 动态(不定)类型和不定参数数量,使用param写入CSV文档的最简单方法,提供excel(或记事本)阅读支持格式
在开发一个项目,使用C#写入CSV文件时,虽并未遇到太多阻碍,但是很多小伙伴估计和我有过同样的想法.简单的写入CSV,固定参数数量就好了很简单写完.但是如果遇到你得到的数据参数数量和参数类型未知或者动 ...