أقسام رامديسك

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

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

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

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

توضح الأقسام التالية الاختلافات في تخطيطات الأقسام للأجهزة غير A/B قبل Android 10 وبعده.

تخطيطات التقسيم (أجهزة غير A/B)

توضح الأقسام التالية الاختلافات في تخطيطات الأقسام للأجهزة غير A/B قبل Android 10 وبعده.

boot.img

رامديسك
(أندرويد 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)
    ...
    

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

توضح الأقسام التالية الاختلافات في تخطيطات الأقسام لأجهزة A/B قبل Android 10 وبعده.

boot.img

النظام كجذر
(أندرويد 9)
رامديسك
(أندرويد 10 و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)
    ...