Sie können Builds für Nexus- und Pixel-Geräte mit AOSP-Builds (Android Open Source Project) und den relevanten hardwarespezifischen Binärdateien erstellen. Informationen zu verfügbaren Android-Builds und Zielgeräten finden Sie unter Quellcode-Tags und Builds .
Sie können auch Builds für DragonBoard 845c , HiKey 960 , Khadas VIM3 und Qualcomm Robotics Board RB5 Android-Referenzplatinen erstellen, die Anbietern nicht mobiler Komponenten bei der Entwicklung und Portierung von Treibern auf Android-Versionen helfen sollen. Die Verwendung eines Referenzboards kann Upgrade-Bemühungen erleichtern, die Markteinführungszeit für neue Android-Geräte verkürzen, die Gerätekosten senken, indem ODM/OEMs die Auswahl aus einer größeren Auswahl an kompatiblen Komponenten ermöglichen, und die Innovationsgeschwindigkeit bei Komponentenlieferanten erhöhen.
Google unterstützt die Android-Referenzboards DragonBoard 845c , HiKey 960 , Khadas VIM3 und Qualcomm Robotics Board RB5 . AOSP bietet Kernelquellen- und Board-Unterstützung für diese Boards, sodass Entwickler periphere Treiber einfach erstellen und debuggen, Kernel entwickeln und andere Aufgaben mit weniger OEM-Belastungen ausführen können.
DragonBoard 845c
Das DragonBoard 845c ist Teil der RB3-Plattform und auf 96boards.org erhältlich.
Abbildung 1. DragonBoard 845c
Userspace kompilieren
Verwenden Sie die folgenden Befehle, um Android auf das DragonBoard 845c herunterzuladen und zu erstellen.
Laden Sie den Android-Quellbaum herunter:
repo init -u https://android.googlesource.com/platform/manifest -b master
repo sync -j8
Laden Sie das aktuelle Anbieterpaket herunter:
./device/linaro/dragonboard/fetch-vendor-package.sh
Erstellen Sie AOSP:
. ./build/envsetup.sh
lunch db845c-userdebug
make -j24
Lokale Images installieren
Starten Sie db845c im Fastboot-Modus.
Führen Sie folgenden Befehl aus:
./device/linaro/dragonboard/installer/db845c/flash-all-aosp.sh
Bei Bedarf können Sie eine QDL-Board-Wiederherstellung durchführen, indem Sie nach dem Booten von db845c im USB-Flash-Modus das folgende Skript ausführen (siehe DragonBoard-Wiederherstellung ):
./device/linaro/dragonboard/installer/db845c/recovery.sh
Aufbau des Kernels
So erstellen Sie die DragonBoard db845c Android Generic Kernel Image (GKI)-Kernel-Artefakte:
Führen Sie die folgenden Befehle aus, um die Kernelquelle und vorgefertigte Android-Toolchains zu klonen und Skripts zu erstellen.
mkdir repo-common
cd repo-common
repo init -u https://android.googlesource.com/kernel/manifest -b common-android-mainline
repo sync -j8 -c
rm -rf out
tools/bazel run //common:db845c_dist -- --dist_dir=$DIST_DIR
Löschen Sie alle Objekte in
${AOSP_TOPDIR}device/linaro/dragonboard-kernel/android-mainline/
und kopieren Sie dann Build-Artefakte vonout/android-mainline/dist/
nach${AOSP_TOPDIR}/device/linaro/dragonboard-kernel/android-mainline/
dann Userspace neu aufbauen mit:make TARGET_KERNEL_USE=mainline -j24
und flashen Sie das Gerät mit den resultierenden boot.img und super.img (siehe Userspace kompilieren ).
Testen Sie den GKI-Kernel:
Sehen Sie sich den neuesten Kernel_aarch64-Build an .
Laden Sie in den Artefakten Image herunter.
Gzip das Bild
gzip Image
Kopieren Sie es nach
${AOSP_TOPDIR}/device/linaro/dragonboard-kernel/android-mainline/
.Erstellen Sie AOSP neu und flashen Sie das Gerät mit dem neuen boot.img (siehe Userspace kompilieren ).
HiKey 960-Boards
Das HiKey 960-Board ist bei Amazon und Lenovator erhältlich .
Abbildung 2. HiKey 960-Platine von Lenovator
Userspace kompilieren
Verwenden Sie die folgenden Befehle, um Android auf das HiKey 960-Board herunterzuladen und zu erstellen.
Laden Sie den Android-Quellbaum herunter
repo init -u https://android.googlesource.com/platform/manifest -b master
repo sync -j8
Laden Sie das aktuelle Anbieterpaket herunter
./device/linaro/hikey/fetch-vendor-package.sh
Bauen
. ./build/envsetup.sh
lunch hikey960-userdebug
make -j24
Lokale Images installieren
Wählen Sie den Fastboot-Modus, indem Sie Schalter 3 einschalten (Einzelheiten finden Sie im HiKey 960-Handbuch „Erste Schritte“ ).
Schalten Sie das Board ein.
Lokale Flash-Images:
./device/linaro/hikey/installer/hikey960/flash-all.sh
Schalter 3 ausschalten und die Platine aus- und wieder einschalten.
Aufbau des Kernels
So erstellen Sie die HiKey960-Android-GKI-Kernel-Artefakte:
Führen Sie die folgenden Befehle aus:
mkdir repo-common
cd repo-common
repo init -u https://android.googlesource.com/kernel/manifest -b common-android12-5.4
repo sync -j8 -c
rm -rf out
BUILD_CONFIG=common/build.config.hikey960 build/build.sh
Löschen Sie alle Objekte in
${AOSP_TOPDIR}device/linaro/hikey-kernel/hikey960/5.4/
und kopieren Sie dann Build-Artefakte aus dem Kernel-Build inout/android12-5.4/dist/
nach${AOSP_TOPDIR}/device/linaro/hikey-kernel/hikey960/5.4/
Verketten Sie den DTB:
cat device/linaro/hikey-kernel/hikey960/5.4/Image.gz device/linaro/hikey-kernel/hikey960/5.4/hi3660-hikey960.dtb > device/linaro/hikey-kernel/hikey960/5.4/Image.gz-dtb
Erstellen Sie einen Android-Benutzerbereich
lunch hikey960-userdebug
make TARGET_KERNEL_USE=5.4 HIKEY_USES_GKI=true -j24
und das Gerät mit dem neuen Kernel flashen (siehe Userspace kompilieren )
Testen Sie den GKI-Kernel (Generic Kernel Image).
Sehen Sie sich den neuesten Kernel_aarch64-Build an .
Laden Sie in den Artefakten die
Image
herunter und kopieren Sie sie nach${AOSP_TOPDIR}/device/linaro/hikey-kernel/hikey960/5.4/
.Komprimieren Sie das Bild und verketten Sie den DTB
gzip ${AOSP_TOPDIR}/device/linaro/hikey-kernel/hikey960/5.4/Image
cat ${AOSP_TOPDIR}/device/linaro/hikey-kernel/hikey960/5.4/Image.gz ${AOSP_TOPDIR}/device/linaro/hikey-kernel/hikey960/5.4/hi3660-hikey960.dtb > ${AOSP_TOPDIR}/device/linaro/hikey-kernel/hikey960/5.4/Image.gz-dtb
- Erstellen und flashen Sie das Gerät mit dem neuen Kernel (siehe Userspace kompilieren ).
Einstellen der Seriennummer
Um die zufällige Seriennummer festzulegen, führen Sie Folgendes aus:
fastboot getvar nve:SN@16\_DIGIT\_NUMBER
Bootloader exportiert die generierte Seriennummer mit androidboot.serialno=
in den Kernel. Dieser Parameter wird in Android 11 und niedriger über die Kernel-Befehlszeile und in Android 12 mit Kernel-Version 5.10 oder höher über bootconfig übergeben.
Bildschirmauflösung einstellen
Bearbeiten Sie den device/linaro/hikey/hikey960/BoardConfig.mk
Parameter BOARD_KERNEL_CMDLINE
und konfigurieren Sie die video
. Beispielsweise lautet die Einstellung für einen 24-Zoll-Monitor video=HDMI-A-1:1280x800@60
.
VIM3- und VIM3L-Boards
Die Vim3- und VIM3L-Boards von Khadas sind auf der Khadas-Website erhältlich
Abbildung 3. VIM3-Board von Khadas
Userspace kompilieren
Verwenden Sie die folgenden Befehle, um Android auf das VIM3-Board herunterzuladen und zu erstellen.
Laden Sie den Android-Quellbaum herunter:
repo init -u https://android.googlesource.com/platform/manifest -b master
repo sync -j8
Bauen:
. ./build/envsetup.sh
lunch yukawa-userdebug
make TARGET_USE_TABLET_LAUNCHER=true TARGET_VIM3=true -j24
Standardmäßig wird Android mit dem 5.10-Kernel erstellt. So verwenden Sie Kernel 5.4 Prebuilds:
make TARGET_USE_TABLET_LAUNCHER=true TARGET_VIM3=true TARGET_KERNEL_USE=5.4 -j24
Verwenden Sie für VIM3L:
make TARGET_USE_TABLET_LAUNCHER=true TARGET_VIM3L=true -j24
Initialimages installieren
Versetzen Sie das Board in den USB-Upgrade-Modus, indem Sie die Anweisungen zum Flashen von VIM3 befolgen .
Anfangsbilder in RAM flashen:
cd path/to/aosp/device/amlogic/yukawa/bootloader/
./tools/update write u-boot_kvim3_noab.bin 0xfffa0000 0x10000
./tools/update run 0xfffa0000
./tools/update bl2_boot u-boot_kvim3_noab.bin
- Wenn Sie auf Berechtigungsprobleme stoßen, lesen Sie den Abschnitt zu den udev-Regeln , um die entsprechenden USB-Regeln hinzuzufügen.
- Wenn
tools/update
nicht funktioniert, verwenden Sie stattdessen das Tool pyamlboot, um das Board zu flashen.
Nachdem U-Boot gestartet und fastboot ausgeführt hat, führen Sie die folgenden Befehle aus:
fastboot oem format
fastboot flash bootloader u-boot_kvim3_noab.bin
fastboot erase bootenv
fastboot reboot bootloader
Ziehen Sie das Netzkabel ab und stecken Sie es wieder ein.
Das Board sollte in das gerade geflashte U-Boot booten und in den Fastboot-Modus wechseln.
Blinkende Bilder
Wechseln Sie in den Fastboot-Modus (Anweisungen finden Sie im vorherigen Abschnitt).
Alle Android-Images flashen:
cd out/target/product/yukawa
fastboot flash boot boot.img
fastboot flash super super.img
fastboot flash cache cache.img
fastboot flash userdata userdata.img
fastboot flash recovery recovery.img
fastboot flash dtbo dtbo-unsigned.img
fastboot reboot
Aufbau des Kernels
So erstellen Sie die Kernel-Artefakte für VIM3 oder VIM3L:
Laden Sie zusätzliche Toolchains herunter:
git clone https://android.googlesource.com/platform/prebuilts/gas/linux-x86 ${AOSP_TOPDIR}/prebuilts/gas/linux-x86
Klonen Sie die Kernelquelle:
# for 4.19 git clone https://android.googlesource.com/kernel/hikey-linaro -b android-amlogic-bmeson-4.19
# for 5.4 git clone https://android.googlesource.com/kernel/hikey-linaro -b android-amlogic-bmeson-5.4
# for 5.10 git clone https://android.googlesource.com/kernel/hikey-linaro -b android-amlogic-bmeson-5.10
# for 5.15 git clone https://android.googlesource.com/kernel/hikey-linaro -b android-amlogic-bmeson-5.15
Build-Variablen exportieren:
export PATH=${AOSP_TOPDIR}/prebuilts/clang/host/linux-x86/clang-r445002/bin:$PATH
export PATH=${AOSP_TOPDIR}/prebuilts/gas/linux-x86:$PATH
export PATH=${AOSP_TOPDIR}/prebuilts/misc/linux-x86/lz4:$PATH
export ARCH=arm64
export CROSS_COMPILE=aarch64-linux-gnu-
export LLVM=1
Erstellen Sie den Kernel:
cd hikey-linaro
make meson_defconfig
make DTC_FLAGS="-@" -j24
Komprimieren Sie den Kernel und kopieren Sie build_artifacts nach
${AOSP_TOPDIR}/device/amlogic/yukawa-kernel
:lz4c -f arch/arm64/boot/Image arch/arm64/boot/Image.lz4
KERN_VER=4.19 # for 4.19 kernel
KERN_VER=5.4 # for 5.4 kernel
KERN_VER=5.10 # for 5.10 kernel
KERN_VER=5.15 # for 5.15 kernel
for f in arch/arm64/boot/dts/amlogic/*{g12b-a311d,sm1}-khadas-vim3*.dtb; do cp -v -p $f ${AOSP_TOPDIR}/device/amlogic/yukawa-kernel/${KERN_VER}/$(basename $f) done
cp -v -p arch/arm64/boot/Image.lz4 ${AOSP_TOPDIR}/device/amlogic/yukawa-kernel/${KERN_VER}/Image.lz4
Erstellen Sie den Android-Benutzerbereich neu (siehe Kompilieren des Benutzerbereichs ) und flashen Sie den neuen Kernel (siehe Flashen von Bildern ).
Qualcomm Robotikplatine RB5
Das Robotics Board RB5 ist auf 96boards.org erhältlich.
Abbildung 4. Robotikplatine RB5
Userspace kompilieren
Verwenden Sie die folgenden Befehle zum Herunterladen und Erstellen von Android auf dem RB5.
Laden Sie den Android-Quellbaum herunter:
repo init -u https://android.googlesource.com/platform/manifest -b master
repo sync -j8
Laden Sie das aktuelle Anbieterpaket herunter:
./device/linaro/dragonboard/fetch-vendor-package.sh
Erstellen Sie AOSP:
. ./build/envsetup.sh
lunch rb5-userdebug
make -j24
Lokale Images installieren
Starten Sie RB5 im Fastboot-Modus.
Führen Sie folgenden Befehl aus:
./device/linaro/dragonboard/installer/rb5/flash-all-aosp.sh
Bei Bedarf können Sie eine QDL-Board-Wiederherstellung durchführen, indem Sie das folgende Skript ausführen, nachdem Sie RB5 im USB-Flash-Modus gestartet haben (siehe RB5-Wiederherstellung ):
./device/linaro/dragonboard/installer/rb5/recovery.sh
Aufbau des Kernels
So erstellen Sie die RB5 Android Generic Kernel Image (GKI)-Kernel-Artefakte:
Führen Sie die folgenden Befehle aus, um die Kernelquelle und vorgefertigte Android-Toolchains zu klonen und Skripts zu erstellen:
mkdir repo-common
cd repo-common
repo init -u https://android.googlesource.com/kernel/manifest -b common-android-mainline
repo sync -j8 -c
rm -rf out
BUILD_CONFIG=common/build.config.db845c ./build/build.sh
Löschen Sie alle Objekte in
${AOSP_TOPDIR}device/linaro/dragonboard-kernel/android-mainline/
und kopieren Sie dann Build-Artefakte vonout/android-mainline/dist/
nach${AOSP_TOPDIR}/device/linaro/dragonboard-kernel/android-mainline/
, und erstellen Sie dann den Benutzerbereich neu mit:make TARGET_KERNEL_USE=mainline -j24
und flashen Sie das Gerät mit den resultierenden boot.img und super.img (siehe Userspace kompilieren ).
Testen Sie den GKI-Kernel:
- Sehen Sie sich den neuesten Kernel_aarch64-Build an .
- Laden Sie in den Artefakten Image herunter.
Gzip das Bild
gzip Image
Kopieren Sie es nach
${AOSP_TOPDIR}/device/linaro/dragonboard-kernel/android-mainline/
.Erstellen Sie AOSP neu und flashen Sie das Gerät mit dem neuen boot.img (siehe Userspace kompilieren ).