Puede crear compilaciones para dispositivos Nexus y Pixel utilizando las compilaciones del Proyecto de código abierto de Android (AOSP) y los archivos binarios específicos de hardware relevantes. Para compilaciones de Android disponibles y dispositivos de destino, consulte Etiquetas de código fuente y compilaciones .
También puede crear compilaciones para las placas de referencia de Android DragonBoard 845c , HiKey 960 , Khadas VIM3 y Qualcomm Robotics Board RB5 , que están diseñadas para ayudar a los proveedores de componentes no móviles a desarrollar y migrar controladores a versiones de Android. El uso de una placa de referencia puede facilitar los esfuerzos de actualización, reducir el tiempo de comercialización de nuevos dispositivos Android, reducir los costos de los dispositivos al permitir que los ODM/OEM elijan entre una gama más amplia de componentes compatibles y aumentar la velocidad de la innovación entre los proveedores de componentes.
Google es compatible con las placas de referencia de Android DragonBoard 845c , HiKey 960 , Khadas VIM3 y Qualcomm Robotics Board RB5 . AOSP proporciona compatibilidad con la fuente y la placa del kernel para estas placas, de modo que los desarrolladores puedan crear y depurar fácilmente controladores periféricos, desarrollar el kernel y realizar otras tareas con menos obstáculos de OEM.
DragonBoard 845c
El DragonBoard 845c es parte de la plataforma RB3 y está disponible en 96boards.org .
Figura 1. DragonBoard 845c
Compilando espacio de usuario
Utilice los siguientes comandos para descargar y compilar Android en DragonBoard 845c.
Descarga el árbol de fuentes de Android:
repo init -u https://android.googlesource.com/platform/manifest -b master
repo sync -j8
Descargue el paquete de proveedor actual:
./device/linaro/dragonboard/fetch-vendor-package.sh
Construir AOSP:
. ./build/envsetup.sh
lunch db845c-userdebug
make -j24
Instalación de imágenes locales
Inicie db845c en modo fastboot.
Ejecute el siguiente comando:
./device/linaro/dragonboard/installer/db845c/flash-all-aosp.sh
Si es necesario, puede realizar la recuperación de la placa QDL ejecutando el siguiente script después de iniciar db845c en modo flash USB (consulte Recuperación de DragonBoard ):
./device/linaro/dragonboard/installer/db845c/recovery.sh
Construyendo el núcleo
Para compilar los artefactos del kernel DragonBoard db845c Android Generic Kernel Image (GKI):
Ejecute los siguientes comandos para clonar la fuente del kernel y las cadenas de herramientas de Android precompiladas y los scripts de compilación.
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
Elimine todos los objetos en
${AOSP_TOPDIR}device/linaro/dragonboard-kernel/android-mainline/
luego copie los artefactos de compilación desdeout/android-mainline/dist/
a${AOSP_TOPDIR}/device/linaro/dragonboard-kernel/android-mainline/
luego reconstruir el espacio de usuario con:make TARGET_KERNEL_USE=mainline -j24
y actualice el dispositivo con boot.img y super.img resultantes (consulte Compilación del espacio de usuario).
Pruebe el núcleo GKI:
Vea la última versión de kernel_aarch64 .
En artefactos , descargue Imagen.
Gzip la imagen
gzip Image
Cópielo en
${AOSP_TOPDIR}/device/linaro/dragonboard-kernel/android-mainline/
.Reconstruya AOSP y actualice el dispositivo con el nuevo boot.img (consulte Compilación del espacio de usuario).
Placas HiKey 960
La placa HiKey 960 está disponible en Amazon y Lenovator .
Figura 2. Placa HiKey 960 de Lenovator
Compilando espacio de usuario
Utilice los siguientes comandos para descargar y compilar Android en la placa HiKey 960.
Descargar el árbol de fuentes de Android
repo init -u https://android.googlesource.com/platform/manifest -b master
repo sync -j8
Descargar el paquete de proveedor actual
./device/linaro/hikey/fetch-vendor-package.sh
Construir
. ./build/envsetup.sh
lunch hikey960-userdebug
make -j24
Instalación de imágenes locales
Seleccione el modo fastboot encendiendo el interruptor 3 (para obtener más información, consulte la guía de introducción de HiKey 960 ).
Alimenta la placa.
Flashear imágenes locales:
./device/linaro/hikey/installer/hikey960/flash-all.sh
Apague el interruptor 3 y apague y encienda la placa.
Construyendo el núcleo
Para construir los artefactos del núcleo GKI de Android HiKey960:
Ejecute los siguientes comandos:
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
Elimine todos los objetos en
${AOSP_TOPDIR}device/linaro/hikey-kernel/hikey960/5.4/
luego copie los artefactos de compilación desde el kernel build inout/android12-5.4/dist/
a${AOSP_TOPDIR}/device/linaro/hikey-kernel/hikey960/5.4/
Concatenar el 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
Crear espacio de usuario de Android
lunch hikey960-userdebug
make TARGET_KERNEL_USE=5.4 HIKEY_USES_GKI=true -j24
y actualice el dispositivo con el nuevo kernel (consulte Compilación del espacio de usuario)
Probar el kernel de la imagen genérica del kernel (GKI)
Vea la última versión de kernel_aarch64 .
En artefactos , descargue el
Image
de imagen y cópielo en${AOSP_TOPDIR}/device/linaro/hikey-kernel/hikey960/5.4/
.Comprimir la imagen y concatenar el 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
- Compile y actualice el dispositivo con el nuevo kernel (consulte Compilación del espacio de usuario).
Configuración del número de serie
Para establecer el número de serie aleatorio, ejecute:
fastboot getvar nve:SN@16\_DIGIT\_NUMBER
Bootloader exporta el número de serie generado al kernel mediante androidboot.serialno=
. Este parámetro se pasa a través de la línea de comandos del kernel en Android 11 y versiones anteriores, y a través de bootconfig en Android 12 con la versión de kernel 5.10 o superior.
Configuración de la resolución del monitor
Edite el parámetro BOARD_KERNEL_CMDLINE de device/linaro/hikey/hikey960/BoardConfig.mk
BOARD_KERNEL_CMDLINE
configure los ajustes de video
. Por ejemplo, la configuración para un monitor de 24 pulgadas es video=HDMI-A-1:1280x800@60
.
Tarjetas VIM3 y VIM3L
Las placas Vim3 y VIM3L de Khadas están disponibles en el sitio web de Khadas
Figura 3. Tablero VIM3 de Khadas
Compilando espacio de usuario
Utilice los siguientes comandos para descargar y compilar Android en la placa VIM3.
Descarga el árbol de fuentes de Android:
repo init -u https://android.googlesource.com/platform/manifest -b master
repo sync -j8
Construir:
. ./build/envsetup.sh
lunch yukawa-userdebug
make TARGET_USE_TABLET_LAUNCHER=true TARGET_VIM3=true -j24
De forma predeterminada, Android está construido con el kernel 5.10. Para usar kernel 5.4 precompilados:
make TARGET_USE_TABLET_LAUNCHER=true TARGET_VIM3=true TARGET_KERNEL_USE=5.4 -j24
Para VIM3L, utilice:
make TARGET_USE_TABLET_LAUNCHER=true TARGET_VIM3L=true -j24
Instalación de imágenes iniciales
Ponga la placa en modo de actualización USB siguiendo las instrucciones de actualización de VIM3 .
Flashear imágenes iniciales a 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
- Si encuentra problemas de permisos, consulte la sección de reglas de udev para agregar las reglas USB apropiadas.
- Si
tools/update
no funcionan, utilice la herramienta pyamlboot para actualizar la placa.
Después de que U-Boot arranque y ejecute fastboot, ejecute los siguientes comandos:
fastboot oem format
fastboot flash bootloader u-boot_kvim3_noab.bin
fastboot erase bootenv
fastboot reboot bootloader
Desconecte y enchufe el cable de alimentación.
La placa debe iniciarse en el U-boot recién flasheado y entrar en el modo fastboot.
Imágenes intermitentes
Ingrese al modo fastboot (consulte la sección anterior para obtener instrucciones).
Flashea todas las imágenes de 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
Construyendo el núcleo
Para construir los artefactos del kernel para VIM3 o VIM3L:
Descargar cadenas de herramientas adicionales:
git clone https://android.googlesource.com/platform/prebuilts/gas/linux-x86 ${AOSP_TOPDIR}/prebuilts/gas/linux-x86
Clonar la fuente del núcleo:
# 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
Exportar variables de compilación:
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
Construya el núcleo:
cd hikey-linaro
make meson_defconfig
make DTC_FLAGS="-@" -j24
Comprima el kernel y copie build_artifacts en
${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
Reconstruya el espacio de usuario de Android (consulte Compilación del espacio de usuario) y actualice el nuevo kernel (consulte Imágenes intermitentes ).
Placa robótica Qualcomm RB5
El Robotics Board RB5 está disponible en 96boards.org .
Figura 4. Placa de robótica RB5
Compilando espacio de usuario
Utilice los siguientes comandos para descargar y compilar Android en el RB5.
Descarga el árbol de fuentes de Android:
repo init -u https://android.googlesource.com/platform/manifest -b master
repo sync -j8
Descargue el paquete de proveedor actual:
./device/linaro/dragonboard/fetch-vendor-package.sh
Construir AOSP:
. ./build/envsetup.sh
lunch rb5-userdebug
make -j24
Instalación de imágenes locales
Inicie RB5 en modo fastboot.
Ejecute el siguiente comando:
./device/linaro/dragonboard/installer/rb5/flash-all-aosp.sh
Si es necesario, puede realizar la recuperación de la placa QDL ejecutando el siguiente script después de iniciar RB5 en modo flash USB (consulte Recuperación de RB5 ):
./device/linaro/dragonboard/installer/rb5/recovery.sh
Construyendo el núcleo
Para compilar los artefactos del kernel de la imagen genérica del kernel (GKI) de Android RB5:
Ejecute los siguientes comandos para clonar la fuente del kernel y las cadenas de herramientas de Android precompiladas y los scripts de compilación:
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
Elimine todos los objetos en
${AOSP_TOPDIR}device/linaro/dragonboard-kernel/android-mainline/
, luego copie los artefactos de compilación desdeout/android-mainline/dist/
a${AOSP_TOPDIR}/device/linaro/dragonboard-kernel/android-mainline/
, y luego reconstruir el espacio de usuario con:make TARGET_KERNEL_USE=mainline -j24
y actualice el dispositivo con boot.img y super.img resultantes (consulte Compilación del espacio de usuario).
Pruebe el núcleo GKI:
- Vea la última versión de kernel_aarch64 .
- En artefactos , descargue Imagen.
Gzip la imagen
gzip Image
Cópielo en
${AOSP_TOPDIR}/device/linaro/dragonboard-kernel/android-mainline/
.Reconstruya AOSP y actualice el dispositivo con el nuevo boot.img (consulte Compilación del espacio de usuario).