Android4.0 源碼可以從光盤,網盤獲取穩定版本,也可以從 GitHub 下載我們的開發版 本。GitHub 僅提供源碼下載,不提供二進制下載,二進制文件存放在光盤和網盤中。 基于迅為4412開發板 6.3.1.1 repo 下載 android 代碼管理不同于 uboot,kernel,由于 Android 代碼比較龐大,我們把 Android 項目按照文件夾進行項目拆分,android 源碼根目錄下面的每個子目錄都會劃分為一個倉庫或 者多個倉庫進行版本管理,Android 的代碼下載需要使用 repo 工具,repo 工具為 Git 的封 裝,底層是使用 Git 命令進行下載的。 假設將要下載的 repo 工具存放于 /media/data/gitHub 目錄: #cd /media/data/GitHub/ #git clone git://aosp.tuna.tsinghua.edu.cn/android/git-repo.git/ git-repo 倉庫下載完成后會看到該文件夾內有 repo 腳本文件: ![]() 1.jpg (49.47 KB, 下載次數: 0) 下載附件 [url=]保存到相冊[/url] [color=rgb(153, 153, 153) !important]2020-4-14 10:32 上傳 6.3.1.2 Android4.0 代碼下載 假設我們的 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”之后有空格。 ![]() 注: repo init 命令中–u 參數指定 android 倉庫下載地址,-b 參數指定倉庫中的下載 分支. 這里我下載的是 exynos4412_android4.0.3_master 分支,該命令執行過程中需要輸入 相關的信息,如下圖所示: ![]() Your Name 輸入 root Your Email: 直接回車即可,然后在輸入 y, 回車繼續: ![]() #../git-repo/repo sync 注: repo sync 開始下載 Android 代碼,下載過程與網絡環境有一定的關系,如果下 載過程中長時間沒有進度顯示,可以 ctrl+c 終止下載,然后執行 repo sync 命令重新開始, 下圖為源碼下載過程中的進度顯示: ![]() 代碼下載完成后會在 /media/data/GitHub/ iTop4412_ICS_git 目錄下面顯示 Android 系統源碼目錄: ![]() 每個文件夾目錄下面都會有一個或者多個 Git 倉庫,默認這些倉庫是沒有分支的,我們需要 使用 repo star 命令創建分支,這里我們創建 master 分支,您也可以使用別的名字來定義分支 名稱,repo branch 命令可以查看創建的分支: #../git-repo/repo start master --all #../git-repo/repo branch ![]() 6.3.1.3 Android4.0 源碼編譯 Android 代碼下載完成后就可以進行編譯了,Android 源碼編譯需要 kernel 支持,所 以我們需要把 Android 代碼與 kernel 代碼放到同一目錄下面: ![]() 注: 上圖中 iTOP4412_Kernel_3.0 為 Android 的內核代碼, 與 Android4.0 源碼目錄 iTOP4412_ICS_git 在同一級,另外編譯 Android4.0 之前需要編譯內核代碼,在內核代碼目 錄執行: # 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 會編譯驅動庫文件*.ko , Android4.0 會拷貝驅動庫文件到 Android 的 目錄結構,否則 Android 的某些功能無法使用。 Android4.0 的執行編譯命令: #cd iTop4412_ICS_git # ./build_android.sh 另外 Android 代碼下載,編譯完成后,可以定期使用 repo sync 命令同步我們的 Git 倉 庫到本地,這樣您的本地代碼就跟我們的倉庫保持同步更新了,編譯后就會形成最新的系統鏡 像. 我們的 Android4.0 代碼區分精英版和全能版,默認我們下載的代碼編譯形成的鏡像可以 在精英板運行,要編譯全能板版本,只需要修改一項配置即可: 文件路徑:iTop4412_ICS_git/device/samsung/smdk4x12/BoardConfig.mk 配置項:BOARD_HAVE_MPU6050 ,該值配置成 false 代表編譯版本是精英板版本,如果 設置成 true,則會編譯全能板版本。 精英版配置: ![]() 全能版配置: ![]() 完成,更多內容關注:迅為電子 |