现在的位置: 首页 > 综合 > 正文

编译在G1上运行的android 2.2(froyo)代码_正规版

2013年10月11日 ⁄ 综合 ⁄ 共 3142字 ⁄ 字号 评论关闭

一、
 


说明

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  

# 


新建下载配置文件,用以下载内核,编辑内容如下





<?xml version="1.0" encoding="UTF-8"?>
<manifest>
  

<project path="kernel" name="kernel/msm" revision="refs/heads/android-msm-2.6.29-donut"/>
</manifest>






注意:其中
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




下载名为
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


3.        




设置帐户



添加帐户时,服务器填写
m.google.com

 

 

转自:http://hi.baidu.com/sulmas/blog/item/f946c72ae18b8c38d52af1c3.html


抱歉!评论已关闭.