অ্যান্ড্রয়েড 6 এবং উচ্চতর সংস্করণে, Wi-Fi পরিষেবা প্রদানকারী এবং প্যাকেট বিশ্লেষকদের নেটওয়ার্ক অনুরোধগুলি থেকে Wi-Fi স্ট্যাকের মাধ্যমে ডিভাইসের ফ্যাক্টরি MAC ঠিকানা পুনরুদ্ধার করা থেকে সীমাবদ্ধ করা হয়েছে৷ অ্যান্ড্রয়েড 10 থেকে শুরু করে, অতিরিক্ত বিধিনিষেধ রয়েছে যা বিশেষাধিকারপ্রাপ্ত অনুমতি স্তর সহ অ্যাপগুলিতে ডিভাইস শনাক্তকারী (আইডি) অ্যাক্সেস সীমিত করে। এই যেমন ডিভাইস আইডি রক্ষা করে
- টেলিফোনি IMEI, MEID, ESN, এবং IMSI নম্বর।
- বিল্ড, সিম, বা ইউএসবি সিরিয়াল নম্বর।
যারা ডিভাইস আইডি অ্যাক্সেস করতে পারে
ডিভাইস আইডিগুলি সমস্ত Android 10 ডিভাইসে সীমাবদ্ধ, এমনকি অ্যাপগুলি Android 9 বা তার চেয়ে কম সময়েও লক্ষ্য করে। ডিভাইস আইডিগুলি এর দ্বারা অ্যাক্সেস করা যেতে পারে:
- ডিফল্ট এসএমএস অ্যাপ।
-
Manifest.permissionক্লাসেREAD_PRIVILEGED_PHONE_STATEঅনুমতি সহ অ্যাপ এবংprivapp-permission.xmlফাইলে অনুমতি দেওয়া তালিকা। এগুলি অবশ্যইpriv-appডিরেক্টরিতে লোড করতে হবে। - UICC ক্যারিয়ারের বিশেষাধিকারে সংজ্ঞায়িত ক্যারিয়ারের বিশেষাধিকার সহ অ্যাপ।
-
Manifest.permissionক্লাসেREAD_PHONE_STATEঅনুমতি সহ একজন ডিভাইস মালিক বা প্রোফাইল মালিক। (অনুমোদিত তালিকার প্রয়োজন নেই।)
সুবিধাপ্রাপ্ত প্যাকেজ অ্যাক্সেস
ডিভাইস আইডি অ্যাক্সেস করার জন্য একটি প্যাকেজ অবশ্যই বিশেষাধিকারপ্রাপ্ত হতে হবে। Manifest.permission ক্লাসে এটির READ_PRIVILEGED_PHONE_STATE অনুমতি থাকতে হবে এবং privapp-permission.xml ফাইলে অনুমোদিত তালিকাভুক্ত হতে হবে। অনুমতি তালিকার প্রক্রিয়া সম্পর্কে তথ্যের জন্য, প্রিভিলেজড পারমিশন অ্যালোলিস্টিং দেখুন।
একটি অ-সুবিধাবিহীন প্যাকেজের জন্য একটি অনন্য আইডি পাওয়ার তথ্যের জন্য, সাধারণ ব্যবহারের ক্ষেত্রে এবং ব্যবহার করার জন্য উপযুক্ত শনাক্তকারী পড়ুন।
সীমাবদ্ধ ডিভাইস আইডি এবং এলোমেলো MAC ঠিকানা
ডিভাইস আইডিগুলিকে আরও সীমাবদ্ধ করতে, অ্যান্ড্রয়েড 10-এর সমস্ত ডিভাইস ডিফল্টরূপে অনুসন্ধান এবং সংশ্লিষ্ট অনুরোধ উভয়ের জন্যই এলোমেলো MAC ঠিকানা প্রেরণ করে এবং প্রতিটি SSID-এর জন্য একটি আলাদা এলোমেলো MAC ঠিকানা থাকতে হবে। ক্লায়েন্ট মোড, সফ্ট অ্যাক্সেস পয়েন্ট (এপি) বা Wi-Fi সরাসরি ব্যবহারের ক্ষেত্রে ডিভাইস ফ্যাক্টরি MAC ঠিকানা ব্যবহার করবেন না। এটি অবশ্যই সর্বজনীনভাবে অ্যাক্সেসযোগ্য API গুলি থেকে লুকিয়ে থাকবে যেগুলি বিশেষাধিকারপ্রাপ্ত অ্যাপ নয়৷ সুবিধাপ্রাপ্ত অ্যাপগুলির জন্য ফ্যাক্টরি MAC ঠিকানা ফেরত দিতে হবে তাদের LOCAL_MAC_ADDRESS অনুমতি থাকা প্রয়োজন৷
ব্যবহারকারীদের কাছে ডিফল্ট এলোমেলো MAC ঠিকানা রাখার বিকল্প রয়েছে যা প্রতিটি SSID-এ বরাদ্দ করা হয়েছে। বিকল্পটি সেটিংস > নেটওয়ার্ক বিবরণে গোপনীয়তার অধীনে দেখা যায়। একটি এলোমেলো MAC ঠিকানা পাওয়ার বিষয়ে জানতে র্যান্ডমাইজড MAC ঠিকানাগুলি দেখুন।

চিত্র 1. MAC ঠিকানা নেটওয়ার্কের বিবরণে গোপনীয়তার অধীনে এলোমেলোভাবে দেখায়।
যে অ্যাপগুলি ডিভাইস আইডি এপিআই চালু করে
যে অ্যাপগুলি ডিভাইস আইডি এপিআই চালু করে তাদের অবশ্যই Android 10 এর প্রয়োজনীয়তা পূরণ করতে হবে। অন্যথায়, যখন তারা ডিভাইস আইডি অ্যাক্সেস করার চেষ্টা করে তখন নিম্নলিখিতটি ফেরত দেওয়া হয়:
- অ্যান্ড্রয়েড 10 লক্ষ্য করে অ্যাপ
-
SecurityExceptionডিভাইস আইডি API থেকে নিক্ষিপ্ত হয়. - Android 9 বা তার আগের অ্যাপগুলিকে লক্ষ্য করে
- যদি তাদের
READ_PHONE_STATEঅনুমতি থাকে, হয় একটিnullপ্রতিক্রিয়া বা স্থানধারক ডেটা ফেরত দেওয়া হয়। - যদি তারা তা না করে, ডিভাইস আইডি API গুলি
SecurityExceptionছুঁড়ে দেয় যাতে কল করা পদ্ধতির নাম থাকে এবং একটি ইঙ্গিত যে কলিং অ্যাপ অনুরোধ করা আইডি অ্যাক্সেস করার প্রয়োজনীয়তা পূরণ করে না।
অপরিবর্তনীয় ডিভাইস আইডি সম্পর্কে আরও জানতে ননরিসেটেবল ডিভাইস শনাক্তকারী এবং অনন্য শনাক্তকারীদের জন্য সর্বোত্তম অনুশীলন দেখুন।
টেস্টিং
অ্যাপগুলিকে ডিভাইসের সিরিয়াল নম্বর এবং যেখানে প্রযোজ্য, IMEI বা MEID, সিম সিরিয়াল নম্বর এবং গ্রাহক আইডি অ্যাক্সেস করা থেকে বিরত রাখতে হবে । এই আইডিগুলি অ্যাক্সেস করার অনুমতি সহ অ্যাপগুলিকে অবশ্যই ডিভাইস আইডিগুলি কে অ্যাক্সেস করতে পারে এর অধীনে তালিকাভুক্ত মানদণ্ডগুলির একটি পূরণ করতে হবে৷