रैम डिस्क पार्टीशन

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 है.

ramdisk.img
  -/
    - init.rc
    - init
    - etc -> /system/etc
    - system/ (mount point)
    - vendor/ (mount point)
    - odm/ (mount point)
    ...
    
इसमें सिर्फ़ सामान्य बूट कर्नेल शामिल होता है.

एक कर्नेल और ramdisk.img शामिल है.

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 शामिल हो.

system.img
  -/
    - bin/
    - etc
    - vendor -> /vendor
    - ...
   

इसमें $TARGET_SYSTEM_OUT और $TARGET_ROOT_OUT.

system.img
  -/
    - init.rc
    - init
    - etc -> /system/etc
    - system/
      - bin/
      - etc/
      - vendor -> /vendor
      - ...
    - vendor/ (mount point)
    - odm/ (mount point)
    ...
    

इसमें $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)
    ...
    

विभाजन लेआउट (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)
    ...