如何下載和編譯Android4.0核心原始碼goldfish(映像)

來源:互聯網
上載者:User

標籤:

如何下載Android4.0原始碼。請參閱我的部落格文章中有(同樣是圖文教程):

http://blog.csdn.net/flydream0/article/details/7036156

怎樣編譯Android4.0原始碼請看:

http://blog.csdn.net/flydream0/article/details/7046612


以下進入正題:

第一步:下載goldfish原始碼

在Android原始碼根資料夾下建立kernel檔案夾

$mkdir kernel$cd kernel
下載原始碼:

$git clone http://android.googlesource.com/kernel/goldfish.git 

完成下載例如以:

此時在kernel檔案夾下會產生一個goldfish檔案夾。進入此檔案夾:

$cd goldfish

此檔案夾下有一個隱藏的檔案夾.git,通過

$ls -al

可看到此檔案夾:


查看全部分支:

git  branch -a
例如以:


check out:

$git checkout remotes/origin/android-goldfish-2.6.29


此時你會看到goldfish檔案夾下會出現非常多檔案:

$ls

 這個時候goldfish原始碼就已經下下來了,接下來的事情就是編譯了.


第二步:編譯goldfish

匯出交叉編譯工具檔案夾到$PATH環境變數中去.

export PATH=$PATH:~/WORKING_DIRECTORY/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin

我們將使用上述這個檔案夾下的交叉編譯器 arm-eabi-gcc

然後在glodfish檔案夾下用gedit開啟Makefile檔案,找到這兩行文字:

 # ARCH ?= (SUBARCH)

 # CROSS_COMPILE ?

=
改動為:
ARCH ?

= arm
CROSS_COMPILE     ?= arm-eabi-

$gedit Makefile

注意:ARTH ?=arm,的arm後邊不要有空格,不然就會出現例如以下類似錯誤:
Make:...../kernel/goldfish/arch/arm: Is a directory.  Stop.
害我白白浪費了幾個小時.

上述操作的目的是為了指定目標裝置的體系架構和交叉編譯器。事實上也能夠通過下面指令來完畢:
$ export ARCH=arm$ export SUBARCH=arm$ export CROSS_COMPILE=arm-eabi-


為了確保環境參數正確,接下來運行以下兩條指令,否則有可能不能正常啟動模擬器.(注:以下兩條指令是在Android原始碼根資料夾下運行)
$ source build/envsetup.sh  //缺少這條指令,可能會導致無法編譯通過$ lunch full-eng            //缺少這條指令,可能會導致無法啟動模組器,系統報無法找到AVD。並要求你建立AVD。

關閉gedit,接下來就開始make了,運行例如以下指令:
$ make goldfish_armv7_defconfig$ make
註:用$make goldfish_defconfig這樣配置也能夠編譯通過,模擬器也能夠啟動。可是Android的開機畫機就顯示不了,$adb shell也死活連不上,原因就是這個goldfish_defconfig這個設定檔問題.

提示:
$make goldfish_armv7_defconfig指令的意思是將檔案夾WORKING_DIRECTORY/kernel/goldfish/arch/arm/configs/下的goldfish_armv7_defconfig檔案內的Kconfig配置內容拷貝到WORKING_DIRECTORY/kernel/goldfish/檔案夾下的.config檔案裡,.config檔案是一個隱藏檔案夾,儲存著各個檔案夾下Kconfig檔案的配置.
終於結果例如以所看到的:


這樣就表示編譯成功了.

$ ls arch/arm/boot/
能夠看到zImage檔案.


第三步:在模擬器中啟動編譯好的核心
 
按下來再執行其下指令:
$ export PATH=$PATH:~/WORKING_DIRECTORY/out/host/linux-x86/bin$ export ANDROID_PRODUCT_OUT=~/WORKING_DIRECTORY/out/target/product/generic$ emulator -kernel ~/WORKING_DIRECTORY/kernel/goldfish/arch/arm/boot/zImage & 
模擬器啟動介面:



進入模擬器從設定裡看版本號碼資訊:

從能夠看出當前Android版本號碼是4.0.1,核心版本號碼是2.6.29,說明成功了.

相同也能夠通過adb shell來查看核心版本號碼資訊,例如以:

$adb shell#cd proc#cat version


完!

如何下載和編譯Android4.0核心原始碼goldfish(映像)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.