การพัฒนาอุปกรณ์แบบกำหนดเอง

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

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

คำแนะนำ 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 daemon แบบกำหนดเอง (flashbootd) สำหรับอุปกรณ์ คุณจะต้องสามารถรับสถานะการล็อก bootloader และ bootloader ได้ getFlashLockState() @SystemApi จะส่งสถานะ bootloader และ PersistentDataBlockManager.getFlashLockState() system 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 ส่งคืนโดยอุปกรณ์ใด ๆ ที่รองรับการล็อค/ปลดล็อคแบบกะพริบและอยู่ในสถานะปลดล็อค

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

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