الأجهزة التي تعمل بنظام التشغيل Android 12 باستخدام النواة (kernel)
أما بالنسبة إلى الإصدارات الأعلى من الإصدار 5.4، فيجب شحنها بواسطة نواة GKI. وذلك لكي
يمكن للشركاء الوصول إلى DebugFS
في إصدارات userdebug أثناء تطويرهم على GKI
kernel، تم تفعيل إعدادات النواة CONFIG_DEBUG_FS
في تهيئة GKI.
عدم تثبيت DebugFS
مطلقًا في إصدارات المستخدم للأجهزة
التي سيتم إطلاقها على نظام التشغيل Android 12.
توفِّر إصدارات Userdebug اختبارًا أفضل من إصدارات المستخدمين وتحصل على
اختباره طوال دورة التطوير. تخفض الخطة التالية
الفرق بين نوعَي الإصدار في ما يتعلّق بإمكانية الوصول إلى DebugFS
تقدّم المزايا التالية:
- لمنع إصدارات userdebug من الاعتماد عن طريق الخطأ على
DebugFS
للحصول على وظائف جديدة - يضمن أن تكون أي وظائف حالية معطَّلة بسبب عدم وجود DebugFS في وقت مبكر من دورة التطوير
يتم تصنيف عمليات الوصول إلى برامج تصحيح الأخطاء في إصدارات userdebug على أنها التالي:
- عمليات إعداد ملفات
DebugFS
أثناء تشغيل الجهاز، مثل إذن الوصول للكتابة إلى ملف فيDebugFS
لتفعيل جمع بيانات تصحيح الأخطاء. - إنشاء تقرير الأخطاء: يقرأ ملف dumpstate HAL
DebugFS
ملف عند تم استدعاءDumpstateBoard()
بواسطةdumpstate
. هذا النمط جزءًا من تقرير الخطأ. - الاختبار والتحقّق الخاص بجهاز محدّد
يصف الجدول التالي كيف يتم ترتيب كل فئة من هذه الفئات الثلاث
معتمد في نظام التشغيل Android 12. لاحظ أن
لا تنطبق المتابعة التالية إلا على إصدارات userdebug نظرًا لأنه لا يمكن تنفيذ DebugFS
التي يتم تثبيتها في إصدارات المستخدم.
حالة الاستخدام | إصدار تصحيح أخطاء المستخدم في Android 12 |
---|---|
إعداد ملفات DebugFS لمرة واحدة أثناء بدء التشغيل:
لا يحدث إذن الوصول هذا إلا مرة واحدة خلال وقت التشغيل.
|
ينفذ Dumpstate HAL هذا أثناء إعداد HAL. لتفعيل الشيء نفسه،
يؤدي الإعداد "init" إلى تثبيت DebugFS في إصدارات userdebug قبل بدء HAL.
يتصل "Init " بـ "umount() " في DebugFS عندما
اكتمل تشغيل الجهاز.
|
إنشاء تقرير الأخطاء: ما هو مكتوب في dumpstate HAL
DebugFS ملف، التي تصبح جزءًا من تقرير الخطأ
|
يتم تنفيذه بواسطة dumpstate HAL في غضون DumpstateBoard() عند استدعائه من خلال dumpstate.
(DumpstateDevice.cpp).
تضمن أداة dumpstate (جزء من إطار عمل Android) أنّ DebugFS
التثبيت أثناء الاستدعاء.
|
الاختبار الخاص بجهاز محدّد والتحقّق منها | جذر Adb وShell. تثبيت DebugFS من هيكل adb باستخدام
الوصول إلى الجذر1.
|
1لتثبيت DebugFS
من adb shell
باستخدام
إلى الجذر، استخدِم الأمر التالي:
adb shell mount -t debugfs debugfs /sys/kernel/debug
.
الإجراءات المطلوبة من الشركاء
يجب على الشركاء تنفيذ ما يلي استنادًا إلى هذه التغييرات في الأجهزة التي تعمل بنظام التشغيل Android 12:
- إجراء جميع عمليات إعداد وقت التشغيل في
DebugFS
عُقدة أثناء تهيئة HAL Dumpstate. للاطّلاع على مثال حول كيفية إجراء ذلك، راجِع DNM: مثال لإعداد وقت تشغيلDebugFS
ملفات - عدم السماح بالوصول إلى "
DebugFS
" أثناء وقت التشغيل. الاستثناءات التالية تنطبق:- إنشاء تقرير الأخطاء (يأتي من dumpstate HAL)
- عملية الاختبار والتحقق (يمكن الوصول إليها من خلال
adb root
وshell
) - التأكّد من تثبيت DebugFS أولاً)
يمكن للمطوّرين ضبط خاصية تصحيح الأخطاء الدائمة
persist.dbg.keep_debugfs_mounted
لإبقاء DebugFs
مثبتة على
على صعيد تصحيح أخطاء المستخدم والهندسة.
تضمن اختبارات الامتثال GTS أن نظام ملفات DebugFS
لا
التي يتم تثبيتها في إصدارات المستخدم. تضمن بيانات Sepolicy neverallow
ذلك في الأجهزة
في الإصدار 12 من نظام التشغيل Android أو الإصدارات الأحدث، لا يتم توفير عمليات غير مصرّح بها
الدخول إلى DebugFs
.