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

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

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

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

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

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

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

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

  • การกำหนดค่าระบบปฏิบัติการ เฟิร์มแวร์ต้องสามารถแก้ไขบรรทัดคำสั่งเคอร์เนล Device Tree (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