การพัฒนาอุปกรณ์ที่กําหนดเอง

หน้านี้จะอธิบายงานหลายอย่างที่คุณอาจต้องทำหากกำลังตั้งค่าบิลด์สำหรับอุปกรณ์ของคุณเอง

สร้างการกำหนดค่าแฟลชที่กำหนดเอง

คำสั่ง Fastboot จะกำหนดไว้ในอาร์ติแฟกต์ที่ชื่อ fastboot-info.txt หากสร้างเป้าหมายหลายรายการ คุณจะมีไฟล์ fastboot-info.txt หลายไฟล์ใน $OUT_DIR และ $ANDROID_PRODUCT_OUT ชี้ไปยังเป้าหมายล่าสุดที่คุณสร้างขึ้น หน้านี้แสดงรายการงานที่ fastboot จะดำเนินการ และสร้างใหม่ได้โดยใช้ m fastboot_info คุณสามารถใช้ตรรกะการกะพริบที่กำหนดเองได้โดยการแก้ไขไฟล์ fastboot-info.txt

ไฟล์ fastboot-info.txt รองรับคำสั่งต่อไปนี้

  • flash %s: แฟลชพาร์ติชันที่ระบุ อาร์กิวเมนต์ที่ไม่บังคับ ได้แก่ --slot-other,filename_path, and--apply-vbmeta
  • update-super: อัปเดตพาร์ติชันหลัก
  • if-wipe: เรียกใช้คอมโพเนนต์อื่นๆ แบบมีเงื่อนไขหากมีการระบุการล้างข้อมูล
  • erase %s: ลบพาร์ติชันที่ระบุ (ใช้ร่วมกับ if-wipe ได้เท่านั้น เช่น if-wipe erase cache)

กำหนดสถานะล็อกแฟลช

หากคุณกำลังสร้างแดมอน flashboot ที่กำหนดเอง (flashbootd) สำหรับอุปกรณ์ คุณต้อง สามารถรับสถานะ Bootloader และสถานะการล็อก Bootloader ได้ getFlashLockState() @SystemApi จะส่งสถานะ Bootloader และ PersistentDataBlockManager.getFlashLockState() ระบบ API จะแสดงสถานะการล็อกของ Bootloader ในอุปกรณ์ที่สอดคล้อง

ค่าที่แสดงผล ภาวะทางการแพทย์
FLASH_LOCK_UNKNOWN ส่งคืนโดยอุปกรณ์ที่อัปเกรดเป็น Android 7.x ขึ้นไปเท่านั้น ซึ่งก่อนหน้านี้ไม่รองรับการเปลี่ยนแปลง Bootloader ที่จำเป็นต่อการรับสถานะการล็อกแฟลช หากรองรับความสามารถในการล็อก/ปลดล็อกการแฟลช
  • อุปกรณ์ใหม่ที่ใช้ Android 7.x ขึ้นไปต้องอยู่ในสถานะ FLASH_LOCK_LOCKEDหรือFLASH_LOCK_UNLOCKED
  • อุปกรณ์ที่อัปเกรดเป็น Android 7.x ขึ้นไปซึ่งไม่รองรับการแฟลชความสามารถในการปลดล็อก/ล็อก ควรแสดงสถานะ FLASH_LOCK_LOCKED
FLASH_LOCK_LOCKED ส่งคืนโดยอุปกรณ์ที่ไม่รองรับการล็อก/ปลดล็อกการแฟลช (กล่าวคือ อุปกรณ์จะล็อกอยู่เสมอ) หรืออุปกรณ์ที่รองรับการล็อก/ปลดล็อกการแฟลชและอยู่ในสถานะล็อก
FLASH_LOCK_UNLOCKED ส่งคืนโดยอุปกรณ์ที่รองรับการล็อก/ปลดล็อกด้วยการแฟลชและอยู่ในสถานะปลดล็อก

ผู้ผลิตควรทดสอบค่าที่อุปกรณ์ส่งคืนโดยใช้ Bootloader ที่ล็อกและ ปลดล็อก เช่น AOSP มีการใช้งานอ้างอิงที่แสดงค่าตามพร็อพเพอร์ตี้ ro.boot.flash.locked boot โค้ดตัวอย่างจะอยู่ในไดเรกทอรีต่อไปนี้

  • frameworks/base/services/core/java/com/android/server/PersistentDataBlockService.java
  • frameworks/base/core/java/android/service/persistentdata/PersistentDataBlockManager.java