অনুমোদন নীতি ফাইল স্থাপন প্রতিটি সফটওয়্যার-সংজ্ঞায়িত যানবাহন (SDV) পরিষেবার জন্য নির্দিষ্ট নীতি ফাইলের নির্ধারিত সংরক্ষণ স্থান নির্ধারণ করে। এই স্থাপন পদ্ধতি SDV কোর এবং SDV IVI প্ল্যাটফর্মের মধ্যে ভিন্ন হয়।
এসডিভি কোর প্ল্যাটফর্ম
এসডিভি কোর প্ল্যাটফর্ম সার্ভিস বান্ডেল প্যাকেজিং এবং সার্ভিস বান্ডেল কনফিগারেশনের জন্য এপেক্স (APEX) ফাইল ব্যবহার করে। সার্ভিস বান্ডেল রেজিস্ট্রি কম্পোনেন্টটি এপেক্স-এ সংরক্ষিত এসডিভি সার্ভিস বান্ডেলগুলোর জন্য অনুমোদন নীতি পুনরুদ্ধার করে।
APEX হলো একটি স্বাক্ষরিত প্যাকেজ যার একটি অনন্য নাম থাকে, যাকে প্যাকেজ নেম বলা হয়। প্রতিটি APEX-এ একাধিক সার্ভিস বান্ডেল থাকতে পারে। প্রতিটি সার্ভিস বান্ডেলের মেটাডেটা APEX-এর ম্যানিফেস্ট ফাইলে ঘোষিত থাকে।
সার্ভিস বান্ডেল মেটাডেটাতে অথরাইজেশন পলিসি ফাইলের একটি পাথ থাকে, যা একই APEX-এর মধ্যে অবস্থিত থাকা উচিত।
নিম্নলিখিতভাবে SDV-তে {sdv-vm-name}:{package.name}.{ServiceBundle}.{instance-name} আইডেন্টিটি সহ SDV সার্ভিসের জন্য অথরাইজেশন পলিসি ডিপ্লয় করুন:
- অনুমোদন নীতি ফাইলটি APEX-এর
package.nameএ রাখুন। -
package.nameAPEX-এর সার্ভিস বান্ডেল ম্যানিফেস্ট ফাইলে থাকাServiceBundleএন্ট্রিটিauthorization_policy_pathফিল্ডে সংশ্লিষ্ট অথরাইজেশন পলিসি পাথ যোগ করে আপডেট করুন। -
package.nameAPEX-টিsdv-vm-nameVM-এ ডেপ্লয় করুন।
উদাহরণ
(apex_root) sdv_service_bundles_manifest.textproto
sdv_service_bundle_metadata {
name: "SampleRpcServer"
version_number: 0
version_name: "0.1 Alpha"
native_library_path: "lib64/libsdv_sample_rpc.so"
# Path to the authorization policy file.
# Warning: Must be a relative path to the APEX root directory.
authorization_policy_path: "etc/authz/sample_rpc/permissions.textproto"
}
অনুমোদন নীতি ফাইলটি সেই একই APEX-এর মধ্যে etc/authz/sample_rpc/permissions.textproto তে রাখুন যেখানে sdv_service_bundles_manifest.textproto ফাইলটি অবস্থিত।
এসডিভি আইভিআই প্ল্যাটফর্ম
SDV IVI প্ল্যাটফর্ম এবং SDV কোর ইমপ্লিমেন্টেশনগুলোর মধ্যে কিছু নির্দিষ্ট পার্থক্য রয়েছে। SDV IVI প্ল্যাটফর্মে:
- কোনো সার্ভিস বান্ডেল রেজিস্ট্রি নেই।
- অ্যাপগুলো জাভা ভিত্তিক এবং এগুলো APK আকারে সরবরাহ করা হয়।
- এজেন্টরা APEX-এর মধ্যে থাকে না।
এইসব কারণে, এসডিভি প্ল্যাটফর্মে স্থাপন প্রক্রিয়া ভিন্ন।
নিম্নলিখিতভাবে SDV IVI-তে {ivi-vm-name}:{package.name}.{ServiceBundle}/{instance-name} আইডেন্টিটি সহ SDV সার্ভিসের জন্য অথরাইজেশন পলিসি ডিপ্লয় করুন:
-
{policy-dir}/{package.name}/{ServiceBundle}.textprotoপ্যাটার্ন অনুযায়ী অনুমোদন নীতির পাথ নির্ধারণ করুন।- যেখানে
policy-dirহলো নিম্নলিখিতগুলির মধ্যে একটি:-
/product/etc/sdv_authz_policies -
/system/etc/sdv_authz_policies -
/system_ext/etc/sdv_authz_policies -
/vendor/etc/sdv_authz_policies
-
- উদাহরণস্বরূপ,
/vendor/etc/sdv_authz_policies/com.sdv.pkg/WindowManager.textprotoএকটি বৈধ অনুমোদন নীতি পাথ।
- যেখানে
-
ivi-vm-nameVM-এর অথরাইজেশন পলিসি পাথে অথরাইজেশন পলিসিটি রাখুন।
এজেন্ট এবং পরীক্ষা সমর্থন
SDV এজেন্টদের SDV কোর এবং SDV IVI উভয় ক্ষেত্রেই একই অথরাইজেশন পলিসি ডেপ্লয়মেন্ট থাকে। যদি কোনো এজেন্টের APEX না থাকে, তবে তার সংশ্লিষ্ট অথরাইজেশন পলিসিটি অবশ্যই একটি কম্প্যানিয়ন কনফিগ-অনলি APEX-এ অবস্থিত থাকতে হবে।
উদাহরণ
(apex_root) sdv_service_bundles_manifest.textproto
sdv_service_bundle_metadata {
# Should match the bundle name in the FQIN registered by the SOME/IP broker agent
name: "SomeIpBroker"
# Version number of the config APEX
version_number: 1
# Version name of the config APEX
version_name: "1"
# Reference the manifest itself to mark the metadata as a config-only
# declaration.
native_library_path: "etc/sdv_service_bundles_manifest.textproto"
# Path to the authorization policy file for SOME/IP broker.
authorization_policy_path: "etc/config/access_control/someip_authz_policy.textproto"
}
ভিএম-স্তরের অনুমোদন নীতি
com.oem.sdv.authz প্যাকেজ নামের APEX-এ VM-স্তরের পলিসিগুলো রাখুন। সংশ্লিষ্ট <vm_name>.textproto নামের একটি নির্দিষ্ট ফাইল ব্যবহার করুন।
যদি সংশ্লিষ্ট <vm_name>.textproto ফাইলটি বিদ্যমান না থাকে, তাহলে অথরাইজেশন ফ্রেমওয়ার্কটি একই APEX-এ একটি .default.textproto ফাইলও খুঁজে থাকে।
যুক্তি
.default.textproto দুটি কারণে চালু করা হয়েছে:
- সরলীকৃত সেটআপ : কিছু OEM-এর ক্ষেত্রে, সমস্ত SDV VM-এর জন্য
default.textprotoসেট করা এবং শুধুমাত্র IVI VM-এর জন্য একটি বিশেষ<vm-name>.textprotoপ্রদান করাই যথেষ্ট হতে পারে। - আপডেটযোগ্যতা : যানবাহন আপডেটের পরে যদি একটি নতুন ভিএম (VM) আসে, তাহলে সমস্ত ভিএম আপডেট করা এড়াতে একটি যুক্তিসঙ্গত
default.textprotoযথেষ্ট হতে পারে।
রেজোলিউশন লজিক
<vm-name> নামের একটি ভিএম থেকে কোনো সাবজেক্টের পারমিশন চেক করার সময়, অথরাইজেশন ফ্রেমওয়ার্ক নিম্নলিখিত ক্রমে পলিসিগুলো খুঁজে থাকে:
-
<vm-name>.textproto: যদি এটি বিদ্যমান থাকে, তবে এর উপর ভিত্তি করে যাচাই করুন। যদি এটি বিদ্যমান না থাকে, তবে ডিফল্ট ফাইলটি ব্যবহার করুন। -
.default.textproto: যদি এটি বিদ্যমান থাকে, তবে এর উপর ভিত্তি করে যাচাই করুন। যদি এটি বিদ্যমান না থাকে, তবে প্রবেশাধিকার অস্বীকার করুন।
সোং মডিউলটিকে ভিএম-স্তরের অনুমতি দিয়ে সংজ্ঞায়িত করুন
মডিউলটি অবশ্যই com.oem.sdv.authz প্যাকেজ নামের একটি APEX হতে হবে।
.mk ফাইলে মানটি যোগ করুন:
SDV_VM_LEVEL_PERMISSIONS_MODULE := {soong.module.name}