Android ডিভাইসে একাধিক পার্টিশন বা স্টোরেজ স্পেসের নির্দিষ্ট বিভাগ থাকে যা ডিভাইসের সফ্টওয়্যারের নির্দিষ্ট অংশ ধারণ করতে ব্যবহৃত হয়। প্রতিটি পার্টিশনে পার্টিশন ইমেজ (IMG ফাইল) বা পার্টিশনের জন্য সব সফ্টওয়্যারের স্ন্যাপশট থাকে। ছবি ১-এ ডিভাইসের মূল পার্টিশনের লেআউট দেখানো হয়েছে:
ছবি ১. কোর পার্টিশনের লেআউট।
পার্টিশনকে তিনটি বিভাগে ভাগ করা হয়েছে:
সিস্টেম পার্টিশন হল এমন পার্টিশন যা OS এবং অন্যান্য ফিচার আপডেট করার সময় আপডেট করা হয়।
system,bootওinit_bootহল মূল সিস্টেম পার্টিশন।ভেন্ডর পার্টিশনে ডিভাইস ও হার্ডওয়্যার-নির্দিষ্ট কোড থাকে যা প্রাথমিক রিলিজের পরে কখনও আপডেট নাও হতে পারে।
vendor,vendor_bootওodmপার্টিশন হল কোর ভেন্ডর পার্টিশন।আপডেট করা যায় না এমন পার্টিশন হল এমন পার্টিশন যার কন্টেন্ট আপডেট করা হয় না অথবা ব্যবহারকারীর ডেটা দিয়ে আপডেট করা হয়।
সিস্টেম ও ভেন্ডর পার্টিশনের কোড, ভেন্ডর ইন্টারফেস (VINTF) নামক একটি স্টেবল ইন্টারফেস ব্যবহার করে ইন্টার্যাক্ট করতে পারে।
সিস্টেম পার্টিশন বিভাগ
নিচে সব সিস্টেম পার্টিশন ও তাদের ব্যবহার সম্পর্কে একটি তালিকা দেওয়া হল:
bootপার্টিশন। এই পার্টিশনে একটি Generic Kernel Image (GKI) আছে। এছাড়াও, এই পার্টিশনে Android 12 ও এর আগের যেকোনও ভার্সনে লঞ্চ করা ডিভাইসের জেনেরিক র্যামডিস্ক থাকে। জেনেরিক র্যামডিস্ক সম্পর্কে আরও তথ্যের জন্য, জেনেরিক র্যামডিস্ক ইমেজ কন্টেন্ট দেখুন।init_bootপার্টিশন (Android 13 ও তার পরের যেকোনও ভার্সন)। এই পার্টিশনে একটি জেনেরিক র্যামডিস্ক আছে। Android 11 ও 12-এ, জেনেরিক র্যামডিস্কbootপার্টিশনে থাকে।systemপার্টিশন। এই পার্টিশনে OEM প্রোডাক্টের জন্য ব্যবহৃত সিস্টেম ইমেজ থাকে।system_extপার্টিশন। এই পার্টিশনে সিস্টেম রিসোর্স এবং মালিকানাধীন সিস্টেম মডিউল থাকে যাsystemপার্টিশনে সাধারণ সিস্টেম ইমেজকে প্রসারিত করে।system_dlkmপার্টিশন। এই পার্টিশনে GKI মডিউল আছে। এই পার্টিশন সম্পর্কে আরও তথ্য পেতে, GKI মডিউল পার্টিশন প্রয়োগ করা দেখুন।productপার্টিশন। এই পার্টিশনে প্রোডাক্ট-নির্দিষ্ট মডিউল থাকতে পারে যেগুলি অন্য কোনও পার্টিশনের সাথে বান্ডেল করা নেই।pvmfwপার্টিশন। এই পার্টিশন সুরক্ষিত ভার্চুয়াল মেশিন ফার্মওয়্যার (pvmfw) স্টোর করে, যা সুরক্ষিত VM-এ চলা প্রথম কোড। আরও তথ্যের জন্য, সুরক্ষিত ভার্চুয়াল মেশিন ফার্মওয়্যার দেখুন।generic_bootloaderপার্টিশন। এই পার্টিশনে জেনেরিক বুটলোডার থাকে।
ভেন্ডর পার্টিশন বিভাগ
নিচে সব ভেন্ডর পার্টিশন ও তাদের ব্যবহার উল্লেখ করা হল:
vendor_bootপার্টিশন। এই পার্টিশনে ভেন্ডরের মাধ্যমে নির্দিষ্ট করা বুট কোড আছে। আরও তথ্যের জন্য, ভেন্ডর বুট পার্টিশন দেখুন।recoveryপার্টিশন। এই পার্টিশনে রিকভারি ইমেজ সেভ করা থাকে, যা ওভার-দ্য-এয়ার (OTA) আপডেট প্রসেস চলাকালীন বুট করা হয়। যেসব ডিভাইসে সিমলেস আপডেট কাজ করে, সেগুলিbootবাinit_bootইমেজে থাকা র্যামডিস্ক হিসেবে রিকভারি ইমেজ স্টোর করতে পারে। সিমলেস আপডেট সম্পর্কে আরও জানতে, A/B (সিমলেস) আপডেট দেখুন।miscপার্টিশন। এই পার্টিশনটি রিকভারি পার্টিশন দ্বারা ব্যবহৃত হয় এবং এটি ৪ কেবি বা তার বেশি।vbmetaপার্টিশন। এই পার্টিশনে সব পার্টিশনের জন্য যাচাই করা বুট সংক্রান্ত তথ্য থাকে। এই তথ্য প্রতিটি পার্টিশনে ইনস্টল করা ছবি বিশ্বস্ত কিনা তা যাচাই করে। যাচাই করা বুট সম্পর্কে আরও তথ্য পেতে, যাচাই করা বুট দেখুন।vendorপার্টিশন। এই পার্টিশনে এমন বাইনারি থাকে যা ভেন্ডর নির্দিষ্ট এবং AOSP-তে ডিস্ট্রিবিউট করার জন্য যথেষ্ট জেনেরিক নয়।vendor_dlkmপার্টিশন। এই পার্টিশনে ভেন্ডর কার্নেল মডিউল আছে।vendorপার্টেশনের পরিবর্তে এই পার্টেশনে ভেন্ডর কার্নেল মডিউল স্টোর করার মাধ্যমে, আপনিvendorপার্টেশন আপডেট না করেই কার্নেল মডিউল আপডেট করতে পারবেন। আরও তথ্যের জন্য, ভেন্ডর ও ODM DKLM পার্টিশন দেখুন।odmপার্টিশন। এই পার্টিশনে অরিজিনাল ডিজাইন ম্যানুফ্যাকচারার (ODM) কাস্টমাইজেশন থাকে যা সিস্টেম-অন-চিপ (SoC) ভেন্ডর বোর্ড-সাপোর্ট প্যাকেজ (BSP)-এর জন্য করা হয়। এই ধরনের কাস্টমাইজেশন, SoC কম্পোনেন্ট পরিবর্তন বা কাস্টমাইজ করতে এবং বোর্ড-নির্দিষ্ট কম্পোনেন্ট, ডেমোন ও হার্ডওয়্যার অ্যাবস্ট্রাকশন লেয়ারে (HAL) ODM-নির্দিষ্ট ফিচারের জন্য কার্নেল মডিউল প্রয়োগ করতে ODM-কে সাহায্য করে। এই পার্টিশনটি ঐচ্ছিক। সাধারণত, কাস্টমাইজেশন রাখার জন্য এই পার্টিশন ব্যবহার করা হয় যাতে ডিভাইসগুলি একাধিক হার্ডওয়্যার SKU-এর জন্য একটি ভেন্ডর ইমেজ ব্যবহার করতে পারে। আরও তথ্যের জন্য, ODM পার্টিশন দেখুন।odm_dlkmপার্টিশন। এই পার্টিশনটি ODM কার্নেল মডিউল স্টোর করার জন্য ডেডিকেট করা হয়েছে।odmপার্টেশনের পরিবর্তে এই পার্টেশনে ODM কার্নেল মডিউল সেভ করে, আপনিodmপার্টেশন আপডেট না করেই ODM কার্নেল মডিউল আপডেট করতে পারবেন। আরও তথ্যের জন্য, ভেন্ডর ও ODM DKLM পার্টিশন দেখুন।radioপার্টিশন। এই পার্টিশনে রেডিও ইমেজ থাকে এবং এটি শুধুমাত্র সেইসব ডিভাইসের জন্য প্রয়োজন যেগুলিতে একটি ডেডিকেটেড পার্টিশনে রেডিও-নির্দিষ্ট সফ্টওয়্যার সহ রেডিও থাকে।
আপডেট করা যায় না এমন পার্টিশন
আপডেট করা যায় না এমন সব পার্টিশন ও সেগুলির ব্যবহার নিচে উল্লেখ করা হল:
cacheপার্টিশন। এই পার্টিশনে সাময়িক ডেটা থাকে এবং আপনার ডিভাইস সিমলেস আপডেট ব্যবহার করলে এটি ঐচ্ছিক। এই পার্টিশন বুটলোডার থেকে রাইটেবল হওয়ার প্রয়োজন নেই, তবে ইরেজেবল হতে হবে। পার্টিশনের সাইজ ডিভাইসের ধরন ওuserdata-এ উপলভ্য স্পেসের উপর নির্ভর করে; সাধারণত, ৫০ থেকে ১০০ এমবি হলে যথেষ্ট।userdataপার্টিশন। এই পার্টিশনে ব্যবহারকারীর ইনস্টল করা অ্যাপ ও ডেটা থাকে, যার মধ্যে কাস্টমাইজেশন ডেটা অন্তর্ভুক্ত।metadataপার্টিশন। আপনার ডিভাইস মেটাডেটা এনক্রিপশন ব্যবহার করলে, এই পার্টিশনে মেটাডেটা এনক্রিপশন কী থাকে। এই পার্টিশনের সাইজ ১৬ এমবি বা তার বেশি, এটি এনক্রিপ্ট করা নয় এবং এর ডেটা স্ন্যাপশট করা নয়। ডিভাইস ফ্যাক্টরি রিসেট করলে এই পার্টিশন মুছে যায়।
পার্টিশন আপডেট সংক্রান্ত নিয়ম ও সাজেশন
আমরা সাজেস্ট করি যে সমস্ত সিস্টেম পার্টিশনকে সামগ্রিকভাবে এবং সমস্ত ভেন্ডর পার্টিশনকে সামগ্রিকভাবে আপডেট করুন। সম্পূর্ণ পার্টিশনের সেট আপডেট করে, আপনি প্রতিটি পার্টিশনের মধ্যে থাকা ইমেজগুলির ইন্টারফেস স্থিতিশীল আছে কিনা তা যাচাই করে দেখতে পারবেন।
আপনি যেভাবে পার্টিশন আপডেট করুন না কেন, নিম্নলিখিত পার্টিশনগুলিকে অবশ্যই আপডেট করতে হবে কারণ এগুলি একে অপরের উপর নির্ভরশীল এবং স্থিতিশীল API নেই:
bootএবংsystem_dlkmপার্টিশনinit_boot,system,system_extওproductপার্টিশন
ডায়নামিক পার্টিশন
Android 11 ও তার পরবর্তী যেকোনও ভার্সনে চলে এমন ডিভাইস ডায়নামিক পার্টিশন সাপোর্ট করতে পারে, এটি হল Android-এর জন্য একটি ইউজারস্পেস পার্টিশনিং সিস্টেম যা ওভার-দ্য-এয়ার (OTA) আপডেটের সময় আপনাকে পার্টিশন তৈরি করতে, সাইজ পরিবর্তন করতে বা মুছে দিতে দেয়। আরও তথ্যের জন্য, ডায়নামিক পার্টিশন দেখুন।
Soong প্রোডাক্টের ধরন
Soong বিল্ড সিস্টেম, বিল্ড ডিপেন্ডেন্সি স্প্লিট করতে
ইমেজ ভ্যারিয়েন্ট ব্যবহার করে। নেটিভ মডিউল (/build/soong/cc) কোর ভেরিয়েন্ট ও ভেন্ডর ভেরিয়েন্টে সিস্টেম
প্রসেস মডিউল এবং ভেন্ডর প্রসেস মডিউলকে
পরিবর্তন করতে পারে; একটি ইমেজ ভেরিয়েন্টের মডিউল অন্য ইমেজ ভেরিয়েন্টের
মডিউলের সাথে লিঙ্ক করতে পারে না।
Android 12 বা তার পরবর্তী যেকোনও ভার্সনে,
vendor_available: true সহ একটি সিস্টেম মডিউল, মূল
ভেরিয়েন্ট ছাড়াও একটি ভেন্ডর ভেরিয়েন্ট তৈরি করে। প্রোডাক্ট ভেরিয়েন্ট তৈরি করতে, product_available: true অবশ্যই
সংজ্ঞায়িত করতে হবে। product_available: true ছাড়া কিছু VNDK লাইব্রেরি
প্রোডাক্ট মডিউলের জন্য উপলভ্য নয়।