En esta página, se muestra cómo compilar Pixel 8, Pixel 8 Pro y Pixel 8a con compatibilidad de 16 KB.
Sincroniza y compila AOSP
Para sincronizar y compilar AOSP, haz lo siguiente:
Consulta el repositorio de AOSP:
$ mkdir ~/aosp_main && cd ~/aosp_main $ repo init -u https://android.googlesource.com/platform/manifest -b main $ repo sync -c -j$(nproc)
Obtén la secuencia de comandos
envsetup.sh
para configurar tu entorno de compilación:$ source build/envsetup.sh
Elige uno de los tres objetivos para dispositivos Pixel 8:
aosp_husky_pgagnostic-trunk_staging-userdebug
para Pixel 8 Proaosp_shiba_pgagnostic-trunk_staging-userdebug
para Pixel 8aosp_akita_16k-trunk_staging-userdebug
para Pixel 8a
$ lunch target
Compila el código:
$ m -j$(nproc)
Estas imágenes se generan después de que finaliza la compilación:
$ ls out/target/product/<husky|shiba|akita>/*.img out/target/product/husky/boot.img out/target/product/husky/vbmeta.img out/target/product/husky/dtb.img out/target/product/husky/vbmeta_system.img out/target/product/husky/dtbo.img out/target/product/husky/vendor-bootconfig.img out/target/product/husky/init_boot.img out/target/product/husky/vendor_boot-debug.img out/target/product/husky/product.img out/target/product/husky/vendor_boot.img out/target/product/husky/pvmfw.img out/target/product/husky/vendor_boot-test-harness.img out/target/product/husky/ramdisk.img out/target/product/husky/vendor.img out/target/product/husky/super_empty.img out/target/product/husky/vendor_kernel_boot.img out/target/product/husky/system_dlkm.img out/target/product/husky/vendor_kernel_ramdisk.img out/target/product/husky/system_ext.img out/target/product/husky/vendor_ramdisk-debug.img out/target/product/husky/system.img out/target/product/husky/vendor_ramdisk.img out/target/product/husky/system_other.img out/target/product/husky/vendor_ramdisk-test-harness.img out/target/product/husky/userdata.img
Sincroniza y compila el kernel
Selecciona uno de estos kernels 6.1:
android-gs-shusky-6.1-android15-qpr2-beta
para dispositivos Pixel 8 y Pixel 8 Proandroid-gs-akita-6.1-android15-qpr2-beta
para dispositivos Pixel 8a
Sincroniza el kernel:
# Sync the kernel. $ mkdir ~/android-gs-shusky-6.1 $ cd ~/android-gs-shusky-6.1 $ repo init -u https://android.googlesource.com/kernel/manifest -b kernel $ repo sync -c -j6
Compila el kernel:
Para compilar el kernel del Pixel 8 o Pixel 8 Pro, usa lo siguiente:
$ ./tools/bazel run \ --config=shusky \ //private/devices/google/shusky:zuma_shusky_dist \ --config=16k [dist] INFO: Copying to ~/android14-gs-pixel-6.1/out/shusky/dist
Para compilar el kernel del Pixel 8a, usa lo siguiente:
$ ./tools/bazel run \ --config=akita \ //private/devices/google/akita:zuma_akita_dist \ --confige=16k [dist] INFO: Copying to ~/android14-gs-pixel-6.1/out/akita/dist
Descarga imágenes del proveedor
El repositorio de AOSP no contiene las imágenes del proveedor, que son necesarias para iniciar el dispositivo. Puedes descargar las imágenes de ci.android.com
:
Selecciona una compilación destacada en verde que corresponda a tu dispositivo:
En el Pixel 8 Pro, haz clic en
aosp_husky_pgagnostic
.En el Pixel 8, haz clic en
aosp_shiba_pgagnostic
.En el Pixel 8a, haz clic en
aosp_akita_16k
.
La pestaña Artefactos aparece en la parte inferior de la página.
Haz clic en Artefactos. Se muestran los artefactos de tu dispositivo.
Para descargar el artefacto, haz clic en el archivo que termina en
.sh
.Desde el directorio en el que se descargó el archivo, ejecuta el siguiente comando para extraer el contenido:
$ cd ~/Downloads $ chmod +x aosp_<selected target>-flashable-<build id>-with-license.sh ./aosp_<selected target>-flashable-<build id>-with-license.sh # After reading the license, type Type "I ACCEPT" if you agree to the terms of the license: I ACCEPT # The extracted file will be in the current directory $ ls aosp_<selected_target>-flashable-with-license.zip # unzip that file in a directory named aosp_vendor $ unzip aosp_<selected_target>-flashable-with-license.zip -d aosp_vendor # The content of the directory will look like: $ ls aosp_vendor android-info.txt init_boot.img super_empty.img system_other.img vbmeta_vendor.img vendor_kernel_boot.img boot.img product.img system_dlkm.img userdata.img vendor_boot.img bootloader.img pvmfw.img system_ext.img vbmeta.img vendor_dlkm.img dtbo.img radio.img system.img vbmeta_system.img vendor.img
Copia las imágenes en un directorio temporal.
Copia las imágenes de AOSP, el kernel y el proveedor en un directorio en este orden:
$ mkdir ~/images && cd ~/images
# Copy AOSP generated images
$ cp ~/aosp_main/out/target/product/<akita|husky|shiba>/*.img ./images
# Copy kernel generated images
$ cp ~/android-gs-shusky-6.1/out/<akita|shusky>/dist ./images
# Copy the vendor images
$ cp ~/Downloads/aosp_vendor/vendor.img ./images
$ cp ~/Downloads/aosp_vendor/vbmeta_vendor.img ./images
Imágenes en Flash
Para actualizar las imágenes, sigue estos pasos:
Instala las imágenes de la partición dinámica:
$ IMGS_DIR=~/images $ adb reboot fastboot $ fastboot flash product $IMGS_DIR/product.img $ fastboot flash system $IMGS_DIR/system.img $ fastboot flash system_ext $IMGS_DIR/system_ext.img $ fastboot flash system_dlkm $IMGS_DIR/system_dlkm.img $ fastboot flash vendor $IMGS_DIR/vendor.img $ fastboot flash vendor_dlkm $IMGS_DIR/vendor_dlkm.img
Escribe las imágenes del kernel en la memoria flash:
$ fastboot reboot bootloader # Wipe out /data partition $ fastboot -w # Disable pkvm $ fastboot oem pkvm disable $ fastboot flash boot $IMGS_DIR/boot.img $ fastboot flash init_boot $IMGS_DIR/init_boot.img $ fastboot flash dtbo $IMGS_DIR/dtbo.img $ fastboot flash vendor_kernel_boot $IMGS_DIR/vendor_kernel_boot.img $ fastboot flash pvmfw $IMGS_DIR/pvmfw.img $ fastboot flash vendor_boot $IMGS_DIR/vendor_boot.img $ fastboot flash --disable-verity --disable-verification vbmeta $IMGS_DIR/vbmeta.img $ fastboot flash --disable-verity --disable-verification vbmeta_system $IMGS_DIR/vbmeta_system.img $ fastboot flash --disable-verity --disable-verification vbmeta_vendor $IMGS_DIR/vbmeta_vendor.img
Presiona el botón de encendido para iniciar el dispositivo.
Verifica el tamaño de la página con lo siguiente:
$ adb shell getconf PAGE_SIZE 16384