Nexus 5

2016年初,在Nexus 5发布2年之后,终于拿到了这款原生手机,可以追随Google Android的版本前进的脚步了。

Google服务已经被墙,以下所有操作都需要首先确保已经正确翻墙。

强制升级

开机以后,因为网络没发就绪(在公司内网需要安装802.1x认证的安全软件),所以跳过了Google注册。网络就绪以后,通过VPN翻墙连接到Goolge注册账号,完成后依然发现在Setting => About phone => System updates中显示

Your system is up to date.

Last checked for update on 1/1/1970

这个问题的原因是因为Google Services Framework中的残留数据使得系统认为自己已经检查过最新的软件版本(我怀疑和最初手机没有连接网络使用ntp进行同步时钟有关,或者是对时间判断的bug,因为System updates检查的时间停留在Unix元年。

处理的方法参考How To Force Your Nexus 4 or Android Device To Update To Jelly Bean 4.2.2,下文图片采用的是该参考文档中图片,实际操作以系统为准。

从下拉快捷方式中点击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,再升级到后续的新版本。

有关Nexus 5升级Android 6.0.1评测,看来这款老硬件升级到最新系统还是很流畅的

通过Factory Images for Nexus Devices升级系统

由于OTA升级方式需要翻墙,网络速度非常缓慢,并且需要先升级到5.0.1,才能再升级到6.x。整个下载过程过于缓慢,几乎无法完成。所以最后还是采用从 Factory Images for Nexus Devices 下载对应 Nexus 5 的镜像来安装。

要实现使用系统镜像来刷新设备,需要使用fastboot工具,可以从以下两种方式之一来获得:

从Android Open Source Project获取完整的开发版本

从Android SDK的platform-tools/下获取该工具。确保从SDK Manager获取了最新的 Android SDK Platform-tools

参考IntelliJ IDEA 15.0 Help: Prerequisites for Android Development,由于我已经安装和使用了IntelliJ IDEA,所以只需要下载SDK Tools

使用sdk-manager

从Download Android Studio and SDK Tools下载最新版本的独立的SDK Tools。

我使用的是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

上述安装过程即满足了刷新Android Image需求,同时也是准备Android开发环境的过程

如果使用Mac(如我)在 ~/.bash_profile 配置中添加

if [ -d "/platform-tools" ] ; then

export PATH="/platform-tools:$PATH"

fi

注意:要换成实际的SDK目录。对于Window/Linux用户,请参考 Installing adb & fastboot

然后执行. ~/.bash_profile或退出重新登录使环境生效

此时,执行

adb devices

应该看到连接在USB上的Nexus设备。如果没有看到连接设备,则参考下一步激活USB Debugging步骤

激活Nexus设备的USB debugging模式

执行adb devices时候可能遇到报错error: no devices found

很多在Windows平台刷机的建议都是重新安装驱动(How to fix: Error device not found with ADB.exe)或者尝试升级Windows驱动/将USB Computer connection更改成Camera (PTP)模式(ADB No Devices Found)

尝试重新adb服务

ps aux | grep adb | grep -v grep

可以看到如下adb服务

huatai 48149 1.3 0.0 2475576 3872 s003 S 12:54AM 1:22.39 adb -P 5037 fork-server server --reply-fd 4

停止服务

adb kill-server

再次启动服务

adb start-server

不过,实际的原因是 需要在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命令检查设备,可以看到

List of devices attached

02211e9ec9623837 device

使用adb更新设备系统

将设备通过USB连接到主机

使用以下方式之一将设备启动到fastboot模式

使用adb tool在设备启动的状态下执行如下命令

adb reboot bootloader

使用设备组合键:关闭设备电源,在启动设备时迅速按下相关键。例如,对于Nexus 5设备,启动时同时按下音量的上下键和电源键

使用adb reboot bootloader命令之后,Nexus设备会显示一个躺着打开前胸面板的Android机器人,并且提示

FASTBOOT MODE

...

SECURE ROOT - enabled

LOCK STATE - locked

上述界面表示正处于锁定状态,则执行下一步 "通过以下命令将设备的bootloader解锁"

通过以下命令将设备的bootloader解锁

fastboot oem unlock

解锁bootloader对于开发者和玩家很有用,可以直接访问设备的个人数据定制个人ROM,详细步骤参考How to unlock Nexus 5 bootloader: the first step for modding

这时设备会提示确认屏幕(unlock以后,可以安装定制的操作系统) 注意,确认后设备上的所有数据被清除

使用音量键将高亮确认键移动到Yes上,然后按下电源键确认执行unlock

此时设备屏幕上显示LOCK STATE - unlocked一行小红字,表示解锁成功,现在就是解锁状态的FASTBOOT MODE了。可以开始刷入新系统了。

打开一个终端窗口,进入到已经解压缩镜像的目录

执行flash-all脚本,这个脚本将安装必要的bootloader,baseband firmware(s)和操作系统

./flash-all.sh

刷机时间约2分钟

重启设备

设备重启后,处于安全原因,可以重新锁定bootloader

fastboot oem lock

启动无法通过Checking connection...

刷机后启动,在首次启动时,需要连接Google服务进行注册。但是由于在景德镇,Checking connection...页面会一直卡住无法跳过。参考Can't get past Lollipop Tap & Go setup screen

From Lollipop, Google wants user has a working net connection to boot up.

Prob 1, Your wifi has an active firewall to prevent accessing google servers.

Prob 2, You don't have a sim card or data plan.

解决的方法是:插入一张SIM卡,即使这张SIM卡无法使用(例如,我发现电信的4G卡无法使用,扫描不到2G/3G/4G网络),只要Nexus识别到有SIM卡,就会允许跳过WIFI方式连接Google服务,这样也就避免了最初设备初始化时候尴尬的页面。

参考

How To Force Your Nexus 4 or Android Device To Update To Jelly Bean 4.2.2

cyanogenmod: adb intro - "Device not found" errors

How to unlock Nexus 5 bootloader: the first step for modding

Copyright © 2088 国际足联世界杯_巴西世界杯 - sdophx.com All Rights Reserved.
友情链接