คุณอัปเดตแพ็กเกจบริการเป็นแพ็กเกจ APEX ได้โดยไม่ต้องอัปเดตระบบทั้งหมด ใน SDV กระบวนการอัปเดตนี้ได้รับการจัดการโดยตัวจัดการการอัปเดต SDV คุณต้องรีบูตอุปกรณ์เพื่อให้การอัปเดตมีผล
ระบบรองรับ APEX 2 ประเภทสำหรับการอัปเดต Service Bundle ดังนี้
APEX ที่ติดตั้งไว้ล่วงหน้า: แพ็กเกจ APEX เวอร์ชันก่อนหน้ามีอยู่แล้ว ในพาร์ติชันแบบอ่านอย่างเดียว (
/system,/system_ext,/product,/vendorและ/odm)APEX ใหม่: ไม่มีแพ็กเกจ APEX ที่มีชื่อเดียวกัน (ตามที่ประกาศไว้ใน
apex_manifest.json) อยู่ในพาร์ติชันแบบอ่านอย่างเดียว
APEX ที่ติดตั้งไว้ล่วงหน้า
นี่เป็นวิธีที่ใช้กันโดยทั่วไปและเราขอแนะนำให้ใช้วิธีนี้ในการอัปเดตแพ็กเกจบริการ การอัปเดตนี้จึงจะใช้ได้ แพ็กเกจ APEX ใหม่ต้องเป็นไปตามข้อกำหนดต่อไปนี้
มีชื่อแพ็กเกจเดียวกันใน
apex_manifest.jsonกับ APEX ที่ติดตั้งไว้ล่วงหน้าประกาศรหัสเวอร์ชันที่สูงกว่าใน
apex_manifest.jsonมากกว่า APEX ที่ติดตั้งไว้ล่วงหน้าลงนาม APEX ด้วยคู่คีย์เดียวกันกับ APEX ที่ติดตั้งไว้ล่วงหน้า
APEX ใหม่
แม้ว่าการใช้ APEX ที่ติดตั้งไว้ล่วงหน้าจะเป็นแนวทางปฏิบัติแนะนำด้านความปลอดภัย แต่ระบบก็รองรับ APEX ใหม่ เมื่อใช้วิธีนี้ พาร์ทเนอร์มีหน้าที่รับผิดชอบในการดูแล โปรโตคอลความปลอดภัยที่ครอบคลุม ความรับผิดชอบเหล่านี้ ได้แก่
การจัดการคีย์การลงนามที่ใช้สำหรับ APEX เหล่านี้อย่างปลอดภัย
สร้างกระบวนการที่มีประสิทธิภาพเพื่อระบุและบล็อกแพ็กเกจที่เป็นอันตราย
แปลง APEX ใหม่เป็น APEX ที่ติดตั้งไว้ล่วงหน้าในการอัปเดตระบบครั้งต่อๆ ไป เมื่อเป็นไปได้
หากต้องการติดตั้งหรืออัปเดต APEX ใหม่ คุณต้องกำหนดค่าต่อไปนี้
ติดตั้งคีย์สาธารณะที่เชื่อถือได้ล่วงหน้า
หากต้องการติดตั้ง APEX ใหม่ จะต้องติดตั้งคีย์การลงนามสาธารณะของ APEX นั้นล่วงหน้าใน
พาร์ติชันเป้าหมาย วางคีย์สาธารณะใน /partition/etc/brand_new_apex/
โดย /partition/ แสดงถึงพาร์ติชันที่ APEX เชื่อมโยงด้วย
ภายใต้กฎ Treble เช่น หากระบบยืนยันลายเซ็นของ APEX กับ
คีย์สาธารณะใน /vendor/etc/brand_new_apex/ APEX นั้นจะทำงานเป็น APEX ของผู้ให้บริการ
ระบบจะปฏิเสธ APEX ใหม่ที่ไม่ได้ลงนามด้วยคีย์ที่สอดคล้องกับ
คีย์สาธารณะที่ติดตั้งไว้ล่วงหน้า
บล็อก APEX ใหม่ที่เป็นอันตราย
หากพบว่า APEX ใหม่เป็นอันตรายหลังการติดตั้ง จะต้องบล็อกโดยใช้การอัปเดตระบบ โดยให้เพิ่มชื่อแพ็กเกจ APEX ลงในไฟล์รายการที่บล็อก
ใน /partition/etc/brand_new_apex/blocklist.json ต้องวางรายการที่ถูกบล็อกนี้
ในพาร์ติชันเป้าหมายของ APEX (พาร์ติชันเดียวกันกับที่ติดตั้งคีย์สาธารณะ
ไว้ล่วงหน้า) แต่ละพาร์ติชันจะมีไฟล์รายการที่ถูกบล็อกเฉพาะของตัวเอง