Créer et flasher des appareils Pixel 8 avec la prise en charge de 16 ko

Cette page explique comment créer des Pixel 8, Pixel 8 Pro et Pixel 8a avec la prise en charge de 16 ko.

Synchroniser et compiler AOSP

Pour synchroniser et compiler AOSP:

  1. Consultez le dépôt AOSP:

     $ mkdir ~/aosp_main && cd ~/aosp_main
     $ repo init -u https://android.googlesource.com/platform/manifest -b main
     $ repo sync -c -j$(nproc)
    
  2. Sourcez le script envsetup.sh pour configurer votre environnement de compilation:

     $ source build/envsetup.sh
    
  3. Choisissez l'une des trois cibles pour les appareils Pixel 8:

    • aosp_husky_pgagnostic-trunk_staging-userdebug pour le Pixel 8 Pro
    • aosp_shiba_pgagnostic-trunk_staging-userdebug pour le Pixel 8
    • aosp_akita_16k-trunk_staging-userdebug pour le Pixel 8a
     $ lunch target
    
  4. Créez le code:

     $ m -j$(nproc)
    

    Ces images sont générées une fois la compilation terminée:

     $ 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
    

Synchroniser et compiler le noyau

  1. Sélectionnez l'un des noyaux 6.1 suivants:

    • android-gs-shusky-6.1-android15-qpr2-beta pour les appareils Pixel 8 et Pixel 8 Pro
    • android-gs-akita-6.1-android15-qpr2-beta pour l'appareil Pixel 8a
  2. Synchronisez le noyau:

    # 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. Créez le noyau:

    • Pour compiler le noyau pour le Pixel 8 ou le Pixel 8 Pro, utilisez:

      $ ./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
      
    • Pour compiler le kernel pour le Pixel 8a, utilisez:

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

Télécharger des images de fournisseurs

Le dépôt AOSP ne contient pas les images du fournisseur, qui sont nécessaires pour démarrer l'appareil. Vous pouvez télécharger les images sur ci.android.com:

  1. Accédez à ci.android.com/git_aosp-main-with-phones-throttled.

  2. Sélectionnez une version en surbrillance verte qui correspond à votre appareil:

    • Pour le Pixel 8 Pro, cliquez sur aosp_husky_pgagnostic.

    • Pour le Pixel 8, cliquez sur aosp_shiba_pgagnostic.

    • Pour le Pixel 8a, cliquez sur aosp_akita_16k.

    L'onglet Artefacts (Artefacts) s'affiche en bas de la page.

  3. Cliquez sur Artefacts. Les artefacts de votre appareil sont listés.

  4. Pour télécharger l'artefact, cliquez sur le fichier se terminant par .sh.

  5. Dans le répertoire où le fichier a été téléchargé, exécutez la commande suivante pour en extraire le contenu:

     $ 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
    

Copier les images dans un répertoire temporaire

Copiez les images AOSP, du noyau et du fournisseur dans un répertoire dans l'ordre suivant:

 $ 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

Images flash

Pour flasher les images, procédez comme suit:

  1. Flashez les images de partition dynamique:

     $ 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. Flashez les images du noyau:

     $ 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. Appuyez sur le bouton Marche/Arrêt pour démarrer l'appareil.

  4. Vérifiez la taille de la page avec:

     $ adb shell getconf PAGE_SIZE
    16384