تطوير بيان الجهاز

عند تطوير أجهزة جديدة وإصدارها، يمكن للموردين تحديد إصدار FCM المستهدف والإعلان عنه في بيان الجهاز (DM). عند ترقية صورة البائع للأجهزة القديمة، يمكن للموردين اختيار تنفيذ إصدارات HAL الجديدة وزيادة إصدار FCM المستهدف.

تطوير أجهزة جديدة

عند تحديد الجهاز المستهدف إصدار FCM للأجهزة الجديدة:

  1. اترك DEVICE_MANIFEST_FILE و PRODUCT_ENFORCE_VINTF_MANIFEST غير محددين.
  2. تنفيذ HALs لإصدار FCM المستهدف.
  3. اكتب ملف بيان الجهاز الصحيح.
  4. اكتب إصدار FCM المستهدف إلى ملف بيان الجهاز.
  5. قم بتعيين DEVICE_MANIFEST_FILE .
  6. اضبط PRODUCT_ENFORCE_VINTF_MANIFEST على true .

إطلاق أجهزة جديدة

عندما يتم إصدار جهاز جديد، يجب تحديد إصدار الهدف FCM الأولي الخاص به والإعلان عنه في بيان الجهاز كسمة " target-level " في عنصر <manifest> ذو المستوى الأعلى.

على سبيل المثال، يجب أن يكون لدى الأجهزة التي يتم تشغيلها بنظام التشغيل Android 9 إصدار Target FCM يساوي 3 (الإصدار الأعلى المتوفر حاليًا). للإعلان عن ذلك في بيان الجهاز:

<manifest version="1.0" type="device" target-level="3">
    <!-- ... -->
</manifest>

ترقية صورة البائع

عند ترقية صورة البائع لجهاز قديم، يمكن للموردين اختيار تنفيذ إصدارات HAL الجديدة وزيادة إصدار FCM المستهدف.

ترقية HALs

أثناء ترقية صورة البائع، يمكن للبائعين تنفيذ إصدارات HAL الجديدة بشرط أن يكون اسم HAL واسم الواجهة واسم المثيل متماثلين. على سبيل المثال:

  • تم إصدار أجهزة Google Pixel 2 وPixel 2 XL مع الإصدار 2 من Target FCM، والذي طبق الصوت المطلوب 2.0 HAL android.hardware.audio@2.0::IDeviceFactory/default .
  • بالنسبة إلى الصوت 4.0 HAL الذي تم إصداره مع Android 9، يمكن لأجهزة Google Pixel 2 وPixel 2 XL استخدام OTA كامل للترقية إلى 4.0 HAL، الذي يطبق android.hardware.audio@4.0::IDeviceFactory/default .
  • على الرغم من أن compatibility_matrix.2.xml يحدد الصوت 2.0 فقط، فقد تم تخفيف متطلبات صورة البائع مع Target FCM الإصدار 2 لأن إطار عمل Android 9 (FCM الإصدار 3) يعتبر الصوت 4.0 بديلاً للصوت 2.0 HAL من حيث الوظيفة .

للتلخيص، بما أن compatibility_matrix.2.xml يتطلب الصوت 2.0 وأن compatibility_matrix.3.xml يتطلب الصوت 4.0، فإن المتطلبات هي كما يلي:

إصدار FCM (النظام) إصدار FCM المستهدف (المورد) متطلبات
2 (8.1) 2 (8.1) الصوت 2.0
3 (9) 2 (8.1) الصوت 2.0 أو 4.0
3 (9) 3 (9) الصوت 4.0

ترقية إصدار FCM المستهدف

أثناء ترقية صورة البائع، يمكن للبائعين أيضًا زيادة إصدار FCM المستهدف لتحديد إصدار FCM المستهدف الذي يمكن أن تعمل معه صورة البائع التي تمت ترقيتها. للحصول على إصدار FCM المستهدف لجهاز ما، يحتاج البائعون إلى:

  1. تنفيذ جميع إصدارات HAL الجديدة المطلوبة لإصدار FCM المستهدف.
  2. تعديل إصدارات HAL في ملف بيان الجهاز.
  3. قم بتعديل إصدار FCM المستهدف في ملف بيان الجهاز.
  4. إزالة إصدارات HAL المهملة.

على سبيل المثال، تم إطلاق أجهزة Google Pixel وPixel XL بنظام التشغيل Android 7.0، لذا يجب أن يكون إصدار Target FCM قديمًا على الأقل. ومع ذلك، يعلن بيان الجهاز عن الإصدار 2 من Target FCM لأنه تم تحديث صورة البائع لتتوافق مع compatibility_matrix.2.xml :

<manifest version="1.0" type="device" target-level="2">

إذا لم يقم البائعون بتنفيذ جميع إصدارات HAL الجديدة المطلوبة أو لم يقوموا بإزالة إصدارات HAL المهملة، فلا يمكن ترقية إصدار FCM المستهدف.

على سبيل المثال، تحتوي أجهزة Google Pixel 2 وPixel 2 XL على الإصدار 2 من Target FCM. وبينما تنفذ بعض تراخيص طبقة الأجهزة (HALs) التي يتطلبها compatibility_matrix.3.xml (مثل audio 4.0 وhealth 2.0 وما إلى ذلك)، إلا أنها لا تزيل android.hardware.radio.deprecated@1.0 ، والذي تم إهماله في الإصدار 3 من FCM (Android 9). وبالتالي، لا يمكن لهذه الأجهزة ترقية إصدار Target FCM إلى الإصدار 3.

تكليف متطلبات النواة خلال OTA

تحديث الأجهزة من Android 9 أو أقل

على الأجهزة التي تعمل بنظام التشغيل Android 9 أو الإصدارات الأقدم، تأكد من اختيار CLs التالية:

تقدم هذه التغييرات علامة الإصدار PRODUCT_OTA_ENFORCE_VINTF_KERNEL_REQUIREMENTS وتترك العلامة بدون تعيين للأجهزة التي تعمل بنظام التشغيل Android 9 أو الإصدارات الأقدم.

  • عند التحديث إلى Android 10، لا يتحقق عملاء OTA على الأجهزة التي تعمل بنظام Android 9 أو أقل من متطلبات kernel في حزمة OTA بشكل صحيح. هذه التغييرات ضرورية لإسقاط متطلبات kernel من حزمة OTA التي تم إنشاؤها.
  • عند التحديث إلى Android 11، يكون اختياريًا تعيين علامة البناء PRODUCT_OTA_ENFORCE_VINTF_KERNEL_REQUIREMENTS للتحقق من توافق VINTF عند إنشاء حزمة التحديث.

لمزيد من المعلومات حول علامة الإصدار هذه، راجع تحديث الأجهزة من Android 10 .

تحديث الأجهزة من أندرويد 10

يقدم Android 10 علامة إنشاء جديدة، PRODUCT_OTA_ENFORCE_VINTF_KERNEL_REQUIREMENTS . بالنسبة للأجهزة التي تعمل بنظام التشغيل Android 10، يتم تعيين هذه العلامة تلقائيًا على true . عندما يتم تعيين العلامة على true ، يقوم البرنامج النصي باستخراج إصدار kernel وتكوينات kernel من صورة kernel المثبتة.

  • عند التحديث إلى Android 10، تحتوي حزمة التحديث عبر الهواء على إصدار kernel وتكوينه. يقوم عملاء OTA على الأجهزة التي تعمل بنظام Android 10 بقراءة هذه المعلومات للتحقق من التوافق.
  • عند التحديث إلى Android 11، يقرأ نوع حزمة OTA إصدار kernel وتكوينه للتحقق من التوافق.

إذا فشل البرنامج النصي في استخراج هذه المعلومات لصورة النواة الخاصة بك، فقم بأحد الإجراءات التالية:

  • قم بتحرير البرنامج النصي لدعم تنسيق kernel الخاص بك والمساهمة في AOSP.
  • قم بتعيين BOARD_KERNEL_VERSION على إصدار kernel و BOARD_KERNEL_CONFIG_FILE على مسار ملف تكوين kernel المدمج .config . يجب تحديث كلا المتغيرين عند تحديث صورة النواة.
  • وبدلاً من ذلك، قم بتعيين PRODUCT_OTA_ENFORCE_VINTF_KERNEL_REQUIREMENTS على false لتخطي التحقق من متطلبات kernel. لا ينصح بذلك لأن أي عدم توافق يكون مخفيًا ولا يتم اكتشافه إلا عند تشغيل اختبارات VTS بعد التحديث.

يمكنك عرض الكود المصدري للبرنامج النصي لاستخراج معلومات kernel extract_kernel.py .