صور DTB

يمكن أن تتضمّن عمليات تنفيذ 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 في صورة التشغيل.