Android 10 में यह सुविधा शामिल है
Android बिल्ड सिस्टम का इस्तेमाल करने वाले odm
पार्टिशन.
ओडीएम के बंटवारे के बारे में जानकारी
ओरिजनल डिज़ाइन मैन्युफ़ैक्चरर (ओडीएम), सिस्टम-ऑन-चिप (SoC) वेंडर को पसंद के मुताबिक बनाते हैं अपने खास डिवाइस (अपने बोर्ड) के लिए बोर्ड-सहायता पैकेज (बीएसपी). यह उन्हें बोर्ड के खास कॉम्पोनेंट के लिए कर्नेल मॉड्यूल लागू करने में मदद करता है, बोर्ड के हिसाब से डीमन या हार्डवेयर ऐब्स्ट्रैक्ट लेयर पर उनकी खुद की सुविधाएं (एचएएल). यह भी हो सकता है कि वे SoC कॉम्पोनेंट को बदलना चाहें या उन्हें पसंद के मुताबिक बनाना चाहें.
Android के पहले वाले वर्शन में, इस तरह की सेटिंग की वजह से
एक ही SoC (या अलग-अलग SoC वाले) डिवाइसों के लिए वेंडर इमेज
एक ही परिवार के सदस्य हैं). Android 10 और उसके बाद वाले वर्शन में,
इसे पसंद के मुताबिक बनाने के लिए, odm
को अलग से बांटें. इससे आपको ये काम करने में मदद मिलती है
कई हार्डवेयर SKU के लिए एक वेंडर इमेज का इस्तेमाल करता है.
प्रॉडक्ट और ODM विभाजनों का इस्तेमाल करें
Android 9 वाले इस वर्शन में, यह सुविधा जोड़ी गई
product
पार्टिशन, जिसकी मदद से कई सॉफ़्टवेयर के लिए एक सिस्टम इमेज का इस्तेमाल किया जा सकता है
SKU की अलग-अलग product.img
इमेज ने उपलब्ध कराई हैं. हालांकि
product
पार्टिशन, सॉफ़्टवेयर SKU के लिए है.
odm
पार्टिशन, हार्डवेयर SKU के लिए है.
खास तौर पर बनाए गए प्रॉडक्ट और ODM सेगमेंट के साथ, system
का इस्तेमाल किया जा सकता है
कई सॉफ़्टवेयर SKU के बीच शेयर करने के लिए, जेनरिक कोड को होस्ट करने के लिए पार्टीशन और
SoC के लिए बनाए गए बीएसपी कोड को होस्ट करने के लिए, vendor
का बंटवारा किया गया
कई डिवाइस हो सकते हैं.
अलग-अलग सेगमेंट का इस्तेमाल करने के कुछ नुकसान हैं, जैसे कि इन सेगमेंट को मैनेज करने में समस्या डिस्क में बचा स्टोरेज. उदाहरण के लिए, आपको आने वाले समय के लिए सीमित जगह रिज़र्व करनी होगी बढ़ोतरी). हालांकि, Android 10 के लिए डाइनैमिक पार्टीशन इससे डिस्क में आ रही समस्या को हटा दिया जाता है और प्रोसेस के दौरान डिवाइस को फिर से बांटा जाता है ओवर-द-एयर (ओटीए) अपडेट हो सकता है.
ओडीएम कॉम्पोनेंट
odm
पार्टिशन में ये ODM खास कॉम्पोनेंट होते हैं
(vendor
पार्टीशन की तरह), इस टेबल में दिया गया है.
ओडीएम के लिए खास कॉम्पोनेंट | जगह की जानकारी |
---|---|
लोड किए जा सकने वाले कर्नेल मॉड्यूल (एलकेएम) | /odm/lib/modules/*.ko |
स्थानीय लाइब्रेरी | /odm/lib[64] |
एचएएल | /odm/lib[64]/hw |
एसईनीति | /odm/etc/selinux |
VINTF ऑब्जेक्ट डेटा | /odm/etc/vintf |
init.rc
फ़ाइलें |
/odm/etc/init |
सिस्टम की प्रॉपर्टी | /odm/build.prop |
रनटाइम रिसॉर्स ओवरले (आरआरओ) | /odm/overlay/*.apk |
ऐप्लिकेशन | /odm/app/*.apk |
प्रिव-ऐप्लिकेशन | /odm/priv-app/*.apk |
Java लाइब्रेरी | /odm/framework/*.jar |
Android फ़्रेमवर्क के सिस्टम से जुड़े कॉन्फ़िगरेशन | /odm/etc/sysconfig/* और /odm/etc/permissions/* |
कोई कस्टम इमेज नहीं है
इस्तेमाल न करें पसंद के मुताबिक इमेज, क्योंकि वे इन चीज़ों के लिए काम नहीं करतीं:
- किसी खास टारगेट के लिए मॉड्यूल इंस्टॉल करना. कस्टम इमेज के लिए, आर्टफ़ैक्ट को इमेज में कॉपी किया जा सकता है. हालांकि, ऐसा नहीं किया जा सकता टारगेट पार्टिशन तय करके किसी खास पार्टीशन में मॉड्यूल इंस्टॉल करना बनाने के नियम का हिस्सा है.
- सूर्यास्त.
custom_images
का इस्तेमाल करके नहीं बनाया जा सकता सूंग बिल्ड सिस्टम इस्तेमाल किया. - ओटीए अपडेट. पसंद के मुताबिक बनाई गई इमेज का इस्तेमाल इस तरह किया गया है फ़ैक्ट्री ROM ऐसी इमेज जिन्हें ओटीए-एड नहीं किया जा सकता.
सेगमेंट के बीच एबीआई को बनाए रखना
odm
विभाजन, vendor
का ही एक एक्सटेंशन है
विभाजन. ऐप्लिकेशन बाइनरी इंटरफ़ेस (एबीआई) की स्थिरता को ध्यान में रखते हुए,
को ध्यान में रखें.
पहला डायग्राम. सेगमेंट के बीच एबीआई को बनाए रखना.
odm
और के बीच एबीआई की कोई स्थिरता नहीं हैvendor
विभाजन. दोनों सेगमेंट को एक ही साथ अपग्रेड करना ज़रूरी है समय.odm
औरvendor
सेगमेंट, इन पर निर्भर कर सकते हैं एक-दूसरे से जुड़े हुए हैं, लेकिनvendor
वाला बंटवारा ज़रूरी है वह भीodm
पार्टीशन के बिना.odm
औरsystem
के बीच का एबीआई, इसके जैसा है एबीआई,vendor
औरsystem
के बीच.
product
विभाजन और
vendor
या odm
विभाजन नहीं है
अनुमति है. (यह एसई नीति से लागू किया जाता है.)
ओडीएम पार्टिशन लागू करना
नया विभाजन लागू करने से पहले, संबंधित एओएसपी बदलाव के बारे में ज़्यादा जानें.
ओडीएम पार्टिशन सेट अप करना
odm
पार्टिशन सेट अप करने के लिए, इन बिल्ड फ़्लैग को शामिल करें:
- पार्टिशन के तय साइज़ के लिए
BOARD_ODMIMAGE_PARTITION_SIZE
PRODUCT_USE_DYNAMIC_PARTITIONS
औरBOARD_ODMIMAGE_PARTITION_RESERVED_SIZE
डाइनैमिक विभाजन साइज़- इसके लिए,
BOARD_ODMIMAGE_FILE_SYSTEM_TYPE
फ़ाइल सिस्टम टाइप का इस्तेमाल किया गया ODM इमेज /odm/build.prop
के लिएPRODUCT_ODM_PROPERTIES
$(call inherit-product path/to/device.mk)
के अंदर इस्तेमाल करें, जैसे किPRODUCT_ODM_PROPERTIES += product.abc=ok
ODM पार्टीशन में मॉड्यूल इंस्टॉल करना
किसी odm
पार्टीशन में मॉड्यूल इंस्टॉल करने के लिए, इन बिल्ड फ़्लैग का इस्तेमाल करें:
device_specific: true
,Android.bp
में हैLOCAL_ODM_MODULE := true
,Android.mk
में है
वेरिफ़ाइड बूट की सुविधा चालू करें
नुकसान पहुंचाने वाले सॉफ़्टवेयर को odm
पार्टीशन के साथ छेड़छाड़ करने से रोकने के लिए,
Android वेरिफ़ाइड बूट की सुविधा चालू करें
(AVB) का इस्तेमाल किया जाएगा (ठीक वैसे ही जैसे आप vendor
और
system
विभाजन).
एवीबी को चालू करने के लिए, बिल्ड फ़्लैग को शामिल करें
BOARD_AVB_ODM_ADD_HASHTREE_FOOTER_ARGS
. कॉन्फ़िगर करने के बारे में जानकारी
डाइनैमिक पार्टीशन पर एवीबी, देखें
एवीबी कॉन्फ़िगरेशन
बदलाव के बारे में ज़्यादा जानें.
/odm को एक और /वेंडर विभाजन मानें
यह पक्का करने के लिए कि सिस्टम odm
विभाजन को
vendor
पार्टिशन, किसी भी हार्ड कोड किए गए vendor
को बदल दें
हार्डवेयर-आधारित पार्टिशन के सेट के साथ संदर्भ (वर्तमान में
odm
और vendor
). मशहूर vendor
इस प्लैटफ़ॉर्म पर रेफ़रंस की जगहों में ये शामिल हैं
डाइनैमिक
लिंकर,
पैकेज
मैनेजर, और shell/libc
.