编译在G1上运行的android2
编译在 G1 上运行的 android 2.2(froyo) 代码 _ 正规版
一、 ** 说明 **
1. 下载编译最基本的 android 源码,只能在模拟器上使用,无法在真机上使用(不能生成 boot.img
)。这是因为没有编译相关机型的内核和硬件驱动。以下介绍的是用 android 源码编译出对应 HTC G1
的版本,和烧写的过程。编译生成的版本除相机以外,其它功能均正常,稳定性不错,也很顺畅。
2. 以下步骤都经过验证(只验证 G1 手机),实验系统 ubuntu8.04,实验日期 2010 年 7 月 12 日
3. 关键字: android 2.2 froyo g1 源码编译
二、 ** 编译 **
1. 建立 android 源码编译目录
_ $ export ANDROID=/exports/android/android_2.2/
$ mkdir -p $ANDROID
$ cd $ANDROID _
2. 源码下载
_ $ repo init -u git://android.git.kernel.org/platform/manifest.git
-b
android-2.2_r1
$ vi.repo/local_manifest.xml #
新建下载配置文件,用以下载内核,编辑内容如下 _
_
_
注意:其中 msm 是高通芯片组,path 指明下载到源码目录中的位置,name 指明
git 上的项目名
_ $ repo sync # 开始下载代码,此时需要等待较长时间 _
3. 编译内核及无线网络驱动
_ $ cd $ANDROID/kernel
$ make ARCH=arm CROSS_COMPILE=../prebuilt/linux-x86/toolchain/arm-
eabi-4.4.0/bin/arm-eabi- msm_defconfig # 设定默认的 msm 配置 _
_ $ make ARCH=arm CROSS_COMPILE=../prebuilt/linux-x86/toolchain/arm-
eabi-4.4.0/bin/arm-eabi- # _ 编译内核
_ $ cd $ANDROID/system/wlan/ti/sta_dk_4_0_4_32
$ make ARCH=arm
CROSS_COMPILE=$ANDROID/prebuilt/linux-x86/toolchain/arm-
eabi-4.4.0/bin/arm-eabi- KERNEL_DIR=$ANDROID/kerne l _
#编译无线网络驱动
_ cp $ANDROID/kernel/arch/arm/boot/zImage
$ANDROID/device/htc/dream/kernel
cp $ANDROID/system/wlan/ti/sta_dk_4_0_4_32/wlan.ko
$ANDROID/device/htc/dream/wlan.ko _
4. 配置编译选项
_ vi device/htc/dream/AndroidBoard.mk#若 kernel 存在,则不重新编译 _ _
kernel
ifeq ($(TARGET_PREBUILT_KERNEL),)
TARGET_PREBUILT_KERNEL:= $(LOCAL_PATH)/kernel
endif
file:= $(INSTALLED_KERNEL_TARGET)
ALL_PREBUILT += $(file)
$(file): $(TARGET_PREBUILT_KERNEL) | $(ACP)
$(transform-prebuilt-to-target) _
5. 编译 android 源码
_ $ cd $ANDROID
$ vi buildspec.mk # 加入如下内容,以支持中文 _
_ CUSTOM_LOCALES:=zh_CN
$ source build/envsetup.sh
$ lunch full_dream-userdebug _ #指定编译机型
_ $ make -j2 _
6. 以打补丁的方式加入不提供源码的库
此时的系统可以被烧写,但电话音乐等基本功能均不正常,需要从系统或其它升级包中提取出源码中不包含的库,以支持相应功能。
在 HTC 网站 [http://developer.htc.com/adp.html
](http://developer.htc.com/adp.html)
下载名为 signed-dream_devphone_userdebug-ota-14721.zip 的包(一个普通的
update
包),并把它放在 $ANDROID 目录下,并将其改名为
dreaem_update.zip
_ $ mv signed-dream_devphone_userdebug-ota-14721.zip
dream_update.zip
$ cd device/htc/dream
$./unzip-files.sh#此时会提示有几个库找不后,后面有对应解决办法 _
_ $ cd $ANDROID
$ vi vendor/htc/dream/device_dream-vendor-blobs.mk
_ _ 删除包含以下内容的行,这是由于在 update.zip
中找不到相应库,为编译通过,选去掉它们 _
_ libGLES_qcom.so
liblvmxipc.so
liboemcamera.so
libstagefrighthw.so
$ make
$ cp device/htc/dream/wlan.ko
out/target/product/dream/system/lib/modules/wlan.ko _
#网卡驱动
_ $ make snod _ #重新生成 system.img
三、 ** 把编译好的软件烧写到手机 **
用 usb 线连接手机到电脑,按 home+power 键将手机启动到工程模式,按
back 键准备烧写
_ $ export PATH=\(PATH:\)ANDROID/out/host/linux-x86/bin # _
把烧写工具所在目录加上路径
_ $ cd out/target/product/dream/
$ fastboot flash system system.img
$ fastboot flash boot boot.img
$ fastboot reboot _
烧写系统后第一次启动手机需要几分钟,请耐心等
四、 ** 修改 **
1. 安装中文字体(可以在烧写前加入,加在此处用以说明在启动后修改系统的方法) _ $ adb shell
su 取得 root 权限 _
_ # mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system _ _ 使 system
分区可写 _
_ # chmod 777 /system/fonts _ 使某个目录有写权限
_ # exit
exit
$ adb push frameworks/base/data/fonts/DroidSansFallback.ttf /system/fonts/ _
加中文字体
_ $ adb reboot _
2. 支持 GPRS 上网
添加 APN 即可上网和发彩信,详见
[http://www.andbeta.com/Basics/678.html
](http://www.andbeta.com/Basics/678.html)
3. 设置帐户
添加帐户时,服务器填写 m.google.com
五、 ** 参考 **
1. 刷写部分未详细描述,具体请参考文档
[http://xy0811.spaces.live.com/blog/cns!F8AECD2A067A6B17!1452.entry
](http://xy0811.spaces.live.com/blog/cns!F8AECD2A067A6B17!1452.entry)
2. 源码编译部分未详细描述,具体请参考文档
[http://xy0811.spaces.live.com/blog/cns!F8AECD2A067A6B17!1364.entry
](http://xy0811.spaces.live.com/blog/cns!F8AECD2A067A6B17!1364.entry)