Compila y escribe en memoria flash dispositivos Pixel 8 con compatibilidad de 16 KB

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:

  1. 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)
    
  2. Obtén la secuencia de comandos envsetup.sh para configurar tu entorno de compilación:

     $ source build/envsetup.sh
    
  3. Elige uno de los tres objetivos para dispositivos Pixel 8:

    • aosp_husky_pgagnostic-trunk_staging-userdebug para Pixel 8 Pro
    • aosp_shiba_pgagnostic-trunk_staging-userdebug para Pixel 8
    • aosp_akita_16k-trunk_staging-userdebug para Pixel 8a
     $ lunch target
    
  4. 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

  1. Selecciona uno de estos kernels 6.1:

    • android-gs-shusky-6.1-android15-qpr2-beta para dispositivos Pixel 8 y Pixel 8 Pro
    • android-gs-akita-6.1-android15-qpr2-beta para dispositivos Pixel 8a
  2. 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
    
  3. 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:

  1. Ve a ci.android.com/git_aosp-main-with-phones-throttled.

  2. 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.

  3. Haz clic en Artefactos. Se muestran los artefactos de tu dispositivo.

  4. Para descargar el artefacto, haz clic en el archivo que termina en .sh.

  5. 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:

  1. 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
    
  2. 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
    
  3. Presiona el botón de encendido para iniciar el dispositivo.

  4. Verifica el tamaño de la página con lo siguiente:

     $ adb shell getconf PAGE_SIZE
    16384