Android ভার্চুয়ালাইজেশন ফ্রেমওয়ার্ক (AVF) কোড এক্সিকিউট করার জন্য সুরক্ষিত ও ব্যক্তিগত এক্সিকিউশন পরিবেশ প্রদান করে। AVF হল নিরাপত্তা-কেন্দ্রিক ব্যবহারের ক্ষেত্রে আদর্শ যেখানে Android-এর অ্যাপ স্যান্ডবক্সের তুলনায় আরও শক্তিশালী, এমনকি আনুষ্ঠানিকভাবে যাচাই করা আইসোলেশন সংক্রান্ত নিশ্চয়তা প্রয়োজন। AVF প্রয়োগ করার জন্য প্রয়োজনীয় সব কম্পোনেন্টের রেফারেন্স প্রয়োগ Android প্রদান করে। AVF শুধুমাত্র ARM64 ডিভাইসে কাজ করে। ছবি ১-এ AVF-এর আর্কিটেকচার দেখানো হয়েছে:
ছবি ১. AVF আর্কিটেকচার।
১ নম্বর ছবিতে দেখানো সবচেয়ে গুরুত্বপূর্ণ শব্দগুলির সংজ্ঞা এখানে দেওয়া হল:
- apexd ও zipfuse
- হোস্ট থেকে ইমপোর্ট করা APEX ও APK নিরাপদে মাউন্ট করে।
- authfs
- Android এবং pVM (হোস্ট এবং গেস্ট)-এর মধ্যে একাধিক ফাইল নিরাপদে শেয়ার করার জন্য একটি ফিউজ ফাইল সিস্টেম।
- বাইন্ডার
- দুটি VM-এর মধ্যে যোগাযোগের প্রাথমিক উপায়।
- crosvm
- রাস্টে লেখা ভার্চুয়াল মেশিন মনিটর। crosvm, VM মেমরি বরাদ্দ করে, ভার্চুয়াল CPU থ্রেড তৈরি করে এবং ভার্চুয়াল ডিভাইসের ব্যাক-এন্ড প্রয়োগ করে।
- Generic Kernel Image (GKI)
- Google-এর দ্বারা সার্টিফায়েড বুট ইমেজ যাতে Android কমন কার্নেল (ACK) সোর্স ট্রি থেকে তৈরি GKI কার্নেল থাকে এবং যা Android ডিভাইসের বুট পার্টিশনে ফ্ল্যাশ করার জন্য উপযুক্ত। আরও তথ্যের জন্য, Kernel ওভারভিউ দেখুন।
- হাইপারভাইজর
- AVF-এর ব্যবহৃত ভার্চুয়ালাইজেশন প্রযুক্তি, যা pKVM নামেও পরিচিত। হোস্ট Android বা অন্য কোনও pVM-এর সাথে আপোস করা হলেও, হাইপারভাইজার এক্সিকিউট করা কোডের ইন্টিগ্রিটি এবং pVM-এর অ্যাসেটের গোপনীয়তা বজায় রাখে।
- Java API
- ভার্চুয়ালাইজেশন সার্ভিস Java API, যা শুধুমাত্র AVF কাজ করে এমন ডিভাইসে
উপস্থিত থাকে। এইসব API ঐচ্ছিক এবং
thebootclasspath-এর অংশ নয়। - Microdroid
- Google-এর দেওয়া একটি মিনি-Android OS যা pVM-এ চলে।
- Microdroid Manager
- pVM-এর মধ্যে এবং ইনস্ট্যান্স ডিস্কে pVM লাইফসাইকেল ম্যানেজ করে।
- নেটিভ API
- Android নেটিভ ডেভেলপার কিটের (NDK) একটি সাবসেট।
- protected kernel-based virtual machine (pKVM)
- Hypervisor দেখুন।
- pVM ফার্মওয়্যার (
pvmfw) - pVM-এ রান করা প্রথম কোড,
pvmfwপেলোড যাচাই করে এবং প্রতি-VM সিক্রেট বের করে। - সুরক্ষিত ভার্চুয়াল মেশিন (pVM)
একটি পারস্পরিক অবিশ্বস্ত বিচ্ছিন্ন এক্সিকিউশন এনভায়রনমেন্ট (অতিথি) যা মূল Android অপারেটিং সিস্টেমের (হোস্ট) পাশাপাশি চলে। pVM নিরাপত্তার একটি গুরুত্বপূর্ণ দিক হল, হোস্টের নিরাপত্তা বিঘ্নিত হলেও, হোস্টের কাছে pVM-এর মেমরি অ্যাক্সেস করার সুবিধা থাকে না। pVM চালানোর জন্য pKVM হল স্ট্যান্ডার্ড হাইপারভাইজার।
আগে থেকে থাকা বিশ্বস্ত এক্সিকিউশন এনভায়রনমেন্ট (TEE)-এর তুলনায়, pVM আরও উন্নত এনভায়রনমেন্ট প্রদান করে, এর মধ্যে Microdroid নামের একটি মিনি-Android ডিস্ট্রিবিউশন চালানোর ক্ষমতা অন্তর্ভুক্ত (যদিও Microdroid একটি অসুরক্ষিত VM-এও চলতে পারে)। pVM ডাইনামিক ব্যবহার করা যেতে পারে এবং এটি বিশ্বস্ত এনভায়রনমেন্টে API-এর একটি স্ট্যান্ডার্ড সেট প্রদান করে যা সেইসব ডিভাইস জুড়ে উপলভ্য যেগুলিতে এটি কাজ করে।
- VirtualizationService
Android পরিষেবা যা pVM-এর লাইফসাইকেল ম্যানেজ করে।
এর পরে কী হবে?
- AVF-এর প্রয়োজনীয়তা আরও ভালোভাবে বুঝতে চাইলে, AVF কেন? দেখুন।
- আলাদা কম্পাইলেশনের জন্য কীভাবে AVF ব্যবহার করা যায় সেই সম্পর্কে জানতে, ব্যবহারের ক্ষেত্র দেখুন।
- AVF রেফারেন্স ইমপ্লিমেন্টেশনের আর্কিটেকচার সম্পর্কে আরও বিস্তারিত ব্যাখ্যা চাইলে, AVF আর্কিটেকচার দেখুন।
- আপনি Microdroid সম্পর্কে জানতে চাইলে, Microdroid দেখুন।
- AVF কীভাবে নিরাপত্তা ম্যানেজ করে সেই বিষয়ে জানতে চাইলে, নিরাপত্তা দেখুন।
- ভার্চুয়ালাইজেশন পরিষেবার ভূমিকা বুঝতে, VirtualizationService দেখুন।
- AVF-এর সোর্স কোড বা স্বতন্ত্র কম্পোনেন্ট সম্পর্কে বিস্তারিত ব্যাখ্যার জন্য, AOSP রিপোজিটরি দেখুন