في الإصدار 6 من نظام التشغيل Android والإصدارات الأحدث، تم منع مقدّمي خدمة Wi-Fi وأدوات تحليل الحِزم من استرداد عنوان MAC التلقائي للجهاز من خلال حِزمة Wi-Fi من طلبات الشبكة. بدءًا من Android 10، تم فرض قيود إضافية تحدّ من الوصول إلى ملف تعريف المعرّف (ID) للجهاز إلى التطبيقات التي تمتلك مستوى الإذنالمميّز. ويحمي ذلك أرقام تعريف الأجهزة، مثل
- أرقام الهوية الدولية للجهاز الجوّال (IMEI) وMEID وESN وIMSI للاتصالات الهاتفية
- الأرقام التسلسلية للإصدار أو بطاقة SIM أو USB
المستخدمون الذين يمكنهم الوصول إلى أرقام تعريف الأجهزة
يتم حظر أرقام تعريف الأجهزة على جميع أجهزة Android 10، حتى إذا كانت التطبيقات تستهدف الإصدار 9 من Android أو إصدارًا أقدم. يمكن الوصول إلى أرقام تعريف الأجهزة من خلال:
- تطبيق الرسائل القصيرة التلقائي
- التطبيقات التي لديها إذن
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
. للحصول على معلومات حول عملية إضافة التطبيقات إلى القائمة المسموح بها، يُرجى الاطّلاع على إضافة التطبيقات إلى القائمة المسموح بها
للحصول على أذونات مميّزة.
للحصول على معلومات عن الحصول على معرّف فريد لحزمة غير مفوَّضة، يُرجى الرجوع إلى حالات الاستخدام الشائعة والمعرّف المناسب لاستخدامه.
أرقام تعريف الأجهزة المحظورة وعناوين MAC العشوائية
لتقييد معرّفات الأجهزة بشكل أكبر، تُرسِل جميع الأجهزة التي تعمل بالإصدار 10 من نظام Android عناوين MAC عشوائية تلقائيًا لكلٍّ من
طلبات الاستكشاف والطلبات المرتبطة، ويجب أن يكون لها عنوان MAC عشوائي مختلف
لكل SSID. لا تستخدِم عنوان MAC التلقائي للجهاز في وضع العميل أو نقطة الشدَّد
الوصول (AP) أو حالات استخدام Wi-Fi Direct. يجب أن يظل التطبيق مخفيًا عن
واجهات برمجة التطبيقات المتاحة للجميع والتي لا تتمتع بصلاحيات خاصة. يجب أن يكون لدى التطبيقات المميّزة التي
تتطلّب عرض عنوان MAC التلقائي إذن
LOCAL_MAC_ADDRESS
.
يمكن للمستخدمين الاحتفاظ بعنوان MAC التلقائي العشوائي الذي تم تخصيصه لكل SSID. يمكن الاطّلاع على الخيار ضمن الخصوصية في الإعدادات > تفاصيل الشبكة. للتعرّف على كيفية الحصول على عنوان MAC عشوائي، يُرجى الاطّلاع على مقالة عناوين MAC العشوائية.

الشكل 1: يظهر عنوان MAC بشكل عشوائي ضمن "الخصوصية" في تفاصيل الشبكة.
التطبيقات التي تستدعي واجهات برمجة تطبيقات أرقام تعريف الأجهزة
يجب أن تستوفي التطبيقات التي تستدعي واجهات برمجة تطبيقات أرقام تعريف الأجهزة متطلبات Android 10. بخلاف ذلك، عند محاولة الوصول إلى أرقام تعريف الأجهزة، يتم عرض ما يلي:
- التطبيقات التي تستهدف الإصدار 10 من Android
SecurityException
يتم طرحها من واجهات برمجة تطبيقات أرقام تعريف الأجهزة.- التطبيقات التي تستهدف الإصدار 9 من Android أو الإصدارات الأقدم
- إذا كان لديهم الإذن
READ_PHONE_STATE
، يتم عرض استجابةnull
أو بيانات العنصر النائب. - وفي حال عدم استيفاء هذه المتطلبات، تُرسِل واجهات برمجة التطبيقات الخاصة بمعرّف الجهاز
SecurityException
التي تحتوي على اسم الطريقة التي تمّ استدعاؤها، وإشارة إلى أنّ التطبيق المُطلِب لا يستوفي متطلبات الوصول إلى المعرّف المطلوب.
لمزيد من المعلومات عن أرقام تعريف الأجهزة الثابتة، يُرجى الاطّلاع على معرّفات الأجهزة التي لا يمكن إعادة ضبطها وأفضل الممارسات للمعرّفات الفريدة.
الاختبار
يجب منع التطبيقات من الوصول إلى الرقم التسلسلي للجهاز، وكذلك إلى رمز IMEI أو MEID والرقم التسلسلي لشريحة SIM ورقم تعريف المشترك، حيثما ينطبق ذلك. يجب أن تستوفي أيضًا التطبيقات التي لديها إذن بالوصول إلى هذه المعرّفات أحد المعايير المدرَجة ضمن المستخدمون الذين يمكنهم الوصول إلى أرقام تعريف الأجهزة.