يمكن أن تتضمّن عمليات تنفيذ Android صورة كائن ثنائي الأبعاد (DTB) في شجرة الجهاز لاستخدامها من خلال برنامج الإقلاع. موقع صورة DTB (وخيارات تحديد (معلَمات صور DTB) مختلفة بين إصدارات Android.
في نظام التشغيل Android 11، فإن الأجهزة التي تستخدم النواة العامة يجب أن تكون الصورة (GKI) دعم تمهيد البائع وتقسيم، والذي يتضمن جميع المعلومات الخاصة بالبائعين والتي تم نقلها من قسم التمهيد. نظرًا لأن صورة DTB تحتوي على بيانات خاصة بالبائع، فهي الآن في قسم تشغيل البائع. لتحديد مَعلَمات صور DTB، يمكنك الاطّلاع على تمهيد البائع .
في نظام Android 10، يمكن أن تتضمن الأجهزة صورة DTB في قسم التمهيد. لتحديد مَعلمات صور DTB، يمكنك الاطّلاع على تضمين نموذج DTB في صورة التشغيل
في الإصدار 9 من نظام Android والإصدارات الأقدم، يمكن أن توجد صورة DTB في تقسيمها الخاص أو يمكن إلحاقها بالنواة
image.gz
لإنشاء + صورة DTB (يتم تمريرها بعد ذلك إلىmkbootimg
لإنشاءboot.img
).
تنسيق صورة DTB
في الإصدار 10 من نظام التشغيل Android والإصدارات الأحدث، يجب أن تستخدم الصورة التي تم إنشاؤها لإدارة البيانات في الوقت الفعلي سمة واحدة بأي من التنسيقات التالية:
يتم ربط رموز DT واحدًا تلو الآخر. ويستخدم برنامج الإقلاع
totalsize
في كل عنوان FDT لقراءة وتحليل الكائن الثنائي الكبير المقابل.الأقسام DTB/DTBO: ويوفر برنامج الإقلاع طريقة فعالة لتحديد نقطة DT الصحيحة عن طريق فحص بنية
dt_table_entry
(تحتوي علىid
،rev
وcustom
) التي يمكن أن تحتوي على معلومات تعريف الأجهزة للنطاق المدخل. لمعرفة التفاصيل، يُرجى الاطّلاع على DTB/DTBO. الأقسام:
تضمين صورة DTB في صورة التشغيل
يمكن أن تتضمن الأجهزة التي تعمل بنظام التشغيل Android 10 صورة DTB في
صورة التشغيل. يلغي ذلك حاجة Android إلى دعم النصوص البرمجية التي تلحق
صورة DTB إلى image.gz
في النواة، وتُتيح استخدام Vendor Test
اختبار Suite (VTS) للتحقّق من ملكية البيانات الديناميكية (DTB) وتوحيدها
موضع الإعلان.
علاوة على ذلك، بالنسبة إلى الأجهزة التي لا تستخدم نظام A/B، يكون من الآمن استخدام مقياس DTB كجزء من عملية بدلاً من وضعها في قسم منفصل لمنع حدوث المشكلات التي يتسبب فيها وتعطلت وكالات السفر على الإنترنت. أثناء التحديث عبر الهواء، في حالة حدوث مشكلة بعد إجراء تقسيم DTB (ولكن قبل إكمال التحديث الكامل)، يحاول الجهاز بدء وضع الاسترداد لإكمال التحديث عبر الهواء؛ لأن قسم DTB يحتوي على قد تم تحديثه بالفعل، فقد يحدث عدم تطابق مع صورة الاسترداد (التي تحتوي على لم يتم تحديثها بعد). وجود صورة DTB كجزء من تنسيق صورة التمهيد مثل هذه المشكلات من خلال جعل صورة الاسترداد كافية ذاتيًا (أي لا تعتمد على قسم آخر).
بنية صورة التشغيل
الأجهزة التي تعمل بنظام التشغيل Android 10 قد تتضمّن صورة بحجم DTB باستخدام بنية صورة التمهيد التالية.
قسم صورة تشغيل الجهاز | عدد الصفحات |
---|---|
عنوان التشغيل (صفحة واحدة) | 1 |
النواة kernel (صفحات l) | l = (kernel_size + page_size -
1) / page_size |
Ramdisk (صفحات m) | م = (ramdisk_size + page_size -
1) / page_size |
برنامج الإقلاع من المرحلة الثانية (عدد الصفحات) | العدد = (second_size + page_size -
1) / page_size |
DTBO للاسترداد (صفحات) | o = (recovery_dtbo_size + page_size -
1) / page_size |
DTB (صفحات p) | p = (dtb_size + page_size -
1) / page_size |
مسار صورة DTB
بالنسبة إلى الأجهزة التي تعمل بنظام التشغيل Android 10، يمكنك استخدام
أداة mkbootimg.py
والوسيطات التالية لتحديد المسار إلى قاعدة البيانات الثابتة (DTB)
.
الوسيطة | الوصف |
---|---|
dtb |
المسار إلى صورة DTB المراد تضمينه في صور التشغيل/الاسترداد. |
dtb_offset |
عند إضافتها إلى الوسيطة base ، يتم توفير التحميل الفعلي.
العنوان لشجرة الأجهزة النهائية. على سبيل المثال، إذا كانت base
الوسيطة هي 0x10000000 والوسيطة dtb_offset
هي 0x01000000 ، وdtb_addr_field في صورة التشغيل
تتم تعبئة هذا العنوان على أنه 0x11000000 . |
يجب استخدام متغيّر ضبط اللوحة BOARD_PREBUILT_DTBIMAGE_DIR
لتحديد
المسار إلى صورة DTB. إذا كان هناك أكثر من ملف واحد بامتداد *.dtb
موجود في الدليل BOARD_PREBUILT_DTBIMAGE_DIR
، وهو نظام إصدار Android
إنشاء تسلسل للملفات لإنشاء صورة DTB النهائية المستخدمة في صورة التشغيل
الإنشاء.
لتمرير الوسيطة dtb
إلى mkbootimg.py
باستخدام صورة DTB من
الدليل المحدد بواسطة BOARD_PREBUILT_DTBIMAGE_DIR
، متغير تكوين اللوحة
يجب ضبط BOARD_INCLUDE_DTB_IN_BOOTIMG
على true
. مثلاً:
BOARD_INCLUDE_DTB_IN_BOOTIMG := true
يمكنك إلحاق الوسيطة dtb_offset
بلوحة BOARD_MKBOOTIMG_ARGS
config مع علامات الإزاحة الأخرى وإصدار العنوان. مثلاً:
BOARD_MKBOOTIMG_ARGS := --ramdisk_offset $(BOARD_RAMDISK_OFFSET) --dtb_offset $(BOARD_DTB_OFFSET) --tags_offset $(BOARD_KERNEL_TAGS_OFFSET) --header_version $(BOARD_BOOTIMG_HEADER_VERSION)
التوافق مع برنامج الإقلاع
لكي تعمل ميزة VTS بنجاح على الأجهزة التي تعمل بنظام التشغيل Android
10، يجب أن يتوافق برنامج الإقلاع مع النسخة المعدّلة
ويجب إضافة مَعلمة سطر أوامر النواة androidboot.dtb_idx
للإشارة إلى
فهرس شجرة الأجهزة المحددة (DT). يمكنك تحديد خيار واحد فقط (1)
الفهرس على سبيل المثال، تُبلغ المعلمة androidboot.dtb_idx=N
عن N
على أنه
فهرس يستند إلى صفر لشجرة الجهاز المحددة بواسطة برنامج الإقلاع من مجموعة
تتوفّر قيم DTB في صورة التشغيل.