रामडिस्क विभाजन

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

  • बूट-रैमडिस्क (गैर-ए/बी) वाले उपकरणों के लिए, पहला चरण init /init पर स्थित एक स्थिर निष्पादन योग्य है। ये डिवाइस system.img /system के रूप में माउंट करते हैं, फिर माउंट को /system पर / पर ले जाने के लिए एक स्विच रूट ऑपरेशन करते हैं। माउंटिंग पूरी होने के बाद रैमडिस्क की सामग्री को मुक्त कर दिया जाता है।

  • उन उपकरणों के लिए जो रिकवरी को रैमडिस्क के रूप में उपयोग करते हैं, पहला चरण init रिकवरी रैमडिस्क के भीतर /init पर स्थित होता है। ये डिवाइस पर्यावरण से पुनर्प्राप्ति घटकों को हटाने के लिए पहले रूट को /first_stage_ramdisk पर स्विच करते हैं, फिर बूट-रैमडिस्क वाले डिवाइस के समान ही आगे बढ़ते हैं (अर्थात, system.img /system के रूप में माउंट करें, उस माउंट को / पर ले जाने के लिए रूट को स्विच करें, और माउंटिंग के बाद निःशुल्क रैमडिस्क सामग्री)। यदि androidboot.force_normal_boot=1 कर्नेल कमांड लाइन (या एंड्रॉइड 12 से बूटकॉन्फिग) में मौजूद है, तो डिवाइस पुनर्प्राप्ति मोड में बूट करने के बजाय सामान्य रूप से (एंड्रॉइड में) बूट होते हैं।

प्रथम चरण init समाप्त होने के बाद, यह सिस्टम पर SELinux को संकलित और लोड करने के लिए selinux_setup तर्क के साथ /system/bin/init निष्पादित करता है। अंत में, init /system/bin/init second_stage तर्क के साथ फिर से निष्पादित करता है। इस बिंदु पर, init का मुख्य चरण चलता है और init.rc स्क्रिप्ट का उपयोग करके बूट प्रक्रिया जारी रखता है।

निम्नलिखित अनुभाग एंड्रॉइड 10 से पहले और बाद में गैर-ए/बी उपकरणों के लिए विभाजन लेआउट में अंतर का विवरण देते हैं।

विभाजन लेआउट (गैर-ए/बी डिवाइस)

निम्नलिखित अनुभाग एंड्रॉइड 10 से पहले और बाद में गैर-ए/बी उपकरणों के लिए विभाजन लेआउट में अंतर का विवरण देते हैं।

बूट.आईएमजी

रैमडिस्क
(एंड्रॉइड 8.x और इससे पहले का संस्करण)
जड़ के रूप में प्रणाली
(एंड्रॉइड 9)
रैमडिस्क
(एंड्रॉइड 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

रैमडिस्क
(एंड्रॉइड 8.x और इससे पहले का संस्करण)
जड़ के रूप में प्रणाली
(एंड्रॉइड 9)
रैमडिस्क
(एंड्रॉइड 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)
    ...
    

विभाजन लेआउट (ए/बी डिवाइस)

निम्नलिखित अनुभाग एंड्रॉइड 10 से पहले और बाद में ए/बी उपकरणों के लिए विभाजन लेआउट में अंतर का विवरण देते हैं।

बूट.आईएमजी

जड़ के रूप में प्रणाली
(एंड्रॉइड 9)
रैमडिस्क
(एंड्रॉइड 10 और 11)
सामान्य बूट कर्नेल और रिकवरी-रैमडिस्क शामिल है ( BOARD_USES_RECOVERY_AS_BOOT := true )।

रिकवरी-रैमडिस्क का उपयोग केवल रिकवरी में बूट करने के लिए किया जाता है।
सामान्य बूट कर्नेल और रिकवरी-रैमडिस्क शामिल है ( BOARD_USES_RECOVERY_AS_BOOT := true )।

रिकवरी-रैमडिस्क का उपयोग रिकवरी और एंड्रॉइड दोनों में बूट करने के लिए किया जाता है।
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)
    ...