1 安裝 JDK 1)Android8.1 系統(tǒng)編譯依賴于 JAVA 8。編譯之前需安裝 OpenJDK。安裝命令如下: add-apt-repository ppa ![]() apt-get update sudo apt-get install openjdk-8-jdk 執(zhí)行結(jié)果,如下圖: ![]() 2)如果您之前安裝過(guò)其他版本的 JDK,需要進(jìn)行版本切換。如果沒(méi)有安裝過(guò),可以跳過(guò)此步驟,查看目前已經(jīng)安裝在系統(tǒng)里的 Java 版本,使用以下命令: update-java-alternatives -l ![]() 查看相應(yīng)的 jdk(java javac 等)是否在 ubuntu 的 jdk 菜單里,查看切換 jdk 的命令,如下所示: sudo update-alternatives --config java ![]() 輸入 java8 對(duì)應(yīng)的選擇項(xiàng),按回車進(jìn)行確認(rèn)。 2 android7.1.2 整體編譯 本節(jié)介紹如何將 Android7.1.2 源碼如何整體編譯,即將 uboot,kernel,Android 鏡像 一次性全部編譯出來(lái)。 注意:編譯 Android7.1.2 系統(tǒng)必須保證給 Ubuntu 系統(tǒng)提供 4G 以上內(nèi)存。這里“提供 4G 以上內(nèi)存”的意思,不僅僅是指在 VMware Workstations 虛擬機(jī)中設(shè)置分配 4G 內(nèi)存。 例如,用戶在編譯的時(shí)候,PC 機(jī)的內(nèi)存一共是 6G,在虛擬機(jī)中設(shè)置分配 4G 內(nèi)存,但是在 Windows 系統(tǒng)下,開(kāi)著 QQ,殺毒軟件,音樂(lè)播放器,瀏覽器等等,這樣在 Windows 下占 用的內(nèi)存就快 2G 了,那么虛擬機(jī)會(huì)自動(dòng)調(diào)整到只占用 2G,甚至不到 2G 的內(nèi)存,這樣就有 可能沒(méi)法編譯通過(guò)。 正確的分配內(nèi)存方法是,首先給虛擬機(jī)分配 4G 以上內(nèi)存,然后在 Windows 下關(guān)掉盡量 多的不必要的應(yīng)用,關(guān)掉盡量多應(yīng)用的后臺(tái)程序。 當(dāng)然,如果用戶的 PC 是 8G 或者 16G 內(nèi)存,隨意就成。 Android7.1.2 源碼在網(wǎng)盤目錄“03 系統(tǒng)固件燒寫及編譯篇\05 開(kāi)發(fā)板系統(tǒng)源碼編譯\03-imx6Q 源碼\設(shè)備樹(shù) android7.0 源碼”下,壓縮包先在 windows 下解壓,解壓之后得到單獨(dú)的壓縮包“iTOPiMX6_android7.1.2_20200708.tar.gz”。 將“iTOP-iMX6_android7.1.2_20200708.tar.gz”壓縮包解壓到 Ubuntu14 下(作者在 /home 目錄下新建了 imx6q 目錄,將源碼拷貝和解壓到 imx6q 目錄下;plus 版本的作者新 建了 iMX6-PLUS 目錄)。注意:這里的解壓命令,包括后面的解壓命令中,壓縮包的日期可 能有點(diǎn)不一樣,用戶要根據(jù)實(shí)際情況調(diào)整。 ![]() 使用解壓命令“tar -vxf iTOP-iMX6_android7.1.2_20200708.tar.gz”解壓源碼,解壓之后得到“iTOP-iMX6_android7.1.2”文件夾,如下圖所示。 ![]() 使用命令“cd iTOP-iMX6_android7.1.2”,進(jìn)入“iTOP-iMX6_android6.0.1”目錄, 如下圖所示,使用 ls 命令,可以看到編譯腳本“create.sh”,這個(gè)文件就是系統(tǒng)整體編譯的 腳本。 ![]() 1G 核心板和 2G 核心板 uboot 的配置有點(diǎn)不一樣。 如果用戶是 2G 內(nèi)存,使用默認(rèn)配置即可。 如果用戶是 1G 內(nèi)存,進(jìn)入“bootable/bootloader/uboot- imx/board/freescale/mx6sabresd”,如下圖所示,“mx6qp.cfg”文件中內(nèi)存配置代碼, “mx6qp.cfg_1G”是 1G 內(nèi)存配置文件,“ mx6qp.cfg_2G”是2G 配置文件。2G 核心板 用戶需要使用“mx6qp.cfg_1G”文件將“ mx6qp.cfg”覆蓋,使用命令“cp -rmx6qp.cfg_1G mx6qp.cfg”即可。 ![]() 繼續(xù)介紹編譯腳本“create.sh”的用法。 注意:如果想編譯出 iMX6PLUS 版本的 uboot,kernel,以及 Android7.1.2 文件系統(tǒng),需要在編譯時(shí)增加參數(shù)“plus”,即:“./create.sh plus”,如下圖所示。 ![]() 注意:如果想編譯出 iMX6Q 版本的 uboot、kernel、以及 Android7.1.2 文件系統(tǒng),需要在編譯時(shí)增加參數(shù)“6q”,即:“./create.sh 6q”,如下圖所示。 ![]() 注意:如果想編譯出 iMX6D 版本的 uboot、kernel、以及 Android7.1.2 文件系統(tǒng),需 要在編譯時(shí)增加參數(shù)“6d”,即:“./create.sh 6d”。 如下圖所示,開(kāi)始編譯。 ![]() 編譯完成,如下圖所示,生成的鏡像在“out/target/product/sabresd_6dq”目錄下。 ![]() 編譯完成之后,使用命令“cd out/target/product/sabresd_6dq”進(jìn)入鏡像目錄,使用 ls 命令,可以看到生成了“u-boot.imx”、“system.img”、“recovery.img”以及 “boot-topeet_10.1.img ”、“boot-topeet_7.img ”、“boot-topeet_9.7.img ”等鏡 像文件。編譯生成的以上鏡像就是 Android7.1.2全部的鏡像。 ![]() |