एंड्रॉइड डिवाइस में कई विभाजन शामिल होते हैं जो बूट प्रक्रिया में विभिन्न कार्यों को पूरा करते हैं।
मानक विभाजन
boot
विभाजन। इस विभाजन में एक कर्नेल छवि है और इसेmkbootimg
का उपयोग करके बनाया गया है। आप किसी नए बूट पार्टीशन को फ्लैश किए बिना किसी भी छवि को सीधे फ्लैश करने के लिए वर्चुअल पार्टीशन का उपयोग कर सकते हैं। इस विभाजन में Android 13 से पहले लॉन्च किए गए उपकरणों में सामान्य रैमडिस्क भी शामिल है।गिरी वर्चुअल
kernel
विभाजन पुराने कर्नेल छवि पर नई कर्नेल छवि लिखकर कर्नेल (zImage
,zImage-dtb
,Image.gz-dtb
) को अधिलेखित कर देता है। यदि आपूर्ति किया गया विकास कर्नेल असंगत है, तो आपको संबंधित कर्नेल मॉड्यूल के साथvendor
,system
, याdtb
विभाजन (यदि मौजूद है) को अद्यतन करने की आवश्यकता हो सकती है।रैमडिस्क वर्चुअल
ramdisk
विभाजन पुराने रैमडिस्क छवि पर नई रैमडिस्क छवि लिखकर रैमडिस्क को अधिलेखित कर देता है।
ओवरराइट ऑपरेशन ईएमएमसी में मौजूदा छवि के प्रारंभ स्थान को निर्धारित करता है और नई छवि को उस स्थान पर कॉपी करता है। नई छवि (कर्नेल या रैमडिस्क) मौजूदा छवि से बड़ी हो सकती है; जगह बनाने के लिए, बूटलोडर छवि के बाद डेटा को स्थानांतरित कर सकता है या एक त्रुटि के साथ ऑपरेशन को छोड़ सकता है।
init_boot
विभाजन। इस विभाजन में Android 13 और उसके बाद के उपकरणों के लिए सामान्य रैमडिस्क शामिल है।system
विभाजन। इस विभाजन में Android ढांचा शामिल है।odm
विभाजन। इस विभाजन में सिस्टम-ऑन-चिप (SoC) विक्रेता बोर्ड-समर्थन पैकेज (BSP) के लिए मूल डिज़ाइन निर्माता (ODM) अनुकूलन शामिल हैं। इस तरह के अनुकूलन ODM को SoC घटकों को बदलने या अनुकूलित करने में सक्षम बनाते हैं, और हार्डवेयर एब्स्ट्रैक्शन लेयर्स (HALs) पर बोर्ड-विशिष्ट घटकों, डेमॉन और ODM-विशिष्ट सुविधाओं के लिए कर्नेल मॉड्यूल को लागू करते हैं। यह विभाजन वैकल्पिक है; आमतौर पर, इसका उपयोग अनुकूलन को शामिल करने के लिए किया जाता है ताकि डिवाइस एकाधिक हार्डवेयर SKU के लिए एकल विक्रेता छवि का उपयोग कर सकें। विवरण के लिए, ODM विभाजन देखें।odm_dlkm
विभाजन। यह विभाजन ODM कर्नेल मॉड्यूल को संग्रहीत करने के लिए समर्पित है।odm_dlkm
पार्टीशन में ODM कर्नेल मॉड्यूल को स्टोर करना (odm
पार्टीशन के विपरीत)odm
पार्टीशन को अपडेट किए बिना ODM कर्नेल मॉड्यूल को अपडेट करना संभव बनाता है।recovery
विभाजन। यह विभाजन पुनर्प्राप्ति छवि को संग्रहीत करता है, जिसे OTA प्रक्रिया के दौरान बूट किया जाता है। निर्बाध अद्यतन का समर्थन करने वाले उपकरण पुनर्प्राप्ति छवियों कोboot
याinit_boot
छवि (एक अलग छवि के बजाय) में निहित रैमडिस्क के रूप में संग्रहीत कर सकते हैं।cache
विभाजन। यह विभाजन अस्थायी डेटा संग्रहीत करता है और वैकल्पिक है यदि कोई उपकरण निर्बाध अद्यतन का उपयोग करता है। कैश विभाजन को बूटलोडर से लिखने योग्य होने की आवश्यकता नहीं है, लेकिन इसे मिटाने योग्य होने की आवश्यकता है। विभाजन का आकार डिवाइस के प्रकार औरuserdata
पर स्थान की उपलब्धता पर निर्भर करता है; आमतौर पर, 50 एमबी–100 एमबी पर्याप्त है।misc
विभाजन। यह विभाजन पुनर्प्राप्ति विभाजन द्वारा उपयोग किया जाता है और यह 4 KB या उससे बड़ा है।userdata
विभाजन। इस विभाजन में अनुकूलन डेटा सहित उपयोगकर्ता द्वारा इंस्टॉल किए गए ऐप्स और डेटा शामिल हैं।metadata
विभाजन। जब डिवाइस मेटाडेटा एन्क्रिप्शन का उपयोग करता है तो इस विभाजन का उपयोग मेटाडेटा एन्क्रिप्शन कुंजी को संग्रहीत करने के लिए किया जाता है। आकार 16 एमबी या उससे बड़ा है। यह एन्क्रिप्टेड नहीं है और इसका डेटा स्नैपशॉट नहीं है। डिवाइस के फ़ैक्टरी रीसेट होने पर इसे मिटा दिया जाता है। इस विभाजन का उपयोग सख्ती से सीमित है।vendor
विभाजन। इस विभाजन में कोई भी बाइनरी है जो AOSP को वितरण योग्य नहीं है। यदि डिवाइस में मालिकाना जानकारी नहीं है, तो आप इस विभाजन को छोड़ सकते हैं।vendor_dlkm
विभाजन। यह विभाजन विक्रेता कर्नेल मॉड्यूल को संग्रहीत करने के लिए समर्पित है। विक्रेता कर्नेल मॉड्यूल को विक्रेता_vendor_dlkm
विभाजन में संग्रहीत करना (vendor
विभाजन के विपरीत)vendor
विभाजन को अद्यतन किए बिना कर्नेल मॉड्यूल को अद्यतन करना संभव बनाता है।radio
विभाजन। इस विभाजन में रेडियो छवि है और केवल उन उपकरणों के लिए आवश्यक है जिनमें एक समर्पित विभाजन में रेडियो-विशिष्ट सॉफ़्टवेयर वाला रेडियो शामिल है।tos
विभाजन। यह विभाजन ट्रस्टी ओएस की बाइनरी छवि को संग्रहीत करता है और इसका उपयोग केवल तभी किया जाता है जब डिवाइस में ट्रस्टी शामिल हो। विवरण के लिए, टीओएस विभाजन देखें।
गतिशील विभाजन
एंड्रॉइड 11 और उच्चतर चलाने वाले डिवाइस गतिशील विभाजन का समर्थन कर सकते हैं, जो एंड्रॉइड के लिए एक उपयोगकर्ता स्थान विभाजन प्रणाली है जो ओवर-द-एयर (ओटीए) अपडेट के दौरान विभाजन बनाने, आकार बदलने या नष्ट करने में सक्षम बनाता है। विवरण के लिए, गतिशील विभाजन देखें।
महत्वपूर्ण विभाजन नामित करना
यदि डिवाइस को चलाने के लिए विशिष्ट विभाजन या डेटा की आवश्यकता होती है, तो आपको उन विभाजनों/डेटा को या तो पूरी तरह से संरक्षित या फिर से फ्लैश करने योग्य के रूप में नामित करना होगा, जिसका अर्थ है कि वे fastboot oem
कमांड का उपयोग करके पुन: निर्माण योग्य, प्रदान किए गए या निकालने योग्य हैं। इसमें प्रति-डिवाइस फ़ैक्टरी-विशिष्ट सेटिंग्स, सीरियल नंबर, कैलिब्रेशन डेटा, और बहुत कुछ जैसे डेटा शामिल हैं।
Android 11 में बदलाव
एंड्रॉइड 11 में विभाजन में कई बदलाव शामिल हैं, जिसमें पुस्तकालयों को जोड़ने पर प्रतिबंध और नए सूंग छवि संस्करण शामिल हैं।
चित्र 1. Android 11 में विभाजन लेआउट
सिंगल सिस्टम इमेज (एसएसआई)। एक नई, वैचारिक छवि जिसमें
system
औरsystem_ext
छवियां शामिल हैं। जब ये विभाजन लक्ष्य उपकरणों के एक सेट के लिए सामान्य होते हैं, तो वे उपकरण SSI को साझा कर सकते हैं औरsystem
औरsystem_ext
छवियों का निर्माण छोड़ सकते हैं।system_ext
विभाजन। एक नया विभाजन जोsystem
संसाधनों का उपयोग कर सकता है और इसमें सिस्टम मॉड्यूल शामिल हो सकते हैं:system
विभाजन में AOSP सिस्टम मॉड्यूल बढ़ाएँ। हम ऐसे मॉड्यूल को AOSP में अपस्ट्रीमिंग करने की अनुशंसा करते हैं ताकि बाद में उन्हेंsystem
विभाजन में स्थापित किया जा सके।बंडल OEM या SoC- विशिष्ट मॉड्यूल। हम ऐसे मॉड्यूल को अनबंडल करने की सलाह देते हैं ताकि उन्हें
product
याvendor
विभाजन में स्थापित किया जा सके।
system
विभाजन। OEM उत्पादों के लिए उपयोग की जाने वाली सामान्य सिस्टम छवि। हम मालिकाना मॉड्यूल कोsystem
विभाजन से बाहर ले जाने की सलाह देते हैं, या तो उन्हें AOSP में अपस्ट्रीम करके या उन्हेंsystem_ext
पार्टीशन में ले जाकर।product
विभाजन। यह विभाजन अब उत्पाद-विशिष्ट मॉड्यूल को स्थापित करने के लिए अनुमत इंटरफेस का उपयोग कर सकता है जो किसी अन्य विभाजन के साथ बंडल नहीं हैं।
वीएनडीके परिवर्तन
वेंडर नेटिव डेवलपमेंट किट (वीएनडीके) system
विभाजन में स्थापित पुस्तकालयों का एक सेट है और विशेष रूप से विक्रेताओं के लिए उनके एचएएल को लागू करने के लिए डिज़ाइन किया गया है।
Android 10 और उसके बाद के संस्करण में,
vendor
विभाजन सिस्टम विभाजन में VNDK पुस्तकालयों से लिंक कर सकता है, लेकिनsystem
विभाजन में अन्य पुस्तकालयों से लिंक नहीं कर सकताsystem
।product
विभाजन में मूल मॉड्यूलsystem
विभाजन में किसी भी पुस्तकालय से जुड़ सकते हैं।एंड्रॉइड 11 और उच्चतर में,
product
औरvendor
विभाजन सिस्टम विभाजन में वीएनडीके पुस्तकालयों से लिंक कर सकते हैं, लेकिनsystem
विभाजन में अन्य पुस्तकालयों से लिंक नहीं कर सकतेsystem
।
जल्द ही उत्पाद के प्रकार
सूंग बिल्ड सिस्टम बिल्ड निर्भरता को विभाजित करने के लिए इमेज वेरिएंट का उपयोग करता है। नेटिव मॉड्यूल ( /build/soong/cc
) सिस्टम प्रोसेस मॉड्यूल को कोर वेरिएंट में और वेंडर प्रोसेस मॉड्यूल को वेंडर वेरिएंट में बदल सकते हैं; एक छवि संस्करण में एक मॉड्यूल एक अलग छवि संस्करण में अन्य मॉड्यूल से लिंक नहीं हो सकता है।
एंड्रॉइड 10 या उससे कम में, एक सिस्टम मॉड्यूल स्वचालित रूप से कोर वेरिएंट बनाता है। यह अपनी
Android.bp
फ़ाइलों मेंvendor_available: true
को परिभाषित करके वेंडर वेरिएंट भी बना सकता है; यह विक्रेता मॉड्यूल को सिस्टम मॉड्यूल से लिंक करने में सक्षम बनाता है। VNDK लाइब्रेरी, जोsystem
लाइब्रेरी के वेंडर वेरिएंट हैं, वेंडर मॉड्यूल के लिए वेंडर वेरिएंट भी बना सकते हैं,vendor_available: true
को अपनीAndroid.bp
फाइलों में परिभाषित करके ( उदाहरण देखें)।एंड्रॉइड 11 में, एक सिस्टम मॉड्यूल
vendor_available: true
को परिभाषित करके एक उत्पाद संस्करण (कोर और वेंडर वेरिएंट के अलावा) भी बना सकता है।एंड्रॉइड 12 या उच्चतर में, विक्रेता_उपलब्ध के साथ एक सिस्टम मॉड्यूल
vendor_available: true
कोर संस्करण के अलावा एक विक्रेता संस्करण बनाता है। उत्पाद प्रकार बनाने के लिए,product_available: true
परिभाषित किया जाना चाहिए। उत्पाद_उपलब्ध के बिना कुछ वीएनडीके पुस्तकालयproduct_available: true
उत्पाद मॉड्यूल के लिए उपलब्ध नहीं हैं।