تنفيذ التوزيع العشوائي لعنوان MAC

بدءًا من الإصدار Android 8.0، تستخدم أجهزة Android عناوين MAC عشوائية عند البحث عن شبكات جديدة بدون أن تكون مرتبطة بإحدى الشبكات. في Android 9، يمكنك تفعيل أحد خيارات المطوّرين (يكون غير مفعَّل تلقائيًا) لكي يستخدم الجهاز عنوان MAC عشوائيًا عند الاتصال بشبكة Wi-Fi.

في Android 10، يتم تفعيل التوزيع العشوائي لعنوان MAC تلقائيًا في وضع العميل وSoftAp وWi-Fi Direct.

يمنع التوزيع العشوائي لـ MAC المستمعين من استخدام عناوين MAC لإنشاء سجل بنشاط الجهاز، وبالتالي زيادة خصوصية المستخدم.

بالإضافة إلى ذلك، يتم توزيع عناوين MAC بشكل عشوائي كجزء من عمليات Wi-Fi Aware والمراسلة النصية في الوقت الفعلي لشبكة Wi-Fi.

لمزيد من المعلومات، يُرجى الاطّلاع على سلوك عشوائي MAC.

التنفيذ

لتنفيذ التوزيع العشوائي لـ MAC على جهازك:

  1. يمكنك التعاون مع مورِّد لشرائح Wi-Fi لتنفيذ طرق HAL التالية:

    • IWifiStaIface#setMacAddress: لضبط عنوان MAC للواجهة. يؤدي التنفيذ الافتراضي إلى تعطيل الواجهة وتغيير عنوان MAC وإعادة الواجهة احتياطيًا.
    • IWifiStaIface#getFactoryMacAddress: الحصول على عنوان MAC للمصنع wlan0 باستخدام اتصال ioctl.
    • ISupplicantP2pIface#setMacRandomization: لضبط التوزيع العشوائي لـ P2P MAC على تفعيل/إيقاف في برنامج العرض
  2. يمكنك ضبط config_wifi_connected_mac_randomization_supported على true في "الإعدادات" config.xml (يمكن إجراء ذلك في تراكب مخصّص على الجهاز).

    • تُستخدَم هذه العلامة لتحديد ما إذا كان سيتم تفعيل التوزيع العشوائي لعنوان MAC في وضع العميل أم لا.
  3. يمكنك ضبط config_wifi_p2p_mac_randomization_supported على true في "الإعدادات" config.xml (يمكن إجراء ذلك في تراكب مخصّص على الجهاز).

    • تُستخدَم هذه العلامة للتحكّم في ما إذا كان سيتم تفعيل التوزيع العشوائي لعنوان MAC المباشر لشبكة Wi-Fi.
  4. اختبِر عملية التنفيذ باستخدام الطرق الموضّحة في مقالة التحقّق من الصحة.

يجب أن تستوفي واجهة مستخدم النظام الشروط التالية:

  • توفُّر خيار لتفعيل التوزيع العشوائي أو إيقافه لكل معرِّف SSID
  • يمكنك تفعيل التوزيع العشوائي لعنوان MAC بشكل تلقائي لجميع الشبكات المضافة حديثًا.

استخدِم التنفيذ المرجعي لواجهة مستخدم الإعدادات لتنفيذ الطلبات الجديدة.

قد لا تتوفّر إمكانية التوزيع العشوائي لعنوان MAC لشبكة Wi-Fi على الأجهزة التي تعمل بالإصدار 9 من نظام التشغيل Android أو الإصدارات الأقدم. عند ترقية هذه الأجهزة إلى Android 10، يمكن إيقاف ميزة التوزيع العشوائي لعناوين MAC لشبكة Wi-Fi من خلال ضبط علامة WIFI_HIDL_FEATURE_DISABLE_AP_MAC_RANDOMIZATION على "صحيح" في ملف HAL لمورّد Wi-Fi.

التحقُّق

للتأكّد من أنّ الميزة تعمل على النحو المطلوب، يمكنك إجراء اختبار يدوي باتّباع الخطوات التالية:

  1. تأكَّد من تفعيل التوزيع العشوائي لعنوان MAC على الجهاز من خلال التحقّق من ضبط config_wifi_connected_mac_randomization_supported على true في المحتوى المركّب على الجهاز.
  2. الاتصال بشبكة Wi-Fi
  3. انقر على الشبكة للانتقال إلى صفحة "تفاصيل الشبكة". تحقق من تشغيل عشوائيًا لـ MAC. تحقق من أن عنوان MAC المعروض هو عنوان MAC عشوائي، تم تعيين البت الذي تم إنشاؤه محليًا على 1 وتعيين بت البث المتعدد على 0.
  4. أوقِف التوزيع العشوائي لعنوان MAC. اتصِل بالشبكة نفسها وتأكَّد من استخدام جهاز MAC الأصلي.
  5. احذف الشبكة من خلال النقر على حذف في صفحة "تفاصيل الشبكة".
  6. اتصِل بالشبكة نفسها وتأكَّد من استخدام عنوان MAC العشوائي نفسه.

لاختبار التوزيع العشوائي لعنوان MAC على جهاز يعمل بإصدار أقدم من Android 10 (يمكنه إتاحة التوزيع العشوائي لعنوان MAC) عند الترقية إلى Android 10 أو الإصدارات الأحدث:

  1. امتلاك شبكة محفوظة واحدة على الأقل على جهاز يعمل بالإصدار 9 من نظام التشغيل Android أو إصدار أقدم
  2. يجب وميض صورة نظام Android 10.
  3. في أداة اختيار Wi-Fi، تأكَّد من إيقاف التوزيع العشوائي لعنوان MAC لجميع الشبكات المحفوظة.
  4. فعِّل التوزيع العشوائي لعنوان MAC. اتصل بالشبكة نفسها وتأكد من استخدام عنوان MAC العشوائي.