การอัปเดต OTA ขององค์กร

ซอฟต์แวร์ที่อัปเดตได้สำหรับเอกสารข้อกำหนดความเข้ากันได้ของ Android (CDD) กำหนดให้อุปกรณ์ใช้คลาส SystemUpdatePolicy SystemUpdatePolicy อนุญาตให้แอปเจ้าของอุปกรณ์ (DO) (ถ้ามี) ควบคุมการติดตั้งการอัปเดตระบบ

การแจ้งเตือนเจ้าของอุปกรณ์

ไคลเอนต์แบบ over-the-air (OTA) จะต้องแจ้งแอปเจ้าของอุปกรณ์เกี่ยวกับการอัปเดต OTA ที่เข้ามาโดยใช้ API ของระบบ ไคลเอนต์ OTA จะต้องมีการบันทึกการประทับเวลาเมื่อมีการอัปเดต OTA เป็นครั้งแรก ไคลเอ็นต์ OTA สามารถเรียก DevicePolicyManager.notifyPendingSystemUpdate(long updateReceivedTime, boolean isSecurityPatch) เพื่อแจ้งแอปเจ้าของอุปกรณ์ หากไคลเอ็นต์ OTA ไม่ทราบว่าการอัปเดตเป็นแพตช์ความปลอดภัยหรือไม่ ไคลเอ็นต์ OTA สามารถกลับไปใช้ DevicePolicyManager.notifyPendingSystemUpdate(long updateReceivedTime) ได้

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

นโยบายการอัปเดตระบบ

Android 9 ช่วยเพิ่มความสามารถให้กับเจ้าของอุปกรณ์ในการ ควบคุมการอัปเดต โดยอนุญาตให้เจ้าของอุปกรณ์เลื่อนการอัปเดต OTA ได้นานถึง 90 วัน ฟีเจอร์นี้มุ่งเน้นไปที่โซลูชันอุปกรณ์เฉพาะ (ก่อนหน้านี้เรียกว่า COSU) ช่วยให้เจ้าของสามารถหยุดเวอร์ชันระบบปฏิบัติการที่ทำงานบนอุปกรณ์ชั่วคราวในช่วงเวลาสำคัญ เช่น วันหยุด

เพื่อให้สอดคล้องกับ CDD ไคลเอ็นต์ OTA ต้องใช้นโยบายด้านพฤติกรรม DO สามารถตั้งค่านโยบายต่อไปนี้ ซึ่งจะต้องได้รับการเคารพโดยระบบย่อยการอัปเดตระบบอุปกรณ์:

เจ้าของอุปกรณ์ยังสามารถ ตั้งค่าระยะเวลาหยุดการทำงาน (ใน Android 9 ขึ้นไป) ที่จะหยุดเวอร์ชันระบบปฏิบัติการในช่วงเวลาสำคัญ เช่น วันหยุดหรือช่วงเวลาที่ยุ่งอื่นๆ ระบบจะไม่ติดตั้งการอัปเดต OTA ในระหว่างช่วงหยุดทำงาน เราขอแนะนำให้ใช้ SystemUpdatePolicy.InstallationOption (ดูหัวข้อต่อไปนี้) อย่างไรก็ตาม ไคลเอนต์ OTA ยังสามารถเรียก SystemUpdatePolicy.getFreezePeriods() เพื่อตรวจสอบว่าอุปกรณ์อยู่ในช่วงหยุดทำงานหรือไม่

การใช้ตัวเลือกการติดตั้ง

Android 9 แนะนำ @SystemApi, SystemUpdatePolicy.InstallationOption ที่ออกแบบมาสำหรับไคลเอนต์การอัปเดตระบบ SystemUpdatePolicy.InstallationOption ทำหน้าที่เป็นคลาส wrapper สำหรับนโยบายและระยะเวลาหยุดการทำงาน ตัวเลือกการติดตั้งจะแจ้งให้ลูกค้าทราบถึงวิธีดำเนินการกับการอัปเดตระบบที่เข้ามา และการดำเนินการนั้นจะมีผลนานเท่าใด โดยพิจารณาจากนโยบายการอัปเดตระบบปัจจุบันหรือช่วงหยุดการทำงานใดๆ ที่อาจกำหนดไว้ ตัวเลือกการติดตั้งอาจเป็นอย่างใดอย่างหนึ่งต่อไปนี้:

  • TYPE_INSTALL_AUTOMATIC - การอัปเดตระบบที่เข้ามาจะติดตั้งทันทีและไม่ต้องให้ผู้ใช้ดำเนินการใด ๆ ทันทีที่พร้อมใช้งาน อุปกรณ์จะรีบูตโดยอัตโนมัติ
  • TYPE_POSTPONE - การอัปเดตระบบขาเข้าอาจล่าช้าได้สูงสุด 30 วัน ผู้ใช้ไม่สามารถติดตั้งการอัปเดตด้วยตนเอง ผู้ผลิตอุปกรณ์สามารถเลือกได้ว่าจะบล็อกแพตช์รักษาความปลอดภัยหรือไม่
  • TYPE_PAUSE - การอัปเดตระบบที่เข้ามาอาจล่าช้าโดยไม่มีกำหนดจนกว่าจะมีประกาศเพิ่มเติม ผู้ใช้ไม่สามารถติดตั้งการอัปเดตด้วยตนเอง TYPE_PAUSE ชะลอการอัปเดตทั้งหมด รวมถึงแพตช์ความปลอดภัย

ไคลเอ็นต์การอัปเดตระบบสามารถสืบค้น SystemUpdatePolicy.InstallationOption โดยใช้ SystemUpdatePolicy.getInstallationOptionAt(long when ) โดยที่ when แสดงถึงเวลาที่ตัวเลือกการติดตั้งถูกสอบถามเป็นจำนวนมิลลิวินาทีนับตั้งแต่ Epoch การใช้เมธอด SystemUpdatePolicy.getInstallationOptionAt(long when ) ไคลเอ็นต์การอัพเดตระบบสามารถดำเนินการกับอ็อพชันที่ส่งคืนได้จนกว่าจะหมดเวลาที่มีประสิทธิภาพ หลังจากที่ตัวเลือกที่ส่งคืนหมดลง ไคลเอนต์สามารถสร้างแบบสอบถามอื่นโดยใช้การประทับเวลาใหม่สำหรับตัวเลือกล่าสุด

ไคลเอนต์การอัปเดตระบบต้องฟังการออกอากาศ DevicePolicyManager.ACTION_SYSTEM_UPDATE_POLICY_CHANGED ในกรณีที่นโยบายทั้งหมดได้รับการอัปเดต

กำลังตรวจสอบนโยบาย TYPE_PAUSE

คุณสามารถตรวจสอบตัวเลือก TYPE_PAUSE ที่ทำงานบนระบบ OTA ได้ด้วยตนเอง

นโยบาย TYPE_PAUSE มีผลบังคับใช้

หากต้องการตรวจสอบว่านโยบาย TYPE_PAUSE ทำงานอยู่:

  1. กำหนดนโยบายอัตโนมัติและระบุ TYPE_PAUSE
  2. ขณะที่นาฬิกาของระบบอยู่ในช่วงหยุดชั่วคราว ให้พุชการอัปเดต OTA
  3. ตรวจสอบว่าอุปกรณ์ไม่ได้ใช้การอัปเดต OTA และผู้ใช้ไม่สามารถติดตั้งการอัปเดตด้วยตนเอง
  4. หากอุปกรณ์นั้นเป็นอุปกรณ์ A/B ให้รีบูตอุปกรณ์และตรวจสอบว่าการรีบูตไม่ได้ทำให้เกิดการติดตั้งการอัปเดตอัตโนมัติ

นโยบาย TYPE_PAUSE หมดอายุแล้ว

หากต้องการตรวจสอบนโยบาย TYPE_PAUSE ที่หมดอายุแล้วยังใช้งานได้:

  1. กำหนดนโยบายอัตโนมัติและระบุ TYPE_PAUSE
  2. ขณะที่นาฬิกาของระบบอยู่ในช่วงหยุดชั่วคราว ให้พุชการอัปเดต OTA
  3. รอให้ระยะเวลาหยุดชั่วคราวสิ้นสุดลง
  4. ตรวจสอบว่าอุปกรณ์จะรีบูตโดยอัตโนมัติและมีการอัปเดต OTA หลังจากการรีบูต