ติดตั้งใช้งาน GBL

หน้านี้จะอธิบายวิธีทำให้ไบนารี GBL ใช้งานได้

ข้อกำหนดของเฟิร์มแวร์บูท

หากต้องการใช้ GBL เฟิร์มแวร์สำหรับบูตต้องเป็นไปตามข้อกำหนดต่อไปนี้

  • การปฏิบัติตามข้อกำหนดของ UEFI เฟิร์มแวร์ต้องติดตั้งใช้งานโปรโตคอล UEFI ที่จำเป็น นอกจากนี้ เฟิร์มแวร์ต้องอนุญาตให้ใช้ส่วนขยายเฉพาะของผู้ให้บริการโดยใช้โปรโตคอล UEFI ที่กําหนด

  • ความปลอดภัย เฟิร์มแวร์ต้องใช้ทุกแง่มุมของ Android Verified Boot (AVB) เพื่อให้มั่นใจว่ามีเพียงอิมเมจที่ตรวจสอบสิทธิ์เท่านั้นที่โหลด

  • โหมดการบูต ไบนารีควรจัดการกับโหมดการบูตต่างๆ ได้ เช่น การบูตปกติ การบูตการกู้คืน และการบูตด่วน

  • การแบ่งพาร์ติชันแบบไดนามิก เฟิร์มแวร์สำหรับบูตต้องใช้ตรรกะการเลือกช่องเพื่อให้รองรับการอ่านช่องบูต A/B ที่ถูกต้อง และเข้ากันได้กับพาร์ติชันแบบไดนามิกและ userdata ใน super

  • การกําหนดค่าระบบปฏิบัติการ เฟิร์มแวร์ต้องสามารถแก้ไขเคอร์เนล บรรทัดคำสั่ง ต้นไม้อุปกรณ์ (DTB) และ bootconfig ด้วยการปรับแต่ง OEM ที่จําเป็นในการบูตอุปกรณ์

  • กำลังโหลด VM ที่มีการป้องกัน ไฟล์ไบนารีควรโหลดเฟิร์มแวร์ VM ที่ผ่านการยืนยันล่วงหน้าอย่างถูกต้องก่อนเคอร์เนล Android เมื่อมี VM ที่ปกป้องอยู่ ดูข้อมูลเพิ่มเติมได้ที่ลําดับการบูตของ Microdroid

  • การจัดการหน่วยความจำ เฟิร์มแวร์สำหรับบูตต้องรองรับ API การจัดสรรหน่วยความจำของ UEFI

  • ความเข้ากันได้และความเข้ากันได้แบบย้อนหลัง เฟิร์มแวร์ควรทำงานได้ในอุปกรณ์ที่มีผู้ให้บริการและ SoC ที่แตกต่างกัน รวมถึงยังคงใช้งานร่วมกับเวอร์ชัน Android ที่เกี่ยวข้องได้

การรองรับเฟิร์มแวร์บูต

การติดตั้งใช้งานเฟิร์มแวร์ UEFI ต่อไปนี้จะทำงานร่วมกับ GBF ได้เมื่อมีการแก้ไขที่จำเป็นเพื่อรองรับข้อกำหนดในส่วนก่อนหน้า

  • EDK2 (Tianocore) EDK2 เป็นการใช้งาน UEFI แบบโอเพนซอร์สที่ได้รับความนิยม จำเป็นต้องมีการรองรับ GBL สำหรับบูตโหลดเดอร์ที่ใช้ EDK2 และมีการรองรับ UEFI อยู่แล้ว
  • U-Boot โปรเจ็กต์บูตโหลดเดอร์แบบโอเพนซอร์สที่ยืดหยุ่นและใช้งานกันอย่างแพร่หลาย ซึ่งกำลังเพิ่มความเข้ากันได้กับ UEFI สำหรับการใช้งาน GBL
  • LittleKernel (LK) บูตโหลดเดอร์โอเพนซอร์สที่ผู้ให้บริการบางรายใช้

เรียกใช้ GBL

คุณสามารถรับไบนารี GBL ที่คอมไพล์ไว้ล่วงหน้าเพื่อเรียกใช้ หรือจะสร้างไบนารีของคุณเองและเรียกใช้ก็ได้

รับและเรียกใช้ไบนารี GBL

GBL จะเผยแพร่เป็นไบนารีแอป EFI ไฟล์เดียว คุณสามารถอัปเดตไบนารีนี้แยกต่างหากจากเฟิร์มแวร์พื้นฐานของอุปกรณ์ได้โดยใช้กลไกการอัปเดตมาตรฐานของ Android

ตั้งแต่ Android 16 เป็นต้นไป หากคุณจัดส่งอุปกรณ์ที่ใช้ชิปเซ็ต ARM-64 เราขอแนะนําอย่างยิ่งให้คุณติดตั้งใช้งาน GBL เวอร์ชันล่าสุดที่ Google รับรองและผสานรวมเข้ากับเชนการบูต

สร้างและเรียกใช้ GBL

วิธีสร้างและเรียกใช้ GBL

  1. ตรวจสอบว่าคุณได้ติดตั้งเครื่องมือ repo และ Bazel Bootstrap แล้ว โดยทำดังนี้

    sudo apt install repo bazel-bootstrap
    
  2. เริ่มต้นไดเรกทอรีปัจจุบันสำหรับการควบคุมแหล่งที่มาโดยใช้uefi-gbl-mainlineไฟล์ Manifest โดยทำดังนี้

    repo init -u https://android.googlesource.com/kernel/manifest -b uefi-gbl-mainline
    repo sync -j16
    
  3. สร้างแอป EFI โดยทำดังนี้

    ./tools/bazel run //bootable/libbootloader:gbl_efi_dist --extra_toolchains=@gbl//toolchain:all
    
  4. เรียกใช้แอป EFI ภายใน Cuttlefish โดยทำดังนี้

    cvd start --android_efi_loader=path_to_the_EFI_app ...
    

    คำสั่ง cvd start นี้จะใช้แอป EFI เพื่อบูต Android แทนการบูต Android โดยตรง

รายงานข้อบกพร่องและติดต่อทีม Bootloader

หากต้องการรายงานข้อบกพร่องของ GBL ให้ไปที่คอมโพเนนต์บูตโหลดเดอร์ทั่วไปของ Android ใน Buganizer

หากมีคำถาม โปรดติดต่อทีม GBL โดยส่งอีเมลไปที่ android-gbl@google.com