抽屉里有一个闲置了两年的Nook Color,虽然设备硬件很陈旧,但是由于设备和CyanogenMod兼容较好,所以可以使用比较新的系统。最近有些手痒,又把这个小平板拿出来,刷新成最新的CyanogenMod,体验Android的最新操作系统。

Nook Color

CyanogenMod Installer

CyanogenMod Installer是为了方便刷机提供的安装程序

  • 刷CyanogenMod之前不需要rooted手机
  • bootloader也不需要解锁,CyanogenMod Installer会自动为你解锁
  • 如果以前使用了定制的ROM也可以,这时一个全支持配置,是运行一个堆叠ROM

不过,很不幸,Nook Color 不在支持设备之列 CyanogenMod Installer

Nook Color (“encore”)

CM for Nook Color 提供了 Nightly 和 Stable 两个版本。

下载 uNooter 镜像

解压缩 uNooter.zip

将 uNooter 镜像写入SD卡 - 以下操作是在Mac OS X中进行,所以第一步是先unmountDisk(因为Mac OS X会自动挂载SD卡)

diskutil list
diskutil unmountDisk /dev/<sdcard>
dd if=uNooter.img of=/dev/<sdcard> bs=1m

获取Root访问

  • 关闭Nook Color设备,并且和电脑断开连接
  • 将安装uNooter SD卡插入Nook Color设备
  • 将Nook Color设备连接到电脑,这个动作会触发Nook Color电源启动(屏幕仍然是关闭的)并且允许uNooter来root设备。这个屏幕保持关闭状态将最多有10分钟
  • 一旦完成,从电脑断开Nook Color,此时Nook Color可能会重启。如果重启正常,进行下一步。如果没有自动正常重启,则关闭电源,拔出SD卡然后就会恢复正常。

安装定制的Recovery Image

如果希望从电脑来安装需要下载以下两个软件包

使用 adb 来安装系统

实际我在Nook Color上刷新CyanogenMod只能安装CM10,CM11安装没有成功

安装 Adb 软件

下载 SDK Toolsandroid-sdk_r23.0.2-macosx.zip

这里我们不是作为完整的开发平台,所以没有下载 ADT Bundle (Eclipse ADT bundle包含了所有开发apps),而是下载 “SDK Tools Only”

在Mac平台,解压缩以后是 android-sdk-macosx 目录。在自己的home目录创建一个Development子目录,然后将解压缩的android-sdk-macosx移动到创建的Development目录下

mkdir ~/Development
mv android-sdk-macosx ~/Development/

然后进入android-sdk-macosx目录执行以下命令

cd ~/Development/android-sdk-macosx
tools/android update sdk --no-ui

Android SDK工具包初始时候只包含基本的SDK工具,并没有包含任何Android平台或第三方库(其实是没有包含任何开发应用程序的工具)。要启动开发程序,必须使用SDK Manager安装平台工具,或者至少一个Android平台版本。

平台工具包括周期更新和支持新Android平台的构建工具,包括adbdexdump等等

要安装平台工具,Android平台或其他add-on,需要有Internet链接可以用于下载必要组件。

运行需要JDK支持

在景德镇,无法直接通过直接方式访问google的下载服务器( https://dl-ssl.google.com ),需要设置代理。如果 tools/android update sdk 命令没有使用 --no-ui 则可以通过下载管理器的 Perference 来设置代理服务器。实际上代理配置是写在 ~/.android/androidtool.cfg 中,内容如下:

http.proxyPort=<PROXY_PORT>
sdkman.enable.previews=false
http.proxyHost=<PROXY_IP>
sdkman.ask.adb.restart=false
sdkman.show.update.only=true
sdkman.force.http=true
sdkman.use.dl.cache=true

安装完 Android SDK 之后,在 ~/bash_profile 中添加如下内容 (参考Adb

if [ -d "<path-to-sdk>/platform-tools" ] ; then
  export PATH="<path-to-sdk>/platform-tools:$PATH"
fi

然后再执行 . ~/bash_profile 或者退出登录再次打开Terminal终端使得Android SDK工作路径生效。

传输ROM到设备中

adb push update.zip /sdcard/

这个传输其实和将SD卡放到PC机上,将镜像复制到SD卡是一样的效果。不过现在新型的设备已经取消了SD卡,只能通过这个方法传输。

/sdcard/ 路径是根据设备显示的挂载目录确定的,也可能是其他路径

刷新的ROM

开启Nook Color电源,此时会提示“press any key within 5 seconds to enter boot menu”时按∩键进入“Boot options”,默认是eMMC,也就是从Nook Color启动

Boot Menu
-------------

Internal eMMC Normal
Internal eMMC Recovery
Internal eMMC Alternate
SD Card Normal
SD Card Recovery
SD Card Alternate

只有第一项和第二项可选,通过”音量建”上下选择,选择第二项”Internal eMMC Recovery”。

此时进入 “ClockworkMod Recovery” 菜单

ClockworkMod Recovery v3.2.0.1

- reboot system now
- apply update from sdcard
- wipe data/factory reset
- wipe cache partition
- install zip from sdcard
- backup and restore
- mounts and storage
- advanced

选择 “wipe data/factory reset” 清理掉缓存和数据

最后选择 install zip from sdcard 并选择对应的ROM

我在刷机的时候遇到如下报错:

E:Error in /sdcard/cm-11-20141008-SNAPSHOT-M11-encore.zip
(Status 0)
Installation aborted.

这个报错参考 Status 0 installation aborted? 是因为下载包损坏或者错误选择设备

Anyways, It looks like you’ve either got a bad download or a marvlec phone. Status 0 usually pops up when the updater script doesn’t match the actual phone type.

尝试使用 CM10 版本 cm-10.2.1-encore.zip 则顺利完成,没有遇到问题。

CM10操作系统安装完成后,安装对应OS版本的 Google Apps ,安装方法相同。Google Apps安装后,系统才具有从Google Market安装应用软件的能力。