27 মার্চ, 2025 থেকে, আমরা AOSP তৈরি করতে এবং অবদান রাখতে aosp-main
এর পরিবর্তে android-latest-release
ব্যবহার করার পরামর্শ দিচ্ছি। আরও তথ্যের জন্য, AOSP-তে পরিবর্তনগুলি দেখুন।
অপরিবর্তনীয় ডিভাইস আইডি
সেভ করা পৃষ্ঠা গুছিয়ে রাখতে 'সংগ্রহ' ব্যবহার করুন
আপনার পছন্দ অনুযায়ী কন্টেন্ট সেভ করুন ও সঠিক বিভাগে রাখুন।
অ্যান্ড্রয়েড 6 এবং উচ্চতর সংস্করণে, Wi-Fi পরিষেবা প্রদানকারী এবং প্যাকেট বিশ্লেষকদের নেটওয়ার্ক অনুরোধগুলি থেকে Wi-Fi স্ট্যাকের মাধ্যমে ডিভাইসের ফ্যাক্টরি MAC ঠিকানা পুনরুদ্ধার করা থেকে সীমাবদ্ধ করা হয়েছে৷ অ্যান্ড্রয়েড 10 থেকে শুরু করে, অতিরিক্ত বিধিনিষেধ রয়েছে যা বিশেষাধিকারপ্রাপ্ত অনুমতি স্তর সহ অ্যাপগুলিতে ডিভাইস শনাক্তকারী (আইডি) অ্যাক্সেস সীমিত করে। এই যেমন ডিভাইস আইডি রক্ষা করে
- টেলিফোনি IMEI, MEID, ESN, এবং IMSI নম্বর।
- বিল্ড, সিম, বা ইউএসবি সিরিয়াল নম্বর।
যারা ডিভাইস আইডি অ্যাক্সেস করতে পারে
ডিভাইস আইডিগুলি সমস্ত Android 10 ডিভাইসে সীমাবদ্ধ, এমনকি অ্যাপগুলি Android 9 বা তার চেয়ে কম সময়েও লক্ষ্য করে। ডিভাইস আইডিগুলি এর দ্বারা অ্যাক্সেস করা যেতে পারে:
সুবিধাপ্রাপ্ত প্যাকেজ অ্যাক্সেস
ডিভাইস আইডি অ্যাক্সেস করার জন্য একটি প্যাকেজ অবশ্যই বিশেষাধিকারপ্রাপ্ত হতে হবে। 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 লক্ষ্য করে অ্যাপ
- Android 9 বা তার আগের অ্যাপগুলিকে লক্ষ্য করে
- যদি তাদের
READ_PHONE_STATE
অনুমতি থাকে, হয় একটি null
প্রতিক্রিয়া বা স্থানধারক ডেটা ফেরত দেওয়া হয়। - যদি তারা তা না করে, ডিভাইস আইডি API গুলি
SecurityException
ছুঁড়ে দেয় যাতে কল করা পদ্ধতির নাম থাকে এবং একটি ইঙ্গিত যে কলিং অ্যাপ অনুরোধ করা আইডি অ্যাক্সেস করার প্রয়োজনীয়তা পূরণ করে না।
অপরিবর্তনীয় ডিভাইস আইডি সম্পর্কে আরও জানতে ননরিসেটেবল ডিভাইস শনাক্তকারী এবং অনন্য শনাক্তকারীদের জন্য সর্বোত্তম অনুশীলন দেখুন।
টেস্টিং
অ্যাপগুলিকে ডিভাইসের সিরিয়াল নম্বর এবং যেখানে প্রযোজ্য, IMEI বা MEID, সিম সিরিয়াল নম্বর এবং গ্রাহক আইডি অ্যাক্সেস করা থেকে বিরত রাখতে হবে । এই আইডিগুলি অ্যাক্সেস করার অনুমতি সহ অ্যাপগুলিকে অবশ্যই ডিভাইস আইডিগুলি কে অ্যাক্সেস করতে পারে এর অধীনে তালিকাভুক্ত মানদণ্ডগুলির একটি পূরণ করতে হবে৷
এই পৃষ্ঠার কন্টেন্ট ও কোডের নমুনাগুলি Content License-এ বর্ণিত লাইসেন্সের অধীনস্থ। Java এবং OpenJDK হল Oracle এবং/অথবা তার অ্যাফিলিয়েট সংস্থার রেজিস্টার্ড ট্রেডমার্ক।
2025-07-29 UTC-তে শেষবার আপডেট করা হয়েছে।
[[["সহজে বোঝা যায়","easyToUnderstand","thumb-up"],["আমার সমস্যার সমাধান হয়েছে","solvedMyProblem","thumb-up"],["অন্যান্য","otherUp","thumb-up"]],[["এতে আমার প্রয়োজনীয় তথ্য নেই","missingTheInformationINeed","thumb-down"],["খুব জটিল / অনেক ধাপ","tooComplicatedTooManySteps","thumb-down"],["পুরনো","outOfDate","thumb-down"],["অনুবাদ সংক্রান্ত সমস্যা","translationIssue","thumb-down"],["নমুনা / কোড সংক্রান্ত সমস্যা","samplesCodeIssue","thumb-down"],["অন্যান্য","otherDown","thumb-down"]],["2025-07-29 UTC-তে শেষবার আপডেট করা হয়েছে।"],[],[],null,["# Immutable device IDs\n\nIn Android 6 and higher, Wi-Fi service providers and packet analyzers have\nbeen restricted from retrieving a device's factory MAC address through the\nWi-Fi stack from network requests. Starting in Android 10, additional restrictions are in place that limit access to device\nidentifiers (IDs) to apps with the [privileged](/docs/core/permissions/perms-allowlist)[permission\nlevel](https://developer.android.com/reference/android/R.attr.html#protectionLevel). This protects device IDs such as\n\n- telephony IMEI, MEID, ESN, and IMSI numbers.\n- build, SIM, or USB serial numbers.\n\n### Who can access device IDs\n\nDevice IDs are restricted on all Android 10\ndevices, even if apps target Android 9 or lower. Device IDs can be accessed by:\n\n- The default SMS app.\n- Apps with both [READ_PRIVILEGED_PHONE_STATE](/docs/core/permissions/perms-allowlist#customizing-allowlists) permission in the `\n `[Manifest.permission](https://developer.android.com/reference/android/Manifest.permission) class, and allowlisting in the `privapp-permission.xml` file. These must also be loaded in the `priv-app` directory.\n- Apps with carrier privileges as defined in [UICC Carrier\n Privileges](/docs/core/connect/uicc).\n- A device owner or profile owner with [READ_PHONE_STATE](https://developer.android.com/reference/android/Manifest.permission.html#READ_PHONE_STATE) permission granted in the [Manifest.permission](https://developer.android.com/reference/android/Manifest.permission) class. (Allowlisting isn't required.)\n\n#### Privileged packages access\n\nA package must be privileged to access device IDs. It must have\n[READ_PRIVILEGED_PHONE_STATE](/docs/core/permissions/perms-allowlist#customizing-allowlists) permission in the\n`Manifest.permission` class, and be allowlisted in the\n`privapp-permission.xml` file. For information on the allowlist\nprocess, see [Privileged\nPermission Allowlisting](/docs/core/permissions/perms-allowlist).\n\nFor information on getting a unique ID for a *nonprivileged* package,\nrefer to [Common use cases and the appropriate identifier to use](https://developer.android.com/training/articles/user-data-ids#common-use-cases).\n\n#### Restricted device IDs and randomized MAC addresses\n\nTo further restrict device IDs, all devices on Android 10 transmit randomized MAC addresses by default for both\nprobe and associated requests, and must have a different randomized MAC address\nfor each SSID. Don't use the device factory MAC address in client mode, soft\naccess point (AP), or Wi-Fi Direct use cases. It must remain hidden from\npublicly accessible APIs that aren't privileged apps. Privileged apps that\nrequire the factory MAC address to be returned are required to have\n`LOCAL_MAC_ADDRESS` permission.\n\nUsers have the option to keep the *default randomized* MAC address that's assigned to each SSID.\nThe option is viewable under **Privacy** in\n**Settings** \\\u003e **Network details** . To learn about\nobtaining a randomized MAC address see [Randomized MAC addresses](https://developer.android.com/about/versions/10/privacy/changes#data-ids).\n\n**Figure 1.**MAC address shows as randomized under Privacy in Network details.\n\n#### Apps that invoke device ID APIs\n\nApps that invoke device ID APIs must meet the Android 10 requirements. Otherwise, when they try to access\ndevice IDs the following is returned:\n\n- Apps targeting Android 10\n - [SecurityException](https://developer.android.com/reference/java/lang/SecurityException) is thrown from the device ID APIs.\n- Apps targeting Android 9 or earlier\n - If they have the [READ_PHONE_STATE](https://developer.android.com/reference/android/Manifest.permission.html#READ_PHONE_STATE) permission, either a `null` response or placeholder data is returned.\n - If they don't, the device ID APIs throw [SecurityException](https://developer.android.com/reference/java/lang/SecurityException) that contains the name of the method called, and an indication that the calling app doesn't meet the requirements to access the requested ID.\n\nFor more on immutable device IDs see [Nonresettable\ndevice identifiers](https://developer.android.com/about/versions/10/privacy/changes#data-ids) and [best practices\nfor unique identifiers](https://developer.android.com/training/articles/user-data-ids).\n\n### Testing\n\nApps *must* be prevented from accessing the device serial number and,\nwhere applicable, IMEI or MEID, SIM serial number, and subscriber ID. Apps with\npermission to access these IDs must also meet one of the criteria listed under\n[Who can access device IDs](#who-access)."]]