Puoi creare build per dispositivi Nexus e Pixel utilizzando le build di Android Open Source Project (AOSP) e i relativi file binari specifici dell'hardware. Per le build Android disponibili e i dispositivi di destinazione, vedi Tag e build del codice sorgente .
Puoi anche creare build per le schede di riferimento Android DragonBoard 845c , HiKey 960 , Khadas VIM3 e Qualcomm Robotics Board RB5 , progettate per aiutare i fornitori di componenti non mobili a sviluppare e portare i driver alle versioni Android. L'utilizzo di una scheda di riferimento può facilitare gli sforzi di aggiornamento, ridurre il time-to-market per i nuovi dispositivi Android, ridurre i costi dei dispositivi consentendo agli ODM/OEM di scegliere tra una gamma più ampia di componenti compatibili e aumentare la velocità dell'innovazione tra i fornitori di componenti.
Google supporta le schede di riferimento Android DragonBoard 845c , HiKey 960 , Khadas VIM3 e Qualcomm Robotics Board RB5 . AOSP fornisce il supporto del kernel e della scheda per queste schede, in modo che gli sviluppatori possano facilmente creare ed eseguire il debug dei driver periferici, eseguire lo sviluppo del kernel ed eseguire altre attività con meno ingombri OEM.
DragonBoard 845c
DragonBoard 845c fa parte della piattaforma RB3 ed è disponibile su 96boards.org .
Figura 1. DragonBoard 845c
Compilazione dello spazio utente
Usa i seguenti comandi per scaricare e creare Android su DragonBoard 845c.
Scarica l'albero dei sorgenti di Android:
repo init -u https://android.googlesource.com/platform/manifest -b master
repo sync -j8
Scarica il pacchetto del fornitore corrente:
./device/linaro/dragonboard/fetch-vendor-package.sh
Crea AOSP:
. ./build/envsetup.sh
lunch db845c-userdebug
make -j24
Installazione di immagini locali
Avvia db845c in modalità fastboot.
Esegui il seguente comando:
./device/linaro/dragonboard/installer/db845c/flash-all-aosp.sh
Se necessario, è possibile eseguire il ripristino della scheda QDL eseguendo il seguente script dopo l'avvio di db845c in modalità flashing USB (vedere DragonBoard Recovery ):
./device/linaro/dragonboard/installer/db845c/recovery.sh
Costruire il kernel
Per creare gli artefatti del kernel DragonBoard db845c Android Generic Kernel Image (GKI):
Esegui i seguenti comandi per clonare il sorgente del kernel e le toolchain Android predefinite e creare script.
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
Elimina tutti gli oggetti in
${AOSP_TOPDIR}device/linaro/dragonboard-kernel/android-mainline/
quindi copia gli artefatti di build daout/android-mainline/dist/
in${AOSP_TOPDIR}/device/linaro/dragonboard-kernel/android-mainline/
quindi ricostruisci lo spazio utente con:make TARGET_KERNEL_USE=mainline -j24
e flashare il dispositivo con boot.img e super.img risultanti (vedere Compilazione dello spazio utente ).
Prova il kernel GKI:
Visualizza l' ultima build kernel_aarch64 .
In artefatti , scarica Image.
Gzip l'immagine
gzip Image
Copialo in
${AOSP_TOPDIR}/device/linaro/dragonboard-kernel/android-mainline/
.Ricostruisci AOSP e flasha il dispositivo con il nuovo boot.img (vedi Compilazione dello spazio utente ).
Schede HiKey 960
La scheda HiKey 960 è disponibile su Amazon e Lenovator .
Figura 2. Scheda HiKey 960 di Lenovator
Compilazione dello spazio utente
Utilizzare i seguenti comandi per scaricare e creare Android sulla scheda HiKey 960.
Scarica l'albero dei sorgenti di Android
repo init -u https://android.googlesource.com/platform/manifest -b master
repo sync -j8
Scarica il pacchetto del fornitore corrente
./device/linaro/hikey/fetch-vendor-package.sh
Costruire
. ./build/envsetup.sh
lunch hikey960-userdebug
make -j24
Installazione di immagini locali
Selezionare la modalità fastboot portando l'interruttore 3 su ON (per i dettagli, fare riferimento alla guida introduttiva di HiKey 960 ).
Alimenta la scheda.
Flash immagini locali:
./device/linaro/hikey/installer/hikey960/flash-all.sh
Spegnere l'interruttore 3 e spegnere e riaccendere la scheda.
Costruire il kernel
Per creare gli artefatti del kernel HiKey960 Android GKI:
Esegui i seguenti comandi:
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
Elimina tutti gli oggetti in
${AOSP_TOPDIR}device/linaro/hikey-kernel/hikey960/5.4/
quindi copia gli artefatti di build dal kernel build inout/android12-5.4/dist/
in${AOSP_TOPDIR}/device/linaro/hikey-kernel/hikey960/5.4/
Concatena il 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
Costruisci lo spazio utente Android
lunch hikey960-userdebug
make TARGET_KERNEL_USE=5.4 HIKEY_USES_GKI=true -j24
e flashare il dispositivo con il nuovo kernel (vedi Compilazione userspace )
Testare il kernel Generic Kernel Image (GKI).
Visualizza l' ultima build kernel_aarch64 .
In artefatti , scarica il file
Image
e copialo in${AOSP_TOPDIR}/device/linaro/hikey-kernel/hikey960/5.4/
.Comprimere l'immagine e concatenare il 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
- Compilare e aggiornare il dispositivo con il nuovo kernel (vedere Compilazione dello spazio utente ).
Impostazione del numero di serie
Per impostare il numero di serie casuale, eseguire:
fastboot getvar nve:SN@16\_DIGIT\_NUMBER
Bootloader esporta il numero di serie generato nel kernel utilizzando androidboot.serialno=
. Questo parametro viene passato tramite la riga di comando del kernel in Android 11 e versioni precedenti e tramite bootconfig in Android 12 con la versione del kernel 5.10 o successiva.
Impostazione della risoluzione del monitor
Modificare il parametro BOARD_KERNEL_CMDLINE del device/linaro/hikey/hikey960/BoardConfig.mk
BOARD_KERNEL_CMDLINE
configurare le impostazioni video
. Ad esempio, l'impostazione per un monitor da 24 pollici è video=HDMI-A-1:1280x800@60
.
Schede VIM3 e VIM3L
Le schede Vim3 e VIM3L di Khadas sono disponibili sul sito web di Khadas
Figura 3. Scheda VIM3 di Khadas
Compilazione dello spazio utente
Usa i seguenti comandi per scaricare e creare Android sulla scheda VIM3.
Scarica l'albero dei sorgenti di Android:
repo init -u https://android.googlesource.com/platform/manifest -b master
repo sync -j8
Costruire:
. ./build/envsetup.sh
lunch yukawa-userdebug
make TARGET_USE_TABLET_LAUNCHER=true TARGET_VIM3=true -j24
Per impostazione predefinita, Android è costruito con il kernel 5.10. Per utilizzare i precompilati del kernel 5.4:
make TARGET_USE_TABLET_LAUNCHER=true TARGET_VIM3=true TARGET_KERNEL_USE=5.4 -j24
Per VIM3L, usa:
make TARGET_USE_TABLET_LAUNCHER=true TARGET_VIM3L=true -j24
Installazione delle immagini iniziali
Mettere la scheda in modalità di aggiornamento USB seguendo le istruzioni lampeggianti di VIM3 .
Flash immagini iniziali su RAM:
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
- Se riscontri problemi di autorizzazione, fai riferimento alla sezione delle regole udev per aggiungere le regole USB appropriate.
- Se
tools/update
non funziona, usa invece lo strumento pyamlboot per eseguire il flashing della scheda.
Dopo l'avvio di U-Boot e l'esecuzione di fastboot, esegui i seguenti comandi:
fastboot oem format
fastboot flash bootloader u-boot_kvim3_noab.bin
fastboot erase bootenv
fastboot reboot bootloader
Scollegare e collegare il cavo di alimentazione.
La scheda dovrebbe avviarsi nell'U-boot appena lampeggiato ed entrare in modalità fastboot.
Immagini lampeggianti
Accedere alla modalità fastboot (vedere la sezione precedente per le istruzioni).
Flash tutte le immagini Android:
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
Costruire il kernel
Per creare gli artefatti del kernel per VIM3 o VIM3L:
Scarica ulteriori toolchain:
git clone https://android.googlesource.com/platform/prebuilts/gas/linux-x86 ${AOSP_TOPDIR}/prebuilts/gas/linux-x86
Clona il sorgente del kernel:
# 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
Esporta variabili di build:
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
Costruisci il kernel:
cd hikey-linaro
make meson_defconfig
make DTC_FLAGS="-@" -j24
Comprimi il kernel e copia build_artifacts in
${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
Ricompila lo spazio utente Android (vedi Compiling userspace ) e installa il nuovo kernel (vedi Immagini lampeggianti ).
Scheda robotica Qualcomm RB5
La Robotics Board RB5 è disponibile su 96boards.org .
Figura 4. Scheda robotica RB5
Compilazione dello spazio utente
Usa i seguenti comandi per scaricare e creare Android su RB5.
Scarica l'albero dei sorgenti di Android:
repo init -u https://android.googlesource.com/platform/manifest -b master
repo sync -j8
Scarica il pacchetto del fornitore corrente:
./device/linaro/dragonboard/fetch-vendor-package.sh
Crea AOSP:
. ./build/envsetup.sh
lunch rb5-userdebug
make -j24
Installazione di immagini locali
Avvia RB5 in modalità fastboot.
Esegui il seguente comando:
./device/linaro/dragonboard/installer/rb5/flash-all-aosp.sh
Se necessario, è possibile eseguire il ripristino della scheda QDL eseguendo il seguente script dopo aver avviato RB5 in modalità flashing USB (vedere Ripristino RB5 ):
./device/linaro/dragonboard/installer/rb5/recovery.sh
Costruire il kernel
Per creare gli artefatti del kernel RB5 Android Generic Kernel Image (GKI):
Esegui i seguenti comandi per clonare il sorgente del kernel e le toolchain Android predefinite e creare script:
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
Elimina tutti gli oggetti in
${AOSP_TOPDIR}device/linaro/dragonboard-kernel/android-mainline/
, quindi copia gli artefatti di build daout/android-mainline/dist/
in${AOSP_TOPDIR}/device/linaro/dragonboard-kernel/android-mainline/
, quindi ricostruisci lo spazio utente con:make TARGET_KERNEL_USE=mainline -j24
e flashare il dispositivo con boot.img e super.img risultanti (vedere Compilazione dello spazio utente ).
Prova il kernel GKI:
- Visualizza l' ultima build kernel_aarch64 .
- In artefatti , scarica Image.
Gzip l'immagine
gzip Image
Copialo in
${AOSP_TOPDIR}/device/linaro/dragonboard-kernel/android-mainline/
.Ricostruisci AOSP e flasha il dispositivo con il nuovo boot.img (vedi Compilazione dello spazio utente ).