تنفيذ تسجيل البائعين ضمن النطاق

يضيف Android 11 طبقة HAL جديدة، IDumpstateDevice (الإصدار 1.1). يكشف HAL ​​عن أساليب جديدة لنطاق أكثر إحكامًا لسجلات البائعين المضمنة في تقارير الأخطاء القياسية، بالإضافة إلى السماح لإصدارات المستخدم بتشغيل وإيقاف تسجيل البائع (الإعداد الافتراضي لإصدارات المستخدم هو إيقاف التشغيل). وهذا يمنح مصنعي المعدات الأصلية مزيدًا من التحكم في ما يتم تضمينه في أنواع معينة من تقارير الأخطاء.

تؤثر هذه الميزة على مصنعي المعدات الأصلية إذا اختاروا تنفيذ HAL الاختياري هذا. قد تتأثر SoCs، اعتمادًا على ما تختار الشركة المصنعة للجهاز الكشف عنه باستخدام HAL هذا. لا يوجد تأثير متوقع على شركات النقل.

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

الأمثلة والمصادر

يوجد تطبيق افتراضي للإصدار 1.0 (المهمل) من IDumpstateDevice والذي يعرض مثالاً لاستخدام مكتبة dumpstate util: frameworks/native/cmds/dumpstate/DumpstateUtil.h . يوجد أيضًا تطبيق Cuttlefish لـ 1.1 HAL: device/google/cuttlefish/guest/monitoring/dumpstate_ext/* .

الكود المصدري موجود هنا:

تطبيق

لتنفيذ طبقة HAL هذه، قم بتطبيق واجهة android.hardware.dumpstate@1.1::IDumpstateDevice HAL. هناك العديد من قيم DumpstateMode المحتملة، ولكن ليس من المحتمل أن يتم دعمها كلها بواسطة جهاز واحد (على سبيل المثال، WEAR للأجهزة التي لا تعمل بنظام التشغيل Wear OS).

يعد تنفيذ HAL لحالة التفريغ أمرًا اختياريًا. يجب على جميع الأجهزة الجديدة التي يتم تشغيلها بنظام Android 11 تنفيذ IDumpstateDevice 1.1 إذا كانت تطبق Dumpstate HAL. يجب أن يكون من السهل نسبيًا ترقية الأجهزة التي طبقت IDumpstateDevice 1.0 قبل Android 11 إلى 1.1، ويوصى بشدة بالقيام بذلك، لأنه يقلل بشكل كبير من كمية المعلومات الخاصة الدخيلة المضمنة في تقارير الأخطاء.

تعتمد هذه الميزة على تغييرات dumpstate الأساسية المضمنة أيضًا في Android 11، والموجودة ضمن frameworks/native/cmds/dumpstate .

من المحتمل أن يتطلب تنفيذ HAL بعض التغييرات في سياسة SEPolicy على بعض خصائص النظام والملفات وما إلى ذلك لتشغيل الأمور بشكل كامل، وسيتطلب التنسيق مع البائعين لتفريغ جميع المعلومات ذات الصلة في تقارير الأخطاء.

التخصيص

يمكن لمستخدم الجهاز تبديل تسجيل الدخول أو إيقاف تشغيل البائع باستخدام إعدادات المطور. عند إيقاف تشغيله، قد يستمر dumpstateBoard_1_1 في إخراج الحد الأدنى من المعلومات الأساسية كما هو محدد بواسطة OEM. يؤدي إيقاف تسجيل البائع إلى قيام IDumpstateDevice::dumpstateBoard بإضافة المعلومات الأساسية فقط إلى تقرير الأخطاء، بينما يتضمن تشغيله أي معلومات يختارها OEM.

يمكنك تعديل dumpstate.cpp (الذي يستدعي أساليب HAL IDumpstateDevice)، على سبيل المثال، لزيادة المهلة المحددة لإكمال dumpstateBoard . ومع ذلك، يجب أن يظل المنطق الأساسي لـ dumpstate.cpp دون تغيير.

يمكن أن تكون المهلات ذات قيمة، ولكن لا ينبغي أن تزيد بشكل كبير من الوقت الذي يستغرقه تقرير الخطأ حتى يكتمل. على وجه الخصوص، يعد DumpstateMode::CONNECTIVITY حساسًا للغاية للوقت ويجب تشغيله بأسرع ما يمكن لتجميع كافة سجلات المودم/Wi-Fi/الشبكات ذات الصلة.

تصديق

يوجد اختبار VTS لتطبيق IDumpstateDevice، وهناك اختبارات وحدة وظيفية لوظيفة BugreportManager العامة.

حالة الاختبار اليدوي الموصى بها هي frameworks/base/core/tests/bugreports/src/android/server/bugreports/BugreportManagerTest.java .