Ramdisk सेगमेंट

अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है

Android 10 और 11 में, पहले चरण में रैम डिस्क इसमें पहली स्टेज इनिट बाइनरी होती है (जो बताए गए तरीके से शुरुआती माउंटिंग करती है fstab एंट्री के हिसाब से) और वेंडर fstab फ़ाइलें. (जैसा कि Android 9 और उससे पहले के वर्शन में, system.img में $TARGET_ROOT_OUT का कॉन्टेंट होता है.)

  • जिन डिवाइसों में बूट-रैमडिस्क (A/B के अलावा) है उनके लिए, पहला चरण init एक स्टैटिक रनटेबल है, जो /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 से पहले वाले डिवाइसों पर ही काम करेगा.

बूट करें

Ramdisk
(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)
    ...
    

recovery.img

इसमें रिकवरी कर्नेल और रिकवरी ramdisk.img शामिल है

system.img

Ramdisk
(Android 8.x और उससे पहले के वर्शन)
रूट के रूप में सिस्टम
(Android 9)
Ramdisk
(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 से पहले वाले वर्शन का इस्तेमाल करें.

boot.img

सिस्टम को रूट के तौर पर इस्तेमाल करना
(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)
    ...