في Android 6 والإصدارات الأحدث ، تم تقييد مقدمي خدمة Wi-Fi ومحللي الحزم من استرداد عنوان MAC الخاص بالمصنع للجهاز من خلال مكدس Wi-Fi من طلبات الشبكة. بدءًا من Android 10 ، تم وضع قيود إضافية تحد من الوصول إلى معرفات الجهاز (IDs) للتطبيقات ذات مستوى الإذن المميز . هذا يحمي معرفات الجهاز مثل
- أرقام الهاتف IMEI و MEID و ESN و IMSI.
- إنشاء أرقام تسلسلية أو بطاقة SIM أو USB.
من يمكنه الوصول إلى معرفات الجهاز
معرفات الأجهزة مقيدة على جميع أجهزة Android 10 ، حتى إذا كانت التطبيقات تستهدف Android 9 أو أقل. يمكن الوصول إلى معرفات الجهاز عن طريق
- تطبيق الرسائل القصيرة الافتراضي.
- التطبيقات ذات إذن
READ_PRIVILEGED_PHONE_STATE
في فئةManifest.permission
والسماح بالقائمة في ملفprivapp-permission.xml
. يجب أيضًا تحميلها في دليلpriv-app
. - التطبيقات التي تتمتع بامتيازات الناقل على النحو المحدد في امتيازات الناقل UICC .
- مالك الجهاز أو مالك الملف الشخصي مع إذن
READ_PHONE_STATE
الممنوح في فئةManifest.permission
. (السماح بالقائمة غير مطلوب.)
الوصول إلى الحزم المميزة
يجب منح امتياز للحزمة للوصول إلى معرفات الجهاز. يجب أن يكون لديه إذن READ_PRIVILEGED_PHONE_STATE
في فئة Manifest.permission
، وأن يكون مسموحًا به في ملف privapp-permission.xml
. للحصول على معلومات حول عملية allowlist ، راجع قائمة السماح بالأذونات المميزة .
للحصول على معلومات حول الحصول على معرف فريد لحزمة غير مميزة ، راجع حالات الاستخدام الشائعة والمعرف المناسب للاستخدام .
معرفات الأجهزة المقيدة وعناوين MAC العشوائية
لمزيد من تقييد معرفات الجهاز ، ترسل جميع الأجهزة على Android 10 عناوين MAC العشوائية افتراضيًا لكل من طلبات الفحص والطلبات المرتبطة بها ، ويجب أن يكون لها عنوان MAC عشوائي مختلف لكل SSID. لا تستخدم عنوان MAC الخاص بمصنع الجهاز في وضع العميل أو نقطة الوصول الناعمة (AP) أو حالات استخدام Wi-Fi Direct. يجب أن يظل مخفيًا عن واجهات برمجة التطبيقات التي يمكن الوصول إليها بشكل عام والتي ليست تطبيقات مميزة. يجب أن تحصل التطبيقات المميزة التي تتطلب إرجاع عنوان MAC الخاص بالمصنع على إذن LOCAL_MAC_ADDRESS
.
يتوفر للمستخدمين خيار الاحتفاظ بعنوان MAC العشوائي الافتراضي المخصص لكل SSID. يمكن عرض الخيار ضمن الخصوصية في الإعدادات > تفاصيل الشبكة . لمعرفة المزيد حول الحصول على عنوان MAC عشوائي ، راجع عناوين MAC العشوائية .

التطبيقات التي تستدعي واجهات برمجة تطبيقات معرّف الجهاز
يجب أن تفي التطبيقات التي تستدعي واجهات برمجة تطبيقات معرّف الجهاز بمتطلبات Android 10. بخلاف ذلك ، عندما يحاولون الوصول إلى معرّفات الجهاز ، يتم إرجاع ما يلي:
- تطبيقات تستهدف Android 10
- يتم طرح
SecurityException
من واجهات API الخاصة بمعرف الجهاز. - تطبيقات تستهدف Android 9 أو أقدم
- إذا كان لديهم إذن
READ_PHONE_STATE
، فسيتم إرجاع إما استجابةnull
أو بيانات عنصر نائب. - إذا لم يفعلوا ذلك ، فإن واجهات برمجة تطبيقات معرّف الجهاز تطرح
SecurityException
يحتوي على اسم الطريقة التي تسمى ، وإشارة إلى أن تطبيق الاتصال لا يفي بمتطلبات الوصول إلى المعرف المطلوب.
لمزيد من المعلومات حول معرّفات الأجهزة غير القابلة للتغيير ، راجع معرّفات الأجهزة غير القابلة لإعادة الضبط وأفضل الممارسات للمعرّفات الفريدة .
اختبارات
يجب منع التطبيقات من الوصول إلى الرقم التسلسلي للجهاز ، وعند الاقتضاء ، IMEI / MEID ، والرقم التسلسلي لبطاقة SIM ، ومعرف المشترك. يجب أن تفي التطبيقات التي لديها إذن للوصول إلى هذه المعرفات أيضًا بأحد المعايير المدرجة ضمن من يمكنه الوصول إلى معرفات الجهاز .