Nook2之搞机记
2012-11-24 13:52 囧月 阅读(3168) 评论(0) 编辑 收藏 举报曾多次搞机都要临时查好多资料,为了便于以后继续搞机,现把搞机的过程记录下来。
准备资源
- noogie.img 制作引导盘的镜像:http://code.google.com/p/nst-recovery/downloads/list
- Win32DiskImager 制作引导盘的工具: https://launchpad.net/win32-image-writer/+download
- 一张>=128M的microSD(TF)卡,用于制作引导盘
- DiskImage 1.6 用于备份及还原nook2:http://www.roadkil.net/program.php/P12/Disk%20Image 下载对应的系统版本
- DiskGenius 用于备份分区表:http://www.diskgenius.cn/
- uRamdisk 用于执行adb命令(分WIFI和USB版):http://code.google.com/p/nst-recovery/downloads/list
- adb 从android SDK(http://developer.android.com/sdk/index.html#download)中提取,或者SuperOneClick(http://shortfuse.org/?page_id=2)
- su及Superuser.apk 用于获取root权限:从http://nookdevs.com/NookColor_Installing_su_and_the_Superuser_app 下载或者更新的版本
- sqlite 3 shell 用于修改sqlite数据库:http://www.sqlite.org/download.html找到sqlite-shell-win32…的zip包
- NookColor Tools用于开启usb调试、更换输入法等(自带Launcher):http://forum.xda-developers.com/showthread.php?t=868366
- jre 用于运行jar程序:http://java.com/en/download/
- (可选)apktool (需要jre) 用于反编译apk:http://code.google.com/p/android-apktool/downloads/list
注意:这些资源文件最好放在英文目录,否则可能有不可预知的错误发生
系统升级
- 从Barnes & Noble下载升级zip包
- nook开机状态下,usb连接电脑
- 把下载的zip包放入nook分区(注意:不是microSD卡) 切换到屏保状态下
- 等待几分钟nook会自动重启升级
话说目前最新的1.2.0还是杯具的Android 2.1系统,好多软件不能装啊
系统重置
重置系统数据
开机状态下通过Settings中的Erase & Deregister Device功能;
或者在关机状态下,按住开机键开机同时按住左右两个下面的翻页键,等出现是否重置的提示,按n确认。
恢复出厂设置
八次打断法:在关机状态下,开机出现Read Forever,然后按住电源键直到闪屏松开(一直重复大约8次),就会自动进入恢复出厂设置
另外可以通过adb命令,已root的机器开机状态下(未试过):
adb shell echo -n -e "\x08\x00\x00\x00" > /rom/devconf/BootCnt reboot
Root
替换uRamdiak(这里用的是WIFI版本,如果没有无线路由器,也可以用usb版本)
- 关闭nook2:按住电源键选择power off
- 插入引导盘microSD卡
- 按住电源键开机,屏幕会出现Root Forever
- 通过usb线连接电脑,会出现boot分区
- 复制uRamdisk覆盖boot到boot分区
- 拔出microSD卡并重启
WIFI版本的uRamdisk有一定风险,容易被扫描到,所以不用adb等功能时务必关闭WIFI。
adb connect <ip> adb install Superuser.apk adb push su /data/local/ adb shell cd /system/bin mount -o remount,rw /dev/block/mmcblk0p5 /system cat /data/local/su > su chmod 6755 su reboot
开启"允许安装非市场应用"
adb connect <ip> adb shell mount -o rw,remount -t ext2 /dev/block/mmcblk0p5 /system exit adb pull /data/data/com.android.providers.settings/databases/settings.db settings.db sqlite3 settings.db "update secure set value=1 where name=\'install_non_market_apps\';" adb push settings.db /data/data/com.android.providers.settings/databases/settings.db del settings.db adb reboot
这一步也可以在NookColor Tools中设置
关闭自动升级(非必须)
在开着wifi的情况下,设备可能会自动下载升级包进行升级,特别是已root的机器。
adb connect <ip> adb pull /data/data/com.bn.devicemanager/databases/devicemanager.db devicemanager.db sqlite3 devicemanager.db "update registry set value=\'manual\' where name=\'com.bn.device.fota.mode\';" adb push devicemanager.db /data/data/com.bn.devicemanager/databases/devicemanager.db del devicemanager.db adb reboot
修改键盘映射(适用于1.0,1.1)
注意:此方法在1.2.0无效,而且替换了android.policy.jar和services.jar之后,机器重启会卡在Read Forever,只能恢复出厂设置。
此方法需要用到NookTouch Tools以及对应nook2版本(注意:只有1.0以及1.1的)的jars(android.policy.jar、services.jar):(http://forum.xda-developers.com/showthread.php?t=1289894)
adb connect <ip> adb install NookTouchTools-1.0b2.apk adb shell mount -o remount,rw /dev/block/mmcblk0p5 /system exit adb push jars/android.policy.jar /system/framework/ adb push jars/services.jar /system/framework/ adb reboot
修改键盘映射(适用于1.2.0)
此方法需要自行编译android.policy.jar、services.jar(https://github.com/doozan/NookTouchPatches),步骤如下:
准备工具
-
下载patche01.zip并解压得到patch.exe
-
下载7za920.zip并解压得到7za.exe
-
下载1.2.0系统使用的patch文件:android.policy.patch 和 services.patch
-
把以上得到的文件放到同个目录下
解压并给android.policy.jar打补丁
adb pull /system/framework/android.policy.jar android.policy.orig.jar java -jar baksmali-1.4.0.jar -o android.policy android.policy.orig.jar patch -p1 < android.policy.patch
重新编译android.policy.jar
7za.exe e android.policy.orig.jar -oandroid.policy-bin java -jar smali-1.4.0.jar -o android.policy-bin\classes.dex android.policy cd android.policy-bin ..\7za.exe a -mx9 -tzip ..\android.policy.jar * cd ..
解压并给services.jar打补丁
adb pull /system/framework/services.jar services.orig.jar java -jar baksmali-1.4.0.jar -o services services.orig.jar patch -p1 < services.patch
重新编译services.jar
7za.exe e services.orig.jar -oservices-bin java -jar smali-1.4.0.jar -o services-bin\classes.dex services cd services-bin ..\7za.exe a -mx9 -tzip ..\services.jar * cd ..
替换重新编译的两个jar文件
adb shell mount -o rw,remount -t ext2 /dev/block/mmcblk0p5 /system adb push android.policy.jar /system/framework/ adb push services.jar /system/framework/ adb reboot
重启之后安装NookTouch Mod Manager(https://github.com/doozan/NookTouchModManager/downloads),然后就可以修改键盘的映射了。
安装软件以及输入法等
常用的软件有:
- NookColor Tools
- Root Explorer(http://www.coolapk.com/apk/1229/)
- System App Remover(http://www.coolapk.com/apk/3200/)
- APV PDF Viewer Pro(http://code.google.com/p/apv/downloads/list)
- (可选)讯飞PAD语音输入法:(http://ime.voicecloud.cn)
- (可选)AirDroid(http://www.coolapk.com/apk/4335/)
- (可选)TaskMan(http://www.coolapk.com/apk/2750/)
- (可选)Nook Touch Launcher(http://forum.xda-developers.com/showthread.php?t=1300285)
使用dos for命令可以批量安装程序(比如apk文件都在apks目录下):
adb connect <ip> for /r %a in (apks\*.apk) do adb install "%a" adb reboot
其实有了AirDroid之后,比adb更加方便了,不管是安装软件或者拷贝文件。
启动Launcher
安装好以上软件重启之后,可以选择启动Nook Touch Launcher;如果没装Nook Touch Launcher,则可以启动NookColor Tools的Launcher。
首先通过apktool反编译:
java -jar apktool.jar d NookColorTools_0.2.apk
查看得到的AndroidManifest.xml可以知道NookColor Tools的入口,然后通过adb启动:
adb shell am start -n com.benhirashima.nookcolorsettings/com.ben hirashima.nookcolorsettings.NCSettings
启动Nook Touch Launcher则是:
adb shell am start -n io.xor.nooktouchtools/io.xor.nooktouchtools.MainActivity
开启NookColor Tools之后,通过All Settings->Development->Android Launcher可以启动NoolColor Tools带的Launcher。
设置输入法
- 通过Launcher打开Root Explorer),注意低版本Root Explorer可能需要先Mount R/W
- 把com.benhirashima.nookcolorsettings.apk和com.iflytek.inputmethod.pad.apk从/data/app移动到/system/app(此操作也可以通过adb命令完成)
- 重启
- 在NookColor Tools中Choose Keyboard选择新的输入法
其他的快捷辅助软件
- Button Savior 按键救星(http://www.coolapk.com/apk/3382/)
- SmartBar 智能状态栏(http://www.coolapk.com/apk/2344/)
- Smart Taskbar 智能任务栏(http://www.coolapk.com/apk/2821/)
- Conjure 快速启动(http://www.coolapk.com/apk/6295/)
- Virtual Button Bar 虚拟工具栏(http://www.coolapk.com/apk/4505/)
- 其他支持Android 2.1的状态栏插件、手势插件、虚拟按键插件
可以自行挑选其中几个作为常用软件,其中Button Savior需要先做如下设置
- 需要NookColor Tools在/system/app目录
- 通过All Settings->Development->USB debugging开启usb调试
- 然后就可以开启Button Savior进行设置了
可精简的系统程序
- Airruntime
- CloudService
- ContactsProvider
- CrytoServer
- DemoMode
- Music
- NookCommunity
- Phone
- Picotts
- Shop
- Social
- TelephoneProvider
- TtsService
- WaveformDownloader
除了以上可精简的意外,还有以下程序可精简(需谨慎):
- BnCloudRequestSvc.apk
- CloudService.apk
- DrmProvider.apk
- Gallery.apk
- QuickStratActivity.apk
- UserDictionaryProvider.apk
另外如浏览器如果不用也可删除。