পার্টিশন ওভারভিউ

অ্যান্ড্রয়েড ডিভাইসগুলিতে ডিভাইসের সফ্টওয়্যারের নির্দিষ্ট অংশগুলি ধারণ করতে ব্যবহৃত বিভিন্ন পার্টিশন বা স্টোরেজ স্পেসের নির্দিষ্ট বিভাগ থাকে। প্রতিটি পার্টিশনে একটি পার্টিশন ইমেজ (একটি আইএমজি ফাইল) বা পার্টিশনের জন্য সমস্ত সফ্টওয়্যারের স্ন্যাপশট থাকে। চিত্র 1 একটি ডিভাইসে মূল পার্টিশনের বিন্যাস দেখায়:

মূল পার্টিশনের বিন্যাস।

চিত্র 1. মূল পার্টিশনের বিন্যাস।

পার্টিশন তিনটি বিভাগে শ্রেণীবদ্ধ করা হয়:

  • সিস্টেম পার্টিশনগুলি হল পার্টিশন যা OS এবং অন্যান্য বৈশিষ্ট্যগুলি আপডেট করার সময় আপডেট করা হয়। system , boot , এবং init_boot হল মূল সিস্টেম পার্টিশন।

  • ভেন্ডর পার্টিশনগুলিতে ডিভাইস এবং হার্ডওয়্যার-নির্দিষ্ট কোড থাকে যা প্রাথমিক প্রকাশের পরে কখনই আপডেট করা যাবে না। vendor , vendor_boot , এবং odm পার্টিশন হল মূল বিক্রেতা পার্টিশন।

  • Nonupdatable পার্টিশন হল সেই পার্টিশন যার বিষয়বস্তু হয় আপডেট করা হয় না বা ব্যবহারকারীর ডেটা দিয়ে আপডেট করা হয়।

সিস্টেমের কোড এবং ভেন্ডর পার্টিশন ভেন্ডর ইন্টারফেস (VINTF) নামে একটি স্থিতিশীল ইন্টারফেস ব্যবহার করে ইন্টারঅ্যাক্ট করতে পারে।

সিস্টেম পার্টিশন

নীচে সমস্ত সিস্টেম পার্টিশন এবং তাদের ব্যবহারের তালিকা রয়েছে:

  • boot পার্টিশন। এই পার্টিশনটিতে একটি জেনেরিক কার্নেল ইমেজ (GKI) রয়েছে। এই পার্টিশনে Android 12 এবং তার নিচের সংস্করণে লঞ্চ হওয়া ডিভাইসগুলিতে জেনেরিক রামডিস্কও রয়েছে। জেনেরিক রামডিস্ক সম্পর্কে আরও তথ্যের জন্য, জেনেরিক রামডিস্ক চিত্র বিষয়বস্তু দেখুন।

  • init_boot পার্টিশন (Android 13 এবং উচ্চতর)। এই পার্টিশনে একটি জেনেরিক রামডিস্ক রয়েছে। অ্যান্ড্রয়েড 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 (বিজোড়) আপডেটগুলি দেখুন।

  • vbmeta পার্টিশন। এই পার্টিশনে সমস্ত পার্টিশনের জন্য যাচাইকৃত বুট তথ্য রয়েছে। এই তথ্যটি যাচাই করে যে প্রতিটি পার্টিশনে ইনস্টল করা ছবিগুলি বিশ্বস্ত। যাচাইকৃত বুট সম্পর্কে আরও তথ্যের জন্য, যাচাইকৃত বুট দেখুন।

  • vendor পার্টিশন। এই পার্টিশনে এমন কোনো বাইনারি রয়েছে যা বিক্রেতা নির্দিষ্ট এবং AOSP-এ বিতরণ করার জন্য যথেষ্ট সাধারণ নয়।

  • vendor_dlkm পার্টিশন। এই পার্টিশনে ভেন্ডর কার্নেল মডিউল রয়েছে। vendor পার্টিশনের পরিবর্তে এই পার্টিশনে ভেন্ডর কার্নেল মডিউল সংরক্ষণ করে, আপনি vendor পার্টিশন আপডেট না করে কার্নেল মডিউল আপডেট করতে পারেন। আরও তথ্যের জন্য, ভেন্ডর এবং ODM DKLM পার্টিশন দেখুন।

  • odm পার্টিশন। এই পার্টিশনে সিস্টেম-অন-চিপ (SoC) ভেন্ডর বোর্ড-সাপোর্ট প্যাকেজ (BSPs) এর জন্য অরিজিনাল ডিজাইন ম্যানুফ্যাকচারার (ODM) কাস্টমাইজেশন রয়েছে। এই ধরনের কাস্টমাইজেশনগুলি ODM-গুলিকে SoC উপাদানগুলি প্রতিস্থাপন বা কাস্টমাইজ করতে এবং বোর্ড-নির্দিষ্ট উপাদান, ডেমন, এবং হার্ডওয়্যার বিমূর্তকরণ স্তরগুলিতে (HALs) ওডিএম-নির্দিষ্ট বৈশিষ্ট্যগুলির জন্য কার্নেল মডিউলগুলি প্রয়োগ করতে সক্ষম করে। এই পার্টিশনটি ঐচ্ছিক। সাধারণত এই পার্টিশনটি কাস্টমাইজেশন ধারণ করতে ব্যবহৃত হয় যাতে ডিভাইস একাধিক হার্ডওয়্যার SKU-এর জন্য একটি একক বিক্রেতা চিত্র ব্যবহার করতে পারে। আরও তথ্যের জন্য, ODM পার্টিশন দেখুন।

  • odm_dlkm পার্টিশন। এই পার্টিশনটি ODM কার্নেল মডিউল সংরক্ষণের জন্য নিবেদিত। এই পার্টিশনে ODM কার্নেল মডিউল সংরক্ষণ করে, odm পার্টিশনের পরিবর্তে, আপনি odm পার্টিশন আপডেট না করে ODM কার্নেল মডিউল আপডেট করতে পারেন। আরও তথ্যের জন্য, ভেন্ডর এবং ODM DKLM পার্টিশন দেখুন।

  • radio পার্টিশন। এই পার্টিশনটিতে রেডিও ইমেজ রয়েছে এবং শুধুমাত্র সেই ডিভাইসগুলির জন্য প্রয়োজন যা একটি ডেডিকেটেড পার্টিশনে রেডিও-নির্দিষ্ট সফ্টওয়্যার সহ একটি রেডিও অন্তর্ভুক্ত করে।

অ-আপডেটযোগ্য পার্টিশন

নিম্নলিখিত সমস্ত অ-আপডেটযোগ্য পার্টিশন এবং তাদের ব্যবহারের তালিকা রয়েছে:

  • cache পার্টিশন। এই পার্টিশনে অস্থায়ী ডেটা রয়েছে এবং যদি আপনার ডিভাইস বিরামহীন আপডেট ব্যবহার করে তাহলে ঐচ্ছিক। এই পার্টিশনটি বুটলোডার থেকে লেখার যোগ্য হতে হবে না, কিন্তু মুছে ফেলার যোগ্য হতে হবে। পার্টিশনের আকার ডিভাইসের ধরন এবং userdata ডেটাতে স্থানের প্রাপ্যতার উপর নির্ভর করে; সাধারণত, 50 থেকে 100 এমবি যথেষ্ট।

  • userdata পার্টিশন। এই পার্টিশনে কাস্টমাইজেশন ডেটা সহ ব্যবহারকারী-ইনস্টল করা অ্যাপ এবং ডেটা রয়েছে।

  • metadata পার্টিশন। যদি আপনার ডিভাইস মেটাডেটা এনক্রিপশন ব্যবহার করে, এই পার্টিশনে মেটাডেটা এনক্রিপশন কী থাকে। এই পার্টিশনের আকার 16 MB বা তার বেশি, এটি এনক্রিপ্ট করা নেই এবং এর ডেটা স্ন্যাপশট করা হয় না। ডিভাইসটি ফ্যাক্টরি রিসেট হলে এই পার্টিশনটি মুছে ফেলা হয়।

পার্টিশন আপডেটের নিয়ম এবং সুপারিশ

আমরা সমস্ত সিস্টেম পার্টিশনকে সামগ্রিকভাবে এবং সমস্ত বিক্রেতা পার্টিশনকে সম্পূর্ণরূপে আপডেট করার পরামর্শ দিই। সামগ্রিকভাবে পার্টিশনের সেট আপডেট করার মাধ্যমে, আপনি প্রতিটি পার্টিশনের চিত্রগুলির মধ্যে ইন্টারফেসগুলি স্থিতিশীল আছে তা যাচাই করতে পরীক্ষা করতে পারেন।

আপনি আপনার পার্টিশনগুলি যেভাবে আপডেট করুন না কেন, শক্তভাবে সংযুক্ত নির্ভরতা এবং স্থিতিশীল API-এর অভাবের কারণে নিম্নলিখিত পার্টিশনগুলি আপডেট করা আবশ্যক:

  • boot এবং system_dlkm পার্টিশন
  • init_boot , system , system_ext , এবং product পার্টিশন

গতিশীল পার্টিশন

অ্যান্ড্রয়েড 11 এবং উচ্চতর ডিভাইসগুলি গতিশীল পার্টিশনগুলিকে সমর্থন করতে পারে, যা অ্যান্ড্রয়েডের জন্য একটি ইউজারস্পেস পার্টিশনিং সিস্টেম যা আপনাকে ওভার-দ্য-এয়ার (OTA) আপডেটের সময় পার্টিশনগুলি তৈরি করতে, পুনরায় আকার দিতে বা ধ্বংস করতে দেয়৷ আরও তথ্যের জন্য, ডায়নামিক পার্টিশন দেখুন।

  • misc বিভাজন। এই পার্টিশনটি রিকভারি পার্টিশন দ্বারা ব্যবহৃত হয় এবং এটি 4 KB বা তার চেয়ে বড়।

  • tos পার্টিশন। এই পার্টিশনে Trusty OS-এর বাইনারি ইমেজ রয়েছে এবং ডিভাইসটিতে Trusty অন্তর্ভুক্ত থাকলেই ব্যবহার করা হয়। আরও তথ্যের জন্য, বিশ্বস্ত OS (TOS) পার্টিশন দেখুন।

Soong পণ্য বৈকল্পিক

Soong বিল্ড সিস্টেম বিল্ড নির্ভরতা বিভক্ত করতে ইমেজ ভেরিয়েন্ট ব্যবহার করে। নেটিভ মডিউল ( /build/soong/cc ) সিস্টেম প্রসেস মডিউলগুলিকে মূল ভেরিয়েন্টে এবং ভেন্ডর প্রসেস মডিউলগুলিকে ভেন্ডর ভেরিয়েন্টে পরিবর্তন করতে পারে; একটি ইমেজ ভেরিয়েন্টের একটি মডিউল অন্য ইমেজ ভেরিয়েন্টের অন্য মডিউলের সাথে লিঙ্ক করতে পারে না।

Android 12 বা উচ্চতর সংস্করণে, vendor_available: true মূল ভেরিয়েন্ট ছাড়াও একটি ভেন্ডর ভেরিয়েন্ট তৈরি করে। একটি পণ্য বৈকল্পিক তৈরি করতে, product_available: true সংজ্ঞায়িত করা আবশ্যক। কিছু VNDK লাইব্রেরি product_available: true পণ্য মডিউলগুলিতে উপলব্ধ নয়।