Mem-build dan mem-flash perangkat Pixel 8 dengan dukungan 16 KB

Halaman ini menunjukkan cara membuat Pixel 8, Pixel 8 Pro, dan Pixel 8a dengan dukungan 16 KB.

Menyinkronkan dan membangun AOSP

Untuk menyinkronkan dan membuat AOSP:

  1. Periksa repositori AOSP:

     $ mkdir ~/aosp_main && cd ~/aosp_main
     $ repo init -u https://android.googlesource.com/platform/manifest -b main
     $ repo sync -c -j$(nproc)
    
  2. Gunakan skrip envsetup.sh untuk menyiapkan lingkungan build Anda:

     $ source build/envsetup.sh
    
  3. Pilih salah satu dari tiga target untuk perangkat Pixel 8:

    • aosp_husky_pgagnostic-trunk_staging-userdebug untuk Pixel 8 Pro
    • aosp_shiba_pgagnostic-trunk_staging-userdebug untuk Pixel 8
    • aosp_akita_16k-trunk_staging-userdebug untuk Pixel 8a
     $ lunch target
    
  4. Buat kode:

     $ m -j$(nproc)
    

    Gambar ini dibuat setelah build selesai:

     $ 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
    

Menyinkronkan dan membuat kernel

  1. Pilih salah satu kernel 6.1 berikut:

    • android-gs-shusky-6.1-android15-qpr2-beta untuk perangkat Pixel 8 dan Pixel 8 Pro
    • android-gs-akita-6.1-android15-qpr2-beta untuk perangkat Pixel 8a
  2. Sinkronkan 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. Buat kernel:

    • Untuk membuat kernel bagi Pixel 8 atau Pixel 8 Pro, gunakan:

      $ ./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
      
    • Untuk membuat kernel untuk Pixel 8a, gunakan:

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

Mendownload gambar vendor

Repositori AOSP tidak berisi image vendor, yang diperlukan untuk mem-boot perangkat. Anda dapat mendownload gambar dari ci.android.com:

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

  2. Pilih build yang ditandai dengan warna hijau yang sesuai dengan perangkat Anda:

    • Untuk Pixel 8 Pro, klik aosp_husky_pgagnostic.

    • Untuk Pixel 8, klik aosp_shiba_pgagnostic.

    • Untuk Pixel 8a, klik aosp_akita_16k.

    Tab Artefak muncul di bagian bawah halaman.

  3. Klik Artefak. Artefak untuk perangkat Anda akan dicantumkan.

  4. Untuk mendownload artefak, klik file yang berakhiran .sh.

  5. Dari dalam direktori tempat file didownload, jalankan perintah berikut untuk mengekstrak konten:

     $ 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
    

Menyalin gambar ke direktori sementara

Salin image AOSP, kernel, dan vendor ke direktori dalam urutan ini:

 $ 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

Gambar flash

Untuk menampilkan gambar, ikuti langkah-langkah berikut:

  1. Flash image partisi dinamis:

     $ 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. Flash image 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. Tekan tombol daya untuk mem-boot perangkat.

  4. Periksa ukuran halaman dengan:

     $ adb shell getconf PAGE_SIZE
    16384