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

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

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

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

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

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

التنفيذ

لتنفيذ التوزيع العشوائي لعناوين MAC على جهازك، اتّبِع الخطوات التالية:

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

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

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

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

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

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

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

قد لا تتوافق الأجهزة التي تعمل بالإصدار 9 من نظام التشغيل Android أو الإصدارات الأقدم مع ميزة "تغيير عشوائي لعناوين MAC على شبكة Wi-Fi". عند ترقية هذه الأجهزة إلى 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. أن يكون لديك شبكة واحدة على الأقل محفوظة على جهاز يعمل بنظام التشغيل Android 9 أو إصدار أقدم
  2. ثبِّت صورة نظام Android 10.
  3. في أداة اختيار شبكة Wi-Fi، تأكَّد من إيقاف التوزيع العشوائي لعناوين MAC لجميع الشبكات المحفوظة.
  4. فعِّل ميزة "اختيار عنوان MAC بشكل عشوائي". اتّصِل بالشبكة نفسها وتأكَّد من أنّه يتم استخدام عنوان MAC عشوائي.