ভূমিকা
Open Mobile API (OMAPI) হল একটি স্ট্যান্ডার্ড API যা একটি ডিভাইসের সিকিউর এলিমেন্টের সাথে যোগাযোগ করতে ব্যবহৃত হয়। অ্যান্ড্রয়েড 13 এর আগে, শুধুমাত্র অ্যাপ্লিকেশন এবং ফ্রেমওয়ার্ক মডিউলগুলির এই ইন্টারফেসে অ্যাক্সেস ছিল। এটিকে একটি বিক্রেতা স্থিতিশীল ইন্টারফেসে রূপান্তর করে, HAL মডিউলগুলি OMAPI পরিষেবার মাধ্যমে সুরক্ষিত উপাদানগুলির সাথে যোগাযোগ করতেও সক্ষম।
বর্তমান বিদ্যমান ইন্টারফেসে কোনো API পরিবর্তন না করে HAL মডিউলের জন্য OMAPI-তে একটি নতুন অ্যাক্সেস এন্ট্রি যোগ করা হয়েছে। এই ইন্টারফেস ব্যবহার করে বিদ্যমান অ্যাপ্লিকেশন এবং ফ্রেমওয়ার্ক মডিউলগুলির জন্য কোন পরিবর্তনের প্রয়োজন নেই।
অ্যান্ড্রয়েড রেডি এসই প্রোগ্রামের অংশ হিসেবে আমরা মূল অ্যান্ড্রয়েড নিরাপত্তা বৈশিষ্ট্য যেমন Keymaster, Keymint, Identity Credentials, এবং Remote Key Provisioning সিকিউর এলিমেন্টে উপলব্ধ করছি। OMAPI বিক্রেতা স্থিতিশীল ইন্টারফেসের মাধ্যমে সিকিউর এলিমেন্টের সাথে যোগাযোগ করতে এই বৈশিষ্ট্যগুলির HALs (বিক্রেতা উপাদান) সক্রিয় করার জন্য প্রয়োজন।
ডিজাইন আর্কিটেকচার
OEM গুলি তাদের ডিভাইসগুলিতে একটি সুরক্ষিত উপাদান এবং Android রেডি SE বৈশিষ্ট্যগুলিকে একত্রিত করে এই ইন্টারফেসটিকে সক্রিয় করতে হবে কারণ এটি ডিফল্টরূপে অক্ষম থাকে৷ এই আপডেটের আগে সিকিউর এলিমেন্ট অ্যাক্সেস নিয়ম প্যাকেজের নাম বা এর স্বাক্ষর হ্যাশ (ডিভাইস অ্যাপ্লিকেশন রেফারেন্স) এবং AID (SE অ্যাপ্লিকেশন রেফারেন্স) দ্বারা সংজ্ঞায়িত করা হয়েছিল। HAL মডিউলগুলির প্যাকেজের নাম বা স্বাক্ষর শংসাপত্রের মতো অনন্য শনাক্তকারী ছিল না। এখন Android 13-এ, OMAPI ভেন্ডর স্টেবল সার্ভিস HAL মডিউলগুলিকে সিকিউর এলিমেন্ট অ্যাক্সেস করার অনুমতি দেয়। SE বিক্রেতারা 16 বাইটের একটি অনন্য শনাক্তকারী UUID সংজ্ঞায়িত করতে পারে। HAL মডিউলগুলিতে এই অ্যাক্সেসের নিয়মটি প্রয়োগ করতে, SE বিক্রেতাদের তাদের বিক্রেতা UUID ম্যাপিং কনফিগারেশন XML-এ এই 16 বাইট অনন্য শনাক্তকারী UUID-কে HAL মডিউল UID-তে ম্যাপ করতে হবে।
OMAPI ভেন্ডর স্টেবল সার্ভিস UUID-কে 20 বাইট করার প্রয়োজনে FF দিয়ে প্যাড করে, বিভাগ 6.1, DeviceAppID-REF-DO পৃষ্ঠা: 66 অনুসারে এবং ডিভাইস অ্যাপ্লিকেশন রেফারেন্স হিসাবে এই 20 বাইট UUID ব্যবহার করে সুরক্ষিত উপাদানগুলিতে অ্যাক্সেসের নিয়ম সংজ্ঞায়িত করে।
বিক্রেতা UUID ম্যাপিং ফাইলের নাম পূর্বনির্ধারিত উপসর্গ hal_uuid_map_
দিয়ে গঠিত হয় এবং সিস্টেম প্রপার্টি ro.boot.product.hardware.sku
এর মান দিয়ে যুক্ত করা হয়।
hal_uuid_map_value_of_ro.boot.product.hardware.sku.xml
OMAPI ভেন্ডর স্টেবল সার্ভিস এই ফাইলটির জন্য /odm/etc/
, /vendor/etc/
এবং /etc/
ফোল্ডারের অধীনে অনুসন্ধান করে। বিক্রেতা UUID ম্যাপিং কনফিগারেশন ফাইলের বিস্তারিত বিবরণ এখানে উপলব্ধ।
বাস্তবায়ন
একটি টার্গেট বিল্ডে OMAPI ভেন্ডর স্থিতিশীল পরিষেবা বৈশিষ্ট্য সক্রিয় করতে নিম্নলিখিত পরিবর্তনগুলি প্রয়োজন৷
সিকিউর এলিমেন্ট
সিকিউর এলিমেন্ট ডিভাইস নির্দিষ্ট ফোল্ডারের অধীনে রিসোর্স ওভারলে ব্যবহার করে পরিষেবা পতাকা secure_element_vintf_enabled
সক্ষম করুন।
<bool name="secure_element_vintf_enabled">true</bool>
আপনার পরিষেবার জন্য UID এবং UUID ম্যাপিং xml সংজ্ঞায়িত করুন।
<ref_do> <uuid_ref_do> <uids> <uid>0</uid> </uids> <uuid>9f36407ead0639fc966f14dde7970f68</uuid> </uuid_ref_do> <uuid_ref_do> <uids> <uid>1096</uid> <uid>1097</uid> </uids> <uuid>a9b7ba70783b317e9998dc4dd82eb3c5</uuid> </uuid_ref_do> </ref_do>
ডিভাইস অ্যাপ্লিকেশন রেফারেন্স হিসাবে UUID ব্যবহার করে HAL পরিষেবার জন্য সুরক্ষিত উপাদান AR-এর ব্যবস্থা করুন। ম্যাপিং কনফিগারেশনে একটি ম্যাপিং এন্ট্রি যোগ করুন যেখানে আপনি এই UUID কে HAL মডিউল UID(গুলি) তে ম্যাপ করতে পারেন। এই ম্যাপিং বিক্রেতারা HAL মডিউলগুলিকে সিকিউর এলিমেন্ট অ্যাক্সেস করার অনুমতি দিচ্ছে। HAL মডিউলগুলিতে OMAPI ভেন্ডর স্থিতিশীল পরিষেবা সক্ষম করার জন্য OMAPI VTS পরীক্ষাগুলি রেফারেন্স বাস্তবায়ন হিসাবে ব্যবহার করা যেতে পারে।
HAL মডিউল সিপলিসি আপডেট করুন: HAL মডিউলের জন্য সিপলিসি নিয়ম যোগ করুন যাতে তাদের ডোমেন OMAPI ভেন্ডর স্থিতিশীল পরিষেবা অ্যাক্সেস করতে পারে।
allow hal_module_label secure_element_service:service_manager find
OMAPI ভেন্ডর স্টেবল সার্ভিসের সাথে সংযোগ করুন: HAL মডিউল থেকে OMAPI ভেন্ডর সার্ভিস লেবেল ব্যবহার করুন android.se.omapi.ISecureElementService/defaultandroid.se.omapi.ISecureElementService/default
পরিষেবাতে সংযোগ করতে।
বৈধতা
OMAPI VTS পরীক্ষা চালিয়ে OMAPI ভেন্ডর স্থিতিশীল পরিষেবা সফলভাবে প্রয়োগ করা হয়েছে তা যাচাই করুন৷
run vts -m VtsHalOmapiSeServiceV1_TargetTest run vts -m VtsHalOmapiSeAccessControlTestCases