في الإصدار 8.0 من نظام التشغيل Android، تم نقل عملية معالجة أوامر USB من البرامج النصية إلى برنامج خفي أصلي خاص بمنفذ USB، وذلك لتحسين عملية الإعداد وموثوقية الرموز.init بالنسبة إلى إعدادات وظيفة "الأداة"، يتم استخدام نصوص init البرامج النصية
(مشغّلات الخصائص) لتنفيذ عمليات الأدوات الخاصة بالجهاز.
في الإصدارات السابقة، تم تحقيق هذه الإعدادات الخاصة بالجهاز من خلال نصوص برمجية init خاصة بالجهاز (باستخدام مشغّلات الخصائص). يؤدي الانتقال إلى تصميم
طبقة تجريد الأجهزة (HAL) إلى تنفيذ أكثر سلاسة
يحلّ المشاكل التالية:
- قد تتعذّر عمليات مثل الكتابة إلى عُقد sysfs في النواة، ولكن لا يتم نقلها إلى رمز الأُطر الذي يضبط مشغّل الخاصية. نتيجةً لذلك، تفترض الأُطر بشكل غير صحيح أنّ العمليات قد نجحت على الرغم من أنّها تعذّر إتمامها بدون إشعار.
- تحتوي نصوص
initالبرمجية على عدد محدود من العمليات التي يمكن تنفيذها.
يضيف إصدار Android 12 إمكانية استخدام طبقة تجريد الأجهزة (HAL) الخاصة بأجهزة USB الصغيرة مع "نماذج التحكّم في الشبكة" (NCM) ومكالمات واجهة برمجة التطبيقات التي تعرض رقم إصدار طبقة تجريد الأجهزة وسرعة USB. لمزيد من المعلومات حول طلبات البيانات من واجهة برمجة التطبيقات المتاحة من خلال طبقة تجريد الأجهزة USB، يُرجى الاطّلاع على ملخّص حزمة android.hardware.usb.
HAL وTreble
تم استخدام نصوص init البرمجية الخاصة بالجهاز كبديل لطبقات HAL لتنفيذ عمليات USB الخاصة بالجهاز. تُعدّ واجهة USB (من خلال ADB) واجهة أساسية لتصحيح أخطاء النظام. يؤدي توفّر برنامج خفي أصلي لتنفيذ عملية ضبط USB إلى إلغاء الاعتماد على رمز إطار العمل، وبالتالي حتى إذا تعطّل إطار العمل، سيظل USB يعمل.
بموجب نموذج Treble الذي تم تقديمه أيضًا في Android 8.0، يتم عزل جميع طبقات HAL عن خدمات النظام، ويجب تشغيلها في برامج خفية أصلية خاصة بها. ويؤدي ذلك إلى إلغاء الحاجة إلى توفّر برنامج خفي حصري لتشغيل USB، لأنّ طبقة HAL تعمل بشكل جيد كبرنامج خفي لتشغيل USB.
يتولّى التنفيذ التلقائي لطبقة تجريد الأجهزة (HAL) التعامل مع جميع الأجهزة التي تعمل بإصدارات أقدم من Android 8.0. وبالتالي، لن يكون هناك أي عمل خاص بالجهاز للأجهزة التي تعمل بإصدارات Android الأقدم من 8.0. يستخدم نظام التشغيل Android 8.0 واجهة HAL للاستعلام عن حالة منافذ USB وإجراء عمليات تبديل أدوار البيانات والطاقة.
التنفيذ
يجب تنفيذ واجهة USB HAL الجديدة على كل جهاز يعمل بنظام التشغيل Android 8.0.
يجب أن يهتم التنفيذ التلقائي بالأجهزة التي تعمل بإصدارات أقدم من Android 8.0. يكون التنفيذ التلقائي كافيًا إذا كان الجهاز يستخدم فئة dual_role_usb للإبلاغ عن حالة منفذ USB من النوع C. قد تكون هناك حاجة إلى إجراء تغييرات بسيطة في نصوص USB البرمجية الخاصة بالجهاز
لنقل ملكية عقد typc-c إلى النظام.