অ্যান্ড্রয়েড 5.1 সার্বজনীন ইন্টিগ্রেটেড সার্কিট কার্ড (UICC) অ্যাপের মালিকদের জন্য প্রাসঙ্গিক API-এর জন্য বিশেষ সুবিধা প্রদানের জন্য একটি প্রক্রিয়া চালু করেছে। অ্যান্ড্রয়েড প্ল্যাটফর্মটি একটি UICC-তে সংরক্ষিত শংসাপত্রগুলি লোড করে এবং মুষ্টিমেয় বিশেষ APIগুলিতে কল করার জন্য এই শংসাপত্রগুলির দ্বারা স্বাক্ষরিত অ্যাপগুলিকে অনুমতি দেয়৷
অ্যান্ড্রয়েড 7.0 UICC ক্যারিয়ারের বিশেষাধিকার বিধিগুলির জন্য অন্যান্য স্টোরেজ উত্সগুলিকে সমর্থন করার জন্য এই বৈশিষ্ট্যটি প্রসারিত করেছে, যা API ব্যবহার করতে পারে এমন ক্যারিয়ারের সংখ্যা নাটকীয়ভাবে বাড়িয়েছে। একটি API রেফারেন্সের জন্য, CarrierConfigManager দেখুন; নির্দেশাবলীর জন্য, ক্যারিয়ার কনফিগারেশন দেখুন।
ক্যারিয়ারদের UICC-এর সম্পূর্ণ নিয়ন্ত্রণ রয়েছে, তাই এই প্রক্রিয়াটি ডিভাইসে বিশেষ সুবিধা বজায় রেখে এবং প্রয়োজন ছাড়াই জেনেরিক অ্যাপ ডিস্ট্রিবিউশন চ্যানেলে (যেমন Google Play) হোস্ট করা মোবাইল নেটওয়ার্ক অপারেটর (MNO) থেকে অ্যাপগুলি পরিচালনা করার একটি নিরাপদ এবং নমনীয় উপায় প্রদান করে। প্রতি-ডিভাইস প্ল্যাটফর্ম সার্টিফিকেট দিয়ে অ্যাপে সাইন ইন করতে বা সিস্টেম অ্যাপ হিসেবে প্রি-ইন্সটল করতে।
UICC এর নিয়ম
UICC-এর স্টোরেজ গ্লোবালপ্ল্যাটফর্ম সিকিউর এলিমেন্ট অ্যাক্সেস কন্ট্রোল স্পেসিফিকেশনের সাথে সামঞ্জস্যপূর্ণ। কার্ডে অ্যাপ শনাক্তকারী (AID) হল A00000015141434C00
, এবং স্ট্যান্ডার্ড GET DATA
কমান্ড কার্ডে সংরক্ষিত নিয়মগুলি আনতে ব্যবহৃত হয়। আপনি কার্ড ওভার-দ্য-এয়ার (OTA) আপডেটের মাধ্যমে এই নিয়মগুলি আপডেট করতে পারেন।
ডেটা অনুক্রম
UICC নিয়মগুলি নিম্নলিখিত ডেটা অনুক্রম ব্যবহার করে (বন্ধনীতে দুই-অক্ষরের অক্ষর এবং সংখ্যার সমন্বয় হল অবজেক্ট ট্যাগ)। প্রতিটি নিয়ম হল REF-AR-DO
( E2
) এবং এতে REF-DO
এবং AR-DO
এর সংমিশ্রণ রয়েছে:
-
REF-DO
(E1
) তেDeviceAppID-REF-DO
বাDeviceAppID-REF-DO
এবংPKG-REF-DO
এর সংমিশ্রণ রয়েছে।-
DeviceAppID-REF-DO
(C1
) শংসাপত্রের SHA-1 (20 বাইট) বা SHA-256 (32 বাইট) স্বাক্ষর সংরক্ষণ করে৷ -
PKG-REF-DO
(CA
) হল ম্যানিফেস্টে সংজ্ঞায়িত সম্পূর্ণ প্যাকেজ নামের স্ট্রিং, ASCII এনকোড করা, সর্বোচ্চ দৈর্ঘ্য 127 বাইট।
-
-
AR-DO
(E3
)PERM-AR-DO
(DB
) অন্তর্ভুক্ত করার জন্য প্রসারিত করা হয়েছে, যা একটি 8-বাইট বিট মাস্ক যা 64টি পৃথক অনুমতি উপস্থাপন করে।
PKG-REF-DO
উপস্থিত না থাকলে, সার্টিফিকেট দ্বারা স্বাক্ষরিত যেকোন অ্যাপ অ্যাক্সেস মঞ্জুর করা হয়; অন্যথায় শংসাপত্র এবং প্যাকেজের নাম উভয়ই মিলতে হবে।
নিয়ম উদাহরণ
অ্যাপটির নাম com.google.android.apps.myapp
এবং হেক্স স্ট্রিং-এ SHA-1 সার্টিফিকেট হল:
AB:CD:92:CB:B1:56:B2:80:FA:4E:14:29:A6:EC:EE:B6:E5:C1:BF:E4
হেক্স স্ট্রিং এ UICC এর নিয়ম হল:
E243 <= 43 is value length in hex E135 C114 ABCD92CBB156B280FA4E1429A6ECEEB6E5C1BFE4 CA1D 636F6D2E676F6F676C652E616E64726F69642E617070732E6D79617070 E30A DB08 0000000000000001
অ্যাক্সেস নিয়ম ফাইল সমর্থন
অ্যান্ড্রয়েড 7.0 অ্যাক্সেস রুল ফাইল (এআরএফ) থেকে ক্যারিয়ারের বিশেষাধিকার নিয়ম পড়ার জন্য সমর্থন যোগ করে।
অ্যান্ড্রয়েড প্ল্যাটফর্মটি প্রথমে অ্যাক্সেস রুল অ্যাপ্লিকেশন (ARA) AID A00000015141434C00
নির্বাচন করার চেষ্টা করে। যদি এটি UICC-তে AID খুঁজে না পায়, তাহলে PKCS15 AID A000000063504B43532D3135
নির্বাচন করে এটি ARF-এ ফিরে আসে। অ্যান্ড্রয়েড তারপর 0x4300
এ অ্যাক্সেস কন্ট্রোল রুলস ফাইল (ACRF) পড়ে এবং AID FFFFFFFFFFFF
এর সাথে এন্ট্রি খোঁজে। বিভিন্ন AID সহ এন্ট্রিগুলি উপেক্ষা করা হয়, তাই অন্যান্য ব্যবহারের ক্ষেত্রে নিয়মগুলি সহাবস্থান করতে পারে৷
হেক্স স্ট্রিং এ ACRF বিষয়বস্তুর উদাহরণ:
30 10 A0 08 04 06 FF FF FF FF FF FF 30 04 04 02 43 10
এক্সেস কন্ট্রোল কন্ডিশন ফাইল (ACCF) কন্টেন্টের উদাহরণ:
30 16 04 14 61 ED 37 7E 85 D3 86 A8 DF EE 6B 86 4B D8 5B 0B FA A5 AF 81
উপরের উদাহরণে, 0x4310
হল ACCF-এর ঠিকানা, যাতে রয়েছে সার্টিফিকেট হ্যাশ 61:ED:37:7E:85:D3:86:A8:DF:EE:6B:86:4B:D8:5B:0B:FA:A5:AF:81
। এই শংসাপত্র দ্বারা স্বাক্ষরিত অ্যাপগুলিকে ক্যারিয়ারের বিশেষাধিকার দেওয়া হয়৷
সক্ষম APIs
অ্যান্ড্রয়েড নিম্নলিখিত API সমর্থন করে।
টেলিফোনি ম্যানেজার
- ক্যারিয়ার অ্যাপকে একটি চ্যালেঞ্জ/প্রতিক্রিয়ার জন্য UICC-কে জিজ্ঞাসা করতে দেওয়ার পদ্ধতি:
getIccAuthentication
। - কলিং অ্যাপটিকে ক্যারিয়ারের সুবিধা দেওয়া হয়েছে কিনা তা পরীক্ষা করার পদ্ধতি:
hasCarrierPrivileges
। - ব্র্যান্ড এবং নম্বর ওভাররাইড করার পদ্ধতি:
- সরাসরি UICC যোগাযোগের পদ্ধতি:
- ডিভাইস মোড গ্লোবাল সেট করার পদ্ধতি:
setPreferredNetworkTypeToGlobal
। - ডিভাইস বা নেটওয়ার্ক পরিচয় পাওয়ার পদ্ধতি:
- আন্তর্জাতিক মোবাইল ইকুইপমেন্ট আইডেন্টিটি (IMEI):
getImei
- মোবাইল ইকুইপমেন্ট আইডেন্টিফায়ার (MEID):
getMeid
- নেটওয়ার্ক অ্যাক্সেস আইডেন্টিফায়ার (NAI):
getNai
- সিম সিরিয়াল নম্বর:
getSimSerialNumber
- আন্তর্জাতিক মোবাইল ইকুইপমেন্ট আইডেন্টিটি (IMEI):
- ক্যারিয়ার কনফিগারেশন পাওয়ার পদ্ধতি:
getCarrierConfig
- ডেটা ট্রান্সমিশনের জন্য নেটওয়ার্ক টাইপ পাওয়ার পদ্ধতি:
getDataNetworkType
- ভয়েস পরিষেবার জন্য নেটওয়ার্কের ধরন পাওয়ার পদ্ধতি:
getVoiceNetworkType
- ইউআইসিসি সিম (ইউএসআইএম) অ্যাপ সম্পর্কে তথ্য পাওয়ার পদ্ধতি:
- সিম সিরিয়াল নম্বর:
getSimSerialNumber
- কার্ড তথ্য:
getUiccCardsInfo
- GID1 (গ্রুপ আইডি লেভেল1):
getGroupIdLevel1
- লাইন 1 এর জন্য ফোন নম্বর স্ট্রিং:
getLine1Number
- নিষিদ্ধ পাবলিক ল্যান্ড মোবাইল নেটওয়ার্ক (PLMN):
getForbiddenPlmns
- সমতুল্য হোম PLMN:
getEquivalentHomePlmns
- সিম সিরিয়াল নম্বর:
- ভয়েসমেল নম্বর পেতে বা সেট করার পদ্ধতি:
- বিশেষ ডায়লার কোড পাঠানোর পদ্ধতি:
sendDialerSpecialCode
- রেডিও মডেম রিসেট করার পদ্ধতি:
rebootModem
- নেটওয়ার্ক নির্বাচন মোড পেতে বা সেট করার পদ্ধতি:
- একটি নেটওয়ার্ক স্ক্যান অনুরোধ করার পদ্ধতি:
requestNetworkScan
- অনুমোদিত/পছন্দের নেটওয়ার্ক প্রকারগুলি পেতে বা সেট করার পদ্ধতি:
- ব্যবহারকারীর সেটিংস প্রতি মোবাইল ডেটা বা রোমিং সক্ষম কিনা তা পরীক্ষা করার পদ্ধতি:
- কারণ সহ ডেটা সংযোগ পরীক্ষা বা সেট করার পদ্ধতি:
- জরুরী নম্বর তালিকা পেতে পদ্ধতি:
getEmergencyNumberList
- সুবিধাবাদী নেটওয়ার্ক নিয়ন্ত্রণ করার পদ্ধতি:
- সেলুলার সিগন্যাল শক্তি আপডেট অনুরোধ সেট বা সাফ করার পদ্ধতি:
টেলিফোনি কলব্যাক
TelephonyCallback
একটি কলব্যাক পদ্ধতির সাথে ইন্টারফেস রয়েছে যখন নিবন্ধিত অবস্থাগুলি পরিবর্তন হয় তখন কলিং অ্যাপকে অবহিত করতে:
- বার্তা অপেক্ষা সূচক পরিবর্তিত হয়েছে:
onMessageWaitingIndicatorChanged
- কল ফরওয়ার্ডিং সূচক পরিবর্তিত হয়েছে:
onCallForwardingIndicatorChanged
- IP মাল্টিমিডিয়া সিস্টেম (IMS) কল বিচ্ছিন্ন হওয়ার কারণ পরিবর্তিত হয়েছে:
onImsCallDisconnectCauseChanged
- সুনির্দিষ্ট ডেটা সংযোগের অবস্থা পরিবর্তিত হয়েছে:
onPreciseDataConnectionStateChanged
- বর্তমান জরুরি নম্বর তালিকা পরিবর্তিত হয়েছে:
onEmergencyNumberListChanged
- সক্রিয় ডেটা সাবস্ক্রিপশন আইডি পরিবর্তিত হয়েছে:
onActiveDataSubscriptionIdChanged
- ক্যারিয়ার নেটওয়ার্ক পরিবর্তিত হয়েছে:
onCarrierNetworkChange
- নেটওয়ার্ক নিবন্ধন বা একটি অবস্থান/রাউটিং/ট্র্যাকিং এলাকা আপডেট ব্যর্থ হয়েছে:
onRegistrationFailed
ব্যর্থ হয়েছে - ব্যারিং তথ্য পরিবর্তন:
onBarringInfoChanged
- বর্তমান ভৌত চ্যানেল কনফিগারেশন পরিবর্তিত হয়েছে:
onPhysicalChannelConfigChanged
সাবস্ক্রিপশন ম্যানেজার
- বিভিন্ন সাবস্ক্রিপশন তথ্য পাওয়ার পদ্ধতি:
- সক্রিয় সদস্যতার সংখ্যা পাওয়ার পদ্ধতি:
getActiveSubscriptionInfoCount
- সদস্যতা গ্রুপ পরিচালনা করার পদ্ধতি:
- একটি ক্যারিয়ার এবং একটি নির্দিষ্ট গ্রাহকের মধ্যে বিলিং সম্পর্ক পরিকল্পনার বিবরণ পেতে বা সেট করার পদ্ধতি:
- অস্থায়ীভাবে একটি ক্যারিয়ার এবং একটি নির্দিষ্ট গ্রাহকের মধ্যে বিলিং সম্পর্ক পরিকল্পনা ওভাররাইড করার পদ্ধতি যা মিটারবিহীন বলে বিবেচিত হবে:
setSubscriptionOverrideUnmetered
- অস্থায়ীভাবে একটি ক্যারিয়ার এবং একটি নির্দিষ্ট গ্রাহকের মধ্যে বিলিং সম্পর্ক পরিকল্পনাকে ওভাররাইড করার পদ্ধতি যা কনজেস্টেড বলে বিবেচিত হবে:
setSubscriptionOverrideCongested
- প্রদত্ত প্রসঙ্গ সহ অ্যাপটি তার মেটাডেটা অনুসারে প্রদত্ত সাবস্ক্রিপশন পরিচালনা করার জন্য অনুমোদিত কিনা তা পরীক্ষা করার পদ্ধতি:
canManageSubscription
এসএমএস ম্যানেজার
- কলকারীকে নতুন ইনকামিং এসএমএস বার্তা তৈরি করতে দেওয়ার পদ্ধতি:
injectSmsPdu
। - SMS প্রদানকারীতে না লিখে একটি পাঠ্য ভিত্তিক SMS বার্তা পাঠানোর পদ্ধতি:
sendTextMessageWithoutPersisting
CarrierConfigManager
- কনফিগারেশন পরিবর্তিত বিজ্ঞপ্তি দেওয়ার পদ্ধতি:
notifyConfigChangedForSubId
। - ডিফল্ট সাবস্ক্রিপশনের জন্য ক্যারিয়ার কনফিগারেশন পাওয়ার পদ্ধতি:
getConfig
- নির্দিষ্ট সাবস্ক্রিপশনের জন্য ক্যারিয়ার কনফিগারেশন পাওয়ার পদ্ধতি:
getConfigForSubId
নির্দেশাবলীর জন্য, ক্যারিয়ার কনফিগারেশন দেখুন।
BugreportManager
একটি কানেক্টিভিটি বাগ রিপোর্ট শুরু করার পদ্ধতি, যা বাগ রিপোর্টের একটি বিশেষ সংস্করণ যাতে সংযোগ সংক্রান্ত সমস্যাগুলি ডিবাগ করার জন্য শুধুমাত্র তথ্য অন্তর্ভুক্ত থাকে: startConnectivityBugreport
নেটওয়ার্ক স্ট্যাটস ম্যানেজার
- নেটওয়ার্ক ব্যবহারের সারাংশ জিজ্ঞাসা করার পদ্ধতি:
querySummary
- নেটওয়ার্ক ব্যবহারের ইতিহাস জিজ্ঞাসা করার পদ্ধতি:
queryDetails
- নেটওয়ার্ক ব্যবহার কলব্যাক নিবন্ধন বা নিবন্ধনমুক্ত করার পদ্ধতি:
ImsMmTelManager
- IMS MmTel রেজিস্ট্রেশন কলব্যাক নিবন্ধন বা নিবন্ধনমুক্ত করার পদ্ধতি:
ImsRcsManager
- IMS RCS রেজিস্ট্রেশন কলব্যাক নিবন্ধন বা নিবন্ধনমুক্ত করার পদ্ধতি:
- IMS রেজিস্ট্রেশন স্টেট বা পরিবহনের ধরন পাওয়ার পদ্ধতি:
প্রভিশনিং ম্যানেজার
- IMS ফিচার প্রভিশনিং আপডেট কলব্যাক নিবন্ধন এবং আনরেজিস্টার করার পদ্ধতি:
- আইএমএস এমএমটেল বা আরসিএস ক্ষমতার জন্য প্রভিশনিং স্ট্যাটাস সম্পর্কিত পদ্ধতি:
EuiccManager
প্রদত্ত সাবস্ক্রিপশনে স্যুইচ করার (সক্ষম) পদ্ধতি: switchToSubscription
ক্যারিয়ার মেসেজিং সার্ভিস
পরিষেবা যা নতুন এসএমএস এবং এমএমএস পাঠানো বা গ্রহণ করা হলে সিস্টেম থেকে কল গ্রহণ করে। এই ক্লাসটি প্রসারিত করতে, android.Manifest.permission#BIND_CARRIER_MESSAGING_SERVICE
অনুমতি সহ আপনার ম্যানিফেস্ট ফাইলে পরিষেবাটি ঘোষণা করুন এবং #SERVICE_INTERFACE
অ্যাকশন সহ একটি অভিপ্রায় ফিল্টার অন্তর্ভুক্ত করুন। পদ্ধতি অন্তর্ভুক্ত:
- ইনবাউন্ড এসএমএস বার্তা ফিল্টার করার পদ্ধতি:
onFilterSms
- ডিভাইস থেকে পাঠানো টেক্সট এসএমএস বার্তা আটকানোর পদ্ধতি:
onSendTextSms
- ডিভাইস থেকে প্রেরিত বাইনারি এসএমএস বার্তা আটকানোর পদ্ধতি:
onSendDataSms
- ডিভাইস থেকে প্রেরিত দীর্ঘ এসএমএস বার্তা আটকানোর পদ্ধতি:
onSendMultipartTextSms
- ডিভাইস থেকে প্রেরিত MMS বার্তা আটকানোর পদ্ধতি:
onSendMms
- প্রাপ্ত MMS বার্তাগুলি ডাউনলোড করার পদ্ধতি:
onDownloadMms
ক্যারিয়ার সার্ভিস
পরিষেবা যা সিস্টেমে ক্যারিয়ার-নির্দিষ্ট কার্যকারিতা প্রকাশ করে৷ এই ক্লাসটি প্রসারিত করতে, android.Manifest.permission#BIND_CARRIER_SERVICES
অনুমতি সহ অ্যাপ ম্যানিফেস্ট ফাইলে পরিষেবাটি ঘোষণা করুন এবং CARRIER_SERVICE_INTERFACE
অ্যাকশন সহ একটি অভিপ্রায় ফিল্টার অন্তর্ভুক্ত করুন। যদি পরিষেবাটির দীর্ঘস্থায়ী বাইন্ডিং থাকে, তাহলে পরিষেবার মেটাডেটাতে android.service.carrier.LONG_LIVED_BINDING
কে true
হিসাবে সেট করুন৷
প্ল্যাটফর্মটি CarrierService
বিশেষ পতাকা দিয়ে আবদ্ধ করে যাতে ক্যারিয়ার পরিষেবা প্রক্রিয়াটিকে একটি বিশেষ অ্যাপ স্ট্যান্ডবাই বালতিতে চলতে দেয়৷ এটি ক্যারিয়ার পরিষেবা অ্যাপটিকে অ্যাপ নিষ্ক্রিয় সীমাবদ্ধতা থেকে অব্যাহতি দেয় এবং ডিভাইসের মেমরি কম থাকলে এটি জীবিত থাকার সম্ভাবনা বেশি করে। যাইহোক, ক্যারিয়ার পরিষেবা অ্যাপটি কোনো কারণে ক্র্যাশ হলে, অ্যাপটি পুনরায় চালু না হওয়া পর্যন্ত এবং বাইন্ডিং পুনঃস্থাপিত না হওয়া পর্যন্ত এটি উপরের সমস্ত সুবিধা হারায়। তাই ক্যারিয়ার পরিষেবা অ্যাপটিকে স্থিতিশীল রাখা গুরুত্বপূর্ণ।
CarrierService
এর পদ্ধতিগুলির মধ্যে রয়েছে:
- ক্যারিয়ার নির্দিষ্ট কনফিগারেশন ওভাররাইড এবং সেট করতে:
onLoadConfig
- ক্যারিয়ার অ্যাপ দ্বারা একটি ইচ্ছাকৃত আসন্ন ক্যারিয়ার নেটওয়ার্ক পরিবর্তনের সিস্টেমকে অবহিত করতে:
notifyCarrierNetworkChange
টেলিফোন প্রদানকারী
টেলিফোনি ডাটাবেসে পরিবর্তন (সন্নিবেশ, মুছে, আপডেট, ক্যোয়ারী) করার অনুমতি দেওয়ার জন্য সামগ্রী প্রদানকারী APIs। Telephony.Carriers
এ মান ক্ষেত্র সংজ্ঞায়িত করা হয়; আরও বিস্তারিত জানার জন্য, Telephony
ক্লাস রেফারেন্স পড়ুন
WifiNetwork সাজেশন
একটি WifiNetworkSuggestion
অবজেক্ট তৈরি করার সময়, একটি সাবস্ক্রিপশন আইডি বা একটি সদস্যতা গোষ্ঠী সেট করতে নিম্নলিখিত পদ্ধতিগুলি ব্যবহার করুন:
- সাবস্ক্রিপশন আইডি সেট করার পদ্ধতি:
setSubscriptionId
- একটি সাবস্ক্রিপশন গ্রুপ সেট করতে Metohd:
setSubscriptionGroup
অ্যান্ড্রয়েড প্ল্যাটফর্ম
একটি শনাক্ত করা UICC-এ, প্ল্যাটফর্মটি অভ্যন্তরীণ UICC অবজেক্ট তৈরি করে যা UICC-এর অংশ হিসেবে ক্যারিয়ারের বিশেষাধিকার বিধি অন্তর্ভুক্ত করে। UiccCarrierPrivilegeRules.java
নিয়ম লোড করে, UICC কার্ড থেকে পার্স করে এবং মেমরিতে ক্যাশ করে। যখন একটি বিশেষাধিকার চেকের প্রয়োজন হয়, তখন UiccCarrierPrivilegeRules
কলার শংসাপত্রটিকে তার নিজস্ব নিয়মগুলির সাথে একে একে তুলনা করে। UICC সরানো হলে, নিয়মগুলি UICC অবজেক্টের সাথে ধ্বংস হয়ে যাবে।
বৈধতা
CtsCarrierApiTestCases.apk
ব্যবহার করে কম্প্যাটিবিলিটি টেস্ট স্যুট (CTS) এর মাধ্যমে বাস্তবায়নকে যাচাই করতে, আপনার অবশ্যই সঠিক UICC নিয়ম বা ARF সমর্থন সহ একজন বিকাশকারী UICC থাকতে হবে। আপনার পছন্দের সিম কার্ড বিক্রেতাকে এই বিভাগে বর্ণিত সঠিক ARF সহ একটি বিকাশকারী UICC প্রস্তুত করতে বলুন এবং পরীক্ষা চালানোর জন্য সেই UICC ব্যবহার করুন৷ CTS পরীক্ষা পাস করার জন্য UICC-এর সক্রিয় সেলুলার পরিষেবার প্রয়োজন নেই।
UICC প্রস্তুত করুন
Android 11 এবং তার নিচের সংস্করণের জন্য, CtsCarrierApiTestCases.apk
হ্যাশ মান 61:ED:37:7E:85:D3:86:A8:DF:EE:6B:86:4B:D8:5B:0B:FA:A5:AF:81
সহ aosp-testkey
দ্বারা স্বাক্ষরিত 61:ED:37:7E:85:D3:86:A8:DF:EE:6B:86:4B:D8:5B:0B:FA:A5:AF:81
।
Android 12 থেকে শুরু করে, CtsCarrierApiTestCases.apk
cts-uicc-2021-testkey
, হ্যাশ মান CE:7B:2B:47:AE:2B:75:52:C8:F9:2C:C2:91:24:27:98:83:04:1F:B6:23:A5:F1:94:A8:2C:9B:F1:5D:49:2A:A0
দ্বারা স্বাক্ষরিত CE:7B:2B:47:AE:2B:75:52:C8:F9:2C:C2:91:24:27:98:83:04:1F:B6:23:A5:F1:94:A8:2C:9B:F1:5D:49:2A:A0
।
অ্যান্ড্রয়েড 12-এ CTS ক্যারিয়ার API পরীক্ষা চালানোর জন্য, ডিভাইসটিকে তৃতীয় পক্ষের GSMA TS.48 টেস্ট প্রোফাইল স্পেসিফিকেশনের সর্বশেষ সংস্করণে উল্লেখিত প্রয়োজনীয়তাগুলি পূরণ করে CTS ক্যারিয়ারের বিশেষাধিকার সহ একটি সিম ব্যবহার করতে হবে।
একই সিম অ্যান্ড্রয়েড 12 এর আগের সংস্করণগুলির জন্যও ব্যবহার করা যেতে পারে।
CTS সিম প্রোফাইল পরিবর্তন করুন
- যোগ করুন: অ্যাক্সেস রুল অ্যাপ মাস্টার (এআরএ-এম) বা এআরএফ-এ CTS ক্যারিয়ারের সুবিধা। উভয় স্বাক্ষরই ক্যারিয়ারের বিশেষাধিকার নিয়মে এনকোড করা আবশ্যক:
- Hash1(SHA1):
61:ED:37:7E:85:D3:86:A8:DF:EE:6B:86:4B:D8:5B:0B:FA:A5:AF:81
- Hash2(SHA256):
CE:7B:2B:47:AE:2B:75:52:C8:F9:2C:C2:91:24:27:98:83:04:1F:B6:23:A5:F1:94:A8:2C:9B:F1:5D:49:2A:A0
- Hash1(SHA1):
- তৈরি করুন: ADF USIM প্রাথমিক ফাইল (EFs) TS.48-এ উপস্থিত নেই এবং CTS-এর জন্য প্রয়োজন:
- EF_MBDN (6FC7), রেকর্ডের আকার: 28, রেকর্ড নম্বর: 4
- বিষয়বস্তু
- Rec1: 566F696365204D61696CFFFFFFF06915155555555FF…FF
- Rec2-n: FF…FF
- বিষয়বস্তু
- EF_EXT6 (6FC8), রেকর্ড আকার: 13, রেকর্ড নম্বর: 1
- বিষয়বস্তু: 00FF...FF
- EF_MBI (6FC9), রেকর্ডের আকার: 4, রেকর্ড নম্বর: 1
- বিষয়বস্তু: Rec1: 01010101
- EF_MWIS (6FCA), রেকর্ড আকার: 5, রেকর্ড নম্বর: 1
- বিষয়বস্তু: 0000000000
- বিষয়বস্তু: 00FF...FF
- EF_MBDN (6FC7), রেকর্ডের আকার: 28, রেকর্ড নম্বর: 4
- পরিবর্তন করুন: USIM পরিষেবা টেবিল: পরিষেবাগুলি n°47, n°48 সক্ষম করুন৷
- EF_UST (6F38)
- বিষয়বস্তু:
9EFFBF1DFFFE0083410310010400406E01
- বিষয়বস্তু:
- EF_UST (6F38)
- পরিবর্তন করুন: DF-5GS এবং DF-SAIP ফাইল
- DF-5GS - EF_5GS3GPPLOCI (USIM/5FC0/4F01)
- বিষয়বস্তু:
FFFFFFFFFFFFFFFFFFFFFFFFFF42F618FFFFFE01
- বিষয়বস্তু:
- DF-5GS - EF_5GSN3GPPLOCI (USIM/5FC0/4F02)
- বিষয়বস্তু:
FFFFFFFFFFFFFFFFFFFFFFFFFF42F618FFFFFE01
- বিষয়বস্তু:
- DF-5GS - EF SUCI_Calc_Info (USIM/5FC0/4F07)
- বিষয়বস্তু:
A0020000FF…FF
- বিষয়বস্তু:
- DF-SAIP - EF SUCI_Calc_Info_USIM (USIM/5FD0/4F01)
- বিষয়বস্তু:
A0020000FF…FF
- বিষয়বস্তু:
- DF-5GS - EF_5GS3GPPLOCI (USIM/5FC0/4F01)
- পরিবর্তন করুন: এই পদবী ধারণকারী সংশ্লিষ্ট EF-তে ক্যারিয়ারের নামের স্ট্রিং অ্যান্ড্রয়েড CTS ব্যবহার করুন:
- EF_SPN (USIM/6F46)
- বিষয়বস্তু:
01416E64726F696420435453FF..FF
- বিষয়বস্তু:
- EF_PNN (USIM/6FC5)
- বিষয়বস্তু:
Rec1 430B83413759FE4E934143EA14FF..FF
- বিষয়বস্তু:
- EF_SPN (USIM/6F46)
পরীক্ষার প্রোফাইল কাঠামোর সাথে মেলে
নিম্নলিখিত জেনেরিক টেস্ট প্রোফাইল স্ট্রাকচারের সর্বশেষ সংস্করণ ডাউনলোড করুন এবং মেলে। এই প্রোফাইলগুলিতে CTS ক্যারিয়ার প্রিভিলেজ নিয়ম ব্যক্তিগতকৃত বা উপরে তালিকাভুক্ত অন্যান্য পরিবর্তন থাকবে না।
পরীক্ষা চালান
সুবিধার জন্য, CTS একটি ডিভাইস টোকেন সমর্থন করে যা শুধুমাত্র একই টোকেন দিয়ে কনফিগার করা ডিভাইসগুলিতে পরীক্ষা চালানোর জন্য সীমাবদ্ধ করে। ক্যারিয়ার API CTS পরীক্ষাগুলি ডিভাইস টোকেন sim-card-with-certs
সমর্থন করে। উদাহরণস্বরূপ, নিম্নলিখিত ডিভাইস টোকেন ক্যারিয়ার API পরীক্ষাগুলিকে শুধুমাত্র abcd1234
ডিভাইসে চালানোর জন্য সীমাবদ্ধ করে:
cts-tradefed run cts --device-token abcd1234:sim-card-with-certs
একটি ডিভাইস টোকেন ব্যবহার না করে একটি পরীক্ষা চালানোর সময়, পরীক্ষাটি সমস্ত ডিভাইসে চলে৷
FAQ
কিভাবে UICC-তে সার্টিফিকেট আপডেট করা যায়?
উত্তর: বিদ্যমান কার্ড OTA আপডেট পদ্ধতি ব্যবহার করুন।
UICC অন্যান্য নিয়মের সাথে সহাবস্থান করতে পারে?
উত্তর: একই AID-এর অধীনে UICC-তে অন্যান্য নিরাপত্তা বিধি থাকা ভালো; প্ল্যাটফর্ম স্বয়ংক্রিয়ভাবে তাদের ফিল্টার আউট.
যখন UICC একটি অ্যাপের জন্য সরানো হয় যা এটির সার্টিফিকেটের উপর নির্ভর করে তখন কী হয়?
উত্তর: অ্যাপটি তার বিশেষাধিকার হারায় কারণ UICC-এর সাথে সম্পর্কিত নিয়মগুলি UICC অপসারণের সময় নষ্ট হয়ে যায়।
UICC-তে সার্টিফিকেটের সংখ্যার কি কোনো সীমা আছে?
উত্তর: প্ল্যাটফর্মটি শংসাপত্রের সংখ্যা সীমাবদ্ধ করে না; কিন্তু যেহেতু চেকটি রৈখিক, তাই অনেকগুলি নিয়ম চেকের জন্য বিলম্বিত হতে পারে৷
আমরা এই পদ্ধতিতে সমর্থন করতে পারি এমন API-এর সংখ্যার কি কোনো সীমা আছে?
উত্তর: না, কিন্তু আমরা ক্যারিয়ার-সম্পর্কিত API-এর সুযোগ সীমাবদ্ধ করি।
এই পদ্ধতি ব্যবহার করার জন্য কিছু APIs নিষিদ্ধ আছে? যদি তাই হয়, আপনি কিভাবে তাদের প্রয়োগ করবেন? (অর্থাৎ, এই পদ্ধতিতে কোন এপিআই সমর্থিত তা যাচাই করার জন্য আপনার কি পরীক্ষা আছে?)
উত্তর: অ্যান্ড্রয়েড কম্প্যাটিবিলিটি ডেফিনিশন ডকুমেন্টের (CDD) API আচরণগত সামঞ্জস্য বিভাগটি দেখুন। এপিআই-এর অনুমতির মডেল যাতে পরিবর্তন না হয় তা নিশ্চিত করার জন্য আমাদের কিছু CTS পরীক্ষা আছে।
মাল্টি-সিম বৈশিষ্ট্যের সাথে এটি কীভাবে কাজ করে?
উত্তর: ব্যবহারকারীর দ্বারা নির্দিষ্ট ডিফল্ট সিম ব্যবহার করা হয়।
এটি কি অন্য SE অ্যাক্সেস প্রযুক্তির সাথে ইন্টারঅ্যাক্ট বা ওভারল্যাপ করে, উদাহরণস্বরূপ, SEEK?
উত্তর: উদাহরণ হিসেবে, SEEK UICC-এর মতো একই AID ব্যবহার করে। তাই নিয়মগুলি সহাবস্থান করে এবং SEEK বা UiccCarrierPrivileges
দ্বারা ফিল্টার করা হয়।
ক্যারিয়ারের সুবিধাগুলি পরীক্ষা করার জন্য কখন এটি উপযুক্ত?
উত্তর: সিম স্টেট লোড সম্প্রচারের পর।
OEMs ক্যারিয়ার API এর অংশ নিষ্ক্রিয় করতে পারেন?
উত্তর: না। আমরা বিশ্বাস করি যে বর্তমান API গুলি সর্বনিম্ন সেট, এবং আমরা ভবিষ্যতে সূক্ষ্ম গ্রানুলিটি নিয়ন্ত্রণের জন্য বিট মাস্ক ব্যবহার করার পরিকল্পনা করছি।
setOperatorBrandOverride
কি অপারেটর নামের স্ট্রিংগুলির অন্যান্য সমস্ত রূপকে ওভাররাইড করে? উদাহরণস্বরূপ, SE13, UICC SPN, বা নেটওয়ার্ক-ভিত্তিক NITZ?
হ্যাঁ, অপারেটর ব্র্যান্ড ওভাররাইডের সর্বোচ্চ অগ্রাধিকার রয়েছে। এটি সেট করা হলে, এটি অপারেটর নামের স্ট্রিংগুলির অন্যান্য সমস্ত রূপকে ওভাররাইড করে।
injectSmsPdu
পদ্ধতি কল কি করে?
উত্তর: এই পদ্ধতিটি ক্লাউডে এসএমএস ব্যাকআপ/রিস্টোরের সুবিধা দেয়। injectSmsPdu
কলটি পুনরুদ্ধার ফাংশন সক্ষম করে।
এসএমএস ফিল্টারিংয়ের জন্য, onFilterSms
কলটি কি এসএমএস ইউডিএইচ পোর্ট ফিল্টারিংয়ের উপর ভিত্তি করে? অথবা ক্যারিয়ার অ্যাপের কি সমস্ত ইনকামিং এসএমএসে অ্যাক্সেস আছে?
উত্তর: ক্যারিয়ারের সকল এসএমএস ডেটার অ্যাক্সেস আছে।
32 বাইট সমর্থন করার জন্য DeviceAppID-REF-DO
এর এক্সটেনশন বর্তমান জিপি স্পেক (যা শুধুমাত্র 0 বা 20 বাইট অনুমোদন করে) সাথে বেমানান বলে মনে হচ্ছে, তাহলে আপনি কেন এই পরিবর্তনটি চালু করছেন? সংঘর্ষ এড়াতে SHA-1 কি যথেষ্ট নয়? আপনি কি ইতিমধ্যেই জিপির কাছে এই পরিবর্তনের প্রস্তাব করেছেন, কারণ এটি বিদ্যমান ARA-M/ARF এর সাথে বেমানান হতে পারে?
উত্তর: ভবিষ্যৎ-প্রমাণ নিরাপত্তা প্রদানের জন্য, এই এক্সটেনশনটি SHA-1-এর পাশাপাশি DeviceAppID-REF-DO
জন্য SHA-256 প্রবর্তন করে, যা বর্তমানে GP SEAC স্ট্যান্ডার্ডে একমাত্র বিকল্প। আমরা SHA-256 ব্যবহার করার সুপারিশ করি।
যদি DeviceAppID
0 (খালি) হয়, তাহলে আপনি কি নির্দিষ্ট নিয়মের আওতায় নেই এমন সমস্ত ডিভাইস অ্যাপে নিয়ম প্রয়োগ করবেন?
উত্তর: ক্যারিয়ার API-এর প্রয়োজন DeviceAppID-REF-DO
জনবহুল হওয়া। খালি থাকা পরীক্ষার উদ্দেশ্যে তৈরি করা হয়েছে এবং অপারেশনাল স্থাপনার জন্য সুপারিশ করা হয় না।
আপনার স্পেসিফিকেশন অনুযায়ী, PKG-REF-DO
শুধুমাত্র নিজে ব্যবহার করা, DeviceAppID-REF-DO
ছাড়া, গ্রহণ করা উচিত নয়। কিন্তু এটি এখনও REF-DO
এর সংজ্ঞা প্রসারিত হিসাবে স্পেসিফিকেশনের সারণি 6-4-এ বর্ণনা করা হয়েছে। এটা কি উদ্দেশ্যমূলক? REF-DO
তে শুধুমাত্র PKG-REF-DO
ব্যবহার করা হলে কোডটি কীভাবে আচরণ করে?
উত্তর: REF-DO
তে PKG-REF-DO
একটি একক মান আইটেম হিসাবে থাকার বিকল্পটি সর্বশেষ সংস্করণে সরিয়ে দেওয়া হয়েছে। PKG-REF-DO
শুধুমাত্র DeviceAppID-REF-DO
এর সংমিশ্রণে হওয়া উচিত।
আমরা অনুমান করি যে আমরা সমস্ত ক্যারিয়ার-ভিত্তিক অনুমতিগুলিতে অ্যাক্সেস দিতে পারি বা সূক্ষ্ম নিয়ন্ত্রণ করতে পারি। যদি তাই হয়, বিট মাস্ক এবং প্রকৃত অনুমতিগুলির মধ্যে ম্যাপিংকে কী সংজ্ঞায়িত করে? ক্লাস প্রতি একটি অনুমতি? পদ্ধতি প্রতি এক অনুমতি? দীর্ঘ মেয়াদে 64টি পৃথক অনুমতি কি যথেষ্ট?
উত্তর: এটি ভবিষ্যতের জন্য সংরক্ষিত, এবং আমরা পরামর্শগুলিকে স্বাগত জানাই।
আপনি কি বিশেষভাবে Android এর জন্য DeviceAppID
আরও সংজ্ঞায়িত করতে পারেন? এটি প্রদত্ত অ্যাপটিতে স্বাক্ষর করতে ব্যবহৃত প্রকাশক শংসাপত্রের SHA-1 (20 বাইট) হ্যাশ মান, তাই নামটি কি সেই উদ্দেশ্যকে প্রতিফলিত করা উচিত নয়? (নামটি অনেক পাঠকের কাছে বিভ্রান্তিকর হতে পারে কারণ নিয়মটি সেই একই প্রকাশক শংসাপত্রের সাথে স্বাক্ষরিত সমস্ত অ্যাপের জন্য প্রযোজ্য।)
উত্তর: DeviceAppID
সঞ্চয়কারী শংসাপত্র বিদ্যমান বৈশিষ্ট্য দ্বারা সমর্থিত। আমরা দত্তক নেওয়ার বাধা কমাতে বিশেষ পরিবর্তনগুলি কমানোর চেষ্টা করেছি। বিস্তারিত জানার জন্য, UICC এর নিয়ম দেখুন।