Android4.0 源碼可以從光盤,網(wǎng)盤獲取穩(wěn)定版本,也可以從 GitHub 下載我們的開發(fā)版
本。GitHub 僅提供源碼下載,不提供二進制下載,二進制文件存放在光盤和網(wǎng)盤中。
基于迅為4412開發(fā)板
6.3.1.1 repo 下載
android 代碼管理不同于 uboot,kernel,由于 Android 代碼比較龐大,我們把 Android
項目按照文件夾進行項目拆分,android 源碼根目錄下面的每個子目錄都會劃分為一個倉庫或
者多個倉庫進行版本管理,Android 的代碼下載需要使用 repo 工具,repo 工具為 Git 的封
裝,底層是使用 Git 命令進行下載的。
假設(shè)將要下載的 repo 工具存放于 /media/data/gitHub 目錄:
#cd /media/data/GitHub/
#git clone git://aosp.tuna.tsinghua.edu.cn/android/git-repo.git/
git-repo 倉庫下載完成后會看到該文件夾內(nèi)有 repo 腳本文件:
1.jpg (14.98 KB, 下載次數(shù): 31)
下載附件
2020-4-14 11:27 上傳
6.3.1.2 Android4.0 代碼下載
假設(shè)我們的 Android4.0 代碼存放在 /media/data/GitHub/iTop4412_ICS_git 目錄:
# cd /media/data/GitHub/iTop4412_ICS_git
#../git-repo/repo init –u https://github.com/TOPEET-Develop/android.git -b
exynos4412_android4.0.3_master
注意上一條命令中,換行字符“-b”之后有空格。
2.jpg (23.93 KB, 下載次數(shù): 31)
下載附件
2020-4-14 11:27 上傳
注: repo init 命令中–u 參數(shù)指定 android 倉庫下載地址,-b 參數(shù)指定倉庫中的下載
分支.
這里我下載的是 exynos4412_android4.0.3_master 分支,該命令執(zhí)行過程中需要輸入
相關(guān)的信息,如下圖所示:
3.jpg (20.26 KB, 下載次數(shù): 25)
下載附件
2020-4-14 11:27 上傳
Your Name 輸入 root
Your Email: 直接回車即可,然后在輸入 y, 回車繼續(xù):
4.jpg (21.21 KB, 下載次數(shù): 29)
下載附件
2020-4-14 11:27 上傳
#../git-repo/repo sync
注: repo sync 開始下載 Android 代碼,下載過程與網(wǎng)絡(luò)環(huán)境有一定的關(guān)系,如果下
載過程中長時間沒有進度顯示,可以 ctrl+c 終止下載,然后執(zhí)行 repo sync 命令重新開始,
下圖為源碼下載過程中的進度顯示:
5.jpg (31.07 KB, 下載次數(shù): 24)
下載附件
2020-4-14 11:27 上傳
代碼下載完成后會在 /media/data/GitHub/ iTop4412_ICS_git 目錄下面顯示 Android
系統(tǒng)源碼目錄:
6.jpg (11.08 KB, 下載次數(shù): 36)
下載附件
2020-4-14 11:27 上傳
每個文件夾目錄下面都會有一個或者多個 Git 倉庫,默認這些倉庫是沒有分支的,我們需要
使用 repo star 命令創(chuàng)建分支,這里我們創(chuàng)建 master 分支,您也可以使用別的名字來定義分支
名稱,repo branch 命令可以查看創(chuàng)建的分支:
#../git-repo/repo start master --all
#../git-repo/repo branch
7.jpg (12.59 KB, 下載次數(shù): 28)
下載附件
2020-4-14 11:27 上傳
6.3.1.3 Android4.0 源碼編譯
Android 代碼下載完成后就可以進行編譯了,Android 源碼編譯需要 kernel 支持,所
以我們需要把 Android 代碼與 kernel 代碼放到同一目錄下面:
8.jpg (9.33 KB, 下載次數(shù): 24)
下載附件
2020-4-14 11:27 上傳
注: 上圖中 iTOP4412_Kernel_3.0 為 Android 的內(nèi)核代碼, 與 Android4.0 源碼目錄
iTOP4412_ICS_git 在同一級,另外編譯 Android4.0 之前需要編譯內(nèi)核代碼,在內(nèi)核代碼目
錄執(zhí)行:
# cp config_for_android_XX_YY .config
# make zImage
# make modules
config_for_android_XX_YY 中的 XX 指核心板類型:scp,pop,pop2G, YY 指的是底板
類型:精英版 elite,或者全能版 supper.
make modules 會編譯驅(qū)動庫文件*.ko , Android4.0 會拷貝驅(qū)動庫文件到 Android 的
目錄結(jié)構(gòu),否則 Android 的某些功能無法使用。
Android4.0 的執(zhí)行編譯命令:
#cd iTop4412_ICS_git
# ./build_android.sh
另外 Android 代碼下載,編譯完成后,可以定期使用 repo sync 命令同步我們的 Git 倉
庫到本地,這樣您的本地代碼就跟我們的倉庫保持同步更新了,編譯后就會形成最新的系統(tǒng)鏡
像.
我們的 Android4.0 代碼區(qū)分精英版和全能版,默認我們下載的代碼編譯形成的鏡像可以
在精英板運行,要編譯全能板版本,只需要修改一項配置即可:
文件路徑:iTop4412_ICS_git/device/samsung/smdk4x12/BoardConfig.mk
配置項:BOARD_HAVE_MPU6050 ,該值配置成 false 代表編譯版本是精英板版本,如果
設(shè)置成 true,則會編譯全能板版本。
精英版配置:
9.jpg (21.33 KB, 下載次數(shù): 23)
下載附件
2020-4-14 11:27 上傳
全能版配置:
10.jpg (22.72 KB, 下載次數(shù): 24)
下載附件
2020-4-14 11:27 上傳
完成,更多內(nèi)容關(guān)注:迅為電子
|