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 main repo sync -j8
- পরিবেশ তৈরি করুন:
source build/envsetup.sh lunch aosp_trout_arm64-userdebug make -j24
কার্নেল তৈরি করুন
trout
1.1-এর জন্য, AOSP-তে কার্নেল কোডবেস দেওয়া আছে। VirtIO সাবসিস্টেমের জন্য trout
-নির্দিষ্ট মডিউল যুক্ত করে, trout
কার্নেল আপস্ট্রিম ACK 5.10-এর মতো একই কোড দিয়ে গঠিত।
- কার্নেল ক্লোন করতে, চালান:
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
আপনার হাইপারভাইজার সরবরাহকারীর একটি ভিন্ন কার্নেল কনফিগারেশনের প্রয়োজন হতে পারে বা অতিরিক্ত মডিউল যা কম্পাইল করা প্রয়োজন। প্রদান করা হলে এই নির্দিষ্ট নির্দেশিকা অনুসরণ করতে ভুলবেন না।
সম্মতি
যখন AAOS একটি গেস্ট VM হিসাবে চলে, তখন আমাদের লক্ষ্য হল ফ্রেমওয়ার্কের দৃষ্টিকোণ থেকে একটি সামঞ্জস্যপূর্ণ Android স্থাপনা। হোস্ট সাইড সমস্যা হল প্রতিটি বাস্তবায়নের পরিধি এবং trout
1.1 এর সুযোগের বাইরে।
আমরা trout
1.1-এ অতিরিক্ত xTS বৈধতা করিনি। trout
1.0-এ CTS সমর্থনের নীচের আলোচনাটি উল্লেখ করা চালিয়ে যান।
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 CtsDumpsysHostTestCases CtsOpenGLTestCasesCtsLibcoreTestCases CtsSecurityHostTestCases CtsInputMethodTestCases CtsStatsdAtomHostTestCases CtsPermission4TestCases CtsNNAPIBenchmarkTestCases CtsSimpleperfTestCases CtsAccessibilityTestCases CtsAppSecurityHostTestCases CtsKeystoreTestCases |
নিম্নলিখিত CTS-V ক্ষেত্রগুলি পরীক্ষায় ব্যর্থতাকে অন্তর্ভুক্ত করার জন্য পরিচিত:
গাড়ি লঞ্চার পরীক্ষা ব্লুটুথ লো এনার্জি (BLE) বিজ্ঞাপনদাতা পরীক্ষা স্ট্রিমিং ভিডিও কোয়ালিটি যাচাইকারী ব্লুটুথ HID ডিভাইস পরীক্ষা হাইফাই আল্ট্রাসাউন্ড মাইক্রোফোন পরীক্ষা Hifi আল্ট্রাসাউন্ড স্পিকার পরীক্ষা | আনলক করা ডিভাইসের প্রয়োজনীয় পরীক্ষা ডায়নামিক সেন্সর আবিষ্কার পরীক্ষা অফ বডি সেন্সর পরীক্ষা উল্লেখযোগ্য গতি পরীক্ষা অডিও আউটপুট রাউটিং বিজ্ঞপ্তি পরীক্ষা নেটওয়ার্ক অনুরোধ বা সাজেশন পরীক্ষা |
রিলিজ নোট
trout
1.1-এ নিম্নলিখিত পরিচিত সমস্যা রয়েছে:
-
trout
ইউজার বিল্ড পাওয়া যায় না। সিস্টেমটি-userdebug
হিসাবে তৈরি করা হয়েছে, যা কিছু CTS পরীক্ষাকে প্রভাবিত করতে পারে। - Android Verified Boot (AVB) সমর্থিত নয়।
- নিরাপদ বিশ্ব এবং NNHAL সহ কিছু Android সাবসিস্টেম অনুপলব্ধ হতে পারে৷
- গেস্ট নেটওয়ার্ক অ্যাক্সেস সাধারণত ভার্চুয়ালাইজড ওয়াই-ফাই অ্যাডাপ্টার এবং একটি
virtio-net
টানেলের মাধ্যমে প্রদান করা হয়। হোস্ট-সাইড সংযোগ আপনার নির্দিষ্ট হাইপারভাইজার স্থাপনার উপর নির্ভর করে। - কিছু বাস্তবায়ন সীমিত বা কোন ব্লুটুথ ক্ষমতা অফার করতে পারে।
- একটি VHAL ইভেন্ট ইনজেকশন কিছু সেন্সরের জন্য কাজ নাও করতে পারে।
- কিছু ভারী কাজের চাপ অডিও প্লেব্যাক সমস্যা সৃষ্টি করতে পারে।
- কিছু বাস্তবায়নে, AAOS গেস্টের adb রিবুট পুরো সিস্টেম রিবুট করতে পারে।
- STS সিস্টেম অস্থিরতা সৃষ্টি করতে পারে এবং একটি রিবুট প্রয়োজন।
অতিরিক্ত বিবরণের জন্য, আপনার trout
নির্দিষ্ট স্থাপনার জন্য অংশীদার রিলিজ নোটগুলি পড়ুন।