1.       修改效果

1)        在32位系统上正常编译通过,N1上能运行,带root权限

2)        带N1原始的四色X开机动画,默认语言为简体中文

3)        带google market,文件管理器,百度中文手写输入法,金山词霸等常用软件

4)        打电话,收发短信,WIFI,移动网络,热点上网正常(APN已设)

5)        音频,视频,照像,摄像,Gps,Sensor使用正常

6)        目前未测到不正常的功能

2.       下载android 2.2或2.3的sdk
刷机使用的fastboot和adb都需要从sdk中获得

3.       对N1的处理

1)        Bootloader解锁

a)         关机后,按Power+音量减开机,按音量键选fastboot,然后按Power进入

b)        在PC端运行解锁命令如下(fastboot命令可从SDK/tools目录得到)

c)        # fastboot oem unlock

d)        通过音量和Power键选Yes,重新启动,此时看到屏幕下面有一个解决锁标志

2)        注意:解锁后手机里的用户数据全被清除了,所以解锁之前需要先备份

4.       刷带nandroid的recovery
recovery用于系统升级,通常情况下即使刷坏了,也不影响手机正常使用。它只对boot, system, userdata三个分区做备份,有些版本的recovery带nandroid功能,它用于备份和恢复当前手机系统

1)        普通使用

a)         关机后,按Power+音量减开机,按音量键选recovery,然后按Power进入,此时看到叹号和小绿人

b)        按音量加减+Power进入菜单,此模式可以使用update.zip升级,但不能备份当前系统,强烈建议升级前备份原系统,因为原生的一般都比后烧的稳定

c)        按Power+音量减+滚轮重启

2)        替换带nandroid的recovery,以备份原有系统

a)         下载recovery-RA-nexus-v1.7.0.img(见下面指定的地址)

b)        关机后,按Power+音量减开机,按音量键选fastboot,然后按Power进入

c)        /在PC端运行烧写命令如下
$ fastboot flash recovery recovery-RA-nexts-v1.7.0.img

d)        在手机端菜单中选择进入bootloader

e)         在bootloader中选recovery,就可看到recovery的新选项,用轨迹球可以操作

f)         备份数据和恢复选项
更新的recovery除正常备份外还可以备份google帐号数据,备份app2sd中扩展的数据,和恢复到选定的版本(早期版本只支持恢复到最后备份的版本)

3)        注意
用以上方法烧写recovery分区,系统重启后recovery又会恢复,这是由于开机时被/data/recovery.img恢复了,如果不想被刷回,可将下载的recovery.img放到/data/下即可(需要root权限)

5.       编译android 2.3(如不想编译请跳过此步,直接下载编好的img烧写)

1)        安装jdk
android之前的版本使用jdk1.5编译,而android 2.3默认要求使用jdk1.6

a)         安装jdk 1.6
$ sudo apt-get install sun-java6-jdk

b)        在同一台机器上同时编译android 2.2和android 2.3,用以下方法进行切换
$ sudo update-java-alternatives -s java-1.5.0-sun

2)        用git下载2.3源代码
配置linux环境,安装git及repo请参见相关文档

3)        解决只能在64位系统编译的问题
android 2.3默认只能在64位系统中编译,为了不重装系统可以用以下方法在32系统上编译

a)         修改main.mk
$ vi build/core/main.mk 将75行左右判断64位的部分注释掉,或修改如下:
ifneq (i686,$(findstring i686,$(build_arch)))

b)        修改clearsilver中的编译选项,将下面四个文件中的-m64改为-m32
external/clearsilver/cgi/Android.mk,
external/clearsilver/java-jni/Android.mk,
external/clearsilver/util/Android.mk,
external/clearsilver/cs/Android.mk

4)        编译前的准备工作

a)         连接手机和电脑

b)        将手机中的没有源码的库补丁到源码中(我的N1系统为android 2.2)
$ cd device/htc/passion/
$ ./extract-files.sh         此处需要的adb命令从SDK中获取

c)        修改源码

                                       i.              解决照像摄像问题(android 2.3支持了多摄像头之后接口改变),修改
frameworks/base/services/camera/libcameraservice/CameraService.cpp
frameworks/base/media/libstagefright/omx/OMXNodeInstance.cpp
frameworks/base/media/libstagefright/OMXCodec.cpp
frameworks/base/media/libstagefright/CameraSource.cpp

                                     ii.              解决进应用闪白问题,修改
frameworks/base/libs/ui/GraphicBuffer.cpp

5)        编译
$ . build/envsetup.sh
$ lunch 3     # 此处选择硬件平台为
N1(Passion)
$ choosecombo 1 1 full_passion 3           # 3为指定编译工程模式,即带root权限

$ make –j6

6.       下载img

1)        此版本为个人测试使用,在本人上周网购的自带android 2.2的港版N1上正常使用,不能保证所有N1都使用正常,烧机后果自负,建议大家自行编译。再次提醒:请在烧写前先用recovery nandroid备份当前系统。以下为下载地址:
​​​http://iask.sina.com.cn/u/ish?retcode=0​​(含md5, system, userdata, boot, recovery)

2)        下载后可通过fastboot烧写,方法如下
$ fastboot flash system system.img
$ fastboot flash boot boot.img
$ fastboot flash userdata userdata.img

7.       参考

1)        Android 2.3使用的google market可从此处下载

2)        设置apn的方法
​​​http://mobile.yesky.com/447/9288447.shtml​

3)        Recovery的使用请参考
​​​http://anriqing.blogbus.com/logs/77459519.html​