রেফারেন্স প্ল্যাটফর্ম

trout নামে একটি নতুন পণ্যের মাধ্যমে, Android অটোমোটিভ (AAOS) এখন VirtIO স্ট্যান্ডার্ডের সাথে সামঞ্জস্যপূর্ণ পরিবেশে অতিথি ভার্চুয়াল মেশিন (VM) হিসাবে স্থাপনের জন্য সমর্থন প্রদান করে। trout কাটলফিশ ভার্চুয়াল রেফারেন্স প্ল্যাটফর্মের উপর ভিত্তি করে এবং trout ডিভাইস কনফিগারেশন হিসাবে উপলব্ধ। ইউজারস্পেস সোর্স কোড device/google/trout এ পাওয়া যাবে। নীচের সারণীটি trout প্রতিটি সাবসিস্টেমকে ভার্চুয়ালাইজ করতে ব্যবহৃত প্রযুক্তি বর্ণনা করে।

বৈশিষ্ট্য প্রযুক্তি
অডিও কন্ট্রোল HAL vsock/gRPC
অডিও HAL virtio-snd
ব্লুটুথ virtio-console
ডাম্পস্টেট 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 একটি সূচনা পয়েন্ট হিসাবে ব্যবহার করা যেতে পারে। বিল্ড অবকাঠামোটি প্রসারিত এবং কাস্টমাইজ করার জন্য ডিজাইন করা হয়েছে। উদাহরণ স্বরূপ:

# 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 ...]

বেশ কিছু অ্যান্ড্রয়েড এইচএএল আলাদাভাবে কাস্টম ইমপ্লিমেন্টেশনের সাথে প্রতিস্থাপিত হতে পারে, অথবা ডিফল্ট ইমপ্লিমেন্টেশন রক্ষণাবেক্ষণ করা হয়েছে কিন্তু নির্দিষ্ট কনফিগারেশন প্যারামিটারগুলিকে লক্ষ্য পরিবেশে সঠিক আন্তঃ-ভিএম যোগাযোগ স্থাপনের জন্য সামঞ্জস্য করা হয়েছে। এই HALগুলি (যানবাহন HAL, অডিও কন্ট্রোল HAL, এবং ডাম্পস্টেট HAL সহ) একটি gRPC ইন্টারফেসের মাধ্যমে প্রয়োগ করা হয় যা AAOS গেস্ট এবং একটি হোস্ট সিস্টেমের মধ্যে একটি vsock সংযোগ দ্বারা সমর্থিত অন্তর্নিহিত বৈশিষ্ট্য বাস্তবায়ন প্রদান করে। বিক্রেতা বৈশিষ্ট্য হিসাবে সঠিক vsock সংযোগ পরামিতি সরবরাহ করার মাধ্যমে এগুলি কনফিগার করা আবশ্যক।

বিল্ডিং ট্রাউট

ইউজারস্পেস কম্পাইল করুন

ইউজারস্পেস কম্পাইল করতে:

  1. অ্যান্ড্রয়েড সোর্স ট্রি ডাউনলোড করুন:
    repo init -u https://android.googlesource.com/platform/manifest -b master
    repo sync -j8
    
  2. পরিবেশ তৈরি করুন:
    source build/envsetup.sh
    lunch aosp_trout_arm64-userdebug
    make -j24
    

কার্নেল বিল্ডিং

trout 1.0 এর জন্য, AOSP-তে কার্নেল কোডবেস প্রদান করা হয়েছে। VirtIO সাবসিস্টেমের জন্য trout -নির্দিষ্ট মডিউল যোগ করে, trout কার্নেল আপস্ট্রিম ACK 5.10-এর মতো একই কোড দ্বারা গঠিত।

  1. কার্নেল ক্লোন করতে, চালান:
    repo init https://android.googlesource.com/kernel/manifest -b trout-android12-5.10 && repo sync
    
  2. OpenSynergy পরিবেশের জন্য কার্নেল তৈরি করতে, চালান:
    BUILD_CONFIG=common-modules/virtual-device/build.config.trout.coqos build/build.sh
    

সম্মতি

যখন AAOS একটি গেস্ট VM হিসাবে চলে, তখন আমাদের লক্ষ্য হল ফ্রেমওয়ার্কের দৃষ্টিকোণ থেকে একটি সামঞ্জস্যপূর্ণ Android স্থাপনা। হোস্ট সাইড সমস্যা হল প্রতিটি বাস্তবায়নের পরিধি এবং trout 1.0 এর সুযোগের বাইরে।

trout 1.0-এ, বেশ কিছু CTS সমস্যা রয়ে গেছে। নিম্নলিখিত CTS মডিউলগুলি পরীক্ষা ব্যর্থতাগুলিকে অন্তর্ভুক্ত করার জন্য পরিচিত:

CtsStagedInstallHostTestCases
CtsRollbackManagerHostTestCases
CtsVideoTestCases
CtsHostsideNetworkTests
CtsActivityManagerBackgroundActivityTestCases
CtsAdbHostTestCases
CtsNativeHardwareTestCases
CtsContentTestCases
CtsCarHostTestCases
CtsOsTestCases
CtsStatsdHostTestCases
CtsVoiceInteractionTestCases
CtsViewTestCases
CtsCameraTestCases
CtsLocationGnssTestCases
CtsGraphicsTestCases
CtsIncidentHostTestCases
CtsInstallHostTestCases
CtsNativeVerifiedBootTestCases
CtsNetTestCases
CtsWindowManagerDeviceTestCases
CtsMediaStressTestCases
CtsAppTestCases
CtsUsbTests
CtsAutoFillServiceTestCases
CtsDisplayTestCases
CtsMediaTestCases
CtsDeqpTestCases
CtsDumpsysHostTest Cases
CtsOpenGLTestCasesCtsLibcoreTestCases
CtsSecurityHostTestCases
CtsInputMethodTestCases
CtsStatsdAtomHostTestCases
CtsPermission4TestCases
CtsNNAPIBenchmarkTestCases
CtsSimpleperfTestCases
CtsAccessibilityTestCases
CtsAppSecurityHostTestCases
CtsKeystoreTestCases

নিম্নলিখিত CTS-V ক্ষেত্রগুলি পরীক্ষায় ব্যর্থতাকে অন্তর্ভুক্ত করার জন্য পরিচিত:

গাড়ি লঞ্চার পরীক্ষা
ব্লুটুথ লো এনার্জি (BLE) বিজ্ঞাপনদাতা পরীক্ষা
স্ট্রিমিং ভিডিও কোয়ালিটি যাচাইকারী
ব্লুটুথ HID ডিভাইস পরীক্ষা
হাইফাই আল্ট্রাসাউন্ড মাইক্রোফোন পরীক্ষা
Hifi আল্ট্রাসাউন্ড স্পিকার পরীক্ষা
আনলক করা ডিভাইসের প্রয়োজনীয় পরীক্ষা
ডায়নামিক সেন্সর আবিষ্কার পরীক্ষা
অফ বডি সেন্সর পরীক্ষা
উল্লেখযোগ্য গতি পরীক্ষা
অডিও আউটপুট রাউটিং বিজ্ঞপ্তি পরীক্ষা
নেটওয়ার্ক অনুরোধ বা সাজেশন পরীক্ষা

অব্যাহতি পত্র

trout 1.0 এ নিম্নলিখিত পরিচিত সমস্যা রয়েছে:

  • trout ব্যবহারকারী বিল্ড উপলব্ধ নেই. সিস্টেমটি -userdebug হিসাবে তৈরি করা হয়েছে, যা কিছু CTS পরীক্ষাকে প্রভাবিত করতে পারে।
  • Android এর জন্য TrustZone-এ অ্যাক্সেস trout 1.0-এ সমর্থিত নয়।
  • অ্যান্ড্রয়েড ভেরিফাইড বুট (AVB) সমর্থিত নয়।
  • trout 1.0-এ নিউরাল অ্যাক্সিলারেটর NNAPI-এর সংস্পর্শে আসে না।
  • Wi-Fi ভার্চুয়ালাইজেশন উপলব্ধ নয়, কিছু বাস্তবায়ন একটি `virtio-net` টানেলের জন্য সীমিত সমর্থন প্রদান করে।
  • কিছু ক্ষেত্রে, Android Debug Bridge (ADB) এর মাধ্যমে বড় ফাইলগুলিকে Android থেকে বা তে স্থানান্তর করার ফলে সিস্টেমটি হ্যাং হয়ে যেতে পারে।
  • কিছু ক্ষেত্রে, এসএমএস অ্যাপ পেয়ার করা ব্লুটুথ ফোনের সাথে সিঙ্ক্রোনাইজ করা বন্ধ করে দিতে পারে।
  • একটি VHAL ইভেন্ট ইনজেকশন কিছু সেন্সরের জন্য কাজ নাও করতে পারে।
  • অন্তর্নিহিত SoC-এর ADB সিরিয়ালটি গেস্টের ADB সিরিয়াল হিসাবে Android-এ ফরোয়ার্ড করা হয় না।
  • কিছু বাস্তবায়নে, নেটওয়ার্ক সংযোগের জন্য হোস্টের কাছে ইথারনেট উপলব্ধ নাও হতে পারে।

অতিরিক্ত বিবরণের জন্য, আপনার trout নির্দিষ্ট স্থাপনার জন্য অংশীদার রিলিজ নোটগুলি পড়ুন।

,

trout নামে একটি নতুন পণ্যের মাধ্যমে, Android অটোমোটিভ (AAOS) এখন VirtIO স্ট্যান্ডার্ডের সাথে সামঞ্জস্যপূর্ণ পরিবেশে অতিথি ভার্চুয়াল মেশিন (VM) হিসাবে স্থাপনের জন্য সমর্থন প্রদান করে। trout কাটলফিশ ভার্চুয়াল রেফারেন্স প্ল্যাটফর্মের উপর ভিত্তি করে এবং trout ডিভাইস কনফিগারেশন হিসাবে উপলব্ধ। ইউজারস্পেস সোর্স কোড device/google/trout এ পাওয়া যাবে। নীচের সারণীটি trout প্রতিটি সাবসিস্টেমকে ভার্চুয়ালাইজ করতে ব্যবহৃত প্রযুক্তি বর্ণনা করে।

বৈশিষ্ট্য প্রযুক্তি
অডিও কন্ট্রোল HAL vsock/gRPC
অডিও HAL virtio-snd
ব্লুটুথ virtio-console
ডাম্পস্টেট 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 একটি সূচনা পয়েন্ট হিসাবে ব্যবহার করা যেতে পারে। বিল্ড অবকাঠামোটি প্রসারিত এবং কাস্টমাইজ করার জন্য ডিজাইন করা হয়েছে। উদাহরণ স্বরূপ:

# 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 ...]

বেশ কিছু অ্যান্ড্রয়েড এইচএএল আলাদাভাবে কাস্টম ইমপ্লিমেন্টেশনের সাথে প্রতিস্থাপিত হতে পারে, অথবা ডিফল্ট ইমপ্লিমেন্টেশন রক্ষণাবেক্ষণ করা হয়েছে কিন্তু নির্দিষ্ট কনফিগারেশন প্যারামিটারগুলিকে লক্ষ্য পরিবেশে সঠিক আন্তঃ-ভিএম যোগাযোগ স্থাপনের জন্য সামঞ্জস্য করা হয়েছে। এই HALগুলি (যানবাহন HAL, অডিও কন্ট্রোল HAL, এবং ডাম্পস্টেট HAL সহ) একটি gRPC ইন্টারফেসের মাধ্যমে প্রয়োগ করা হয় যা AAOS গেস্ট এবং একটি হোস্ট সিস্টেমের মধ্যে একটি vsock সংযোগ দ্বারা সমর্থিত অন্তর্নিহিত বৈশিষ্ট্য বাস্তবায়ন প্রদান করে। বিক্রেতা বৈশিষ্ট্য হিসাবে সঠিক vsock সংযোগ পরামিতি সরবরাহ করার মাধ্যমে এগুলি কনফিগার করা আবশ্যক।

বিল্ডিং ট্রাউট

ইউজারস্পেস কম্পাইল করুন

ইউজারস্পেস কম্পাইল করতে:

  1. অ্যান্ড্রয়েড সোর্স ট্রি ডাউনলোড করুন:
    repo init -u https://android.googlesource.com/platform/manifest -b master
    repo sync -j8
    
  2. পরিবেশ তৈরি করুন:
    source build/envsetup.sh
    lunch aosp_trout_arm64-userdebug
    make -j24
    

কার্নেল বিল্ডিং

trout 1.0 এর জন্য, AOSP-তে কার্নেল কোডবেস প্রদান করা হয়েছে। VirtIO সাবসিস্টেমের জন্য trout -নির্দিষ্ট মডিউল যোগ করে, trout কার্নেল আপস্ট্রিম ACK 5.10-এর মতো একই কোড দ্বারা গঠিত।

  1. কার্নেল ক্লোন করতে, চালান:
    repo init https://android.googlesource.com/kernel/manifest -b trout-android12-5.10 && repo sync
    
  2. OpenSynergy পরিবেশের জন্য কার্নেল তৈরি করতে, চালান:
    BUILD_CONFIG=common-modules/virtual-device/build.config.trout.coqos build/build.sh
    

সম্মতি

যখন AAOS একটি গেস্ট VM হিসাবে চলে, তখন আমাদের লক্ষ্য হল ফ্রেমওয়ার্কের দৃষ্টিকোণ থেকে একটি সামঞ্জস্যপূর্ণ Android স্থাপনা। হোস্ট সাইড সমস্যা হল প্রতিটি বাস্তবায়নের পরিধি এবং trout 1.0 এর সুযোগের বাইরে।

trout 1.0-এ, বেশ কিছু CTS সমস্যা রয়ে গেছে। নিম্নলিখিত CTS মডিউলগুলি পরীক্ষা ব্যর্থতাগুলিকে অন্তর্ভুক্ত করার জন্য পরিচিত:

CtsStagedInstallHostTestCases
CtsRollbackManagerHostTestCases
CtsVideoTestCases
CtsHostsideNetworkTests
CtsActivityManagerBackgroundActivityTestCases
CtsAdbHostTestCases
CtsNativeHardwareTestCases
CtsContentTestCases
CtsCarHostTestCases
CtsOsTestCases
CtsStatsdHostTestCases
CtsVoiceInteractionTestCases
CtsViewTestCases
CtsCameraTestCases
CtsLocationGnssTestCases
CtsGraphicsTestCases
CtsIncidentHostTestCases
CtsInstallHostTestCases
CtsNativeVerifiedBootTestCases
CtsNetTestCases
CtsWindowManagerDeviceTestCases
CtsMediaStressTestCases
CtsAppTestCases
CtsUsbTests
CtsAutoFillServiceTestCases
CtsDisplayTestCases
CtsMediaTestCases
CtsDeqpTestCases
CtsDumpsysHostTest Cases
CtsOpenGLTestCasesCtsLibcoreTestCases
CtsSecurityHostTestCases
CtsInputMethodTestCases
CtsStatsdAtomHostTestCases
CtsPermission4TestCases
CtsNNAPIBenchmarkTestCases
CtsSimpleperfTestCases
CtsAccessibilityTestCases
CtsAppSecurityHostTestCases
CtsKeystoreTestCases

নিম্নলিখিত CTS-V ক্ষেত্রগুলি পরীক্ষায় ব্যর্থতাকে অন্তর্ভুক্ত করার জন্য পরিচিত:

গাড়ি লঞ্চার পরীক্ষা
ব্লুটুথ লো এনার্জি (BLE) বিজ্ঞাপনদাতা পরীক্ষা
স্ট্রিমিং ভিডিও কোয়ালিটি যাচাইকারী
ব্লুটুথ HID ডিভাইস পরীক্ষা
হাইফাই আল্ট্রাসাউন্ড মাইক্রোফোন পরীক্ষা
Hifi আল্ট্রাসাউন্ড স্পিকার পরীক্ষা
আনলক করা ডিভাইসের প্রয়োজনীয় পরীক্ষা
ডায়নামিক সেন্সর আবিষ্কার পরীক্ষা
অফ বডি সেন্সর পরীক্ষা
উল্লেখযোগ্য গতি পরীক্ষা
অডিও আউটপুট রাউটিং বিজ্ঞপ্তি পরীক্ষা
নেটওয়ার্ক অনুরোধ বা সাজেশন পরীক্ষা

অব্যাহতি পত্র

trout 1.0 এ নিম্নলিখিত পরিচিত সমস্যা রয়েছে:

  • trout ব্যবহারকারী বিল্ড উপলব্ধ নেই. সিস্টেমটি -userdebug হিসাবে তৈরি করা হয়েছে, যা কিছু CTS পরীক্ষাকে প্রভাবিত করতে পারে।
  • Android এর জন্য TrustZone-এ অ্যাক্সেস trout 1.0-এ সমর্থিত নয়।
  • অ্যান্ড্রয়েড ভেরিফাইড বুট (AVB) সমর্থিত নয়।
  • trout 1.0-এ নিউরাল অ্যাক্সিলারেটর NNAPI-এর সংস্পর্শে আসে না।
  • Wi-Fi ভার্চুয়ালাইজেশন উপলব্ধ নয়, কিছু বাস্তবায়ন একটি `virtio-net` টানেলের জন্য সীমিত সমর্থন প্রদান করে।
  • কিছু ক্ষেত্রে, Android Debug Bridge (ADB) এর মাধ্যমে বড় ফাইলগুলিকে Android থেকে বা তে স্থানান্তর করার ফলে সিস্টেমটি হ্যাং হয়ে যেতে পারে।
  • কিছু ক্ষেত্রে, এসএমএস অ্যাপ পেয়ার করা ব্লুটুথ ফোনের সাথে সিঙ্ক্রোনাইজ করা বন্ধ করে দিতে পারে।
  • একটি VHAL ইভেন্ট ইনজেকশন কিছু সেন্সরের জন্য কাজ নাও করতে পারে।
  • অন্তর্নিহিত SoC-এর ADB সিরিয়ালটি গেস্টের ADB সিরিয়াল হিসাবে Android-এ ফরোয়ার্ড করা হয় না।
  • কিছু বাস্তবায়নে, নেটওয়ার্ক সংযোগের জন্য হোস্টের কাছে ইথারনেট উপলব্ধ নাও হতে পারে।

অতিরিক্ত বিবরণের জন্য, আপনার trout নির্দিষ্ট স্থাপনার জন্য অংশীদার রিলিজ নোটগুলি পড়ুন।