ส่วนนี้อธิบายเมทริกซ์ความเข้ากันได้ของเฟรมเวิร์กและอุปกรณ์ และ สคีมาเมทริกซ์ความเข้ากันได้ สำหรับกฎการจับคู่ โปรดดู กฎการจับคู่
เมทริกซ์ความเข้ากันได้ของเฟรมเวิร์ก (FCM)
เมทริกซ์ความเข้ากันได้ของเฟรมเวิร์ก (FCM) อธิบายข้อกำหนดของเฟรมเวิร์กบนอุปกรณ์ที่รัน เมทริกซ์ความเข้ากันได้ของเฟรมเวิร์กประกอบด้วยเมทริกซ์ความเข้ากันได้ของระบบ เมทริกซ์ความเข้ากันได้ของ ผลิตภัณฑ์ และเมทริกซ์ ความเข้ากันได้ของ system_ext รายการอุปกรณ์ต้องเป็นไปตามข้อกำหนดของ FCM (ข้อกำหนดที่บังคับใช้ ณ เวลาบิลด์ รันไทม์ และใน VTS)
system_ext FCM และผลิตภัณฑ์ FCM เป็นส่วนเสริมของ FCM เฉพาะอุปกรณ์ (ติดตั้งในพาร์ติชันระบบ)
- อุปกรณ์ FCM ควรสะท้อนถึงข้อกำหนดของโมดูลใน พาร์ติชันระบบ
- system_ext FCM ควรสะท้อนถึงข้อกำหนดของโมดูลในพาร์ติชัน system_ext
- ผลิตภัณฑ์ FCM ควรสะท้อนข้อกำหนดตามโมดูลใน พาร์ติชันผลิตภัณฑ์
FCM ทั้งหมดควรสอดคล้องกับการแก้ไขของ OEM ต่อเฟรมเวิร์กในระบบ ผลิตภัณฑ์ และพาร์ติชัน system_ext ตัวอย่างเช่น หากแอปที่ติดตั้งในพาร์ติชันผลิตภัณฑ์ใช้ส่วนขยายผู้ขายของอินเทอร์เฟซ HAL ควรประกาศข้อกำหนดอินเทอร์เฟซ HAL ในผลิตภัณฑ์ FCM
ตัวอย่างไฟล์เมทริกซ์ความเข้ากันได้ของระบบ:
<?xml version="1.0" encoding="UTF-8"?> <!-- Comments, Legal notices, etc. here --> <compatibility-matrix version="1.0" type="framework" level="3"> <hal> <name>android.hardware.camera</name> <version>1.0</version> <version>3.1-4</version> <interface> <name>ICameraProvider</name> <instance>default</instance> <regex-instance>[a-z_]+/[0-9]+</regex-instance> </interface> </hal> <hal> <name>android.hardware.nfc</name> <version>1.0</version> <interface> <name>INfc</name> <instance>default</instance> </interface> </hal> <hal optional="true"> <name>android.hardware.graphics.composer</name> <version>2.1</version> <interface> <name>IComposer</name> <instance>default</instance> </interface> </hal> <hal format="aidl" optional="true"> <name>android.hardware.light</name> <version>1-2</version> <interface> <name>ILights</name> <instance>default</instance> </interface> </hal> <hal format="native"> <name>GL</name> <version>1.1</version> <version>3.0</version> </hal> <hal format="native"> <name>EGL</name> <version>1.1</version> </hal> <kernel version="3.18.51"> <!-- common configs --> </kernel> <kernel version="3.18.51"> <!-- arm specific configs --> <condition> <config> <key>CONFIG_ARM</key> <value type="tristate">y</value> </config> <condition> <config> <key>CONFIG_A</key> <value type="string"></value> </config> <config> <key>CONFIG_B</key> <value type="tristate">y</value> </config> </kernel> <kernel version="4.1.22"> <!-- common configs --> <config> <key>CONFIG_A</key> <value type="string">foo</value> </config> <config> <key>CONFIG_B2</key> <value type="int">1024</value> </config> </kernel> <sepolicy> <kernel-sepolicy-version>30</kernel-sepolicy-version> <sepolicy-version>25.0</sepolicy-version> <sepolicy-version>26.0-3</sepolicy-version> </sepolicy> <avb> <vbmeta-version>2.1</vbmeta-version> </avb> <xmlfile format="dtd"> <name>media_profile</name> <version>1.0</version> <path>/system/etc/media_profile_V1_0.dtd</path> </xmlfile> </compatibility-matrix>
สำหรับรายละเอียดเพิ่มเติม โปรดดู FCM Lifecycle
เมทริกซ์ความเข้ากันได้ของผลิตภัณฑ์
ผลิตภัณฑ์ FCM เป็นไฟล์เมทริกซ์ความเข้ากันได้ของเฟรมเวิร์กในพาร์ติชันผลิตภัณฑ์ วัตถุ VINTF รวมผลิตภัณฑ์ FCM กับ FCM ในระบบและพาร์ติชัน system_ext ที่รันไทม์
ตัวอย่างไฟล์ FCM ของผลิตภัณฑ์:
<?xml version="1.0" encoding="UTF-8"?> <!-- Comments, Legal notices, etc. here --> <compatibility-matrix version="1.0" type="framework"> <hal> <name>vendor.foo.camera</name> <version>1.0</version> <interface> <name>IBetterCamera</name> <instance>default</instance> </interface> </hal> </compatibility-matrix>
เมทริกซ์ความเข้ากันได้ของ System_ext
system_ext FCM เป็นไฟล์เมทริกซ์ความเข้ากันได้ของเฟรมเวิร์กในพาร์ติชัน system_ext วัตถุ VINTF รวม system_ext FCM กับ FCMs ในพาร์ติชันระบบและผลิตภัณฑ์ที่รันไทม์ ดู เมทริกซ์ความเข้ากันได้ของผลิตภัณฑ์ สำหรับตัวอย่างไฟล์ system_ext FCM
เมทริกซ์ความเข้ากันได้ของอุปกรณ์ (DCM)
เมทริกซ์ความเข้ากันได้ของอุปกรณ์อธิบายชุดข้อกำหนดที่อุปกรณ์คาดหวังจากเฟรมเวิร์ก (ข้อกำหนดที่บังคับใช้เมื่อเปิดตัวและเวลา OTA)
ตัวอย่างไฟล์ DCM:
<?xml version="1.0" encoding="UTF-8"?> <!-- Comments, Legal notices, etc. here --> <compatibility-matrix version="1.0" type="device"> <hal> <name>android.hidl.manager</name> <version>1.0</version> <interface> <name>IServiceManager</name> <instance>default</instance> </interface> </hal> <hal> <name>android.hidl.memory</name> <version>1.0</version> <interface> <name>IMemory</name> <instance>ashmem</instance> </interface> </hal> <hal> <name>android.hidl.allocator</name> <version>1.0</version> <interface> <name>IAllocator</name> <instance>ashmem</instance> </interface> </hal> <hal> <name>android.framework.sensor</name> <version>1.0</version> <interface> <name>ISensorManager</name> <instance>default</instance> </interface> </hal> <vendor-ndk> <version>27</version> </vendor-ndk> <system-sdk> <version>27</version> </system-sdk> </compatibility-matrix>
สคีมาเมทริกซ์ความเข้ากันได้
ส่วนนี้อธิบายความหมายของแท็ก XML เหล่านี้ แท็ก "จำเป็น" บางส่วนอาจหายไปจากไฟล์ต้นฉบับในโครงสร้างต้นทางของ Android และเขียนโดย assemble_vintf
ในขณะที่สร้าง ต้องมีแท็ก "จำเป็น" ในไฟล์ที่เกี่ยวข้องบนอุปกรณ์
-
?xml
- ไม่จำเป็น. มันให้ข้อมูลแก่ตัวแยกวิเคราะห์ XML เท่านั้น
-
compatibility-matrix.version
- ที่จำเป็น. รุ่น Meta ของเมทริกซ์ความเข้ากันได้นี้ อธิบายองค์ประกอบที่คาดหวังในเมทริกซ์ความเข้ากันได้ ไม่เกี่ยวข้องกับเวอร์ชัน XML
-
compatibility-matrix.type
- ที่จำเป็น. ประเภทของเมทริกซ์ความเข้ากันได้นี้:
-
"device"
: เมทริกซ์ความเข้ากันได้ของอุปกรณ์ -
"framework"
: เมทริกซ์ความเข้ากันได้ของกรอบงาน
-
-
manifest.level
- จำเป็นสำหรับเมทริกซ์ความเข้ากันได้ของเฟรมเวิร์ก ใน Android 12 และสูงกว่า อนุญาตให้ใช้ในไฟล์เมทริกซ์ความเข้ากันได้ของเฟรมเวิร์กในผลิตภัณฑ์และพาร์ติชัน system_ext ระบุ Framework Compatibility Matrix Version (FCM Version) ของไฟล์นี้ อย่าประกาศสิ่งนี้ในเมทริกซ์ความเข้ากันได้ของเฟรมเวิร์กเฉพาะอุปกรณ์ (เช่น
DEVICE_FRAMEWORK_COMPATIBILITY_MATRIX_FILE
) -
compatibility-matrix.hal
- ไม่บังคับและสามารถทำซ้ำได้ แสดงรายการ HAL เดียว (HIDL หรือเนทีฟ) ที่เจ้าของเมทริกซ์ความเข้ากันได้ (เฟรมเวิร์กหรืออุปกรณ์) จำเป็นต้องมี รายการ HAL นั้นแยกตามองค์ประกอบ
<name>
; สามารถมีรายการ HAL ได้หลายรายการที่มีชื่อเดียวกัน (หมายถึง "และ" เงื่อนไข) -
compatibility-matrix.hal.format
- ไม่จำเป็น. ค่าสามารถเป็นหนึ่งใน:
-
"hidl"
: HIDL HAL นี่คือค่าเริ่มต้น -
"aidl"
: AIDL HAL ใช้ได้กับเมทริกซ์ความเข้ากันได้เมตาเวอร์ชัน 2.0 เท่านั้น -
"native"
: HAL พื้นเมือง
-
-
compatibility-matrix.hal.optional
- แอตทริบิวต์เป็นทางเลือกและค่าเริ่มต้นเป็นเท็จ ระบุว่า HAL นี้เป็นตัวเลือกสำหรับเจ้าของเมทริกซ์ความเข้ากันได้ (เฟรมเวิร์กหรืออุปกรณ์) หรือไม่ หากมีการทำเครื่องหมายรายการ
<hal>
เป็นตัวเลือก หมายความว่าเจ้าของสามารถทำงานกับ HAL นี้ได้หากมีอยู่ แต่ไม่ต้องการให้มีรายการนั้น -
compatibility-matrix.hal.name
- ที่จำเป็น. ชื่อเต็มของ HAL นี้ ตัวอย่าง:
-
android.hardware.camera
(HIDL หรือ AIDL HAL) -
GLES
(เจ้าของภาษา HAL ต้องการชื่อเท่านั้น)
-
-
compatibility-matrix.hal.version
- รายการช่วงเวอร์ชัน (ดู การจับคู่ HAL ) ที่กำหนดเวอร์ชันที่เจ้าของเมทริกซ์ความเข้ากันได้ (เฟรมเวิร์กหรืออุปกรณ์) คาดหวัง
สำหรับ HIDL และ HAL ดั้งเดิม จำเป็น สามารถทำซ้ำได้โดยไม่ต้องทำซ้ำ รูปแบบเป็นหนึ่งในสิ่งต่อไปนี้:-
MAJOR . MINOR_MIN - MINOR_MAX
-
MAJOR . MINOR
(เทียบเท่ากับMAJOR . MINOR - MINOR
)
สำหรับ AIDL HAL จะต้องไม่มีอยู่ในอุปกรณ์ที่ใช้ Android 11 และต่ำกว่า ตัวเลือกบนอุปกรณ์ที่ใช้เวอร์ชันที่ใหม่กว่า ถ้าระบุไว้ รูปแบบจะเป็นอย่างใดอย่างหนึ่งต่อไปนี้:-
VERSION_MIN - VERSION_MAX
-
VERSION
(เทียบเท่ากับVERSION - VERSION
)
1
-
-
compatibility-matrix.hal.interface
- ไม่บังคับ สามารถทำซ้ำได้ รายการอินเทอร์เฟซที่จำเป็นของ HAL นี้
-
compatibility-matrix.hal.interface.name
- ที่จำเป็น. ชื่อของอินเทอร์เฟซ
-
compatibility-matrix.hal.interface.instance
- ไม่บังคับ สามารถทำซ้ำได้ รายการอินสแตนซ์ที่จำเป็นของอินเทอร์เฟซนี้
-
compatibility-matrix.hal.interface.regex-instance
- ไม่บังคับ สามารถทำซ้ำได้ รายการรูปแบบชื่ออินสแตนซ์ที่จำเป็นบนอินเทอร์เฟซนี้ ใช้รูปแบบ Extended Regular Expression
-
compatibility-matrix.kernel
- ไม่บังคับ สามารถทำซ้ำได้ ระบุรายการการกำหนดค่าเคอร์เนลที่เฟรมเวิร์กต้องการในแต่ละเวอร์ชันของเคอร์เนล
<kernel>
หลายตัวที่มี<version>
เดียวกันสามารถมีอยู่เพื่อแสดงความสัมพันธ์ "และ"<kernel>
แต่ละรายการเป็น "แฟรกเมนต์" ของข้อกำหนดที่เปิดใช้งานเฉพาะเมื่อตรงตาม<conditions>
-
compatibility-matrix.kernel.version
- ที่จำเป็น. เวอร์ชันเคอร์เนล รูปแบบคือ
VERSION . MAJOR_REVISION . MINOR_REVISION
เวอร์ชันและการแก้ไขหลักต้องตรงกันทุกประการ การแก้ไขเล็กน้อยจะกำหนดเวอร์ชัน LTS ขั้นต่ำของเคอร์เนลที่เฟรมเวิร์กคาดหวัง -
compatibility-matrix.kernel.condition
- ไม่จำเป็น. ต้องไม่มีอยู่ใน
<kernel>
แรกของแต่ละเวอร์ชัน ระบุรายการเงื่อนไข เมื่อตรงตามเงื่อนไข ข้อกำหนดที่ระบุใน<kernel>
นี้จะถูกเปิดใช้งาน -
compatibility-matrix.kernel.config
- ไม่บังคับ สามารถทำซ้ำได้ แสดงรายการ
CONFIG
ที่ต้องจับคู่กับเวอร์ชันเคอร์เนลนี้ รายการCONFIG
แต่ละรายการเป็นคู่คีย์-ค่า รายการกำหนดค่าจะแยกตามคีย์ -
compatibility-matrix.kernel.config.key
- ที่จำเป็น. ชื่อคีย์ของรายการ
CONFIG
เริ่มต้นด้วยCONFIG_
-
compatibility-matrix.kernel.config.value
- ที่จำเป็น. ค่าของรายการ
CONFIG
รูปแบบขึ้นอยู่กับประเภท:-
string
เครื่องหมายคำพูดจะถูกละไว้ -
int
ยอมรับค่าทศนิยมและเลขฐานสิบหก (ต้องขึ้นต้นด้วย0x
หรือ0X)
ตีความเป็นจำนวนเต็ม 64 บิต; การล้นทำให้เกิดการตัดทอน (โปรแกรมแยกวิเคราะห์ยอมรับค่าตั้งแต่ -2 64 + 1 ถึง 2 64 - 1, บิตที่ 65 ถูกตัดให้สั้นลง สำหรับรายละเอียด โปรดดูที่ man page ของ strtoull ) -
range
รูปแบบคือ[int]-[int]
เช่น10-20
ยอมรับค่าเลขฐานสิบหกและต้องขึ้นต้นด้วย0x
หรือ0X
สองขอบเขตต้องเป็นจำนวนเต็ม 64 บิตที่ไม่ได้ลงนาม -
tristate
สเตต ค่าที่ใช้ได้คือy
,m
และn
-
-
compatibility-matrix.kernel.config.value.type
- ที่จำเป็น. ประเภทของค่าของรายการ
CONFIG
หนึ่งใน:-
string
-
int
-
range
-
tristate
-
-
compatibility-matrix.sepolicy
- ที่จำเป็น. มีรายการที่เกี่ยวข้องกับ sepolicy ทั้งหมด ใช้โดยเมทริกซ์ความเข้ากันได้ของเฟรมเวิร์กเท่านั้น
-
compatibility-matrix.sepolicy.sepolicy-version
- จำเป็น สามารถทำซ้ำได้ อธิบายข้อกำหนดเกี่ยวกับเวอร์ชัน sepolicy สอดคล้องกับ
manifest.sepolicy.version
แต่ละอินสแตนซ์ของอิลิเมนต์กำหนดช่วงของเวอร์ชัน sepolicy -
compatibility-matrix.sepolicy.kernel-sepolicy-version
- ที่จำเป็น. ประกาศเวอร์ชันของ
policydb
ที่เฟรมเวิร์กทำงานด้วย -
compatibility-matrix.avb.vbmeta-version
- ไม่จำเป็น; ใช้โดยเมทริกซ์ความเข้ากันได้ของเฟรมเวิร์กเท่านั้น ประกาศ เวอร์ชัน AVB ที่ ใช้ในการลงนาม
system.img
เลิกใช้แล้วใน Android 10 -
compatibility-matrix.vendor-ndk
- ไม่จำเป็น; ใช้โดยเมทริกซ์ความเข้ากันได้ของอุปกรณ์เท่านั้น ประกาศข้อกำหนดของ VNDK vendor snapshot หากไม่มี จะไม่มีการระบุความต้องการ VNDK บนอิมเมจระบบ
-
compatibility-matrix.vendor-ndk.version
- ที่จำเป็น. จำนวนเต็มบวกที่ประกาศเวอร์ชัน VNDK ที่อิมเมจของผู้ขายต้องการ
-
compatibility-matrix.vendor-ndk.library
- ไม่บังคับ สามารถทำซ้ำได้ ประกาศชุดของไลบรารี VNDK ที่อิมเมจผู้ขายต้องการ ความหมายเดียวกับ
manifest.vendor-ndk.library
-
compatibility-matrix.system-sdk.version
- ไม่บังคับ สามารถทำซ้ำได้ ใช้โดยเมทริกซ์ความเข้ากันได้ของอุปกรณ์เท่านั้น ประกาศความต้องการโดยแอพผู้ขายในเวอร์ชั่น System SDK หากไม่มีข้อกำหนด System SDK จะถูกสร้างขึ้นบนอิมเมจระบบ
ส่วนนี้อธิบายเมทริกซ์ความเข้ากันได้ของเฟรมเวิร์กและอุปกรณ์ และ สคีมาเมทริกซ์ความเข้ากันได้ สำหรับกฎการจับคู่ โปรดดู กฎการจับคู่
เมทริกซ์ความเข้ากันได้ของเฟรมเวิร์ก (FCM)
เมทริกซ์ความเข้ากันได้ของเฟรมเวิร์ก (FCM) อธิบายข้อกำหนดของเฟรมเวิร์กบนอุปกรณ์ที่รัน เมทริกซ์ความเข้ากันได้ของเฟรมเวิร์กประกอบด้วยเมทริกซ์ความเข้ากันได้ของระบบ เมทริกซ์ความเข้ากันได้ของ ผลิตภัณฑ์ และเมทริกซ์ ความเข้ากันได้ของ system_ext รายการอุปกรณ์ต้องเป็นไปตามข้อกำหนดของ FCM (ข้อกำหนดที่บังคับใช้ ณ เวลาบิลด์ รันไทม์ และใน VTS)
system_ext FCM และผลิตภัณฑ์ FCM เป็นส่วนเสริมของ FCM เฉพาะอุปกรณ์ (ติดตั้งในพาร์ติชันระบบ)
- อุปกรณ์ FCM ควรสะท้อนถึงข้อกำหนดของโมดูลใน พาร์ติชันระบบ
- system_ext FCM ควรสะท้อนถึงข้อกำหนดของโมดูลในพาร์ติชัน system_ext
- ผลิตภัณฑ์ FCM ควรสะท้อนข้อกำหนดตามโมดูลใน พาร์ติชันผลิตภัณฑ์
FCM ทั้งหมดควรสอดคล้องกับการแก้ไขของ OEM ต่อเฟรมเวิร์กในระบบ ผลิตภัณฑ์ และพาร์ติชัน system_ext ตัวอย่างเช่น หากแอปที่ติดตั้งในพาร์ติชันผลิตภัณฑ์ใช้ส่วนขยายผู้ขายของอินเทอร์เฟซ HAL ควรประกาศข้อกำหนดอินเทอร์เฟซ HAL ในผลิตภัณฑ์ FCM
ตัวอย่างไฟล์เมทริกซ์ความเข้ากันได้ของระบบ:
<?xml version="1.0" encoding="UTF-8"?> <!-- Comments, Legal notices, etc. here --> <compatibility-matrix version="1.0" type="framework" level="3"> <hal> <name>android.hardware.camera</name> <version>1.0</version> <version>3.1-4</version> <interface> <name>ICameraProvider</name> <instance>default</instance> <regex-instance>[a-z_]+/[0-9]+</regex-instance> </interface> </hal> <hal> <name>android.hardware.nfc</name> <version>1.0</version> <interface> <name>INfc</name> <instance>default</instance> </interface> </hal> <hal optional="true"> <name>android.hardware.graphics.composer</name> <version>2.1</version> <interface> <name>IComposer</name> <instance>default</instance> </interface> </hal> <hal format="aidl" optional="true"> <name>android.hardware.light</name> <version>1-2</version> <interface> <name>ILights</name> <instance>default</instance> </interface> </hal> <hal format="native"> <name>GL</name> <version>1.1</version> <version>3.0</version> </hal> <hal format="native"> <name>EGL</name> <version>1.1</version> </hal> <kernel version="3.18.51"> <!-- common configs --> </kernel> <kernel version="3.18.51"> <!-- arm specific configs --> <condition> <config> <key>CONFIG_ARM</key> <value type="tristate">y</value> </config> <condition> <config> <key>CONFIG_A</key> <value type="string"></value> </config> <config> <key>CONFIG_B</key> <value type="tristate">y</value> </config> </kernel> <kernel version="4.1.22"> <!-- common configs --> <config> <key>CONFIG_A</key> <value type="string">foo</value> </config> <config> <key>CONFIG_B2</key> <value type="int">1024</value> </config> </kernel> <sepolicy> <kernel-sepolicy-version>30</kernel-sepolicy-version> <sepolicy-version>25.0</sepolicy-version> <sepolicy-version>26.0-3</sepolicy-version> </sepolicy> <avb> <vbmeta-version>2.1</vbmeta-version> </avb> <xmlfile format="dtd"> <name>media_profile</name> <version>1.0</version> <path>/system/etc/media_profile_V1_0.dtd</path> </xmlfile> </compatibility-matrix>
สำหรับรายละเอียดเพิ่มเติม โปรดดู FCM Lifecycle
เมทริกซ์ความเข้ากันได้ของผลิตภัณฑ์
ผลิตภัณฑ์ FCM เป็นไฟล์เมทริกซ์ความเข้ากันได้ของเฟรมเวิร์กในพาร์ติชันผลิตภัณฑ์ วัตถุ VINTF รวมผลิตภัณฑ์ FCM กับ FCM ในระบบและพาร์ติชัน system_ext ที่รันไทม์
ตัวอย่างไฟล์ FCM ของผลิตภัณฑ์:
<?xml version="1.0" encoding="UTF-8"?> <!-- Comments, Legal notices, etc. here --> <compatibility-matrix version="1.0" type="framework"> <hal> <name>vendor.foo.camera</name> <version>1.0</version> <interface> <name>IBetterCamera</name> <instance>default</instance> </interface> </hal> </compatibility-matrix>
เมทริกซ์ความเข้ากันได้ของ System_ext
system_ext FCM เป็นไฟล์เมทริกซ์ความเข้ากันได้ของเฟรมเวิร์กในพาร์ติชัน system_ext วัตถุ VINTF รวม system_ext FCM กับ FCMs ในพาร์ติชันระบบและผลิตภัณฑ์ที่รันไทม์ ดู เมทริกซ์ความเข้ากันได้ของผลิตภัณฑ์ สำหรับตัวอย่างไฟล์ system_ext FCM
เมทริกซ์ความเข้ากันได้ของอุปกรณ์ (DCM)
เมทริกซ์ความเข้ากันได้ของอุปกรณ์อธิบายชุดข้อกำหนดที่อุปกรณ์คาดหวังจากเฟรมเวิร์ก (ข้อกำหนดที่บังคับใช้เมื่อเปิดตัวและเวลา OTA)
ตัวอย่างไฟล์ DCM:
<?xml version="1.0" encoding="UTF-8"?> <!-- Comments, Legal notices, etc. here --> <compatibility-matrix version="1.0" type="device"> <hal> <name>android.hidl.manager</name> <version>1.0</version> <interface> <name>IServiceManager</name> <instance>default</instance> </interface> </hal> <hal> <name>android.hidl.memory</name> <version>1.0</version> <interface> <name>IMemory</name> <instance>ashmem</instance> </interface> </hal> <hal> <name>android.hidl.allocator</name> <version>1.0</version> <interface> <name>IAllocator</name> <instance>ashmem</instance> </interface> </hal> <hal> <name>android.framework.sensor</name> <version>1.0</version> <interface> <name>ISensorManager</name> <instance>default</instance> </interface> </hal> <vendor-ndk> <version>27</version> </vendor-ndk> <system-sdk> <version>27</version> </system-sdk> </compatibility-matrix>
สคีมาเมทริกซ์ความเข้ากันได้
ส่วนนี้อธิบายความหมายของแท็ก XML เหล่านี้ แท็ก "จำเป็น" บางส่วนอาจหายไปจากไฟล์ต้นฉบับในโครงสร้างต้นทางของ Android และเขียนโดย assemble_vintf
ในขณะที่สร้าง ต้องมีแท็ก "จำเป็น" ในไฟล์ที่เกี่ยวข้องบนอุปกรณ์
-
?xml
- ไม่จำเป็น. มันให้ข้อมูลแก่ตัวแยกวิเคราะห์ XML เท่านั้น
-
compatibility-matrix.version
- ที่จำเป็น. รุ่น Meta ของเมทริกซ์ความเข้ากันได้นี้ อธิบายองค์ประกอบที่คาดหวังในเมทริกซ์ความเข้ากันได้ ไม่เกี่ยวข้องกับเวอร์ชัน XML
-
compatibility-matrix.type
- ที่จำเป็น. ประเภทของเมทริกซ์ความเข้ากันได้นี้:
-
"device"
: เมทริกซ์ความเข้ากันได้ของอุปกรณ์ -
"framework"
: เมทริกซ์ความเข้ากันได้ของกรอบงาน
-
-
manifest.level
- จำเป็นสำหรับเมทริกซ์ความเข้ากันได้ของเฟรมเวิร์ก ใน Android 12 และสูงกว่า อนุญาตให้ใช้ในไฟล์เมทริกซ์ความเข้ากันได้ของเฟรมเวิร์กในผลิตภัณฑ์และพาร์ติชัน system_ext ระบุ Framework Compatibility Matrix Version (FCM Version) ของไฟล์นี้ อย่าประกาศสิ่งนี้ในเมทริกซ์ความเข้ากันได้ของเฟรมเวิร์กเฉพาะอุปกรณ์ (เช่น
DEVICE_FRAMEWORK_COMPATIBILITY_MATRIX_FILE
) -
compatibility-matrix.hal
- ไม่บังคับและสามารถทำซ้ำได้ แสดงรายการ HAL เดียว (HIDL หรือเนทีฟ) ที่เจ้าของเมทริกซ์ความเข้ากันได้ (เฟรมเวิร์กหรืออุปกรณ์) จำเป็นต้องมี รายการ HAL นั้นแยกตามองค์ประกอบ
<name>
; สามารถมีรายการ HAL ได้หลายรายการที่มีชื่อเดียวกัน (หมายถึง "และ" เงื่อนไข) -
compatibility-matrix.hal.format
- ไม่จำเป็น. ค่าสามารถเป็นหนึ่งใน:
-
"hidl"
: HIDL HAL นี่คือค่าเริ่มต้น -
"aidl"
: AIDL HAL ใช้ได้กับเมทริกซ์ความเข้ากันได้เมตาเวอร์ชัน 2.0 เท่านั้น -
"native"
: HAL พื้นเมือง
-
-
compatibility-matrix.hal.optional
- แอตทริบิวต์เป็นทางเลือกและค่าเริ่มต้นเป็นเท็จ ระบุว่า HAL นี้เป็นตัวเลือกสำหรับเจ้าของเมทริกซ์ความเข้ากันได้ (เฟรมเวิร์กหรืออุปกรณ์) หรือไม่ หากมีการทำเครื่องหมายรายการ
<hal>
เป็นตัวเลือก หมายความว่าเจ้าของสามารถทำงานกับ HAL นี้ได้หากมีอยู่ แต่ไม่ต้องการให้มีรายการนั้น -
compatibility-matrix.hal.name
- ที่จำเป็น. ชื่อเต็มของ HAL นี้ ตัวอย่าง:
-
android.hardware.camera
(HIDL หรือ AIDL HAL) -
GLES
(เจ้าของภาษา HAL ต้องการชื่อเท่านั้น)
-
-
compatibility-matrix.hal.version
- รายการช่วงเวอร์ชัน (ดู การจับคู่ HAL ) ที่กำหนดเวอร์ชันที่เจ้าของเมทริกซ์ความเข้ากันได้ (เฟรมเวิร์กหรืออุปกรณ์) คาดหวัง
สำหรับ HIDL และ HAL ดั้งเดิม จำเป็น สามารถทำซ้ำได้โดยไม่ต้องทำซ้ำ รูปแบบเป็นหนึ่งในสิ่งต่อไปนี้:-
MAJOR . MINOR_MIN - MINOR_MAX
-
MAJOR . MINOR
(เทียบเท่ากับMAJOR . MINOR - MINOR
)
สำหรับ AIDL HAL จะต้องไม่มีอยู่ในอุปกรณ์ที่ใช้ Android 11 และต่ำกว่า ตัวเลือกบนอุปกรณ์ที่ใช้เวอร์ชันที่ใหม่กว่า ถ้าระบุไว้ รูปแบบจะเป็นอย่างใดอย่างหนึ่งต่อไปนี้:-
VERSION_MIN - VERSION_MAX
-
VERSION
(เทียบเท่ากับVERSION - VERSION
)
1
-
-
compatibility-matrix.hal.interface
- ไม่บังคับ สามารถทำซ้ำได้ รายการอินเทอร์เฟซที่จำเป็นของ HAL นี้
-
compatibility-matrix.hal.interface.name
- ที่จำเป็น. ชื่อของอินเทอร์เฟซ
-
compatibility-matrix.hal.interface.instance
- ไม่บังคับ สามารถทำซ้ำได้ รายการอินสแตนซ์ที่จำเป็นของอินเทอร์เฟซนี้
-
compatibility-matrix.hal.interface.regex-instance
- ไม่บังคับ สามารถทำซ้ำได้ รายการรูปแบบชื่ออินสแตนซ์ที่จำเป็นบนอินเทอร์เฟซนี้ ใช้รูปแบบ Extended Regular Expression
-
compatibility-matrix.kernel
- ไม่บังคับ สามารถทำซ้ำได้ ระบุรายการการกำหนดค่าเคอร์เนลที่เฟรมเวิร์กต้องการในแต่ละเวอร์ชันของเคอร์เนล
<kernel>
หลายตัวที่มี<version>
เดียวกันสามารถมีอยู่เพื่อแสดงความสัมพันธ์ "และ"<kernel>
แต่ละรายการเป็น "แฟรกเมนต์" ของข้อกำหนดที่เปิดใช้งานเฉพาะเมื่อตรงตาม<conditions>
-
compatibility-matrix.kernel.version
- ที่จำเป็น. เวอร์ชันเคอร์เนล รูปแบบคือ
VERSION . MAJOR_REVISION . MINOR_REVISION
เวอร์ชันและการแก้ไขหลักต้องตรงกันทุกประการ การแก้ไขเล็กน้อยจะกำหนดเวอร์ชัน LTS ขั้นต่ำของเคอร์เนลที่เฟรมเวิร์กคาดหวัง -
compatibility-matrix.kernel.condition
- ไม่จำเป็น. ต้องไม่มีอยู่ใน
<kernel>
แรกของแต่ละเวอร์ชัน ระบุรายการเงื่อนไข เมื่อตรงตามเงื่อนไข ข้อกำหนดที่ระบุใน<kernel>
นี้จะถูกเปิดใช้งาน -
compatibility-matrix.kernel.config
- ไม่บังคับ สามารถทำซ้ำได้ แสดงรายการ
CONFIG
ที่ต้องจับคู่กับเวอร์ชันเคอร์เนลนี้ รายการCONFIG
แต่ละรายการเป็นคู่คีย์-ค่า รายการกำหนดค่าจะแยกตามคีย์ -
compatibility-matrix.kernel.config.key
- ที่จำเป็น. ชื่อคีย์ของรายการ
CONFIG
เริ่มต้นด้วยCONFIG_
-
compatibility-matrix.kernel.config.value
- ที่จำเป็น. ค่าของรายการ
CONFIG
รูปแบบขึ้นอยู่กับประเภท:-
string
เครื่องหมายคำพูดจะถูกละไว้ -
int
ยอมรับค่าทศนิยมและเลขฐานสิบหก (ต้องขึ้นต้นด้วย0x
หรือ0X)
ตีความเป็นจำนวนเต็ม 64 บิต; การล้นทำให้เกิดการตัดทอน (โปรแกรมแยกวิเคราะห์ยอมรับค่าตั้งแต่ -2 64 + 1 ถึง 2 64 - 1, บิตที่ 65 ถูกตัดให้สั้นลง สำหรับรายละเอียด โปรดดูที่ man page ของ strtoull ) -
range
รูปแบบคือ[int]-[int]
เช่น10-20
ยอมรับค่าเลขฐานสิบหกและต้องขึ้นต้นด้วย0x
หรือ0X
สองขอบเขตต้องเป็นจำนวนเต็ม 64 บิตที่ไม่ได้ลงนาม -
tristate
สเตต ค่าที่ใช้ได้คือy
,m
และn
-
-
compatibility-matrix.kernel.config.value.type
- ที่จำเป็น. ประเภทของค่าของรายการ
CONFIG
หนึ่งใน:-
string
-
int
-
range
-
tristate
-
-
compatibility-matrix.sepolicy
- ที่จำเป็น. มีรายการที่เกี่ยวข้องกับ sepolicy ทั้งหมด ใช้โดยเมทริกซ์ความเข้ากันได้ของเฟรมเวิร์กเท่านั้น
-
compatibility-matrix.sepolicy.sepolicy-version
- จำเป็น สามารถทำซ้ำได้ อธิบายข้อกำหนดเกี่ยวกับเวอร์ชัน sepolicy สอดคล้องกับ
manifest.sepolicy.version
แต่ละอินสแตนซ์ของอิลิเมนต์กำหนดช่วงของเวอร์ชัน sepolicy -
compatibility-matrix.sepolicy.kernel-sepolicy-version
- ที่จำเป็น. ประกาศเวอร์ชันของ
policydb
ที่เฟรมเวิร์กทำงานด้วย -
compatibility-matrix.avb.vbmeta-version
- ไม่จำเป็น; ใช้โดยเมทริกซ์ความเข้ากันได้ของเฟรมเวิร์กเท่านั้น ประกาศ เวอร์ชัน AVB ที่ ใช้ในการลงนาม
system.img
เลิกใช้แล้วใน Android 10 -
compatibility-matrix.vendor-ndk
- ไม่จำเป็น; ใช้โดยเมทริกซ์ความเข้ากันได้ของอุปกรณ์เท่านั้น ประกาศข้อกำหนดของ VNDK vendor snapshot หากไม่มี จะไม่มีการระบุความต้องการ VNDK บนอิมเมจระบบ
-
compatibility-matrix.vendor-ndk.version
- ที่จำเป็น. จำนวนเต็มบวกที่ประกาศเวอร์ชัน VNDK ที่อิมเมจของผู้ขายต้องการ
-
compatibility-matrix.vendor-ndk.library
- ไม่บังคับ สามารถทำซ้ำได้ ประกาศชุดของไลบรารี VNDK ที่อิมเมจผู้ขายต้องการ ความหมายเดียวกับ
manifest.vendor-ndk.library
-
compatibility-matrix.system-sdk.version
- ไม่บังคับ สามารถทำซ้ำได้ ใช้โดยเมทริกซ์ความเข้ากันได้ของอุปกรณ์เท่านั้น ประกาศความต้องการโดยแอพผู้ขายในเวอร์ชั่น System SDK หากไม่มีข้อกำหนด System SDK จะถูกสร้างขึ้นบนอิมเมจระบบ
ส่วนนี้อธิบายเมทริกซ์ความเข้ากันได้ของเฟรมเวิร์กและอุปกรณ์ และ สคีมาเมทริกซ์ความเข้ากันได้ สำหรับกฎการจับคู่ โปรดดู กฎการจับคู่
เมทริกซ์ความเข้ากันได้ของเฟรมเวิร์ก (FCM)
เมทริกซ์ความเข้ากันได้ของเฟรมเวิร์ก (FCM) อธิบายข้อกำหนดของเฟรมเวิร์กบนอุปกรณ์ที่รัน เมทริกซ์ความเข้ากันได้ของเฟรมเวิร์กประกอบด้วยเมทริกซ์ความเข้ากันได้ของระบบ เมทริกซ์ความเข้ากันได้ของ ผลิตภัณฑ์ และเมทริกซ์ ความเข้ากันได้ของ system_ext รายการอุปกรณ์ต้องเป็นไปตามข้อกำหนดของ FCM (ข้อกำหนดที่บังคับใช้ ณ เวลาบิลด์ รันไทม์ และใน VTS)
system_ext FCM และผลิตภัณฑ์ FCM เป็นส่วนเสริมของ FCM เฉพาะอุปกรณ์ (ติดตั้งในพาร์ติชันระบบ)
- อุปกรณ์ FCM ควรสะท้อนถึงข้อกำหนดของโมดูลใน พาร์ติชันระบบ
- system_ext FCM ควรสะท้อนถึงข้อกำหนดของโมดูลในพาร์ติชัน system_ext
- ผลิตภัณฑ์ FCM ควรสะท้อนข้อกำหนดตามโมดูลใน พาร์ติชันผลิตภัณฑ์
FCM ทั้งหมดควรสอดคล้องกับการแก้ไขของ OEM ต่อเฟรมเวิร์กในระบบ ผลิตภัณฑ์ และพาร์ติชัน system_ext ตัวอย่างเช่น หากแอปที่ติดตั้งในพาร์ติชันผลิตภัณฑ์ใช้ส่วนขยายผู้ขายของอินเทอร์เฟซ HAL ควรประกาศข้อกำหนดอินเทอร์เฟซ HAL ในผลิตภัณฑ์ FCM
ตัวอย่างไฟล์เมทริกซ์ความเข้ากันได้ของระบบ:
<?xml version="1.0" encoding="UTF-8"?> <!-- Comments, Legal notices, etc. here --> <compatibility-matrix version="1.0" type="framework" level="3"> <hal> <name>android.hardware.camera</name> <version>1.0</version> <version>3.1-4</version> <interface> <name>ICameraProvider</name> <instance>default</instance> <regex-instance>[a-z_]+/[0-9]+</regex-instance> </interface> </hal> <hal> <name>android.hardware.nfc</name> <version>1.0</version> <interface> <name>INfc</name> <instance>default</instance> </interface> </hal> <hal optional="true"> <name>android.hardware.graphics.composer</name> <version>2.1</version> <interface> <name>IComposer</name> <instance>default</instance> </interface> </hal> <hal format="aidl" optional="true"> <name>android.hardware.light</name> <version>1-2</version> <interface> <name>ILights</name> <instance>default</instance> </interface> </hal> <hal format="native"> <name>GL</name> <version>1.1</version> <version>3.0</version> </hal> <hal format="native"> <name>EGL</name> <version>1.1</version> </hal> <kernel version="3.18.51"> <!-- common configs --> </kernel> <kernel version="3.18.51"> <!-- arm specific configs --> <condition> <config> <key>CONFIG_ARM</key> <value type="tristate">y</value> </config> <condition> <config> <key>CONFIG_A</key> <value type="string"></value> </config> <config> <key>CONFIG_B</key> <value type="tristate">y</value> </config> </kernel> <kernel version="4.1.22"> <!-- common configs --> <config> <key>CONFIG_A</key> <value type="string">foo</value> </config> <config> <key>CONFIG_B2</key> <value type="int">1024</value> </config> </kernel> <sepolicy> <kernel-sepolicy-version>30</kernel-sepolicy-version> <sepolicy-version>25.0</sepolicy-version> <sepolicy-version>26.0-3</sepolicy-version> </sepolicy> <avb> <vbmeta-version>2.1</vbmeta-version> </avb> <xmlfile format="dtd"> <name>media_profile</name> <version>1.0</version> <path>/system/etc/media_profile_V1_0.dtd</path> </xmlfile> </compatibility-matrix>
สำหรับรายละเอียดเพิ่มเติม โปรดดู FCM Lifecycle
เมทริกซ์ความเข้ากันได้ของผลิตภัณฑ์
ผลิตภัณฑ์ FCM เป็นไฟล์เมทริกซ์ความเข้ากันได้ของเฟรมเวิร์กในพาร์ติชันผลิตภัณฑ์ วัตถุ VINTF รวมผลิตภัณฑ์ FCM กับ FCM ในระบบและพาร์ติชัน system_ext ที่รันไทม์
ตัวอย่างไฟล์ FCM ของผลิตภัณฑ์:
<?xml version="1.0" encoding="UTF-8"?> <!-- Comments, Legal notices, etc. here --> <compatibility-matrix version="1.0" type="framework"> <hal> <name>vendor.foo.camera</name> <version>1.0</version> <interface> <name>IBetterCamera</name> <instance>default</instance> </interface> </hal> </compatibility-matrix>
เมทริกซ์ความเข้ากันได้ของ System_ext
system_ext FCM เป็นไฟล์เมทริกซ์ความเข้ากันได้ของเฟรมเวิร์กในพาร์ติชัน system_ext วัตถุ VINTF รวม system_ext FCM กับ FCMs ในพาร์ติชันระบบและผลิตภัณฑ์ที่รันไทม์ ดู เมทริกซ์ความเข้ากันได้ของผลิตภัณฑ์ สำหรับตัวอย่างไฟล์ system_ext FCM
เมทริกซ์ความเข้ากันได้ของอุปกรณ์ (DCM)
เมทริกซ์ความเข้ากันได้ของอุปกรณ์อธิบายชุดข้อกำหนดที่อุปกรณ์คาดหวังจากเฟรมเวิร์ก (ข้อกำหนดที่บังคับใช้เมื่อเปิดตัวและเวลา OTA)
ตัวอย่างไฟล์ DCM:
<?xml version="1.0" encoding="UTF-8"?> <!-- Comments, Legal notices, etc. here --> <compatibility-matrix version="1.0" type="device"> <hal> <name>android.hidl.manager</name> <version>1.0</version> <interface> <name>IServiceManager</name> <instance>default</instance> </interface> </hal> <hal> <name>android.hidl.memory</name> <version>1.0</version> <interface> <name>IMemory</name> <instance>ashmem</instance> </interface> </hal> <hal> <name>android.hidl.allocator</name> <version>1.0</version> <interface> <name>IAllocator</name> <instance>ashmem</instance> </interface> </hal> <hal> <name>android.framework.sensor</name> <version>1.0</version> <interface> <name>ISensorManager</name> <instance>default</instance> </interface> </hal> <vendor-ndk> <version>27</version> </vendor-ndk> <system-sdk> <version>27</version> </system-sdk> </compatibility-matrix>
สคีมาเมทริกซ์ความเข้ากันได้
ส่วนนี้อธิบายความหมายของแท็ก XML เหล่านี้ แท็ก "จำเป็น" บางส่วนอาจหายไปจากไฟล์ต้นฉบับในโครงสร้างต้นทางของ Android และเขียนโดย assemble_vintf
ในขณะที่สร้าง ต้องมีแท็ก "จำเป็น" ในไฟล์ที่เกี่ยวข้องบนอุปกรณ์
-
?xml
- ไม่จำเป็น. มันให้ข้อมูลแก่ตัวแยกวิเคราะห์ XML เท่านั้น
-
compatibility-matrix.version
- ที่จำเป็น. รุ่น Meta ของเมทริกซ์ความเข้ากันได้นี้ อธิบายองค์ประกอบที่คาดหวังในเมทริกซ์ความเข้ากันได้ ไม่เกี่ยวข้องกับเวอร์ชัน XML
-
compatibility-matrix.type
- ที่จำเป็น. ประเภทของเมทริกซ์ความเข้ากันได้นี้:
-
"device"
: เมทริกซ์ความเข้ากันได้ของอุปกรณ์ -
"framework"
: เมทริกซ์ความเข้ากันได้ของกรอบงาน
-
-
manifest.level
- จำเป็นสำหรับเมทริกซ์ความเข้ากันได้ของเฟรมเวิร์ก ใน Android 12 และสูงกว่า อนุญาตให้ใช้ในไฟล์เมทริกซ์ความเข้ากันได้ของเฟรมเวิร์กในผลิตภัณฑ์และพาร์ติชัน system_ext ระบุ Framework Compatibility Matrix Version (FCM Version) ของไฟล์นี้ อย่าประกาศสิ่งนี้ในเมทริกซ์ความเข้ากันได้ของเฟรมเวิร์กเฉพาะอุปกรณ์ (เช่น
DEVICE_FRAMEWORK_COMPATIBILITY_MATRIX_FILE
) -
compatibility-matrix.hal
- ไม่บังคับและสามารถทำซ้ำได้ แสดงรายการ HAL เดียว (HIDL หรือเนทีฟ) ที่เจ้าของเมทริกซ์ความเข้ากันได้ (เฟรมเวิร์กหรืออุปกรณ์) จำเป็นต้องมี รายการ HAL นั้นแยกตามองค์ประกอบ
<name>
; สามารถมีรายการ HAL ได้หลายรายการที่มีชื่อเดียวกัน (หมายถึง "และ" เงื่อนไข) -
compatibility-matrix.hal.format
- ไม่จำเป็น. ค่าสามารถเป็นหนึ่งใน:
-
"hidl"
: HIDL HAL นี่คือค่าเริ่มต้น -
"aidl"
: AIDL HAL ใช้ได้กับเมทริกซ์ความเข้ากันได้เมตาเวอร์ชัน 2.0 เท่านั้น -
"native"
: HAL พื้นเมือง
-
-
compatibility-matrix.hal.optional
- แอตทริบิวต์เป็นทางเลือกและค่าเริ่มต้นเป็นเท็จ ระบุว่า HAL นี้เป็นตัวเลือกสำหรับเจ้าของเมทริกซ์ความเข้ากันได้ (เฟรมเวิร์กหรืออุปกรณ์) หรือไม่ หากมีการทำเครื่องหมายรายการ
<hal>
เป็นตัวเลือก หมายความว่าเจ้าของสามารถทำงานกับ HAL นี้ได้หากมีอยู่ แต่ไม่ต้องการให้มีรายการนั้น -
compatibility-matrix.hal.name
- ที่จำเป็น. ชื่อเต็มของ HAL นี้ ตัวอย่าง:
-
android.hardware.camera
(HIDL หรือ AIDL HAL) -
GLES
(เจ้าของภาษา HAL ต้องการชื่อเท่านั้น)
-
-
compatibility-matrix.hal.version
- รายการช่วงเวอร์ชัน (ดู การจับคู่ HAL ) ที่กำหนดเวอร์ชันที่เจ้าของเมทริกซ์ความเข้ากันได้ (เฟรมเวิร์กหรืออุปกรณ์) คาดหวัง
สำหรับ HIDL และ HAL ดั้งเดิม จำเป็น สามารถทำซ้ำได้โดยไม่ต้องทำซ้ำ รูปแบบเป็นหนึ่งในสิ่งต่อไปนี้:-
MAJOR . MINOR_MIN - MINOR_MAX
-
MAJOR . MINOR
(เทียบเท่ากับMAJOR . MINOR - MINOR
)
สำหรับ AIDL HAL จะต้องไม่มีอยู่ในอุปกรณ์ที่ใช้ Android 11 และต่ำกว่า ตัวเลือกบนอุปกรณ์ที่ใช้เวอร์ชันที่ใหม่กว่า ถ้าระบุไว้ รูปแบบจะเป็นอย่างใดอย่างหนึ่งต่อไปนี้:-
VERSION_MIN - VERSION_MAX
-
VERSION
(เทียบเท่ากับVERSION - VERSION
)
1
-
-
compatibility-matrix.hal.interface
- ไม่บังคับ สามารถทำซ้ำได้ รายการอินเทอร์เฟซที่จำเป็นของ HAL นี้
-
compatibility-matrix.hal.interface.name
- ที่จำเป็น. ชื่อของอินเทอร์เฟซ
-
compatibility-matrix.hal.interface.instance
- ไม่บังคับ สามารถทำซ้ำได้ รายการอินสแตนซ์ที่จำเป็นของอินเทอร์เฟซนี้
-
compatibility-matrix.hal.interface.regex-instance
- ไม่บังคับ สามารถทำซ้ำได้ รายการรูปแบบชื่ออินสแตนซ์ที่จำเป็นบนอินเทอร์เฟซนี้ ใช้รูปแบบ Extended Regular Expression
-
compatibility-matrix.kernel
- ไม่บังคับ สามารถทำซ้ำได้ ระบุรายการการกำหนดค่าเคอร์เนลที่เฟรมเวิร์กต้องการในแต่ละเวอร์ชันของเคอร์เนล
<kernel>
หลายตัวที่มี<version>
เดียวกันสามารถมีอยู่เพื่อแสดงความสัมพันธ์ "และ"<kernel>
แต่ละรายการเป็น "แฟรกเมนต์" ของข้อกำหนดที่เปิดใช้งานเฉพาะเมื่อตรงตาม<conditions>
-
compatibility-matrix.kernel.version
- ที่จำเป็น. เวอร์ชันเคอร์เนล รูปแบบคือ
VERSION . MAJOR_REVISION . MINOR_REVISION
เวอร์ชันและการแก้ไขหลักต้องตรงกันทุกประการ การแก้ไขเล็กน้อยจะกำหนดเวอร์ชัน LTS ขั้นต่ำของเคอร์เนลที่เฟรมเวิร์กคาดหวัง -
compatibility-matrix.kernel.condition
- ไม่จำเป็น. ต้องไม่มีอยู่ใน
<kernel>
แรกของแต่ละเวอร์ชัน ระบุรายการเงื่อนไข เมื่อตรงตามเงื่อนไข ข้อกำหนดที่ระบุใน<kernel>
นี้จะถูกเปิดใช้งาน -
compatibility-matrix.kernel.config
- ไม่บังคับ สามารถทำซ้ำได้ แสดงรายการ
CONFIG
ที่ต้องจับคู่กับเวอร์ชันเคอร์เนลนี้ รายการCONFIG
แต่ละรายการเป็นคู่คีย์-ค่า รายการกำหนดค่าจะแยกตามคีย์ -
compatibility-matrix.kernel.config.key
- ที่จำเป็น. ชื่อคีย์ของรายการ
CONFIG
เริ่มต้นด้วยCONFIG_
-
compatibility-matrix.kernel.config.value
- ที่จำเป็น. ค่าของรายการ
CONFIG
รูปแบบขึ้นอยู่กับประเภท:-
string
เครื่องหมายคำพูดจะถูกละไว้ -
int
ยอมรับค่าทศนิยมและเลขฐานสิบหก (ต้องขึ้นต้นด้วย0x
หรือ0X)
ตีความเป็นจำนวนเต็ม 64 บิต; การล้นทำให้เกิดการตัดทอน (โปรแกรมแยกวิเคราะห์ยอมรับค่าตั้งแต่ -2 64 + 1 ถึง 2 64 - 1, บิตที่ 65 ถูกตัดให้สั้นลง สำหรับรายละเอียด โปรดดูที่ man page ของ strtoull ) -
range
รูปแบบคือ[int]-[int]
เช่น10-20
ยอมรับค่าเลขฐานสิบหกและต้องขึ้นต้นด้วย0x
หรือ0X
สองขอบเขตต้องเป็นจำนวนเต็ม 64 บิตที่ไม่ได้ลงนาม -
tristate
สเตต ค่าที่ใช้ได้คือy
,m
และn
-
-
compatibility-matrix.kernel.config.value.type
- ที่จำเป็น. ประเภทของค่าของรายการ
CONFIG
หนึ่งใน:-
string
-
int
-
range
-
tristate
-
-
compatibility-matrix.sepolicy
- ที่จำเป็น. มีรายการที่เกี่ยวข้องกับ sepolicy ทั้งหมด ใช้โดยเมทริกซ์ความเข้ากันได้ของเฟรมเวิร์กเท่านั้น
-
compatibility-matrix.sepolicy.sepolicy-version
- จำเป็น สามารถทำซ้ำได้ อธิบายข้อกำหนดเกี่ยวกับเวอร์ชัน sepolicy สอดคล้องกับ
manifest.sepolicy.version
แต่ละอินสแตนซ์ของอิลิเมนต์กำหนดช่วงของเวอร์ชัน sepolicy -
compatibility-matrix.sepolicy.kernel-sepolicy-version
- ที่จำเป็น. ประกาศเวอร์ชันของ
policydb
ที่เฟรมเวิร์กทำงานด้วย -
compatibility-matrix.avb.vbmeta-version
- ไม่จำเป็น; ใช้โดยเมทริกซ์ความเข้ากันได้ของเฟรมเวิร์กเท่านั้น ประกาศ เวอร์ชัน AVB ที่ ใช้ในการลงนาม
system.img
เลิกใช้แล้วใน Android 10 -
compatibility-matrix.vendor-ndk
- ไม่จำเป็น; ใช้โดยเมทริกซ์ความเข้ากันได้ของอุปกรณ์เท่านั้น ประกาศข้อกำหนดของ VNDK vendor snapshot หากไม่มี จะไม่มีการระบุความต้องการ VNDK บนอิมเมจระบบ
-
compatibility-matrix.vendor-ndk.version
- ที่จำเป็น. จำนวนเต็มบวกที่ประกาศเวอร์ชัน VNDK ที่อิมเมจผู้ขายต้องการ
-
compatibility-matrix.vendor-ndk.library
- ไม่บังคับ สามารถทำซ้ำได้ ประกาศชุดของไลบรารี VNDK ที่อิมเมจผู้ขายต้องการ ความหมายเดียวกับ
manifest.vendor-ndk.library
-
compatibility-matrix.system-sdk.version
- ไม่บังคับ สามารถทำซ้ำได้ ใช้โดยเมทริกซ์ความเข้ากันได้ของอุปกรณ์เท่านั้น ประกาศความต้องการโดยแอพผู้ขายในเวอร์ชั่น System SDK หากไม่มี จะไม่มีการระบุข้อกำหนด SDK ของระบบในอิมเมจระบบ