অ্যান্ড্রয়েড 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 বজায় রাখা](https://source.android.com/static/docs/core/architecture/bootloader/images/build_sys_to_prod_odm_partitions.png?authuser=2&hl=bn)
চিত্র 1. পার্টিশনের মধ্যে ABI বজায় রাখা।
-
odm
এবংvendor
পার্টিশনের মধ্যে কোন ABI স্থিতিশীলতা নেই। উভয় পার্টিশন একই সময়ে আপগ্রেড করা আবশ্যক। -
odm
এবংvendor
পার্টিশন একে অপরের উপর নির্ভর করতে পারে, কিন্তুvendor
পার্টিশন অবশ্যইodm
পার্টিশন ছাড়াই কাজ করবে। -
odm
এবংsystem
মধ্যে ABIvendor
এবং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
।