ODM পার্টিশন

অ্যান্ড্রয়েড 10 এ অ্যান্ড্রয়েড বিল্ড সিস্টেম ব্যবহার করে odm পার্টিশন তৈরির জন্য সমর্থন অন্তর্ভুক্ত করে।

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

আসল ডিজাইন নির্মাতারা (ODMs) তাদের নির্দিষ্ট ডিভাইসে (তাদের বোর্ড) সিস্টেম-অন-চিপ (SoC) ভেন্ডর বোর্ড-সাপোর্ট প্যাকেজ (BSPs) কাস্টমাইজ করে। এটি তাদের বোর্ড-নির্দিষ্ট উপাদান, বোর্ড-নির্দিষ্ট ডেমন, বা হার্ডওয়্যার অ্যাবস্ট্রাকশন লেয়ারে (HALs) নিজস্ব বৈশিষ্ট্যগুলির জন্য কার্নেল মডিউলগুলি প্রয়োগ করতে সক্ষম করে। তারা SoC উপাদানগুলি প্রতিস্থাপন বা কাস্টমাইজ করতে চাইতে পারে।

নিম্নতর অ্যান্ড্রয়েড রিলিজে, এই ধরনের কাস্টমাইজেশন একই SoC (বা বিভিন্ন SoC সহ, কিন্তু একই পরিবারে) ডিভাইসের জন্য একটি একক বিক্রেতার চিত্র ব্যবহার করতে বাধা দেয়। অ্যান্ড্রয়েড 10 এবং উচ্চতর, আপনি কাস্টমাইজেশনের জন্য একটি পৃথক odm পার্টিশন ব্যবহার করতে পারেন, যা আপনাকে একাধিক হার্ডওয়্যার SKU-এর জন্য একটি একক বিক্রেতা চিত্র ব্যবহার করতে সক্ষম করে।

পণ্য এবং ODM পার্টিশন ব্যবহার করুন

Android 9 product পার্টিশন তৈরির জন্য সমর্থন যোগ করেছে, বিভিন্ন product.img ইমেজ দ্বারা সরবরাহ করা একাধিক সফ্টওয়্যার SKU-এর জন্য একক সিস্টেম ইমেজ ব্যবহার করতে সক্ষম করে। product পার্টিশনটি সফ্টওয়্যার SKU-এর উদ্দেশ্যে, odm পার্টিশনটি হার্ডওয়্যার SKU-এর উদ্দেশ্যে।

ডেডিকেটেড প্রোডাক্ট এবং ODM পার্টিশনের সাথে, আপনি অনেক সফ্টওয়্যার SKU-এর মধ্যে শেয়ার করার জন্য জেনেরিক কোড হোস্ট করতে system পার্টিশন ব্যবহার করতে পারেন এবং প্রদত্ত SoC-এর উপর ভিত্তি করে একাধিক ডিভাইসের মধ্যে শেয়ার করার জন্য SoC-নির্দিষ্ট BSP কোড হোস্ট করার জন্য vendor পার্টিশন ব্যবহার করতে পারেন।

পৃথক পার্টিশন ব্যবহার করার অসুবিধা রয়েছে, যেমন ডিস্কের স্থান পরিচালনা করতে অসুবিধা (উদাহরণস্বরূপ, ভবিষ্যতের বৃদ্ধির জন্য আপনাকে অবশ্যই সীমিত পরিমাণ স্থান সংরক্ষণ করতে হবে)। যাইহোক, ডায়নামিক পার্টিশনের জন্য অ্যান্ড্রয়েড 10 সমর্থন ডিস্কের সমস্যাকে সরিয়ে দেয় এবং ওভার-দ্য-এয়ার (OTA) আপডেটের সময় একটি ডিভাইস পুনরায় পার্টিশন করা সম্ভব করে তোলে।

ওডিএম উপাদান

odm পার্টিশনে নিম্নলিখিত ODM-নির্দিষ্ট উপাদান রয়েছে ( vendor পার্টিশনের অনুরূপ), নিম্নলিখিত টেবিলে তালিকাভুক্ত।

ODM-নির্দিষ্ট উপাদান অবস্থান
লোডযোগ্য কার্নেল মডিউল (LKMs) /odm/lib/modules/*.ko
নেটিভ লাইব্রেরি /odm/lib[64]
HALs /odm/lib[64]/hw
এসইপলিসি /odm/etc/selinux
VINTF অবজেক্ট ডেটা /odm/etc/vintf
init.rc ফাইল /odm/etc/init
পদ্ধতির বৈশিষ্ট্য /odm/build.prop
রানটাইম রিসোর্স ওভারলে (RROs) /odm/overlay/*.apk
অ্যাপস /odm/app/*.apk
ব্যক্তিগত-অ্যাপস /odm/priv-app/*.apk
জাভা লাইব্রেরি /odm/framework/*.jar
অ্যান্ড্রয়েড ফ্রেমওয়ার্ক সিস্টেম কনফিগার /odm/etc/sysconfig/* এবং /odm/etc/permissions/*

কোন কাস্টম ছবি

কাস্টম চিত্রগুলি ব্যবহার করবেন না কারণ তাদের নিম্নলিখিতগুলির জন্য সমর্থন নেই:

  • একটি নির্দিষ্ট লক্ষ্যে একটি মডিউল ইনস্টল করা। কাস্টম চিত্রগুলি একটি চিত্রের মধ্যে শিল্পকর্মগুলি অনুলিপি করা সমর্থন করে, তবে একটি বিল্ড নিয়মের অংশ হিসাবে লক্ষ্য পার্টিশনকে নির্দিষ্ট করে একটি নির্দিষ্ট পার্টিশনে একটি মডিউল ইনস্টল করতে পারে না।
  • সুং। সুং বিল্ড সিস্টেম ব্যবহার করে custom_images তৈরি করা যাবে না।
  • OTA আপডেট। কাস্টম ছবিগুলি ফ্যাক্টরি রম ইমেজ হিসাবে ব্যবহার করা হয় যা OTA-ed হতে পারে না।

পার্টিশনের মধ্যে ABI বজায় রাখুন

odm পার্টিশনটি vendor পার্টিশনের একটি এক্সটেনশন। অ্যাপ্লিকেশন বাইনারি ইন্টারফেস (ABI) স্থায়িত্ব বিবেচনা করার সময়, নিম্নলিখিত আর্কিটেকচারটি মাথায় রাখুন।

পার্টিশনের মধ্যে ABI বজায় রাখা

চিত্র 1. পার্টিশনের মধ্যে ABI বজায় রাখা।

  • odm এবং vendor পার্টিশনের মধ্যে কোন ABI স্থিতিশীলতা নেই। উভয় পার্টিশন একই সময়ে আপগ্রেড করা আবশ্যক।
  • odm এবং vendor পার্টিশন একে অপরের উপর নির্ভর করতে পারে, কিন্তু vendor পার্টিশন অবশ্যই odm পার্টিশন ছাড়াই কাজ করবে।
  • odm এবং system মধ্যে ABI vendor এবং system মধ্যে ABI এর মতই।

product পার্টিশন এবং vendor বা odm পার্টিশনের মধ্যে সরাসরি মিথস্ক্রিয়া অনুমোদিত নয় । (এটি এসইপলিসি দ্বারা প্রয়োগ করা হয়।)

ODM পার্টিশন প্রয়োগ করুন

একটি নতুন পার্টিশন বাস্তবায়নের আগে, সম্পর্কিত AOSP পরিবর্তনগুলি পর্যালোচনা করুন।

ODM পার্টিশন সেট আপ করুন

odm পার্টিশন সেট আপ করতে, এই বিল্ড পতাকাগুলি অন্তর্ভুক্ত করুন:

  • একটি নির্দিষ্ট পার্টিশন আকারের জন্য BOARD_ODMIMAGE_PARTITION_SIZE
  • একটি গতিশীল পার্টিশন আকারের জন্য PRODUCT_USE_DYNAMIC_PARTITIONS এবং BOARD_ODMIMAGE_PARTITION_RESERVED_SIZE
  • BOARD_ODMIMAGE_FILE_SYSTEM_TYPE ফাইল সিস্টেমের ধরন ODM চিত্রের জন্য ব্যবহৃত
  • $(call inherit-product path/to/device.mk) এর মধ্যে ব্যবহারের জন্য /odm/build.prop এর জন্য PRODUCT_ODM_PROPERTIES , যেমন PRODUCT_ODM_PROPERTIES += product.abc=ok

একটি ODM পার্টিশনে একটি মডিউল ইনস্টল করুন

একটি odm পার্টিশনে একটি মডিউল ইনস্টল করতে এই বিল্ড পতাকাগুলি ব্যবহার করুন:

  • device_specific: true Android.bp এ সত্য
  • LOCAL_ODM_MODULE := true Android.mk এ সত্য

যাচাইকৃত বুট সক্ষম করুন

দূষিত সফ্টওয়্যারকে odm পার্টিশনের সাথে টেম্পারিং থেকে আটকাতে, সেই পার্টিশনগুলির জন্য অ্যান্ড্রয়েড ভেরিফাইড বুট (AVB) সক্ষম করুন (যেমন আপনি vendor এবং system পার্টিশনের জন্য করেন)।

AVB সক্ষম করতে, বিল্ড পতাকা BOARD_AVB_ODM_ADD_HASHTREE_FOOTER_ARGS অন্তর্ভুক্ত করুন। ডায়নামিক পার্টিশনে AVB কনফিগার করার বিষয়ে বিস্তারিত জানার জন্য, AVB কনফিগারেশন পরিবর্তনগুলি দেখুন।

/odm কে অন্য /বিক্রেতা পার্টিশন হিসাবে বিবেচনা করুন

সিস্টেমটি একটি vendor পার্টিশন হিসাবে odm পার্টিশন পরিচালনা করে তা নিশ্চিত করার জন্য, হার্ডওয়্যার-ভিত্তিক পার্টিশনের একটি সেট (বর্তমানে odm এবং vendor ) দিয়ে যে কোনও হার্ড-কোডেড vendor রেফারেন্স প্রতিস্থাপন করুন। প্ল্যাটফর্মের উল্লেখযোগ্য vendor রেফারেন্স অবস্থানগুলির মধ্যে রয়েছে ডায়নামিক লিঙ্কার , প্যাকেজ ম্যানেজার এবং shell/libc