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
সংযোগ পরামিতি সরবরাহ করার মাধ্যমে এগুলি কনফিগার করা আবশ্যক।
বিল্ডিং ট্রাউট
ইউজারস্পেস কম্পাইল করুন
ইউজারস্পেস কম্পাইল করতে:
- অ্যান্ড্রয়েড সোর্স ট্রি ডাউনলোড করুন:
repo init -u https://android.googlesource.com/platform/manifest -b master repo sync -j8
- পরিবেশ তৈরি করুন:
source build/envsetup.sh lunch aosp_trout_arm64-userdebug make -j24
কার্নেল বিল্ডিং
trout
1.0 এর জন্য, AOSP-তে কার্নেল কোডবেস প্রদান করা হয়েছে। VirtIO সাবসিস্টেমের জন্য trout
-নির্দিষ্ট মডিউল যোগ করে, trout
কার্নেল আপস্ট্রিম ACK 5.10-এর মতো একই কোড দ্বারা গঠিত।
- কার্নেল ক্লোন করতে, চালান:
repo init https://android.googlesource.com/kernel/manifest -b trout-android12-5.10 && repo sync
- 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
সংযোগ পরামিতি সরবরাহ করার মাধ্যমে এগুলি কনফিগার করা আবশ্যক।
বিল্ডিং ট্রাউট
ইউজারস্পেস কম্পাইল করুন
ইউজারস্পেস কম্পাইল করতে:
- অ্যান্ড্রয়েড সোর্স ট্রি ডাউনলোড করুন:
repo init -u https://android.googlesource.com/platform/manifest -b master repo sync -j8
- পরিবেশ তৈরি করুন:
source build/envsetup.sh lunch aosp_trout_arm64-userdebug make -j24
কার্নেল বিল্ডিং
trout
1.0 এর জন্য, AOSP-তে কার্নেল কোডবেস প্রদান করা হয়েছে। VirtIO সাবসিস্টেমের জন্য trout
-নির্দিষ্ট মডিউল যোগ করে, trout
কার্নেল আপস্ট্রিম ACK 5.10-এর মতো একই কোড দ্বারা গঠিত।
- কার্নেল ক্লোন করতে, চালান:
repo init https://android.googlesource.com/kernel/manifest -b trout-android12-5.10 && repo sync
- 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
নির্দিষ্ট স্থাপনার জন্য অংশীদার রিলিজ নোটগুলি পড়ুন।