Android 6 ও তার পরের যেকোনও ভার্সনে, ওয়াই-ফাই পরিষেবা প্রদানকারী ও প্যাকেট অ্যানালাইজারকে নেটওয়ার্ক অনুরোধ থেকে ওয়াই-ফাই স্ট্যাকের মাধ্যমে ডিভাইসের ফ্যাক্টরি MAC অ্যাড্রেস রিট্রিভ করা থেকে সীমাবদ্ধ করা হয়েছে। Android 10 থেকে শুরু করে, অতিরিক্ত বিধিনিষেধ আরোপ করা হয়েছে যা বিশেষঅনুমতি লেভেল সহ অ্যাপের ক্ষেত্রে ডিভাইস আইডেন্টিফায়ার (ID) অ্যাক্সেস সীমিত করে। এটি ডিভাইস আইডিকে সুরক্ষিত রাখে, যেমন
- টেলিফোনি IMEI, MEID, ESN ও IMSI নম্বর।
- বিল্ড, সিম বা USB সিরিয়াল নম্বর।
কারা ডিভাইস আইডি অ্যাক্সেস করতে পারবেন
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 অ্যাড্রেস
ডিভাইস আইডি আরও সীমাবদ্ধ করতে, Android 10-এ থাকা সব ডিভাইস ডিফল্ট হিসেবে প্রোব ও সংশ্লিষ্ট অনুরোধ, দু'টির জন্যই র্যান্ডমাইজ করা MAC অ্যাড্রেস ট্রান্সমিট করে এবং প্রতিটি SSID-এর জন্য আলাদা র্যান্ডমাইজ করা MAC অ্যাড্রেস থাকতে হবে। ক্লায়েন্ট মোড, সফ্ট
অ্যাক্সেস পয়েন্ট (AP) বা ওয়াই-ফাই ডাইরেক্ট ব্যবহারের ক্ষেত্রে ডিভাইসের ফ্যাক্টরি MAC অ্যাড্রেস ব্যবহার করবেন না। এটি অবশ্যই সর্বজনীনভাবে অ্যাক্সেসযোগ্য API থেকে লুকানো থাকতে হবে যা বিশেষ সুবিধাপ্রাপ্ত অ্যাপ নয়। প্রিভিলেজড অ্যাপ যেগুলির
ফ্যাক্টরি MAC অ্যাড্রেস ফেরত দিতে হয় সেগুলির
LOCAL_MAC_ADDRESS অনুমতি থাকতে হবে।
ব্যবহারকারীদের কাছে প্রতিটি SSID-তে অ্যাসাইন করা ডিফল্ট র্যান্ডমাইজ করা MAC অ্যাড্রেস রাখার বিকল্প আছে। সেটিংস > নেটওয়ার্কের বিবরণ বিকল্পের মধ্যে গোপনীয়তা বিকল্পের অধীনে এটি দেখা যাবে। র্যান্ডমাইজড MAC অ্যাড্রেস পাওয়ার ব্যাপারে জানতে র্যান্ডমাইজড MAC অ্যাড্রেস দেখুন।
ছবি ১.নেটওয়ার্কের বিবরণে গোপনীয়তার অধীনে MAC অ্যাড্রেস র্যান্ডমাইজ করা হিসেবে দেখানো হয়েছে।
ডিভাইস আইডি API চালু করে এমন অ্যাপ
যেসব অ্যাপ ডিভাইস আইডি API কল করে, সেগুলিকে Android 10-এর প্রয়োজনীয়তা পূরণ করতে হবে। অন্যথায়, তারা ডিভাইস আইডি অ্যাক্সেস করার চেষ্টা করলে নিম্নলিখিত তথ্য ফেরত দেওয়া হয়:
- Android 10-কে টার্গেট করা অ্যাপ
SecurityExceptionডিভাইস আইডি API থেকে থ্রো করা হয়।- Android 9 বা এর আগের যেকোনও ভার্সনকে টার্গেট করা অ্যাপ
READ_PHONE_STATEঅনুমতি থাকলে,nullউত্তর অথবা প্লেসহোল্ডার ডেটা ফেরত পাঠানো হয়।- সেগুলি না থাকলে, ডিভাইস আইডি API
SecurityExceptionথ্রো করে, যার মধ্যে কল করা পদ্ধতির নাম এবং কল করা অ্যাপ যে অনুরোধ করা আইডি অ্যাক্সেস করার প্রয়োজনীয়তা পূরণ করে না তার ইঙ্গিত থাকে।
পরিবর্তন করা যায় না এমন ডিভাইস আইডি সম্পর্কে আরও জানতে, রিসেট করা যায় না এমন ডিভাইস শনাক্তকারী এবং অনন্য শনাক্তকারীর পেশাদার পদ্ধতি দেখুন।
পরীক্ষা করা
অ্যাপকে ডিভাইসের সিরিয়াল নম্বর এবং, প্রযোজ্য হলে, IMEI বা MEID, সিম কার্ডের সিরিয়াল নম্বর ও সাবস্ক্রাইবার আইডি অ্যাক্সেস করা থেকে অবশ্যই আটকাতে হবে। এইসব আইডি অ্যাক্সেস করার অনুমতি আছে এমন অ্যাপকে অবশ্যই কারা ডিভাইস আইডি অ্যাক্সেস করতে পারে-এর অধীনে তালিকাভুক্ত মানদণ্ডগুলির মধ্যে একটি পূরণ করতে হবে।