Nexus 5系统升级
Last updated
Was this helpful?
Last updated
Was this helpful?
2016年初,在Nexus 5发布2年之后,终于拿到了这款原生手机,可以追随Google Android的版本前进的脚步了。
Google服务已经被墙,以下所有操作都需要首先确保已经正确翻墙。
开机以后,因为网络没发就绪(在公司内网需要安装802.1x认证的安全软件),所以跳过了Google注册。网络就绪以后,通过,完成后依然发现在Setting => About phone => System updates
中显示
这个问题的原因是因为Google Services Framework
中的残留数据使得系统认为自己已经检查过最新的软件版本(我怀疑和最初手机没有连接网络使用ntp进行同步时钟有关,或者是对时间判断的bug,因为System updates
检查的时间停留在Unix元年。
处理的方法参考,下文图片采用的是该参考文档中图片,实际操作以系统为准。
从下拉快捷方式中点击settings
选择Apps
菜单
然后选择ALL
(需要选择所有程序进程才能找到Google Services Framework
)
点击Clear data
按钮清除数据
清理完数据以后,再点击Force stop
按钮停止Google Service Framework
(这样下次System updates
检查才会启动一个新的进程)
返回到Setting => About phone => System updates
,从新点击一次Check now
按钮,强制再次启动版本更新检查
此时就会看到检查到Android新版本 5.0.1 ,则可以升级到 Android 5.x,再升级到后续的新版本。
Factory Images for Nexus Devices
升级系统要实现使用系统镜像来刷新设备,需要使用fastboot
工具,可以从以下两种方式之一来获得:
sdk-manager
我使用的是Mac OS X,所以下载的android-sdk_r24.4.1-macosx.zip
解压缩以后目录是android-sdk-macosx
,将这个目录存放到~/
下(选择自己的HOME目录是为了方便普通用户身份访问)。
在Intellij中创建一个新项目,选择Android
点击Next
,在下一步设置Android SDK Location
时填写前面下载的SDK Tools目录,例如这里/Users/huatai/android-sdk-macosx
在下一步选择Launch SDK Manager
在SDK Manager
中,默认选择安装SDK 6,使用默认安装的软件包就可以开发Android 6的应用软件了,其中也包含了Android SDK Platform-tools
如果使用Mac(如我)在 ~/.bash_profile
配置中添加
然后执行. ~/.bash_profile
或退出重新登录使环境生效
此时,执行
应该看到连接在USB上的Nexus设备。如果没有看到连接设备,则参考下一步激活USB Debugging
步骤
USB debugging
模式执行adb devices
时候可能遇到报错error: no devices found
尝试重新adb服务
可以看到如下adb
服务
停止服务
再次启动服务
不过,实际的原因是 需要在Nexus设备先激活开发者模式(developer options
),然后再启用USB debugging
或Android Debug Bridge
(
在Settings
中,选择About phone
连续点击Build number
项7
次,此时会有一个提示You are now a developer.
返回Settings
,此时就多了一个Developer options
在Developer options
点击选择USB debugging
激活Debug模式,此时会提示具有风险(可以直接通过USB安装软件),确认激活
此时,在此使用adb devices
命令检查设备,可以看到
adb
更新设备系统将设备通过USB连接到主机
使用以下方式之一将设备启动到fastboot
模式
使用adb tool
在设备启动的状态下执行如下命令
使用adb reboot bootloader
命令之后,Nexus设备会显示一个躺着打开前胸面板的Android机器人,并且提示
上述界面表示正处于锁定状态,则执行下一步 "通过以下命令将设备的bootloader
解锁"
通过以下命令将设备的bootloader
解锁
这时设备会提示确认屏幕(unlock以后,可以安装定制的操作系统) 注意,确认后设备上的所有数据被清除
使用音量键
将高亮确认键移动到Yes
上,然后按下电源键
确认执行unlock
此时设备屏幕上显示LOCK STATE - unlocked
一行小红字
,表示解锁成功,现在就是解锁状态的FASTBOOT MODE
了。可以开始刷入新系统了。
打开一个终端窗口,进入到已经解压缩镜像的目录
执行flash-all
脚本,这个脚本将安装必要的bootloader
,baseband firmware(s)
和操作系统
./flash-all.sh
刷机时间约2分钟
重启设备
设备重启后,处于安全原因,可以重新锁定bootloader
Checking connection...
解决的方法是:插入一张SIM卡,即使这张SIM卡无法使用(例如,我发现电信的4G卡无法使用,扫描不到2G/3G/4G网络),只要Nexus识别到有SIM卡,就会允许跳过WIFI方式连接Google服务,这样也就避免了最初设备初始化时候尴尬的页面。
有关,看来这款老硬件升级到最新系统还是很流畅的
由于OTA升级方式需要翻墙,网络速度非常缓慢,并且需要先升级到5.0.1,才能再升级到6.x。整个下载过程过于缓慢,几乎无法完成。所以最后还是采用从 下载对应 Nexus 5 的镜像来安装。
从获取完整的开发版本
从的platform-tools/
下获取该工具。确保从获取了最新的 Android SDK Platform-tools
参考,由于我已经安装和使用了IntelliJ IDEA,所以只需要下载SDK Tools
从下载最新版本的独立的。
上述安装过程即满足了刷新Android Image需求,同时也是的过程
注意:<path-to-sdk>
要换成实际的SDK目录。对于Window/Linux用户,请参考
很多在Windows平台刷机的建议都是重新安装驱动()或者尝试升级Windows驱动/将USB Computer connection
更改成Camera (PTP)
模式()
方法如下:
使用设备组合键:关闭设备电源,在启动设备时迅速按下。例如,对于Nexus 5设备,启动时同时按下音量的上下键
和电源键
解锁bootloader对于开发者和玩家很有用,可以直接访问设备的个人数据定制个人ROM,详细步骤参考
刷机后启动,在首次启动时,需要连接Google服务进行注册。但是由于在景德镇,Checking connection...
页面会一直卡住无法跳过。参考