สถานะของอุปกรณ์

สถานะของอุปกรณ์จะระบุว่าสามารถแฟลชซอฟต์แวร์ไปยังอุปกรณ์ได้อย่างอิสระได้อย่างไร และมีการบังคับใช้การตรวจสอบหรือไม่ สถานะของอุปกรณ์ถูก LOCKED และ UNLOCKED อุปกรณ์ LOCKED จะป้องกันไม่ให้คุณแฟลชซอฟต์แวร์ใหม่ไปยังอุปกรณ์ ในขณะที่อุปกรณ์ UNLOCKED จะอนุญาตให้ทำการดัดแปลงได้

เมื่ออุปกรณ์เปิดเครื่อง Bootloader จะตรวจสอบก่อนว่าอุปกรณ์ LOCKED หรือ UNLOCKED หรือไม่ หากอุปกรณ์ถูก UNLOCKED โปรแกรมบูตโหลดเดอร์จะแสดงคำเตือนให้ผู้ใช้ทราบ จากนั้นจึงบูตต่อแม้ว่าระบบปฏิบัติการที่โหลดจะไม่ได้ลงนามโดยรากแห่งความไว้วางใจก็ตาม

หากอุปกรณ์ LOCKED โปรแกรมโหลดบูตจะต้องทำตามขั้นตอนใน การตรวจสอบการบูต เพื่อตรวจสอบซอฟต์แวร์ของอุปกรณ์ อุปกรณ์ LOCKED จะบู๊ต ได้ก็ต่อ เมื่อระบบปฏิบัติการที่โหลดได้รับการลงนามอย่างถูกต้องโดยรูทแห่งความไว้วางใจ สำหรับรายละเอียดเพิ่มเติม โปรดดูที่ ขั้นตอนการบูต

การเปลี่ยนสถานะอุปกรณ์

หากต้องการ เปลี่ยนสถานะของอุปกรณ์ ให้ใช้ fastboot flashing [unlock | lock] คำสั่ง fastboot flashing [unlock | lock] เพื่อปกป้องข้อมูลผู้ใช้ การเปลี่ยนสถานะ ทั้งหมด จะล้างพาร์ติชันข้อมูลและขอการยืนยันจากผู้ใช้ก่อนที่ข้อมูลจะถูกลบ

คาดว่าจะมีการเปลี่ยนแปลง UNLOCKED ไปเป็น LOCKED เมื่อผู้ใช้ซื้ออุปกรณ์การพัฒนาที่ใช้แล้ว จากการล็อคอุปกรณ์ ผู้ใช้ควรมั่นใจว่าอุปกรณ์อยู่ในสถานะที่ผลิตโดยผู้ผลิตอุปกรณ์ ตราบใดที่ไม่มีคำเตือน คาดว่าจะมีการเปลี่ยนจาก LOCKED เป็น UNLOCKED เมื่อนักพัฒนาต้องการปิดการตรวจสอบบนอุปกรณ์เพื่อวัตถุประสงค์ในการพัฒนา

รากฐานของความไว้วางใจ

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

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

รากฐานของความไว้วางใจที่ผู้ใช้กำหนดได้

อุปกรณ์สามารถเลือกให้ผู้ใช้สามารถกำหนดค่ารูทของความน่าเชื่อถือได้ (เช่น คีย์สาธารณะ) อุปกรณ์สามารถใช้รูทความน่าเชื่อถือที่ผู้ใช้กำหนดได้สำหรับ Verified Boot แทนรูทความน่าเชื่อถือในตัว ซึ่งจะทำให้ผู้ใช้สามารถติดตั้งและใช้ Android เวอร์ชันที่กำหนดเองได้โดยไม่ต้องเสียสละการปรับปรุงความปลอดภัยของ Verified Boot

หากมีการใช้รากฐานของความไว้วางใจที่ผู้ใช้กำหนดได้ ก็ควรทำในลักษณะที่:

  • จำเป็นต้องมีการยืนยันทางกายภาพเพื่อตั้งค่า/ล้างรากความเชื่อถือที่ผู้ใช้กำหนดได้
  • รากของความไว้วางใจที่ผู้ใช้กำหนดได้เท่านั้นที่สามารถตั้งค่าได้โดยผู้ใช้ปลายทางเท่านั้น ไม่สามารถตั้งค่าที่โรงงานหรือจุดกึ่งกลางใดๆ ก่อนที่ผู้ใช้จะได้รับอุปกรณ์
  • รากแห่งความไว้วางใจที่ผู้ใช้กำหนดได้จะถูกจัดเก็บไว้ในที่จัดเก็บข้อมูลที่บ่งชี้ร่องรอยการแกะ หลักฐานการงัดแงะ หมายความว่าสามารถตรวจสอบได้ว่า Android มีการเปลี่ยนแปลงข้อมูลหรือไม่ เช่น ข้อมูลถูกเขียนทับหรือเปลี่ยนแปลง
  • หากตั้งค่ารูทความน่าเชื่อถือที่ผู้ใช้ตั้งค่าได้ อุปกรณ์ควรอนุญาตให้ Android เวอร์ชันที่ลงนามด้วยรูทความน่าเชื่อถือในตัวหรือรูทความน่าเชื่อถือที่ผู้ใช้ตั้งค่าได้เพื่อบูต
  • ทุกครั้งที่อุปกรณ์บูทโดยใช้รากความเชื่อถือที่ผู้ใช้กำหนดได้ ผู้ใช้ควรได้รับแจ้งว่าอุปกรณ์กำลังโหลด Android เวอร์ชันที่กำหนดเอง ตัวอย่างเช่น หน้าจอคำเตือน โปรดดู อุปกรณ์ LOCKED ด้วยชุดคีย์แบบกำหนดเอง

วิธีหนึ่งในการนำรูทความน่าเชื่อถือที่ผู้ใช้กำหนดได้ไปใช้คือการมีพาร์ติชันเสมือนที่สามารถแฟลชหรือเคลียร์ได้เมื่ออุปกรณ์อยู่ในสถานะ UNLOCKED เท่านั้น อุปกรณ์ Google Pixel 2 ใช้แนวทางนี้และพาร์ติชันเสมือนเรียกว่า avb_custom_key รูปแบบของข้อมูลในพาร์ติชันนี้เป็นเอาต์พุตของคำสั่ง avbtool extract_public_key ต่อไปนี้คือตัวอย่างวิธีตั้งค่ารูทความน่าเชื่อถือที่ผู้ใช้กำหนดได้:

avbtool extract_public_key --key key.pem --output pkmd.bin
fastboot flash avb_custom_key pkmd.bin

รากของความไว้วางใจที่ผู้ใช้กำหนดสามารถล้างได้โดยการออก:

fastboot erase avb_custom_key