posts - 33, comments - 0, trackbacks - 0, articles - 0
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

            一、 說明

          1.        下載編譯最基本的android源碼,只能在模擬器上使用,無法在真機(jī)上使用(不能生成boot.img)。這是因?yàn)闆]有編譯相關(guān)機(jī)型的內(nèi)核和硬件驅(qū)動(dòng)。以下介紹的是用android源碼編譯出對應(yīng)HTC G1的版本,和燒寫的過程。編譯生成的版本除相機(jī)以外,其它功能均正常,穩(wěn)定性不錯(cuò),也很順暢。

          2.        以下步驟都經(jīng)過驗(yàn)證(只驗(yàn)證G1手機(jī)),實(shí)驗(yàn)系統(tǒng)ubuntu8.04,實(shí)驗(yàn)日期2010712

          3.        關(guān)鍵字: 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  #
          新建下載配置文件,用以下載內(nèi)核,編輯內(nèi)容如下

          注意:其中msm是高通芯片組,path指明下載到源碼目錄中的位置,name指明git上的項(xiàng)目名
          $ repo sync           # 開始下載代碼,此時(shí)需要等待較長時(shí)間

          3.        編譯內(nèi)核及無線網(wǎng)絡(luò)驅(qū)動(dòng)
          $ cd $ANDROID/kernel
          $ make ARCH=arm CROSS_COMPILE=../prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi- msm_defconfig          #
          設(shè)定默認(rèn)的msm配置

          $ make ARCH=arm CROSS_COMPILE=../prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi- #
          編譯內(nèi)核
          $ 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       
          #編譯無線網(wǎng)絡(luò)驅(qū)動(dòng)
          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.        配置編譯選項(xiàng)
          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 #
          加入如下內(nèi)容,以支持中文

          CUSTOM_LOCALES:=zh_CN
          $ source build/envsetup.sh
          $ lunch full_dream-userdebug        
          #指定編譯機(jī)型
          $ make -j2

          6.        以打補(bǔ)丁的方式加入不提供源碼的庫
          此時(shí)的系統(tǒng)可以被燒寫,但電話音樂等基本功能均不正常,需要從系統(tǒng)或其它升級包中提取出源碼中不包含的庫,以支持相應(yīng)功能。
          HTC網(wǎng)站http://developer.htc.com/adp.html
          下載名為signed-dream_devphone_userdebug-ota-14721.zip的包(一個(gè)普通的update包),并把它放在$ANDROID目錄下,并將其改名為dreaem_update.zip
          $ mv signed-dream_devphone_userdebug-ota-14721.zip dream_update.zip
          $ cd device/htc/dream
          $ ./unzip-files.sh  
          此時(shí)會提示有幾個(gè)庫找不后,后面有對應(yīng)解決辦法

          $ cd $ANDROID
          $ vi vendor/htc/dream/device_dream-vendor-blobs.mk
          刪除包含以下內(nèi)容的行,這是由于在update.zip中找不到相應(yīng)庫,為編譯通過,選去掉它們
          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
          #網(wǎng)卡驅(qū)動(dòng)
          $ make snod        
          重新生成system.img

          三、 把編譯好的軟件燒寫到手機(jī)

          usb線連接手機(jī)到電腦,按home+power鍵將手機(jī)啟動(dòng)到工程模式,按back鍵準(zhǔn)備燒寫
          $ 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

          燒寫系統(tǒng)后第一次啟動(dòng)手機(jī)需要幾分鐘,請耐心等

          四、 修改

          1.        安裝中文字體(可以在燒寫前加入,加在此處用以說明在啟動(dòng)后修改系統(tǒng)的方法)
          $ adb shell
          # su            
          取得root權(quán)限

          # mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system    
          使system分區(qū)可寫
          # chmod 777 /system/fonts     
          使某個(gè)目錄有寫權(quán)限
          # exit
          # exit
          $ adb push frameworks/base/data/fonts/DroidSansFallback.ttf /system/fonts/         
          加中文字體
          $ adb reboot

          2.        支持GPRS上網(wǎng)
          添加APN即可上網(wǎng)和發(fā)彩信,詳見http://www.andbeta.com/Basics/678.html

          3.        設(shè)置帳戶
          添加帳戶時(shí),服務(wù)器填寫m.google.com

          五、 參考

          1.        刷寫部分未詳細(xì)描述,具體請參考文檔
          http://xy0811.spaces.live.com/blog/cns!F8AECD2A067A6B17!1452.entry

          2.        源碼編譯部分未詳細(xì)描述,具體請參考文檔
          http://xy0811.spaces.live.com/blog/cns!F8AECD2A067A6B17!1364.entry


          轉(zhuǎn)自:http://blog.csdn.net/xieyan0811/article/details/5931573


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 汶川县| 丽江市| 兰西县| 琼海市| 大余县| 灯塔市| 晋宁县| 紫云| 大埔区| 宝清县| 常熟市| 邹城市| 长武县| 石渠县| 开阳县| 永德县| 平邑县| 天长市| 安义县| 兴化市| 营口市| 山西省| 乐东| 营山县| 蒙山县| 湘阴县| 视频| 周至县| 卓资县| 平乐县| 南宫市| 九龙坡区| 正阳县| 瓮安县| 健康| 满洲里市| 宜宾市| 郸城县| 岳阳县| 章丘市| 英山县|