Android 刷机实践

获取

在刷机之前,需要在电脑上下载 Android Preview 包,一般我都是到安卓中国 ,这里可以下载最新的包。

手机

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

目前只支持 Pixel 系列的手机,包括 XL 系列。

  • Pixel n
  • Pixel n XL

刷机

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

adb 配置

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

Windows

  1. 配置 ANDROID_HOME 变量到环境变量中
  2. 配置 %ANDROID_HOME%\platform-toolspath
  3. 配置 %ANDROID_HOME%\toolspath

Linux & Mac

打开 profile 文件,默认为 .bash_profile 如果使用的是 zsh 则编辑 .zshrc 文件。

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

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

Mac

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

首先需要先安装 brew ,具体方案见 Homebrew ,或者可以直接看其 GitHub 的主页 Homebrew/brew

然后执行下面的命令

brew cask install android-platform-tools

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

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 对应的包,然后执行下面的命令
    fastboot flash vendor vendor.img
    fastboot flash boot boot.img
    fastboot flash system system.img
    

然后重启手机就可以了。

V 版手机解锁

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

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 下载

判断是否 V 版手机

adb shell getprop|grep cid

如果出现 VZW_001 就是 V 版手机

Author
Tags
总结(3) Emacs(2) org mode(4) 年度清单(2) 读书清单(2) 电影清单(2) 电视清单(2) Python(3) 学习计划(1) 子弹笔记(1) 手帐体系(1) 时间管理(1) 时间使用效率(1) 形意拳(1) 知识管理(1) 简历(1) 技能水平(1) 生活(1) 减法生活(1) 阅读(1) 阅读分组(1) org(1) docx(1) markdown(2) cmder(1) 图床(1) jsdelivr(1) github(1) 安卓系统(1) 手动更新手机系统(1) post link(1) post path(1) hexo(2) hugo(2) GitHub Pages(1) travis(1) 自动部署博客(1) presentation(1) gcc(1) g++(1) 默认表格(1) 复杂表格(1) multimd table(1) google adsense(1) evil(1) surround(1) librime(2) emacs-rime(1) liberime(1) dot(1) graphviz(1) use-sub-superscripts(1) ditaa(1) Evil Multiple cursors(1) turn evil mode off(1) modifier keys(1) keymap(1) super(1) hyper(1) install Emacs(1) Mac OS(1) keybinds(1) clocktable(1) coding system(1) image library(1) keybind(1) spacemacs(1) org babel(1) homebrew(1) dd(1) diskutil(1) tmux(1) xcode(1) xcrun(1) node-gyp(1) tar(1) tree(1) pacman(1) plantuml(1) find(1) grep(2) du(1) apt-get(1) apt(1) regex(1) wildcard(1) zsh(1) gdb(1) lsof(1) netstat(1) rebase(2) workflow(1) 工作流(1) .gitignore(1) postbuffer(1) hung up(1) merge(1) cache(1) reset(1) Git(1) command(1) submodule(1) GitHub Pull Request(1) pr(1) Matplotlib(1) beautifusoup(1) 下载小说(1) SOLID(1) Leetcode(2) 透视表(1) read_excel()(1) pandas(1) conda(1) django(1) markdown-deux(1) mysql(1) oracle(1) 模糊查询(1) logging level(1) reflex(1) Field(1) Maven(1) Selenium(1) 下拉框(1) select into(1) insert into select(1) CAST(1) CONVERT(1) timestamp(1) concat(1) concat_ws(1) group_concat(1) union(1) grant privileges(1) 重置 root 密码(1) 报错 10060(1) 清理连接数(1) create user(1) set password(1) exists(1) in(1) markdown-it(1) emoji(1) tasks(1) valine(1) Code 504(1) Hugo(1) theme(1) substring(1) indexOf(1) RegExp(1) 定位节点(1) 正则匹配(1) async(1) 异步请求(1) css(2) layui(1) 滚动条(1) JavaScript(1)