อุปกรณ์ Android มีพาร์ติชันหลายพาร์ติชันที่ให้บริการฟังก์ชันที่แตกต่างกันใน กระบวนการเปิดเครื่อง
พาร์ติชันมาตรฐาน
พาร์ติชัน
boot
พาร์ติชันนี้มีอิมเมจเคอร์เนลและสร้างขึ้นแล้ว ด้วยmkbootimg
คุณสามารถใช้พาร์ติชันเสมือนเพื่อแฟลชอิมเมจใดก็ได้ โดยตรงโดยไม่ต้องแฟลชพาร์ติชันการเปิดเครื่องใหม่ พาร์ติชันนี้ยังมี RAM ดิสก์ทั่วไปในอุปกรณ์ที่เปิดตัวก่อน Android 13เคอร์เนล พาร์ติชันเสมือนของ
kernel
จะเขียนทับเคอร์เนล (zImage
,zImage-dtb
,Image.gz-dtb
) โดยการเขียนอิมเมจเคอร์เนลใหม่ทับภาพเก่า เคอร์เนล หากเคอร์เนลสำหรับการพัฒนาซอฟต์แวร์ที่ระบุใช้ร่วมกันไม่ได้ คุณอาจ ต้องอัปเดตพาร์ติชันvendor
,system
หรือdtb
(หากมี) ด้วย โมดูลเคอร์เนลที่เกี่ยวข้องramdisk พาร์ติชันเสมือน
ramdisk
จะเขียนทับ RAM โดยใช้ เขียนรูปภาพ ramdisk ใหม่ทับรูปภาพ ramdisk เดิม
การดำเนินการเขียนทับจะระบุตำแหน่งเริ่มต้นของอิมเมจที่มีอยู่ ใน eMMC และคัดลอกภาพใหม่ไปยังตำแหน่งนั้น ภาพใหม่ (เคอร์เนลหรือ ramdisk) นั้นอาจมากกว่าไฟล์ที่มีอยู่ เพื่อเพิ่มพื้นที่ว่าง Bootloader สามารถย้ายข้อมูลตามอิมเมจหรือยกเลิกการดำเนินการด้วย ข้อผิดพลาด
พาร์ติชัน
init_boot
พาร์ติชันนี้มี RAM ทั่วไปสำหรับ อุปกรณ์ที่มาพร้อม Android 13 ขึ้นไปพาร์ติชัน
system
พาร์ติชันนี้มีเฟรมเวิร์ก Androidพาร์ติชัน
odm
พาร์ติชันนี้มีผู้ผลิตดีไซน์ดั้งเดิม (ODM) การปรับแต่งแพ็กเกจการสนับสนุนบอร์ดของผู้ให้บริการ (SoC) ในระบบแบบออนชิป (BSP) การปรับแต่งดังกล่าวช่วยให้ ODM แทนที่หรือปรับแต่งคอมโพเนนต์ SoC ได้ และ ใช้โมดูลเคอร์เนลสำหรับคอมโพเนนต์เฉพาะบอร์ด, Daemon และ ฟีเจอร์เฉพาะ ODM ในเลเยอร์แอบสแตรกต์ของฮาร์ดแวร์ (HAL) พาร์ติชันนี้ ไม่บังคับ โดยปกติจะใช้ในการปรับแต่งเพื่อให้อุปกรณ์ ใช้อิมเมจผู้ให้บริการรูปเดียวสำหรับ SKU ฮาร์ดแวร์หลายรายการ โปรดดูรายละเอียดที่ ODM พาร์ติชันพาร์ติชัน
odm_dlkm
พาร์ติชันนี้มีไว้เพื่อจัดเก็บเคอร์เนล ODM โดยเฉพาะ โมดูล การจัดเก็บโมดูลเคอร์เนล ODM ในพาร์ติชันodm_dlkm
(ตรงข้ามกับ กับพาร์ติชันodm
) ทำให้อัปเดตโมดูลเคอร์เนล ODM ได้ โดยไม่ต้องอัปเดตพาร์ติชันodm
พาร์ติชัน
recovery
พาร์ติชันนี้จัดเก็บอิมเมจการกู้คืนซึ่งก็คือ ที่เปิดเครื่องในระหว่างกระบวนการ OTA อุปกรณ์ที่รองรับการใช้งานอย่างราบรื่น อัปเดตสามารถจัดเก็บอิมเมจการกู้คืนเป็น ramdisk มีอยู่ในรูปภาพboot
หรือinit_boot
(ไม่ใช่แยกต่างหาก รูปภาพ)พาร์ติชัน
cache
พาร์ติชันนี้จัดเก็บข้อมูลชั่วคราวและไม่บังคับ ในกรณีที่อุปกรณ์ใช้การอัปเดต อย่างราบรื่น พาร์ติชันของแคชไม่จำเป็นต้องมี ที่เขียนจาก Bootloader ได้ แต่ต้องลบข้อมูลได้ พาร์ติชัน ขนาดจะขึ้นอยู่กับประเภทอุปกรณ์และพื้นที่ว่างในuserdata
โดยปกติ 50 MB–100 MB ก็เพียงพอแล้วพาร์ติชัน
misc
พาร์ติชันการกู้คืนนี้ใช้โดยพาร์ติชันการกู้คืน และ 4 KB ขึ้นไปพาร์ติชัน
userdata
พาร์ติชันนี้มีแอปที่ผู้ใช้ติดตั้งและ ซึ่งรวมถึงข้อมูลการปรับแต่งพาร์ติชัน
metadata
พาร์ติชันนี้ใช้เก็บข้อมูลเมตา คีย์การเข้ารหัสเมื่ออุปกรณ์ใช้ข้อมูลเมตา การเข้ารหัส ขนาดคือ 16 MB ขึ้นไป โดยที่ไม่ได้เข้ารหัสและระบบจะไม่สแนปชอตข้อมูล โดยระบบจะลบข้อมูลเมื่อรีเซ็ตอุปกรณ์เป็นค่าเริ่มต้น การใช้งานพาร์ติชันนี้คือ อย่างเคร่งครัดพาร์ติชัน
vendor
พาร์ติชันนี้มีไบนารีที่ไม่ใช่ ซึ่งเผยแพร่ให้กับ AOSP ได้ หากอุปกรณ์ไม่มีข้อมูลที่เป็นกรรมสิทธิ์ ก็ข้ามพาร์ติชันนี้ได้พาร์ติชัน
vendor_dlkm
พาร์ติชันนี้มีไว้เพื่อจัดเก็บผู้ให้บริการโดยเฉพาะ โมดูลเคอร์เนล การจัดเก็บโมดูลเคอร์เนลของผู้ให้บริการในพาร์ติชันvendor_dlkm
(ตรงข้ามกับพาร์ติชันvendor
) ทำให้อัปเดตเคอร์เนลได้ โดยไม่ต้องอัปเดตพาร์ติชันvendor
พาร์ติชัน
radio
พาร์ติชันนี้มีอิมเมจวิทยุและจำเป็นต้องใช้ สำหรับอุปกรณ์ที่มีวิทยุซึ่งมีซอฟต์แวร์เกี่ยวกับวิทยุในรูปแบบ พาร์ติชันเฉพาะพาร์ติชัน
tos
พาร์ติชันนี้จัดเก็บอิมเมจไบนารีของ Trusty OS และใช้เฉพาะเมื่ออุปกรณ์มี Trusty เท่านั้น โปรดดูรายละเอียดที่หัวข้อ TOS พาร์ติชันพาร์ติชัน
pvmfw
พาร์ติชันนี้จัดเก็บเครื่องเสมือนที่มีการป้องกัน เฟิร์มแวร์ (pvmfw) ซึ่งเป็นโค้ดแรกที่ทำงานใน VM ที่มีการป้องกัน โปรดดู เฟิร์มแวร์ของเครื่องเสมือนที่มีการป้องกัน เพื่อดูรายละเอียดเพิ่มเติม
พาร์ติชันแบบไดนามิก
อุปกรณ์ที่ใช้ Android 11 ขึ้นไปสามารถรองรับ พาร์ติชันแบบไดนามิก ซึ่งเป็นระบบการแบ่งพาร์ติชันพื้นที่ผู้ใช้สำหรับ Android ที่ ช่วยให้สร้าง ปรับขนาด หรือทำลายพาร์ติชันระหว่างการเชื่อมต่อผ่านอากาศ (OTA) ได้ อัปเดต โปรดดูรายละเอียดที่หัวข้อไดนามิก พาร์ติชัน
กำหนดพาร์ติชันที่สำคัญ
หากอุปกรณ์ต้องใช้พาร์ติชันหรือข้อมูลเฉพาะที่จะเรียกใช้ คุณต้องกำหนด
พาร์ติชันหรือข้อมูลเหล่านั้นได้รับการปกป้องอย่างเต็มที่หรือเป็นแบบแฟลชได้ หมายความว่า
ให้สร้างอีกครั้ง ระบุ หรือแตกข้อมูลได้โดยใช้คำสั่ง fastboot oem
ซึ่งรวมถึงข้อมูลอย่างเช่น การตั้งค่าเฉพาะจากโรงงานต่ออุปกรณ์ หมายเลขซีเรียล
ข้อมูลการเทียบมาตรฐาน และอื่นๆ
การเปลี่ยนแปลงใน Android 11
Android 11 มีการเปลี่ยนแปลงมากมายกับพาร์ติชัน รวมถึงข้อจำกัดในการลิงก์ไปยังไลบรารีและตัวแปรรูปภาพใหม่ของ Soong
รูปที่ 1 เลย์เอาต์พาร์ติชันใน Android 11
อิมเมจระบบเดียว (SSI) รูปภาพเชิงแนวคิดใหม่ที่มีฟังก์ชัน
system
และsystem_ext
รูปภาพ เมื่อพาร์ติชันเหล่านี้เป็นเรื่องปกติสำหรับชุดหนึ่งๆ ของอุปกรณ์เป้าหมาย อุปกรณ์เหล่านั้นสามารถแชร์ SSI และข้ามการสร้างsystem
และsystem_ext
รูปภาพพาร์ติชัน
system_ext
พาร์ติชันใหม่ที่ใช้ทรัพยากรsystem
ได้ และอาจรวมถึงโมดูลระบบที่มีลักษณะดังนี้ขยายโมดูลระบบ AOSP ในพาร์ติชัน
system
คำแนะนำจากเรา อัปสตรีมโมดูลดังกล่าวไปยัง AOSP เพื่อให้ติดตั้งไปยังsystem
ได้ แบ่งพาร์ติชันภายหลังแพ็กเกจโมดูลเฉพาะ OEM หรือ SoC เราขอแนะนำให้เลิกรวมกลุ่มโมดูลดังกล่าว เพื่อให้ติดตั้งลงในพาร์ติชัน
product
หรือvendor
ได้
พาร์ติชัน
system
อิมเมจระบบทั่วไปที่ใช้สำหรับผลิตภัณฑ์ OEM พ เราขอแนะนำให้ย้ายโมดูลที่เป็นกรรมสิทธิ์ออกจากพาร์ติชันsystem
ไม่ว่าจะโดย หรือทำการอัปสตรีมให้กับ AOSP หรือย้ายไปยังพาร์ติชันsystem_ext
พาร์ติชัน
product
พาร์ติชันนี้สามารถใช้อินเทอร์เฟซที่ได้รับอนุญาตเพื่อ ติดตั้งโมดูลเฉพาะผลิตภัณฑ์ที่ไม่ได้รวมกับโมดูลอื่นๆ พาร์ติชัน
การเปลี่ยนแปลง VNDK
ชุดเครื่องมือพัฒนาซอฟต์แวร์แบบเนทีฟสำหรับผู้ให้บริการ (VNDK)
เป็นชุดไลบรารีที่ติดตั้งในพาร์ติชัน system
และ
เฉพาะสำหรับผู้ให้บริการในการใช้ HAL ของตนเอง
ใน Android 10 และต่ำกว่า พาร์ติชัน
vendor
จะลิงก์กับไลบรารี VNDK ได้ใน พาร์ติชันsystem
แต่ลิงก์กับไลบรารีอื่นๆ ในsystem
ไม่ได้ พาร์ติชัน โมดูลเนทีฟในพาร์ติชันproduct
จะลิงก์กับไลบรารีใดก็ได้ ในพาร์ติชันsystem
ใน Android 11 ขึ้นไป
product
และvendor
พาร์ติชันจะลิงก์กับไลบรารี VNDK ในพาร์ติชันsystem
ได้ แต่จะลิงก์ไม่ได้ ลิงก์ไปยังไลบรารีอื่นๆ ในพาร์ติชันsystem
ผลิตภัณฑ์ย่อยของผลิตภัณฑ์ Soong
ระบบบิลด์ Soong ใช้ตัวแปรรูปภาพในการแยก
ทรัพยากร Dependency ของบิลด์ โมดูลเนทีฟ (/build/soong/cc
) เปลี่ยนแปลงระบบได้
ประมวลผลโมดูลไปยังตัวแปรหลักและโมดูลกระบวนการของผู้ให้บริการไปยัง
ตัวแปรของผู้ให้บริการ โมดูลในตัวแปรรูปภาพ 1 รายการไม่สามารถลิงก์ไปยังโมดูลอื่นๆ ใน
รูปภาพประเภทอื่น
ใน Android 10 หรือต่ำกว่า โมดูลระบบจะสร้างตัวแปรหลักโดยอัตโนมัติ และสร้างตัวแปรผู้ให้บริการโดยกําหนด
vendor_available: true
ในตัวแปรAndroid.bp
ไฟล์ การทำเช่นนี้จะทำให้โมดูลของผู้ให้บริการลิงก์ไปยังโมดูลของระบบได้ ไลบรารี VNDK ซึ่งเป็นรายละเอียดปลีกย่อยของผู้ให้บริการของไลบรารีsystem
ยังสามารถ สร้างตัวแปรของผู้ให้บริการสำหรับโมดูลของผู้ให้บริการโดยการกำหนดvendor_available: true
ในไฟล์Android.bp
(โปรดดู ตัวอย่าง)ใน Android 11 โมดูลระบบยังสามารถ สร้างผลิตภัณฑ์ย่อย (นอกเหนือจากตัวแปรหลักและตัวแปรของผู้ให้บริการ) โดยใช้ กำลังกำหนด
vendor_available: true
ใน Android 12 ขึ้นไป โมดูลระบบที่มี
vendor_available: true
สร้างตัวแปรผู้ให้บริการนอกเหนือจากตัวแปรหลัก รายละเอียดปลีกย่อย หากต้องการสร้างผลิตภัณฑ์ย่อยของผลิตภัณฑ์ คุณต้องใส่product_available: true
กำหนดไว้ ไลบรารี VNDK บางรายการที่ไม่มีproduct_available: true
ใช้ไม่ได้ สำหรับโมดูลผลิตภัณฑ์