อุปกรณ์ Android มีพาร์ติชันหลายรายการหรือส่วนที่เฉพาะเจาะจงของพื้นที่เก็บข้อมูล ที่ใช้เพื่อจัดเก็บส่วนที่เฉพาะเจาะจงของซอฟต์แวร์ของอุปกรณ์ แต่ละพาร์ติชัน มีอิมเมจพาร์ติชัน (ไฟล์ IMG) หรือสแนปชอตของซอฟต์แวร์ทั้งหมดสำหรับ พาร์ติชัน รูปที่ 1 แสดงเลย์เอาต์ของพาร์ติชันหลักในอุปกรณ์
รูปที่ 1 เลย์เอาต์ของพาร์ติชันหลัก
พาร์ติชันแบ่งออกเป็น 3 หมวดหมู่ ดังนี้
พาร์ติชันระบบคือพาร์ติชันที่จะอัปเดตเมื่ออัปเดตระบบปฏิบัติการ และฟีเจอร์อื่นๆ
system
,boot
และinit_boot
เป็นพาร์ติชันหลักของระบบพาร์ติชันของผู้ให้บริการมีโค้ดเฉพาะอุปกรณ์และฮาร์ดแวร์ที่อาจ ไม่ได้รับการอัปเดตหลังจากเผยแพร่ครั้งแรก พาร์ติชัน
vendor
,vendor_boot
และodm
เป็นพาร์ติชันหลักพาร์ติชันที่อัปเดตไม่ได้คือพาร์ติชันที่เนื้อหาไม่อัปเดต หรืออัปเดตด้วยข้อมูลผู้ใช้
โค้ดในพาร์ติชันระบบและพาร์ติชันของผู้ให้บริการสามารถโต้ตอบกันได้โดยใช้อินเทอร์เฟซที่เสถียร ซึ่งเรียกว่าอินเทอร์เฟซของผู้ให้บริการ (VINTF)
พาร์ติชันระบบ
ต่อไปนี้คือรายการพาร์ติชันระบบทั้งหมดและการใช้งาน
boot
พาร์ติชัน พาร์ติชันนี้มีรูปภาพเคอร์เนลทั่วไป (GKI) พาร์ติชันนี้ยังมี ramdisk ทั่วไปในอุปกรณ์ที่เปิดตัวใน Android 12 และต่ำกว่าด้วย ดูข้อมูลเพิ่มเติมเกี่ยวกับ Ramdisk ทั่วไปได้ที่ เนื้อหาของอิมเมจ Ramdisk ทั่วไปพาร์ติชัน
init_boot
(Android 13 ขึ้นไป) พาร์ติชันนี้มี ramdisk ทั่วไป ใน Android 11 และ 12 แรมดิสก์ทั่วไปจะอยู่ในพาร์ติชันboot
system
พาร์ติชัน พาร์ติชันนี้มีอิมเมจระบบที่ใช้ สำหรับผลิตภัณฑ์ OEMsystem_ext
พาร์ติชัน พาร์ติชันนี้มีทรัพยากรของระบบและโมดูลระบบที่เป็นกรรมสิทธิ์ซึ่งขยายอิมเมจระบบทั่วไปในพาร์ติชันsystem
system_dlkm
พาร์ติชัน พาร์ติชันนี้มีโมดูล GKI ดูข้อมูลเพิ่มเติมเกี่ยวกับพาร์ติชันนี้ได้ที่ใช้พาร์ติชันโมดูล GKIproduct
พาร์ติชัน พาร์ติชันนี้มีโมดูลเฉพาะผลิตภัณฑ์ ซึ่งไม่ได้รวมอยู่ในพาร์ติชันอื่นๆpvmfw
พาร์ติชัน พาร์ติชันนี้จัดเก็บเฟิร์มแวร์เครื่องเสมือนที่ได้รับการปกป้อง (pvmfw) ซึ่งเป็นโค้ดแรกที่ทำงานใน VM ที่ได้รับการปกป้อง ดูข้อมูลเพิ่มเติมได้ที่เฟิร์มแวร์ของเครื่องเสมือนที่ได้รับการปกป้องgeneric_bootloader
พาร์ติชัน พาร์ติชันนี้มี Bootloader ทั่วไป
พาร์ติชันของผู้ให้บริการ
ต่อไปนี้คือรายการพาร์ติชันของผู้ให้บริการทั้งหมดและการใช้งาน
vendor_boot
พาร์ติชัน พาร์ติชันนี้มีโค้ดการบูต เฉพาะผู้ให้บริการ ดูข้อมูลเพิ่มเติมได้ที่พาร์ติชันการบูตของผู้ให้บริการrecovery
พาร์ติชัน พาร์ติชันนี้จะจัดเก็บอิมเมจการกู้คืน ซึ่งจะ บูตในระหว่างกระบวนการอัปเดตผ่านอากาศ (OTA) อุปกรณ์ที่รองรับการอัปเดตที่ราบรื่นจะจัดเก็บอิมเมจการกู้คืนเป็น ramdisk ที่อยู่ในอิมเมจboot
หรือinit_boot
ดูข้อมูลเพิ่มเติมเกี่ยวกับการอัปเดตที่ราบรื่นได้ที่การอัปเดต A/B (ราบรื่น)vbmeta
พาร์ติชัน พาร์ติชันนี้มีข้อมูลการบูตที่ยืนยันแล้ว สำหรับพาร์ติชันทั้งหมด ข้อมูลนี้จะยืนยันว่าอิมเมจที่ติดตั้งในแต่ละพาร์ติชันเชื่อถือได้ ดูข้อมูลเพิ่มเติมเกี่ยวกับ การเปิดเครื่องที่ได้รับการยืนยันได้ที่ การเปิดเครื่องที่ได้รับการยืนยันvendor
พาร์ติชัน พาร์ติชันนี้มีไบนารีที่เฉพาะเจาะจงสำหรับผู้ให้บริการ และไม่เป็นแบบทั่วไปพอที่จะเผยแพร่ไปยัง AOSPvendor_dlkm
พาร์ติชัน พาร์ติชันนี้มีโมดูลเคอร์เนลของผู้ให้บริการ การจัดเก็บโมดูลเคอร์เนลของผู้ให้บริการในพาร์ติชันนี้ แทนที่จะจัดเก็บในพาร์ติชันvendor
จะช่วยให้คุณอัปเดตโมดูลเคอร์เนล ได้โดยไม่ต้องอัปเดตพาร์ติชันvendor
ดูข้อมูลเพิ่มเติมได้ที่พาร์ติชัน DKLM ของผู้ให้บริการและ ODModm
พาร์ติชัน พาร์ติชันนี้มีการปรับแต่งของผู้ผลิตการออกแบบดั้งเดิม (ODM) สำหรับแพ็กเกจการสนับสนุนบอร์ด (BSP) ของผู้จำหน่ายระบบวงจรรวมบนชิป (SoC) การปรับแต่งดังกล่าวช่วยให้ ODM สามารถแทนที่หรือปรับแต่งคอมโพเนนต์ SoC และ ใช้โมดูลเคอร์เนลสำหรับคอมโพเนนต์เฉพาะบอร์ด, Daemon และ ฟีเจอร์เฉพาะของ ODM ในเลเยอร์การแยกฮาร์ดแวร์ (HAL) พาร์ติชันนี้เป็นแบบ ไม่บังคับ โดยปกติแล้ว พาร์ติชันนี้จะใช้เพื่อเก็บการปรับแต่งเพื่อให้ อุปกรณ์ ใช้รูปภาพของผู้ให้บริการรายเดียวสำหรับ SKU ฮาร์ดแวร์หลายรายการได้ ดูข้อมูลเพิ่มเติมได้ที่พาร์ติชัน ODModm_dlkm
พาร์ติชัน พาร์ติชันนี้มีไว้สำหรับจัดเก็บโมดูลเคอร์เนล ODM การจัดเก็บโมดูลเคอร์เนล ODM ในพาร์ติชันนี้แทนที่จะจัดเก็บในพาร์ติชันodm
จะช่วยให้คุณอัปเดตโมดูลเคอร์เนล ODM ได้โดยไม่ต้องอัปเดตพาร์ติชันodm
ดูข้อมูลเพิ่มเติมได้ที่พาร์ติชัน DKLM ของผู้ให้บริการและ ODMradio
พาร์ติชัน พาร์ติชันนี้มีอิมเมจวิทยุและจำเป็นสำหรับอุปกรณ์ที่มีวิทยุพร้อมซอฟต์แวร์เฉพาะวิทยุในพาร์ติชันเฉพาะเท่านั้น
พาร์ติชันที่อัปเดตไม่ได้
ต่อไปนี้คือรายการพาร์ติชันทั้งหมดที่อัปเดตไม่ได้และการใช้งาน
cache
พาร์ติชัน พาร์ติชันนี้มีข้อมูลชั่วคราวและไม่บังคับ หากอุปกรณ์ใช้การอัปเดตแบบไร้รอยต่อ พาร์ติชันนี้ไม่จำเป็นต้อง เขียนได้จาก Bootloader แต่ต้องลบได้ ขนาดพาร์ติชัน จะขึ้นอยู่กับประเภทอุปกรณ์และความพร้อมใช้งานของพื้นที่ในuserdata
โดยปกติแล้ว 50-100 MB ก็เพียงพอuserdata
พาร์ติชัน พาร์ติชันนี้มีแอปและข้อมูลที่ผู้ใช้ติดตั้ง รวมถึงข้อมูลการปรับแต่งmetadata
พาร์ติชัน หากอุปกรณ์ใช้การเข้ารหัสข้อมูลเมตา พาร์ติชันนี้จะมีคีย์การเข้ารหัสข้อมูลเมตา พาร์ติชันนี้มีขนาด 16 MB ขึ้นไป ไม่ได้เข้ารหัส และไม่ได้ สร้างสแนปชอตข้อมูล ระบบจะลบพาร์ติชันนี้เมื่อรีเซ็ตอุปกรณ์เป็นค่าเริ่มต้น
กฎและคำแนะนำในการอัปเดตพาร์ติชัน
เราขอแนะนำให้อัปเดตพาร์ติชันระบบทั้งหมดพร้อมกัน และพาร์ติชันของผู้ให้บริการทั้งหมดพร้อมกัน การอัปเดตชุดพาร์ติชันโดยรวมช่วยให้คุณทดสอบเพื่อยืนยันว่าอินเทอร์เฟซระหว่างรูปภาพในแต่ละพาร์ติชันยังคงเสถียร
ไม่ว่าคุณจะอัปเดตพาร์ติชันอย่างไร คุณต้องอัปเดตพาร์ติชันต่อไปนี้เนื่องจากมีการอิงกันอย่างใกล้ชิดและไม่มี API ที่เสถียร
- พาร์ติชัน
boot
และsystem_dlkm
- พาร์ติชัน
init_boot
,system
,system_ext
และproduct
พาร์ติชันแบบไดนามิก
อุปกรณ์ที่ใช้ Android 11 ขึ้นไปรองรับ พาร์ติชันแบบไดนามิก ซึ่งเป็นระบบการแบ่งพาร์ติชันในพื้นที่ผู้ใช้สำหรับ Android ที่ ช่วยให้คุณสร้าง ปรับขนาด หรือทำลายพาร์ติชันได้ในระหว่างการอัปเดต ผ่านอากาศ (OTA) ดูข้อมูลเพิ่มเติมได้ที่พาร์ติชันแบบไดนามิก
misc
พาร์ติชัน พาร์ติชันนี้ใช้โดยพาร์ติชันการกู้คืนและมีขนาด 4 KB ขึ้นไปtos
พาร์ติชัน พาร์ติชันนี้มีอิมเมจไบนารีของ Trusty OS และจะใช้ก็ต่อเมื่ออุปกรณ์มี Trusty เท่านั้น ดูข้อมูลเพิ่มเติมได้ที่ พาร์ติชัน Trusty OS (TOS)
ผลิตภัณฑ์ย่อยของ Soong
ระบบบิลด์ Soong ใช้รูปภาพย่อยเพื่อแยกทรัพยากร Dependency ของบิลด์
โมดูลเนทีฟ (/build/soong/cc
) สามารถเปลี่ยนโมดูลกระบวนการของระบบ
ให้เป็นโมดูลกระบวนการหลักและโมดูลกระบวนการของผู้ให้บริการให้เป็น
โมดูลกระบวนการของผู้ให้บริการได้ โมดูลในอิมเมจเวอร์ชันหนึ่งจะลิงก์กับโมดูลอื่นๆ ใน
อิมเมจเวอร์ชันอื่นไม่ได้
ใน Android 12 ขึ้นไป โมดูลระบบที่มี
vendor_available: true
จะสร้างตัวแปรของผู้ให้บริการนอกเหนือจากตัวแปรหลัก
ต้องกำหนด product_available: true
เพื่อสร้างผลิตภัณฑ์ย่อย ไลบรารี VNDK บางรายการที่ไม่มี product_available: true
จะไม่พร้อมใช้งานสำหรับโมดูลผลิตภัณฑ์