توفّر Android Automotive (AAOS) الآن خدمة الدعم من خلال منتج جديد يحمل اسم "trout
".
لنشره كجهاز افتراضي ضيف في بيئات متوافقة مع
VirtIO
القياسية. تستند trout
إلى
حبَّار
منصّة مرجعية افتراضية وهي متاحة كإعداد للجهاز trout
. تشير رسالة الأشكال البيانية
يمكن العثور على رمز مصدر مساحة المستخدم على device/google/trout
. الجدول
يوضّح أدناه التكنولوجيا المستخدَمة لمحاكاة كل نظام من الأنظمة الفرعية في trout
بشكل افتراضي.
الميزة | تكنولوجيا |
---|---|
التحكّم في الصوت باستخدام طبقة تجريد الأجهزة (HAL) | vsock/gRPC |
HAL للصوت | virtio-snd |
البلوتوث | virtio-console |
Dumpstate HAL | vsock/gRPC |
نظام العرض الموسَّع (EVS) | virtio-video |
وضع المرآب | vsock/gRPC |
الرسومات | virtio-gpu |
القمر الصناعي للملاحة العالمية نظام (GNSS) | virtio-console |
أداة الاستشعار HAL 2.0 | virtio-scmi and IIO |
إدخال البيانات على شاشة تعمل باللمس | virtio-input |
HAL للمركبة | vsock/gRPC |
توسيع سلمونة المرقط
يمكن استخدام "trout
" كنقطة بداية لإنشاء نظام معلومات ترفيهي جديد داخل المركبة (IVI).
أهداف Android. تم تصميم البنية الأساسية للإنشاء لتوسيعها وتخصيصها.
مثلاً:
# Inherit trout-arm64 default values and settings $(call inherit-product, device/google/trout/aosp_trout_arm64.mk) # Customize HALs as needed LOCAL_VHAL_PRODUCT_PACKAGE := vendor.oem.vhal@2.0-service LOCAL_AUDIO_PRODUCT_PACKAGE := vendor.oem.audio@6.0-impl # Configure SELinux policy BOARD_SEPOLICY_DIRS += device/oem/car/sepolicy/vendor/oem # Configure properties LOCAL_DUMPSTATE_PROPERTIES := \ ro.vendor.dumpstate.server.cid=22 \ ro.vendor.dumpstate.server.port=406 \ ro.vendor.helpersystem.log_loc=/data/dumpstate [... and more as needed ...]
يمكن استبدال العديد من HALs في Android بشكل فردي بعمليات تنفيذ مخصصة أو
عمليات التنفيذ التلقائية ولكن تم تعديل بعض معلمات التهيئة لإنشاء
الاتصال المناسب بين الأجهزة الافتراضية في البيئة المستهدفة. تشمل هذه المستويات HALs (بما في ذلك HAL للمركبة،
يتم تنفيذ التحكم في الصوت HAL وDumpstate HAL) من خلال واجهة gRPC مدعومة
اتصال vsock
بين ضيف AAOS ونظام مضيف يوفّر
تنفيذ الميزة الأساسية. يجب تكوينها عن طريق توفير ملف
مَعلمات ربط vsock
كخصائص مورّد يعمل رمز المصدر كأداة
الحقائق الواقعية عن الخصائص المتاحة للتكوين ودلالاتها.
بناء سمك السلمون المرقط
تجميع مساحة المستخدم
لتجميع مساحة المستخدم:
- تنزيل شجرة مصادر Android:
repo init -u https://android.googlesource.com/platform/manifest -b main repo sync -j8
- بناء البيئة:
source build/envsetup.sh lunch aosp_trout_arm64-userdebug make -j24
بناء النواة
بالنسبة إلى الإصدار 1.1 من trout
، يتم توفير قاعدة رموز النواة في بروتوكول AOSP. trout
تتألف kernel من نفس رمز ACK 5.10 الرئيسي، بالإضافة إلى
وحدات خاصة بـ trout
لأنظمة VirtIO الفرعية.
- لاستنساخ النواة، شغِّل:
repo init https://android.googlesource.com/kernel/manifest -b trout-android12-5.10 && repo sync
- لإنشاء تشغيل النواة:
BUILD_CONFIG=common-modules/virtual-device/build.config.trout.coqos build/build.sh
قد يكون لدى مورّد برنامج Hypervisor (مراقب الأجهزة الظاهرية) إعدادات نواة مختلفة مطلوبة أو والوحدات التي تحتاج إلى تجميعها. واحرص على اتّباع هذه الإرشادات المحدّدة، في حال توفّرها.
الامتثال
عند تشغيل نظام التشغيل AAOS كجهاز افتراضي ضيف، يكون هدفنا أن نكون عملية نشر متوافقة مع Android بدءًا من
منظور إطار العمل. مشكلات جانب المضيف هي اختصاص كل عملية تنفيذ وخارج
نطاق trout
1.1.
لم يتم إجراء تحقق إضافي من xTS على الإصدار 1.1 من trout
. متابعة
يمكنك الرجوع إلى المناقشة أدناه حول دعم CTS في الإصدار 1.0 من trout
.
في الإصدار 1.0 من trout
، تظلّ العديد من مشاكل CTS. من المعروف أن وحدات CTS التالية
تضمين إخفاقات الاختبار:
CtsStagedInstallHostTestCases CtsRollbackManagerHostTestCases CtsVideoTestCases CtsHostsideNetworkTests CtsActivityManagerBackgroundActivityTestCases CtsAdbHostTestCases CtsNativeDeviceTestCases CtsContentTestCases CtsCarHostTestCases CtsOsTestCases CtsStatsdHostTestCases حالات اختبار CtsVoiceInteractionTestCase CtsViewTestCases CtscameraTestCases CtsLocationGnssTestCases CtsGraphicsTestCases CtsIncidentHostTestCases CtsInstallHostTestCases CtsNativeVerifyBootTestCases حالات اختبار CtsNetTestCase |
CtsWindowManagerDeviceTestCases CtsMediaStressTestCases CtsAppTestCases اختبارات CtsUsbTest أدوات اختبار CtsAutoFillServiceTestCases CtsDisplayTestCases CtsMediaTestCases CtsDeqpTestCases CtsDumpsysHostTestCases CtsOpenGLTestCasesCtsLibcoreTestCases CtsSecurityHostTestCases CtsInputMethodTestCases CtsStatsdAtomHostTestCases CtsPermission4TestCases CtsNNAPIReferenceTestCases CtsSimpleperfTestCases CtsAccessibilityTestCases CtsAppSecurityHostTestCases اختبار CtsKeystoreTestCases |
من المعروف أنّ مناطق CTS-V التالية تتضمّن حالات تعذُّر الاختبار:
اختبار مشغّل التطبيقات في السيارة اختبار المعلِن لـ Bluetooth Low Energy (BLE) أداة التحقّق من جودة بث الفيديو اختبار جهاز HID يتضمّن بلوتوث اختبار الميكروفون بالموجات فوق الصوتية عالية الجودة اختبار مكبّر الصوت بالموجات فوق الصوتية العالية الجودة |
اختبار الجهاز المطلوب فتح قفله اختبار اكتشاف جهاز الاستشعار الديناميكي اختبار عدم ارتداء جهاز استشعار الجسم اختبار حركة كبيرة اختبار إشعار توجيه إخراج الصوت اختبار طلب الشبكة أو الاقتراح |
ملاحظات الإصدار
يتضمّن الإصدار 1.1 من "trout
" المشاكل المعروفة التالية:
- إصدارات المستخدم من
trout
غير متاحة. تم تصميم النظام على أنه-userdebug
، ما قد يؤثر في بعض اختبارات CTS. - لا يمكن استخدام ميزة "التشغيل المتحقّق منه على Android".
- قد تكون بعض أنظمة Android الفرعية غير متاحة، بما في ذلك نظام التشغيل الآمن وNNHAL.
- يتم توفير الوصول إلى شبكة الضيف بشكل عام عن طريق محوّل Wi-Fi افتراضي
virtio-net
نفق. يعتمد الاتصال من جهة المضيف على نشر برنامج Hypervisor (مراقب الأجهزة الظاهرية) الخاص بك. - قد توفر بعض التطبيقات إمكانية استخدام بلوتوث محدودة أو لا توفر أي إمكانية على الإطلاق.
- قد لا يعمل حقن حدث VHAL مع بعض أدوات الاستشعار.
- يمكن أن تؤدي بعض أعباء العمل الثقيلة إلى حدوث خلل في تشغيل الصوت.
- في بعض عمليات التنفيذ، قد تؤدي إعادة تشغيل adb لضيف AAOS إلى إعادة تشغيل النظام بالكامل.
- يمكن أن تتسبب آلية STS في عدم استقرار النظام وتتطلّب إعادة تشغيل الجهاز.
للمزيد من التفاصيل، يُرجى الرجوع إلى ملاحظات إصدار الشركاء الخاصة بعملية النشر المحدّدة
trout