بدءًا من Android 8.0، تستخدم أجهزة Android عناوين MAC عشوائية عند البحث عن شبكات جديدة أثناء عدم ربطها بشبكة. في Android 9، يمكنك تفعيل خيار مطوّر البرامج (يكون غير مفعَّل تلقائيًا) لجعل الجهاز يستخدم عنوان MAC عشوائيًا عند الاتصال بشبكة Wi-Fi.
في Android 10، يتم تفعيل التوزيع العشوائي لعناوين MAC تلقائيًا لوضع العميل وSoftAp واتصال Wi-Fi مباشر.
يمنع التوزيع العشوائي لعناوين MAC المستمعين من استخدام عناوين MAC لإنشاء سجلّ لنشاط الجهاز، ما يزيد من خصوصية المستخدم.
بالإضافة إلى ذلك، يتم اختيار عناوين MAC عشوائيًا كجزء من Wi-Fi Aware و Wi-Fi RTT عمليات.
لمزيد من المعلومات، يُرجى الاطّلاع على مقالة سلوك التوزيع العشوائي لعناوين MAC.
التنفيذ
لتنفيذ التوزيع العشوائي لعناوين MAC على جهازك:
اعمل مع مورّد شريحة Wi-Fi لتنفيذ طرق HAL التالية:
IWifiStaIface#setMacAddress: يضبط عنوان MAC للواجهة. يؤدي التنفيذ التلقائي إلى إيقاف الواجهة وتغيير عنوان MAC وإعادة تفعيل الواجهة.IWifiStaIface#getFactoryMacAddress: يحصل على عنوان MAC الأصلي لـwlan0باستخدام طلبioctl.ISupplicantP2pIface#setMacRandomization: يفعِّل أو يوقِف التوزيع العشوائي لعناوين MAC في وضع P2P في برنامج Supplicant.
اضبط
config_wifi_connected_mac_randomization_supportedعلىtrueفيconfig.xmlضمن "الإعدادات" (يمكن إجراء ذلك في طبقة مخصّصة للجهاز ).- تُستخدَم هذه العلامة للتحكّم في ما إذا كان التوزيع العشوائي لعناوين MAC في وضع العميل مفعَّلاً.
اضبط
config_wifi_p2p_mac_randomization_supportedعلىtrueفيconfig.xmlضمن "الإعدادات" (يمكن إجراء ذلك في طبقة مخصّصة للجهاز ).- تُستخدَم هذه العلامة للتحكّم في ما إذا كان التوزيع العشوائي لعناوين MAC في Wi-Fi Direct مفعَّلاً.
اختبِر عملية التنفيذ باستخدام الطرق الموضّحة في التحقق من صحة البيانات.
يجب أن تتضمّن واجهة مستخدم النظام ما يلي:
- خيار لتفعيل التوزيع العشوائي أو إيقافه لكل SSID.
- تفعيل التوزيع العشوائي لعناوين MAC تلقائيًا لجميع الشبكات التي تمت إضافتها حديثًا.
استخدِم الـ تنفيذ المرجعي لواجهة مستخدم "الإعدادات" لتنفيذ المطالبات الجديدة.
قد لا تتوافق الأجهزة التي تعمل بنظام التشغيل Android 9 أو إصدار أقدم مع التوزيع العشوائي لعناوين MAC على شبكة Wi-Fi. عند ترقية هذه الأجهزة إلى Android 10، يمكن إيقاف ميزة التوزيع العشوائي لعناوين MAC على شبكة Wi-Fi من خلال ضبط العلامة WIFI_HIDL_FEATURE_DISABLE_AP_MAC_RANDOMIZATION على "صحيح" في ملف Wi-Fi vendor HAL make.
التحقق من صحة البيانات
للتحقّق من أنّ الميزة تعمل على النحو المطلوب، عليك إجراء اختبار يدوي:
- تأكَّد من تفعيل التوزيع العشوائي لعناوين MAC على الجهاز من خلال التأكّد من ضبط
config_wifi_connected_mac_randomization_supportedعلىtrueفي طبقة الجهاز. - اتّصِل بشبكة Wi-Fi.
- انقر على الشبكة للانتقال إلى صفحة "تفاصيل الشبكة". تأكَّد من تفعيل التوزيع العشوائي لعناوين MAC. تأكَّد من أنّ عنوان MAC المعروض هو عنوان MAC عشوائي تم ضبط البت الذي تم إنشاؤه محليًا على 1 والبت المتعدد الإرسال على 0.
- أوقِف التوزيع العشوائي لعناوين MAC. اتّصِل بالشبكة نفسها وتأكَّد من استخدام عنوان MAC الأصلي.
- احذف الشبكة من خلال النقر على حذف في صفحة "تفاصيل الشبكة".
اتّصِل بالشبكة نفسها وتأكَّد من استخدام عنوان MAC العشوائي نفسه.
لاختبار التوزيع العشوائي لعناوين MAC على جهاز يعمل بإصدار ما قبل Android 10 (يمكنه دعم التوزيع العشوائي لعناوين MAC) ويتم ترقيته إلى Android 10 أو إصدار أحدث:
- احفظ شبكة واحدة على الأقل على جهاز يعمل بنظام التشغيل Android 9 أو إصدار أقدم.
- ثبِّت صورة نظام Android 10.
- في أداة اختيار شبكة Wi-Fi، تأكَّد من إيقاف التوزيع العشوائي لعناوين MAC لجميع الشبكات المحفوظة.
- فعِّل التوزيع العشوائي لعناوين MAC. اتّصِل بالشبكة نفسها وتأكَّد من استخدام عنوان MAC العشوائي.