Android 10 और 11 में,
पहले चरण में रैम डिस्क
इसमें पहली स्टेज इनिट बाइनरी होती है (जो बताए गए तरीके से शुरुआती माउंटिंग करती है
fstab एंट्री के हिसाब से) और वेंडर fstab फ़ाइलें. (Android 9 और इससे पहले के वर्शन की तरह,
system.img
में $TARGET_ROOT_OUT
का कॉन्टेंट शामिल है.)
बूट-रैमडिस्क (गैर-A/B) वाले डिवाइस के लिए, पहला चरण एक स्टैटिक है
/init
पर एक्ज़ीक्यूटेबल है. ये डिवाइसsystem.img
को/system
के तौर पर माउंट करते हैं, इसके बाद,/system
पर मौजूद माउंट को/
पर ले जाने के लिए, रूट स्विच करने का तरीका अपनाएं. माउंटिंग पूरी होने के बाद, रैमडिस्क की सामग्री मुक्त कर दी जाती है.रैम डिस्क के रूप में रिकवरी का इस्तेमाल करने वाले डिवाइसों के लिए, इन डिवाइसों का पहला चरण इस जगह पर होता है खाता वापस पाने के लिए चुनी गई रैम डिस्क में
/init
. इन डिवाइस पर सबसे पहले, रूट को एनवायरमेंट से रिकवरी कॉम्पोनेंट हटाने के लिए/first_stage_ramdisk
, इसके बाद, बूट-रैमडिस्क वाले डिवाइसों (यानी, माउंट करें) के साथ आगे बढ़ेंsystem.img
को/system
के तौर पर मार्क करें. माउंट को/
पर ले जाने के लिए, रूट को बदलें और यह जगह खाली करें माउंट करने के बाद, ramdisk के कॉन्टेंट को एक साथ सबमिट कर सकता हूं). अगरandroidboot.force_normal_boot=1
है कर्नेल कमांड लाइन में या Android के बूट कॉन्फ़िगरेशन में मौजूद होता है 12 और उसके बाद, डिवाइस सामान्य रूप से बूट होते हैं (Android में) में चालू करने की ज़रूरत नहीं पड़ेगी.
पहला स्टेज इनिट खत्म होने के बाद, यह /system/bin/init
को
सिस्टम पर SELinux को कंपाइल और लोड करने के लिए selinux_setup
आर्ग्युमेंट. आख़िर में,
init, second_stage
आर्ग्युमेंट के साथ /system/bin/init
को फिर से एक्ज़ीक्यूट करता है. इस पर
पॉइंट है, तो init का मुख्य चरण चलता है और
init.rc
स्क्रिप्ट.
यहां दिए गए सेक्शन में, नॉन-A/B प्रॉपर्टी के सेगमेंट के लेआउट में अंतर के बारे में बताया गया है जो Android 10 से पहले और बाद के डिवाइसों पर काम करते हों.
विभाजन लेआउट (गैर-A/B डिवाइस)
यहां दिए गए सेक्शन में, नॉन-A/B प्रॉपर्टी के सेगमेंट के लेआउट में अंतर के बारे में बताया गया है जो Android 10 से पहले और बाद के डिवाइसों पर काम करते हों.
बूट करें
रैम डिस्क (Android 8.x और उससे पहले वाले वर्शन के लिए) |
रूट के रूप में सिस्टम (Android 9) |
रैम डिस्क (Android 10 और 11) |
---|---|---|
इसमें एक कर्नेल और एक ramdisk.img -/ - init.rc - init - etc -> /system/etc - system/ (mount point) - vendor/ (mount point) - odm/ (mount point) ... |
इसमें सिर्फ़ सामान्य बूट कर्नेल शामिल होता है. | एक कर्नेल और ramdisk.img -/ - init - vendor fstab files - system/ (mount point) - vendor/ (mount point) - odm/ (mount point) ... |
search.img
इसमें एक रिकवरी कर्नेल और एक रिकवरी ramdisk.img
है
System.img
रैम डिस्क (Android 8.x और उससे पहले वाले वर्शन के लिए) |
रूट के रूप में सिस्टम (Android 9) |
रैम डिस्क (Android 10 और 11) |
---|---|---|
system.img -/ - bin/ - etc - vendor -> /vendor - ... |
इसमें system.img -/ - init.rc - init - etc -> /system/etc - system/ - bin/ - etc/ - vendor -> /vendor - ... - vendor/ (mount point) - odm/ (mount point) ... |
इसमें system.img -/ - init.rc - init -> /system/bin/init - etc -> /system/etc - system/ - bin/ - etc/ - vendor -> /vendor - ... - vendor/ (mount point) - odm/ (mount point) ... |
विभाजन लेआउट (A/B डिवाइस)
नीचे दिए गए सेक्शन में, A/B डिवाइसों के लिए पार्टिशन लेआउट में अंतर के बारे में बताया गया है Android 10 से पहले वाले वर्शन का इस्तेमाल करें.
बूट करें
रूट के रूप में सिस्टम (Android 9) |
रैम डिस्क (Android 10 और 11) |
---|---|
सामान्य बूट कर्नेल और रिकवरी-रैमडिस्क शामिल है
(BOARD_USES_RECOVERY_AS_BOOT := true ).रिकवरी-रैमडिस्क का इस्तेमाल सिर्फ़ रिकवरी के लिए किया जाता है. |
सामान्य बूट कर्नेल और रिकवरी-रामडिस्क शामिल है
(BOARD_USES_RECOVERY_AS_BOOT := true ). रिकवरी-रैमडिस्क का इस्तेमाल रिकवरी और Android, दोनों में बूट करने के लिए किया जाता है. ramdisk.img -/ - init -> /system/bin/init - first_stage_ramdisk - vendor fstab files - etc -> /system/etc - system/ (mount point) - vendor/ (mount point) - odm/ (mount point) ... |
System.img
इसमें $TARGET_SYSTEM_OUT
और $TARGET_ROOT_OUT
की मर्ज की गई सामग्री शामिल है.
system.img
-/
- init.rc
- init -> /system/bin/init
- etc -> /system/etc
- system/
- bin/
- etc/
- vendor -> /vendor
- ...
- vendor/ (mount point)
- odm/ (mount point)
...