المنصة المرجعية

توفّر 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 كخصائص مورّد يعمل رمز المصدر كأداة الحقائق الواقعية عن الخصائص المتاحة للتكوين ودلالاتها.

بناء سمك السلمون المرقط

تجميع مساحة المستخدم

لتجميع مساحة المستخدم:

  1. تنزيل شجرة مصادر Android:
    repo init -u https://android.googlesource.com/platform/manifest -b main
    repo sync -j8
    
  2. بناء البيئة:
    source build/envsetup.sh
    lunch aosp_trout_arm64-userdebug
    make -j24
    

بناء النواة

بالنسبة إلى الإصدار 1.1 من trout، يتم توفير قاعدة رموز النواة في بروتوكول AOSP. trout تتألف kernel من نفس رمز ACK 5.10 الرئيسي، بالإضافة إلى وحدات خاصة بـ trout لأنظمة VirtIO الفرعية.

  1. لاستنساخ النواة، شغِّل:
    repo init https://android.googlesource.com/kernel/manifest -b trout-android12-5.10 && repo sync
    
  2. لإنشاء تشغيل النواة:
    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