أقسام ذاكرة الوصول العشوائي

في Android 10 و11، المرحلة الأولى من الهرم يحتوي على البرنامج الثنائي للمرحلة الأولى (الذي يُجري التثبيت المبكر على النحو المحدد) من خلال إدخالات fstab) وملفات fstab للمورد. (كما هو الحال في الإصدار 9 من Android والإصدارات الأقدم، يحتوي system.img على محتوى $TARGET_ROOT_OUT).

  • بالنسبة إلى الأجهزة التي تحتوي على ملف boot-ramdisk (غير A/B)، تكون عملية الإعداد في المرحلة الأولى عبارة عن ملف executible static يقع في /init. تعمل هذه الأجهزة على تركيب system.img على أنّه /system، ثم تُجري عملية تبديل الجذر لنقل عملية التركيب في /system إلى /. يتم تحرير محتوى قرص التخزين بعد اكتمال التثبيت.

  • بالنسبة إلى الأجهزة التي تستخدم وضع الاسترداد كمساحة تخزين مؤقت في ذاكرة الوصول العشوائي، يمكن العثور على عملية الإعداد في المرحلة الأولى على العنوان /init ضمن مساحة التخزين المؤقت في ذاكرة الوصول العشوائي الخاصة بوضع الاسترداد. تبدِّل هذه الأجهزة أولاً الجذر إلى /first_stage_ramdisk لإزالة مكوّنات الاسترداد من البيئة، ثم تتابع الخطوات نفسها التي تتّبعها الأجهزة التي تتضمّن ملف ramdisk لبدء التشغيل (أي تركيب system.img على أنّه /system وتبديل الجذر لنقل عملية التركيب إلى / وتحرير محتويات ramdisk بعد التركيب). إذا كان androidboot.force_normal_boot=1 موجودًا في سطر أوامر kernel (أو bootconfig من Android 12 فصاعدًا)، يتم تشغيل الأجهزة بشكلٍ طبيعي (في نظام Android) بدلاً من تشغيلها في وضع الاسترداد.

بعد انتهاء المرحلة الأولى من عملية الإعداد، يتم تنفيذ /system/bin/init مع الوسيطة selinux_setup لتجميع SELinux وتحميله على النظام. أخيرًا، يؤدي الإجراء init إلى تنفيذ /system/bin/init مرة أخرى باستخدام الوسيطة second_stage. في هذه النقطة، يتم تشغيل المرحلة الرئيسية من init ومواصلة عملية التمهيد باستخدام النصوص البرمجية init.rc.

توضِّح الأقسام التالية بالتفصيل الاختلافات في تنسيقات الأقسام للأجهزة غير المزوّدة بميزة "التحديث الثنائي" قبل توفّر Android 10 وبعده.

تنسيقات الأقسام (الأجهزة التي لا تستخدم A/B)

توضِّح الأقسام التالية بالتفصيل الاختلافات في تنسيقات الأقسام للأجهزة غير المزوّدة بميزة "التحديث الثنائي" قبل توفّر Android 10 وبعده.

boot.img

ذاكرة الوصول العشوائي (RAM)
(Android 8.x والإصدارات الأقدم)
النظام بصفتها الجذر
(Android 9)
Ramdisk
(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)
    ...
    

استرداد.img

يحتوي على نواة الاسترداد وramdisk.img لاسترداد البيانات

نظام.img

ذاكرة الوصول العشوائي (RAM)
(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)
ذاكرة التخزين المؤقت في ذاكرة الوصول العشوائي
(الإصدار 10 من Android والإصدار 11)
يحتوي على نواة تشغيل عادية وذاكرة وصول عشوائي مخصصة للاسترداد (BOARD_USES_RECOVERY_AS_BOOT := true).

استرداد-ذاكرة الوصول العشوائي يُستخدم فقط لبدء عملية الاسترداد.
يحتوي على نواة التمهيد العادية وملف recovery-ramdisk (BOARD_USES_RECOVERY_AS_BOOT := true).

يُستخدَم ملف recovery-ramdisk لبدء التشغيل في كل من وضع الاسترداد ونظام التشغيل 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)
    ...