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

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

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

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

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

توضّح الأقسام التالية الاختلافات في تصميمات الأقسام للأجهزة التي لا تستخدم نظام التشغيل A/B قبل وبعد Android 10.

تنسيقات الأقسام (الأجهزة غير المتوافقة مع اختبارات أ/ب)

توضّح الأقسام التالية الاختلافات في تصميمات الأقسام للأجهزة التي لا تستخدم نظام التشغيل A/B قبل وبعد Android 10.

boot.img

Ramdisk
(الإصدار 8.x من نظام التشغيل Android والإصدارات الأقدم)
النظام كجذر
(الإصدار 9 من نظام التشغيل Android)
Ramdisk
(الإصداران 10 و11 من نظام التشغيل Android)

يحتوي على نواة و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
(الإصدار 8.x من نظام التشغيل Android والإصدارات الأقدم)
النظام كجذر
(الإصدار 9 من نظام التشغيل Android)
Ramdisk
(الإصداران 10 و11 من نظام التشغيل Android)

يحتوي على 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 قبل وبعد الإصدار 10 من نظام التشغيل Android.

boot.img

النظام كجذر
(الإصدار 9 من نظام التشغيل Android)
Ramdisk
(الإصداران 10 و11 من نظام التشغيل Android)
يحتوي على نواة التشغيل العادي وrecovery-ramdisk (BOARD_USES_RECOVERY_AS_BOOT := true).

يتم استخدام recovery-ramdisk للتشغيل في وضع الاسترداد فقط.
يحتوي على نواة التشغيل العادي و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)
    ...