日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android源码下载编译(TI)

發(fā)布時間:2024/8/1 Android 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android源码下载编译(TI) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

0 前言

? ? 通過《Android源碼下載 & 編譯(高通)》的方法下載的源碼是包含有kernel目錄的(也就是包含Linux內核),然而,通過其它方法下載的源碼可能并不包含kernel目錄(也就是不包含Linux內核)。參考資料[9]在最后明確指出:Android4.0源碼默認下載是不包括內核源碼的。本文針對這種情況,分析如何下載Android & Linux源碼,并進行編譯。

? ? 本文默認讀者已經安裝好git,repo等工具,具體可參考《Android源碼下載 & 編譯(高通)》第1節(jié)。

1 下載源碼

1.1 Android

? ? 由于無法直接從Google官網下載,改在TI OMAPZOOM下載[11][7]:

(1)登陸http://git.omapzoom.org,然后打開platform/manifest.git:

圖1.1

(2)瀏覽tags,查看可用的Android源碼版本(本文以4.4.4版本為例):

圖1.2

? ? 更多tags如下所示:

圖1.3

(3)通過repo下載源碼

mkdir android-4.4.4 cd android-4.4.4 repo init -u git://git.omapzoom.org/platform/manifest -b android-4.4.4_r2.0.1 repo sync

:如果網絡不穩(wěn)定,可能會出現中斷現象,根據參考資料[10]的說明,此時可以使用下面的腳本來實現自動下載:

#!/bin/bash echo "======start repo sync======" repo sync while [ $? == 1 ]; doecho "======sync failed, re-sync again======"sleep 3repo sync done echo "======sync sucessed !======"

? ? 將上述內容保存到repo_sync.sh文件中(保存于android-4.4.4目錄中),然后:

chmod +x repo_sync.sh

? ? 此時可以通過執(zhí)行上述腳本來啟動下載:

./repo_sync.sh

1.2 內核

? ? 通過上述方法僅僅是下載了Android源碼部分,其中并沒有包含Linux內核源碼,下面進一步說明下載Linux內核源碼的步驟:

(1)登陸http://git.omapzoom.org:

圖1.4

(2)在上圖搜索框中輸入關鍵字“kernel”,然后點擊“Search”按鈕,結果如下:

圖1.5

? ? 由上圖可見,具有commonexynosgoldfishmsmomapsamsung以及tegra六個平臺的內核,本文以goldfish為例。

(3)雙擊上圖“kernel/goldfish.git”進入如下頁面:

圖1.6

? ? 上圖紅色框內列出了goldfish.git的URL,可以通過該URL下載goldfish版本的Linux內核。

(4)克隆內核

mkdir kernel cd kernel git clone git://git.omapzoom.org/kernel/goldfish.git

(5)查詢遠程分支

cd goldfish git branch -a

? ? 結果如下圖所示:

圖2.4

(6)checkout分支

git checkout remotes/origin/android-goldfish-3.4

? ? 注意:不能下載android-3.18android-goldfish-3.10android-goldfish-4.4dev這三個版本,因為其中缺乏goldfish_defconfiggoldfish_armv7_defconfig配置文件;android-goldfish-2.6.29android-goldfish-3.18-dev這兩個版本雖然含有goldfish_defconfiggoldfish_armv7_defconfig,但是編譯后無法正常啟動,前者是黑屏,后者則是崩潰!

2 編譯

2.1 Android

(1)配置 & 編譯

cd android-4.4.4 source build/envsetup.sh lunch 1 make -j4

:與《Android源碼下載 & 編譯(高通)》不同的是,上述編譯過程并沒有編譯Linux內核,Linux內核需要另外編譯,詳見下文。

(2)編譯結果

? ? 編譯完成后,將會在Android源碼目錄中創(chuàng)建一個out子目錄,并且在其中保存編譯結果:

圖2.1

? ? 其中target/product/generic子目錄保存了目標板鏡像文件,而host/linux-x86子目錄保存了在PC端運行的工具,例如adbfastbootemulator

圖2.2

? ? 這里我們通過emulator工具來模擬啟動剛才所編譯的Android鏡像。

(3)步驟(1)的配置過程早已將上述路徑添加到PATH環(huán)境變量中,因此可以在Android源碼樹中的任意路徑執(zhí)行下面命令來啟動模擬器:

emulator

? ? 效果如下:

圖2.3

2.2 內核

(1)進入第1.2小節(jié)所下載內核源碼的目錄

cd goldfish

(2)配置

make ARCH=arm goldfish_armv7_defconfig .config# or make ARCH=arm goldfish_armv7_defconfig# or cp arch/arm/configs/goldfish_armv7_defconfig .config make ARCH=arm menuconfig

? ? 如果選擇最下面的方法,退出配置菜單,選擇保存即可。

:除了goldfish_armv7_defconfig(適用于Androd4.0以后版本),還有一個配置文件goldfish_defconfig(適用于Android2.3之前版本),這里不能選錯,否則無法正常啟動。

(3)編譯

make -j3 ARCH=arm CROSS_COMPILE=${CROSS_COMPILE_DIR}/arm-eabi-

? ? 參數說明:

? ? -j3, 表示開啟3個線程進行編譯以加快速度;

? ? CROSS_COMPILE,指定交叉編譯工具前綴;

? ? CROSS_COMPILER_DIR,它是一個環(huán)境變量,其值應該設置為交叉編譯工具所在的路徑(通常在上述下載所下載的Android源碼的prebuilts目錄中,例如prebuilts/gcc/linux-x86/arm/arm-eabi-4.7/bin)。

(4)結果

圖2.4

3 開啟/關閉編譯內核

? ? 在編譯Android系統(tǒng)的時候,可以同時編譯Linux內核,也可以不編譯!可以通過設置Android源碼device目錄中相應平臺的BoardConfig.mk中的TARGET_NO_KERNEL變量的人值來達到目的[1]:

圖3.1

? ? 當TARGET_NO_KERNEL的值為false時,表示 在編譯Android源碼的同時編譯Linux內核;TARGET_NO_KERNEL的值為true時,表示 在僅僅編譯Android源碼,不編譯Linux內核(內核需要另外獨立編譯)。

參考資料

[1]Android下載目錄結構中無kernel目錄

[2]誰知道Android內核源碼中goldfish部分代碼到哪里去了?

[3]最近下載android4.3的源代碼,可是找不到kernel那部分代碼在什么目錄下?

[4]ubuntu12.04(64bit)編譯android4.4源碼、sdk及kernel

[5]Android編譯自己的kernel

[6]Android --- windows下搭建Linux環(huán)境下載編譯Android源代碼

[7]國內被墻后如何獲取android源代碼

[8]如何下載并編譯Android4.0內核源碼goldfish(圖文)

[9]如何在Ubuntu11.10(32位)下編譯Android4.0源碼(圖文)

[10]repo sync 時的自動續(xù)接腳本[轉]

[11]OmapZoom_WIKIPEDIA

總結

以上是生活随笔為你收集整理的Android源码下载编译(TI)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。