27 মার্চ, 2025 থেকে, আমরা AOSP তৈরি করতে এবং অবদান রাখতে aosp-main এর পরিবর্তে android-latest-release ব্যবহার করার পরামর্শ দিচ্ছি। আরও তথ্যের জন্য, AOSP-তে পরিবর্তনগুলি দেখুন।
সেভ করা পৃষ্ঠা গুছিয়ে রাখতে 'সংগ্রহ' ব্যবহার করুন
আপনার পছন্দ অনুযায়ী কন্টেন্ট সেভ করুন ও সঠিক বিভাগে রাখুন।
এই পৃষ্ঠাটি Android 8.0 এবং উচ্চতর সংস্করণে চালিত ডিভাইসগুলির জন্য ডিরেক্টরি বিন্যাস, VNDK নিয়ম এবং সংশ্লিষ্ট সেপলিসি বর্ণনা করে৷
ডিরেক্টরি বিন্যাস
ডিজেনারেটেড ডিরেক্টরি লেআউট নিম্নলিখিত ডিরেক্টরিগুলি নিয়ে গঠিত:
/system/lib[64] এ LL-NDK, VNDK, এবং ফ্রেমওয়ার্ক-অনলি লাইব্রেরি সহ সমস্ত ফ্রেমওয়ার্ক শেয়ার্ড লাইব্রেরি রয়েছে (এলএল-এনডিকে-প্রাইভেট এবং কিছু লাইব্রেরি যার নাম VNDK-SP-তে রয়েছে)।
/system/lib[64]/vndk-sp একই-প্রক্রিয়া HAL-এর জন্য VNDK-SP লাইব্রেরি রয়েছে।
/vendor/lib[64] বিক্রেতা দ্বারা প্রসারিত VNDK লাইব্রেরি রয়েছে (হয় DXUA বা DXUX VNDK লাইব্রেরি), একই-প্রক্রিয়া HAL বাস্তবায়ন, এবং অন্যান্য বিক্রেতা শেয়ার করা লাইব্রেরি।
/vendor/lib[64]/vndk-sp বিক্রেতা দ্বারা প্রসারিত VNDK-SP লাইব্রেরি থাকতে পারে।
ভেন্ডর মডিউলগুলি /system/lib[64] থেকে VNDK লাইব্রেরি লোড করে।
VNDK নিয়ম
এই বিভাগটি VNDK নিয়মগুলির একটি বিস্তৃত তালিকা প্রদান করে:
ফ্রেমওয়ার্ক প্রক্রিয়াগুলি অবশ্যই বিক্রেতা পার্টিশন থেকে নন-SP-HAL শেয়ার্ড লাইব্রেরি লোড করবে না (Android 8.1 থেকে শুরু করে কঠোরভাবে প্রয়োগ করা হয়েছে)।
ভেন্ডর প্রসেসগুলিকে সিস্টেম পার্টিশন থেকে নন-LL-NDK, নন-VNDK-SP, এবং নন-VNDK লাইব্রেরিগুলি লোড করা উচিত নয়৷ (Android O তে কঠোরভাবে প্রয়োগ করা হয়নি তবে ভবিষ্যতে প্রকাশে হবে)।
ইনস্টল করা VNDK লাইব্রেরিগুলি অবশ্যই Google-সংজ্ঞায়িত যোগ্য VNDK লাইব্রেরির একটি উপসেট হতে হবে৷
SP-HAL এবং SP-HAL-Dep-এর বাইরের নির্ভরতা অবশ্যই LL-NDK বা Google-সংজ্ঞায়িত VNDK-SP লাইব্রেরিতে সীমাবদ্ধ থাকতে হবে।
একটি SP-HAL ভাগ করা লাইব্রেরির নির্ভরতা অবশ্যই LL-NDK লাইব্রেরি, Google-সংজ্ঞায়িত VNDK-SP লাইব্রেরি, অন্যান্য SP-HAL লাইব্রেরি এবং/অথবা অন্যান্য বিক্রেতার শেয়ার করা লাইব্রেরিতে সীমাবদ্ধ থাকতে হবে যেগুলিকে SP-HAL-Dep লাইব্রেরি হিসাবে লেবেল করা যেতে পারে .
একটি বিক্রেতার ভাগ করা লাইব্রেরিকে শুধুমাত্র SP-HAL-Dep লাইব্রেরি হিসাবে লেবেল করা যেতে পারে যদি এটি একটি AOSP লাইব্রেরি না হয় এবং এর নির্ভরতা LL-NDK লাইব্রেরি, Google-সংজ্ঞায়িত VNDK-SP লাইব্রেরি, SP-HAL লাইব্রেরি এবং/অথবা সীমাবদ্ধ থাকে অন্যান্য SP-HAL-Dep লাইব্রেরি।
VNDK-SP অবশ্যই স্বয়ংসম্পূর্ণ হতে হবে। libRS_internal.so এন্ড্রয়েড 8.0-এ বিশেষ ট্রিটমেন্ট পায়, কিন্তু ভবিষ্যতে রিলিজে আবার দেখা হবে।
বাইন্ডার, সকেট, শেয়ার করা স্মৃতি, ফাইল ইত্যাদি সহ (তবে সীমাবদ্ধ নয়) নন-এইচআইডিএল ইন্টারফেসের মাধ্যমে ফ্রেমওয়ার্ক-বিক্রেতার যোগাযোগ নেই।
সিস্টেম পার্টিশনের আকার অবশ্যই যথেষ্ট বড় হতে হবে যাতে সমস্ত যোগ্য VNDK লাইব্রেরির দুটি কপি এবং অযোগ্য ফ্রেমওয়ার্ক শেয়ার করা লাইব্রেরির একটি অনুলিপি থাকে।
সেপলিসি
এই বিভাগে বর্ণিত ফ্রেমওয়ার্ক প্রক্রিয়াগুলি সেপলিসিগুলিতে coredomain সাথে মিলে যায় যখন বিক্রেতা প্রক্রিয়াগুলি non-coredomain সাথে মিলে যায়৷ উদাহরণস্বরূপ, /dev/binder শুধুমাত্র coredomain এ অ্যাক্সেস করা যেতে পারে এবং /dev/vndbinder শুধুমাত্র নন- coredomain অ্যাক্সেস করা যেতে পারে।
অনুরূপ নীতিগুলি সিস্টেম এবং বিক্রেতা পার্টিশনে ভাগ করা লাইব্রেরিতে অ্যাক্সেস সীমাবদ্ধ করে। নিম্নলিখিত সারণী বিভিন্ন বিভাগের শেয়ার করা লাইব্রেরি অ্যাক্সেস করার অধিকার দেখায়:
শ্রেণী
বিভাজন
থেকে অ্যাক্সেসযোগ্য কোরডোমেন
থেকে অ্যাক্সেসযোগ্য নন-কোরডোমেন
এলএল-এনডিকে
সিস্টেম
Y
Y
এলএল-এনডিকে-প্রাইভেট
সিস্টেম
Y
Y
VNDK-SP/VNDK-SP-প্রাইভেট
সিস্টেম
Y
Y
VNDK-SP-এক্সট
বিক্রেতা
Y
Y
ভিএনডিকে
সিস্টেম
Y
Y
VNDK-এক্সট
বিক্রেতা
এন
Y
FWK-শুধুমাত্র
সিস্টেম
Y
এন
FWK-শুধু-RS
সিস্টেম
Y
এন
এসপি-এইচএএল
বিক্রেতা
Y
Y
SP-HAL-Dep
বিক্রেতা
Y
Y
VND-শুধুমাত্র
বিক্রেতা
এন
Y
LL-NDK-Private এবং VNDK-SP-Private অবশ্যই উভয় ডোমেন থেকে অ্যাক্সেসযোগ্য হতে হবে কারণ নন- coredomain পরোক্ষভাবে তাদের অ্যাক্সেস করবে। একইভাবে, SP-HAL-Dep অবশ্যই coredomain থেকে অ্যাক্সেসযোগ্য হতে হবে কারণ SP-HAL এটির উপর নির্ভর করে।
same_process_hal_file লেবেল
নিম্নলিখিত লাইব্রেরিগুলি ভেন্ডর পার্টিশনে বিদ্যমান। coredomain এবং নন- coredomain উভয় থেকে এই লাইব্রেরিগুলিকে অ্যাক্সেসযোগ্য করুন৷
VNDK-SP-Ext in /vendor/lib[64]/vndk-sp
SP-HAL in /vendor/lib[64] অথবা /vendor/lib[64]/hw
SP-HAL-Dep in /vendor/lib[64] অথবা /vendor/lib[64]/hw
স্পষ্টভাবে এই ফাইলগুলিকে same_process_hal_file হিসাবে লেবেল করুন, কারণ vendor পার্টিশনে যেকোনো কিছু ডিফল্টরূপে coredomain এ অ্যাক্সেসযোগ্য নয়। বিক্রেতা-নির্দিষ্ট file_contexts ফাইলে নিম্নলিখিত অনুরূপ লাইন যোগ করুন।
এই পৃষ্ঠার কন্টেন্ট ও কোডের নমুনাগুলি Content License-এ বর্ণিত লাইসেন্সের অধীনস্থ। Java এবং OpenJDK হল Oracle এবং/অথবা তার অ্যাফিলিয়েট সংস্থার রেজিস্টার্ড ট্রেডমার্ক।
2025-07-29 UTC-তে শেষবার আপডেট করা হয়েছে।
[[["সহজে বোঝা যায়","easyToUnderstand","thumb-up"],["আমার সমস্যার সমাধান হয়েছে","solvedMyProblem","thumb-up"],["অন্যান্য","otherUp","thumb-up"]],[["এতে আমার প্রয়োজনীয় তথ্য নেই","missingTheInformationINeed","thumb-down"],["খুব জটিল / অনেক ধাপ","tooComplicatedTooManySteps","thumb-down"],["পুরনো","outOfDate","thumb-down"],["অনুবাদ সংক্রান্ত সমস্যা","translationIssue","thumb-down"],["নমুনা / কোড সংক্রান্ত সমস্যা","samplesCodeIssue","thumb-down"],["অন্যান্য","otherDown","thumb-down"]],["2025-07-29 UTC-তে শেষবার আপডেট করা হয়েছে।"],[],[],null,["# Directories, rules, and sepolicy\n\nThis page describes the directory layout for devices running Android 8.0 and\nhigher, VNDK rules, and associated sepolicy.\n\nDirectory layout\n----------------\n\nThe *Degenerated Directory Layout* consists of the following\ndirectories:\n\n- `/system/lib[64]` contains all framework shared libraries, including LL-NDK, VNDK, and framework-only libraries (including LL-NDK-Private and some libraries with the same names as the ones in VNDK-SP).\n- `/system/lib[64]/vndk-sp` contains VNDK-SP libraries for same-process HALs.\n- `/vendor/lib[64]` contains the VNDK libraries extended by the vendor (either DXUA or DXUX VNDK libraries), same-process HAL implementations, and other vendor shared libraries.\n- `/vendor/lib[64]/vndk-sp` may contain the VNDK-SP libraries extended by the vendor.\n\nVendor modules load the VNDK libraries from `/system/lib[64]`.\n\nVNDK rules\n----------\n\nThis section provides a comprehensive list of VNDK rules:\n\n- Framework processes must not load non-SP-HAL shared libraries from vendor partitions (strictly enforced starting from Android 8.1).\n- Vendor processes must not load non-LL-NDK, non-VNDK-SP, and non-VNDK libraries from the system partition. (not strictly enforced in Android O but will be in a future release).\n| **Note**: To benefit from the framework-only OTA beyond Android 8.0, this rule must not be violated in devices launched with Android 8.0.\n- Installed VNDK libraries must be a subset of Google-defined eligible VNDK libraries.\n- The outer dependencies of SP-HAL and SP-HAL-Dep must be restricted to LL-NDK or Google-defined VNDK-SP libraries.\n - The dependencies of an SP-HAL shared library must be restricted to LL-NDK libraries, Google-defined VNDK-SP libraries, other SP-HAL libraries, and/or other vendor shared libraries that can be labeled as SP-HAL-Dep libraries.\n - A vendor shared library can be labeled as a SP-HAL-Dep library only if it is not an AOSP library and its dependencies are restricted to LL-NDK libraries, Google-defined VNDK-SP libraries, SP-HAL libraries, and/or other SP-HAL-Dep libraries.\n- VNDK-SP must be self-contained. `libRS_internal.so` gets special treatment in Android 8.0, but will be revisited in a future release.\n- No framework-vendor communication through non-HIDL interfaces, including (but not limited to) binder, sockets, shared memories, files, etc.\n- The size of the system partition must be large enough to contain two copies of all eligible VNDK libraries and a copy of ineligible framework shared libraries.\n\nsepolicy\n--------\n\nFramework processes described in this section correspond to\n`coredomain` in sepolicies while vendor processes correspond to\n`non-coredomain`. For example, `/dev/binder` can be\naccessed only in `coredomain` and `/dev/vndbinder` can be\naccessed only in non-`coredomain`.\n\nSimilar policies restrict the access to the shared libraries on system and\nvendor partitions. The following table shows the rights to access shared\nlibraries of different categories:\n\n| Category | Partition | Accessible from coredomain | Accessible from non-coredomain |\n|-------------------------|-----------|----------------------------|--------------------------------|\n| LL-NDK | System | Y | Y |\n| LL-NDK-Private | System | Y | Y |\n| VNDK-SP/VNDK-SP-Private | System | Y | Y |\n| VNDK-SP-Ext | Vendor | Y | Y |\n| VNDK | System | Y | Y |\n| VNDK-Ext | Vendor | N | Y |\n| FWK-ONLY | System | Y | N |\n| FWK-ONLY-RS | System | Y | N |\n| SP-HAL | Vendor | Y | Y |\n| SP-HAL-Dep | Vendor | Y | Y |\n| VND-ONLY | Vendor | N | Y |\n\nLL-NDK-Private and VNDK-SP-Private must be\naccessible from both domains because non-`coredomain` will\nindirectly access them. Similarly, SP-HAL-Dep must be accessible from\n`coredomain` because SP-HAL relies on it.\n\nsame_process_hal_file label\n---------------------------\n\nThe following libraries exist in the vendor partition. Make these libraries accessible from both\n`coredomain` and non-`coredomain`.\n\n- VNDK-SP-Ext in `/vendor/lib[64]/vndk-sp`\n- SP-HAL in `/vendor/lib[64]` or `/vendor/lib[64]/hw`\n- SP-HAL-Dep in `/vendor/lib[64]` or `/vendor/lib[64]/hw`\n\nExplicitly label these files as `same_process_hal_file`, because anything\nin `vendor` partition is by default not accessible to `coredomain`. Add lines similar to\nthe following to the vendor-specific `file_contexts` file. \n\n```scdoc\n/vendor/lib(64)?/hw/libMySpHal\\.so u:object_r:same_process_hal_file:s0\n/vendor/lib(64)?/vndk-sp/libBase\\.so u:object_r:same_process_hal_file:s0\n/vendor/lib(64)?/libBaseInternal\\.so u:object_r:same_process_hal_file:s0\n```"]]