`

编译 android 2.1 (eclair) 源码 For HTC G1[转]

阅读更多

1. 说明

1) 下载编译最基本的android源码,无法在真机上使用(不能生成boot.img),只能在模拟器上使用。这是因为没有编译相关机型的内核和硬件驱动。以下介绍的是用android源码编译出对应HTC G1的版本,和烧写的过程。编译生成的版本除相机不能用之外,其它绝大部分功能都能正常使用,在G1上运行2.1版的速度也不错。

2) 本文主要参考日文文档G1/G2烧机指南,感谢原文作者,原文地址: 
http://code.google.com/p/android-development-environment/wiki/EclaironADP1andADP2
同时加入中文系统的支持和JIT支持(提高速度),以及相关文字解释。

3) 以下步骤都经过验证(只验证G1手机,G2部分请参见日文文档),实验系统ubuntu8.04,实验日期201058

4) 关键字: android 2.1 eclair g1 源码编译

 

2. 建立android源码编译目录
$ export ANDROID=/exports/android/android_2.1_cn/
$ mkdir -p $ANDROID
$ cd $ANDROID

3. 源码下载
$ repo init -u git://android.git.kernel.org/platform/manifest.git -b android-2.1_r2 
#设定下载 2.1版代码
$ vi .repo/local_manifest.xml 
新建下载配置文件
编辑内容如下
<?xml version=”1.0″ encoding=”UTF-8″?>
<manifest>
<project path=”kernel” name=”kernel/msm” revision=”refs/heads/android-msm-2.6.29-donut”/>
<project path=”vendor/htc/common-open” name=”platform/vendor/htc/common-open” revision=”master”/>
<project path=”vendor/htc/dream-open” name=”platform/vendor/htc/dream-open” revision=”master”/>
<project path=”vendor/htc/prebuilt-open” name=”platform/vendor/htc/prebuilt-open” revision=”master”/>
<project path=”vendor/htc/sapphire-open” name=”platform/vendor/htc/sapphire-open” revision=”master”/>
<project path=”vendor/qcom/android-open” name=”platform/vendor/qcom/android-open” revision=”master”/>
<project path=”vendor/qcom/proprietary-open” name=”platform/vendor/qcom/proprietary-open” revision=”master”/>
<project path=”vendor/pv-open” name=”platform/vendor/pv-open” revision=”master”/>
<project path=”vendor/aosp” name=”platform/vendor/aosp” revision=”master”/>
<project path=”hardware/htc/dream” name=”platform/hardware/htc/dream” revision=”master”/>
</manifest>
注意:其中msm是高通芯片组,path指明下载到源码目录中的位置,name指明git上的项目名
$ repo sync 
开始下载代码,此时需要等待较长时间

4. 打补丁以支持动态壁纸(此为步骤为可选)
$ wget http://android-development-environment.googlecode.com/files/patch_devphone_eclair.tar.gz
$ tar zxvf patch_devphone_eclair.tar.gz
$ ./patch/eclair-build-patch.sh

5. 编译内核及无线网络驱动
$ cd $ANDROID/kernel
$ make ARCH=arm CROSS_COMPILE=../prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi- msm_defconfig 
设定默认的msm配置
$ vi .config 
修改新生成的配置文件,以重新设置CPU最高频率,修改如下:
修改CONFIG_MSM_CPU_FREQ_ONDEMAND_MAX项为CONFIG_MSM_CPU_FREQ_ONDEMAND_MAX=528000
$ 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/vendor/htc/dream-open/kernel
$ cp $ANDROID/system/wlan/ti/sta_dk_4_0_4_32/wlan.ko $ANDROID/vendor/htc/dream-open/wlan.ko

6. 编译android源码
HTC网站http://developer.htc.com/adp.html
下载名为signed-dream_devphone_userdebug-ota-14721.zip的包,并把它放在$ANDROID目录下
$ cd $ANDROID
$ source build/envsetup.sh
$ lunch aosp_dream_us-eng 
指明机型
$ cd vendor/htc/dream-open 
$ ./unzip-files.sh 
# 解压htc相关驱动
$ cd $ANDROID
$ vi buildspec.mk 
# 新建配置文件
加入如下内容
CUSTOM_LOCALES:=zh_CN
 设置编译为中文系统
WITH_JIT:=true 
加入JIT支持,使得运算速度加快1-2
$ make -j2 
 编译android源码,需要等待较长时间

7. 把编译好的软件烧写到手机
usb线连接手机到电脑,按home+power键将手机启动到工程模式,按back键准备烧写
export PATH=$PATH:$ANDROID/out/host/linux-x86/bin 
把烧写工具所在目录加上路径
$ cd out/target/product/dream-open/
$ fastboot flash system system.img
$ fastboot flash boot boot.img
$ fastboot reboot

烧写系统后第一次启动手机需要几分钟,请耐心等待

8. 参考

1) 刷写部分未详细描述,具体请参考文档
http://xy0811.spaces.live.com/blog/cns!F8AECD2A067A6B17!1452.entry

2) 源码编译部分未详细描述,具体请参考文档
http://xy0811.spaces.live.com/blog/cns!F8AECD2A067A6B17!1364.entry

分享到:
评论

相关推荐

    android2.1源码及关联方法

    Android 2.1,代号Eclair,是Google推出的Android操作系统的一个重要版本。对于开发者来说,深入理解源码是提升开发技能、优化应用性能的关键。这份资料包含了Android 2.1的源码及相关方法,为我们提供了宝贵的参考...

    Android2.1系统通讯录源码

    Android 2.1(Eclair)版本的通讯录源码提供了一个深入理解Android系统如何处理联系人数据、显示联系人列表以及与用户交互的基础。下面将详细探讨这个源码中的关键知识点。 1. **SQLite数据库**: Android 2.1的...

    如何将Android2.1源码移植到自己的手机.doc

    首先,你需要搭建一个Android源码编译环境,这通常包括安装必要的软件工具,如Java JDK、Git、Linux发行版(如Ubuntu)、Android SDK和NDK等。同时,手机需要开启USB调试模式,以便通过ADB(Android Debug Bridge)...

    android-2.1-eclair-src.zip

    android-2.1-eclair-src.zip android-2.1-eclair-src.zip android-2.1-eclair-src.zip

    android2.1架构分析

    Android 2.1,全称为Eclair,是Google在2009年推出的Android操作系统版本。这个版本在Android系统的发展史上具有重要的地位,因为它引入了一系列的改进和优化,提升了用户体验和开发者工具的功能。在此,我们将深入...

    Eclair_ES_file_browser.rar_ES android 2_android_android ecla_an

    标题中的"Eclair_ES_file_browser.rar"提到了"Android 2.1",这是指Android操作系统的一个版本,Eclair,发布于2009年。Eclair带来了许多改进,包括更流畅的用户界面、更好的电源管理、支持更多的蓝牙配置文件以及对...

    android2.1 SDK

    这个版本的SDK对应于Android Eclair操作系统,发布于2009年,主要针对Android 2.1(API级别7)的应用开发。虽然随着时间的推移,Android系统已经更新到了更高版本,但了解和学习早期版本的SDK有助于开发者理解...

    android-2.1_r01-windows.zip

    Android 2.1(Eclair)是Google在2009年发布的操作系统版本,它在Android 2.0的基础上进行了诸多改进和功能增强。这个版本引入了动态壁纸、改进的虚拟键盘、更快的应用程序启动速度,以及更丰富的通知系统,为用户...

    android-2.1-src.zip

    Android 2.1,代号Eclair,是Google发布的一个重要的移动操作系统版本,它的源码揭示了Android系统的内部运作机制,为开发者提供了深入理解系统底层工作原理的窗口。本文将针对"android-2.1-src.zip"中的关键组件...

    下载、编译 Android platform 源码

    2. **安装gperf工具包**:`gperf`是一个生成完美哈希函数的工具,对于Android源码编译是必需的。你可以从网上找到对应版本的`gperf` RPM包,如`gperf-3.0.3-4.fc9.i386.rpm`,然后通过`rpm -ivh`命令进行安装。 3. ...

    android2.1 实例

    在Android 2.1(Eclair)版本中,开发者可以利用一系列API和工具来构建功能丰富的应用程序。这个实例可能是为了帮助开发者理解如何在Android 2.1环境下进行实际的编程和应用开发。以下是对Android 2.1实例中的关键...

    android-sdk2.1-sources.rar

    这份源码是针对Android平台版本2.1(Eclair)的,是Android发展历程中的一个重要里程碑。Android SDK 2.1不仅包含了对当时主流硬件的广泛支持,还引入了许多新特性,如动态壁纸、更强大的多媒体功能以及性能优化等。...

    android-2.1-part1

    Android 2.1,代号Eclair,是Google在2009年推出的Android操作系统版本,它是Android系统发展过程中的一个重要里程碑。这个版本为移动设备带来了许多改进和新功能,提升了用户体验,为开发者提供了更多开发应用程序...

    android-2.1-part3

    Android 2.1,代号Eclair,是Android操作系统的一个重要版本,它在Android 2.0的基础上进行了诸多改进和优化,提升了用户体验。在这个部分,我们将深入探讨Android 2.1中的关键特性、系统架构以及对开发者的重要更新...

    android-2.1-part6

    Android 2.1,代号Eclair,是Google推出的一款重要的移动操作系统版本,为智能手机和平板电脑提供了丰富的功能和优化。这一部分我们将深入探讨Android 2.1在系统性能、用户界面、应用程序开发以及API级别的改进。 1...

    Android-x86源码的编译

    - eclair-x86:基于Android 2.1(Eclair) - froyo-x86:基于Android 2.2(Froyo) - gingerbread-x86:基于Android 2.3(Gingerbread) - honeycomb-x86:基于Android 3.2(Honeycomb) - ics-x86:基于...

    android-2.1-part2

    在Android系统的发展历程中,Android 2.1(Eclair)是一个重要的里程碑,它为用户带来了许多改进和新特性。这个版本的更新主要集中在性能优化、用户体验提升以及开发者工具的增强上。以下将详细探讨Android 2.1的...

    Android platform 源码的下载、编译.doc

    在本文档中,我们主要探讨了如何下载和编译Android平台的源码,以及涉及到的相关工具的安装。首先,我们从下载源码开始。 一、下载Android源码 1. 确保你的主机环境是Fedora10,并且已经预装了git工具包。如果没有...

    android-2.1-part4

    在Android系统的发展历程中,Android 2.1(Eclair)是一个重要的里程碑,它为用户带来了许多改进和新特性。这个版本的更新主要集中在性能优化、用户体验提升以及开发者工具的增强上。以下是对"android-2.1-part4"这...

Global site tag (gtag.js) - Google Analytics