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 ,实验日期 2010 年 5 月 8 日
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
          
        
      
    
  


 
					 
					