快速瀏覽

安卓


 

本頁將向您介紹如何下載和構建 Android 源代碼樹以根據您的使用情況對其進行自定義。

如果您尚未在桌面上構建 Android,請在繼續之前仔細閱讀 Android 的官方構建環境設置指南https://source.android.com/source/initializing.html否則,您可能會遇到意外錯誤,需要閱讀冗長而復雜的構建日誌才能找到問題所在。

我們只使用了 Ubuntu 16.04 和 18.04 64 位和 8GB RAM,因為其他較新版本在構建 Android操作系統時存在一些問題
如果您使用 Ubuntu 20.04 或更高版本,則應在構建 Android操作系統之前安裝 python 2.7 
Android 9.x (Pie) 構建需要 OpenJDK 8,而不是 Oracle-Java-JDK。
另請注意,您的存儲中需要大約 210GB 的可用空間才能獲得完整的源代碼和二進制空間。 https://source.android.com/source/requirements.html

如果您想構建完整的 Android 源代碼樹,請不要單獨下載和構建內核源代碼。
單獨的內核構建可能會破壞 Android 構建過程。

在構建 Android 之前,您必須將默認 shell 從 dash 更改為 bash。

$ sudo dpkg-reconfigure dash

答:否


對於 Linux 內核和 U-boot,您必須安裝特定的工具鏈。Android 將使用其預先構建的 ARM 工具鏈。
將工具鏈解壓到 /opt/toolchains/

U-boot
Linux內核

並請設置 PATH 以使用工具鏈。您應該在構建 Android 之前設置它。

$ export PATH=$PATH:/opt/toolchains/gcc-linaro-aarch64-none-elf-4.9-2014.09_linux/bin
$ export PATH=$PATH:/opt/toolchains/gcc-linaro-arm-none-eabi-4.8-2014.04_linux/bin
$ export PATH=$PATH:/opt/toolchains/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin

此命令將啟動下載ODROID-C4的 Android 源代碼樹。
完整的源代碼包括 u-boot、內核和 Android 存儲庫。


安卓
$ source build/envsetup.sh
$ lunch odroidc4-eng
$ make -j<core number>

您可以在<core number>上設置數量,以便同時編譯與構建機器上的內核數量一樣多。

您還可以構建分離的圖像,如根、系統、供應商和 dtbs 圖像。


Android 構建完成後,您將擁有可下載到 MicroSD/eMMC 中的所有必要文件。您可以通過兩種方式安裝 Android 映像。首先,使用自安裝映像。你只是閃爍這個圖像,僅此而已。開機後會自動安裝Android。作為另一種方式,您可以手動刷新每個圖像。

$ make bootimage
$ make systemimage
$ make vendorimage
$ make dtbsimage
一鍵自安裝

這與 Hardkernel 團隊創建 Android 發布映像的方式相同,如果您再進行一個構建步驟,則在您的 ODROID-C4 上擁有可啟動媒體的最簡單方法也是如此。此過程將 Android 構建創建的所有必需圖像文件合併到一個文件中,即 out/target/product/odroidc4/selfinstall-odroidc4.img。

您還可以使用自安裝映像製作可啟動媒體,而且您已經製作好了。

$ make -j<core number> && make -j<core number> selfinstall

您可以通過etcher或dd 命令編寫自安裝映像。

$ sudo dd if=out/target/product/odroidc4/selfinstall-odroidc4.img of=/dev/sdd
$ sync
$ sudo eject /dev/sdd
手動安裝

Android 構建完成後,您將擁有可下載到 MicroSD/eMMC 中的所有必要文件。如果您已經有啟動媒體並且可以切換到fastboot模式是U-boot,您可以在執行以下命令的同時繼續更新或忽略特定步驟。 如何使用快速啟動

引導加載程序

要在 ODROID-C4 上使用媒體,您應該先刷寫引導加載程序以啟動媒體。我們假設 emmc 節點為 /dev/sdd。您可以通過“sudo fdisk -l”找到媒體節點。

$ cd <android_root>
$ cd bootloader/uboot/sd_fuse
$ ./sd_fusing.sh /dev/sdd

如果您已經安裝了媒體,您可以通過 fastboot 命令刷新引導加載程序。

$ fastboot flash bootloader bootloader/uboot/sd_fuse/u-boot.bin

刷入引導加載程序後,您可以使用fastboot命令來刷入映像。此命令在 u-boot 上完成。

在板上,

$ fastboot
$ fastboot oem fdisk
$ fastboot reboot-bootloader

然後,嘗試以下方法在您的 PC 上閃爍圖像。

Android 根和內核
$ fastboot flash boot out/target/product/odroidc4/boot.img
內核數據庫
$ fastboot flash dtbs dtbs.img
Recovery
$ fastboot flash recovery out/target/product/odroidc4/recovery.img
Vendor
$ fastboot flash vendor out/target/product/odroidc4/vendor.img
系統
$ fastboot flash system out/target/product/odroidc4/system.img
數據

首先應該格式化數據分區。

$ fastboot erase data

刷完所有分區後,請重啟設備。

$ fastboot reboot

如何進入快速啟動模式以下載 Android 映像

您需要USB 串行套件ODROID-C4啟動時按鍵盤上的任意鍵。這將停止啟動並為您提供U-boot命令行,只需執行命令fastboot 即可

我還沒有啟動媒體,如何將 Android 映像下載到我的 MicroSD 或 eMMC?

顯然,你必須有一個引導介質可以從啟動ODROID-C4直接以進入FASTBOOT中的U-boot模式。否則,您將無法將 Android 映像下載到專用分區 ( system/userdata/cache )。此類分區的映像文件無法直接使用dd從桌面下載。例如,由於這些映像在為每個分區安裝時被壓縮和fastboot提取。

我沒有 USB 串口套件,所以我無法進入 U-boot

當前的U-boot不支持除串口控制台外的任何其他輸入設備,因此您需要 USB 串口套件。可能的解決方法是安裝 Hardkernel 團隊發布的 Android 映像,並從 Android 的 shell 命令行執行命令reboot fastboot。這將重新啟動ODROID-C4和停止上的U-boot進入FASTBOOT模式。當 USB 電纜與ODROID-C4連接時,您可以從桌面執行命令fastboot

快速瀏覽

ODROID-C4

四核ARM CORTEX-A55 |4GB RAM |4 USB3 PORTS