রামডিস্ক পার্টিশন

অ্যান্ড্রয়েড ১০ এবং ১১-এ, প্রথম পর্যায়ের র‍্যামডিস্কে প্রথম পর্যায়ের init বাইনারি (যা fstab এন্ট্রি দ্বারা নির্দিষ্ট করা প্রাথমিক মাউন্টিং সম্পাদন করে) এবং বিক্রেতা fstab ফাইল থাকে। (অ্যান্ড্রয়েড ৯ এবং তার নিচের সংস্করণের মতো, system.img $TARGET_ROOT_OUT এর বিষয়বস্তু থাকে।)

  • বুট-র‍্যামডিস্ক (অ-A/B) সহ ডিভাইসগুলির জন্য, প্রথম পর্যায়ে init হল /init এ অবস্থিত একটি স্ট্যাটিক এক্সিকিউটেবল। এই ডিভাইসগুলি system.img কে /system হিসাবে মাউন্ট করে, তারপর /system এ মাউন্টটিকে / এ সরানোর জন্য একটি সুইচ রুট অপারেশন করে। মাউন্টিং সম্পন্ন হওয়ার পরে ramdisk এর বিষয়বস্তু মুক্ত করা হয়।

  • যেসব ডিভাইস রিকভারি ramdisk হিসেবে ব্যবহার করে, তাদের ক্ষেত্রে প্রথম ধাপ init রিকভারি ramdisk-এর মধ্যে /init এ অবস্থিত। এই ডিভাইসগুলি প্রথমে root কে /first_stage_ramdisk এ স্যুইচ করে পরিবেশ থেকে রিকভারি কম্পোনেন্টগুলি সরিয়ে দেয়, তারপর boot-ramdisk (অর্থাৎ, system.img কে /system হিসেবে মাউন্ট করে, সেই মাউন্টটি / এ সরাতে root স্যুইচ করে এবং মাউন্ট করার পরে ramdisk কন্টেন্ট মুক্ত করে) সহ ডিভাইসগুলির মতোই কাজ করে। যদি androidboot.force_normal_boot=1 কার্নেল কমান্ড লাইনে (অথবা Android 12 এবং উচ্চতর সংস্করণ থেকে bootconfig) উপস্থিত থাকে, তাহলে ডিভাইসগুলি রিকভারি মোডে বুট করার পরিবর্তে স্বাভাবিকভাবে (Android-এ) বুট করে।

প্রথম ধাপ init শেষ হওয়ার পর, এটি selinux_setup আর্গুমেন্ট ব্যবহার করে /system/bin/init এক্সিকিউট করে সিস্টেমে SELinux কম্পাইল এবং লোড করে। অবশেষে, init second_stage আর্গুমেন্ট ব্যবহার করে আবার /system/bin/init এক্সিকিউট করে। এই সময়ে, init এর প্রধান ফেজটি init.rc স্ক্রিপ্ট ব্যবহার করে বুট প্রক্রিয়াটি চালায় এবং চালিয়ে যায়।

নিম্নলিখিত বিভাগগুলিতে অ্যান্ড্রয়েড ১০ এর আগে এবং পরে নন-এ/বি ডিভাইসগুলির পার্টিশন লেআউটের পার্থক্যগুলি বিস্তারিতভাবে বর্ণনা করা হয়েছে।

পার্টিশন লেআউট (অ-A/B ডিভাইস)

নিম্নলিখিত বিভাগগুলিতে অ্যান্ড্রয়েড ১০ এর আগে এবং পরে নন-এ/বি ডিভাইসগুলির পার্টিশন লেআউটের পার্থক্যগুলি বিস্তারিতভাবে বর্ণনা করা হয়েছে।

বুট.আইএমজি

র‍্যামডিস্ক
(অ্যান্ড্রয়েড ৮.এক্স এবং তার নিচের সংস্করণ)
রুট হিসেবে সিস্টেম
(অ্যান্ড্রয়েড ৯)
র‍্যামডিস্ক
(অ্যান্ড্রয়েড ১০ এবং ১১)

একটি কার্নেল এবং একটি 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)
    ...
    

পুনরুদ্ধার.আইএমজি

একটি পুনরুদ্ধার কার্নেল এবং একটি পুনরুদ্ধার ramdisk.img রয়েছে

সিস্টেম.আইএমজি

র‍্যামডিস্ক
(অ্যান্ড্রয়েড ৮.এক্স এবং তার নিচের সংস্করণ)
রুট হিসেবে সিস্টেম
(অ্যান্ড্রয়েড ৯)
র‍্যামডিস্ক
(অ্যান্ড্রয়েড ১০ এবং ১১)

একটি 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 ডিভাইস)

নিম্নলিখিত বিভাগগুলিতে Android 10 এর আগে এবং পরে A/B ডিভাইসের পার্টিশন লেআউটের পার্থক্যগুলি বিস্তারিতভাবে বর্ণনা করা হয়েছে।

বুট.আইএমজি

রুট হিসেবে সিস্টেম
(অ্যান্ড্রয়েড ৯)
র‍্যামডিস্ক
(অ্যান্ড্রয়েড ১০ এবং ১১)
সাধারণ বুট কার্নেল এবং recovery-ramdisk ( BOARD_USES_RECOVERY_AS_BOOT := true ) ধারণ করে।

Recovery-ramdisk শুধুমাত্র পুনরুদ্ধারে বুট করার জন্য ব্যবহৃত হয়।
সাধারণ বুট কার্নেল এবং recovery-ramdisk ( 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)
    ...
    

সিস্টেম.আইএমজি

$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)
    ...