এই নথিতে AVF-এর সাধারণ ব্যবহারের ক্ষেত্রে রয়েছে৷
বিচ্ছিন্ন সংকলন
একটি সফ্টওয়্যার-সুরক্ষিত ছিটমহল হিসাবে, একটি সুরক্ষিত VM নিরাপত্তা-সংবেদনশীল কোড কম্পাইল করার জন্য একটি নিরাপদ পরিবেশ প্রদান করে। এই পরিবেশটি bootclasspath
এবং সিস্টেম সার্ভার JAR-এর সংকলনকে (এপেক্স আপডেট দ্বারা ট্রিগার করা হয়েছে) প্রাথমিক বুট থেকে রিবুট করার আগে স্থানান্তরিত করার অনুমতি দেয় এবং APEX আপডেটের পর বুট সময় উল্লেখযোগ্যভাবে হ্রাস করে।
বাস্তবায়নটি com.android.compos
APEX-এ রয়েছে। এই উপাদানটি ঐচ্ছিক এবং একটি মেকফাইল ব্যবহার করে অন্তর্ভুক্ত করা যেতে পারে।
নিরাপত্তা লক্ষ্য হল সত্যভাবে যাচাইকৃত ইনপুট সংকলন করা এবং বিচ্ছিন্নভাবে আউটপুট তৈরি করা; একটি অবিশ্বস্ত ক্লায়েন্ট হিসাবে অ্যান্ড্রয়েড কম্পাইলেশন আউটপুটকে ব্যর্থ হওয়া ছাড়া অন্য কোনো উপায়ে পরিবর্তন করতে পারে না (যখন অ্যান্ড্রয়েড বুট টাইম সংকলনে ফিরে আসে)।
পুরো সংকলনের সময় কোনো ত্রুটি না থাকলেই VM-এ সংকলন পরিষেবা একটি স্বাক্ষর তৈরি করে। স্বাক্ষর যাচাইয়ের জন্য Android VM থেকে সর্বজনীন কী পুনরুদ্ধার করতে পারে।
VM-এর কীটি VM-এর DICE প্রোফাইল থেকে তৈরি করা হয়, যা ডিবাগবিলিটির মতো অন্যান্য VM প্যারামিটার ছাড়াও VM-এ মাউন্ট করা APEXes এবং APKs দ্বারা সংজ্ঞায়িত করা হয়।
সর্বজনীন কীটি অপ্রত্যাশিত VM থেকে নয় কিনা তা নির্ধারণ করতে, কীটি সঠিক কিনা তা নির্ধারণ করতে Android VM বুট করে। প্রতিটি APEX আপডেটের পর প্রাথমিক বুটে VM বুট করা হয়।
সুরক্ষিত VM এর যাচাইকৃত বুট সহ, সংকলন পরিষেবাটি শুধুমাত্র যাচাইকৃত কোড চালায়। কোডটি তাই নির্দিষ্ট শর্ত পূরণ করে এমন ইনপুটগুলি গ্রহণ করতে নির্ধারণ করতে পারে, উদাহরণস্বরূপ, একটি ইনপুট ফাইল গ্রহণ করুন যেখানে এর নাম এবং fs-verity
digest একটি অনুমোদিত তালিকায় সংজ্ঞায়িত করা হয়েছে।
VM থেকে উন্মুক্ত API গুলি আক্রমণের পৃষ্ঠ। সমস্ত ইনপুট ফাইল এবং পরামিতি একটি অবিশ্বস্ত ক্লায়েন্ট থেকে অনুমান করা হয়, এবং প্রক্রিয়াকরণের আগে যাচাই এবং যাচাই করা আবশ্যক৷
ইনপুট/আউটপুট ফাইলের অখণ্ডতা VM দ্বারা যাচাই করা হয়, একটি অবিশ্বস্ত ফাইল সার্ভার হিসাবে অ্যান্ড্রয়েডে সংরক্ষিত ফাইলগুলি নিম্নরূপ:
-
fs-verity
অ্যালগরিদম ব্যবহার করার আগে ইনপুট ফাইলের বিষয়বস্তু অবশ্যই যাচাই করা উচিত। একটি ইনপুট ফাইল ভিএম-এ উপলভ্য হওয়ার জন্য, এর রুট হ্যাশ অবশ্যই একটি কন্টেইনারে (APK) প্রদান করতে হবে যা VM-এর DICE প্রোফাইলে অবদান রাখে। বিশ্বস্ত রুট হ্যাশের সাথে, একজন আক্রমণকারী সনাক্ত না করে ইনপুটটির সাথে হস্তক্ষেপ করতে পারে না। - VM-এ আউটপুট ফাইলের অখণ্ডতা বজায় রাখতে হবে। এমনকি যদি একটি আউটপুট ফাইল Android এ সংরক্ষণ করা হয়, প্রজন্মের সময়, অখণ্ডতা একই
fs-verity
ট্রি বিন্যাসের সাথে বজায় থাকে তবে গতিশীলভাবে আপডেট করা যেতে পারে। চূড়ান্ত আউটপুট ফাইলটি রুট হ্যাশ দিয়ে সনাক্ত করা যেতে পারে, যা ভিএম-এ বিচ্ছিন্ন। ভিএম-এর পরিষেবাটি স্বাক্ষরের মাধ্যমে আউটপুট ফাইলগুলিকে রক্ষা করে।