Compila e esegui il flashing dei dispositivi Pixel 8 con supporto di 16 KB

Questa pagina mostra come creare Pixel 8, Pixel 8 Pro e Pixel 8a con supporto di 16 KB.

Sincronizzare e creare AOSP

Per sincronizzare e compilare AOSP:

  1. Dai un'occhiata al repository AOSP:

     $ mkdir ~/aosp_main && cd ~/aosp_main
     $ repo init -u https://android.googlesource.com/platform/manifest -b main
     $ repo sync -c -j$(nproc)
    
  2. Recupera lo script envsetup.sh per configurare l'ambiente di build:

     $ source build/envsetup.sh
    
  3. Scegli uno dei tre target per i dispositivi Pixel 8:

    • aosp_husky_pgagnostic-trunk_staging-userdebug per Pixel 8 Pro
    • aosp_shiba_pgagnostic-trunk_staging-userdebug per Pixel 8
    • aosp_akita_16k-trunk_staging-userdebug per Pixel 8a
     $ lunch target
    
  4. Crea il codice:

     $ m -j$(nproc)
    

    Queste immagini vengono generate al termine della build:

     $ 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
    

Sincronizzare e creare il kernel

  1. Seleziona uno di questi kernel 6.1:

    • android-gs-shusky-6.1-android15-qpr2-beta per Pixel 8 e Pixel 8 Pro
    • android-gs-akita-6.1-android15-qpr2-beta per Pixel 8a
  2. Sincronizza il 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. Crea il kernel:

    • Per creare il kernel per Pixel 8 o Pixel 8 Pro, utilizza:

      $ ./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
      
    • Per creare il kernel per Pixel 8a, utilizza:

      $ ./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
      

Scaricare le immagini dei fornitori

Il repository AOSP non contiene le immagini del fornitore, necessarie per avviare il dispositivo. Puoi scaricare le immagini da ci.android.com:

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

  2. Seleziona una build evidenziata in verde corrispondente al tuo dispositivo:

    • Per Pixel 8 Pro, fai clic su aosp_husky_pgagnostic.

    • Per Pixel 8, fai clic su aosp_shiba_pgagnostic.

    • Per Pixel 8a, fai clic su aosp_akita_16k.

    La scheda Artefatti viene visualizzata nella parte inferiore della pagina.

  3. Fai clic su Artefatti. Vengono elencati gli artefatti per il tuo dispositivo.

  4. Per scaricare l'artefatto, fai clic sul file che termina con .sh.

  5. Dalla directory in cui è stato scaricato il file, esegui il comando seguente per estrarre i contenuti:

     $ 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 le immagini in una directory temporanea

Copia le immagini AOSP, del kernel e del fornitore in una directory in questo ordine:

 $ 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

Immagini flash

Per far lampeggiare le immagini:

  1. Esegui il flash delle immagini della partizione dinamica:

     $ 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. Installa le immagini del kernel:

     $ 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. Premi il tasto di accensione per avviare il dispositivo.

  4. Controlla le dimensioni della pagina con:

     $ adb shell getconf PAGE_SIZE
    16384