پیاده‌سازی تصادفی‌سازی مک آدرس

از Android 8.0 به بعد، دستگاه‌های Android هنگام جستجوی شبکه‌های جدید درحالی‌که به شبکه‌ای متصل نیستند از نشانی‌های MAC تصادفی استفاده می‌کنند. در Android 9، می‌توانید گزینه توسعه‌دهنده را فعال کنید (به‌طور پیش‌فرض غیرفعال است) تا دستگاه هنگام اتصال به شبکه Wi-Fi از مک آدرس تصادفی استفاده کند.

در Android 10، تصادفی‌سازی MAC به‌طور پیش‌فرض برای حالت کارخواه، SoftAp، و Wi-Fi Direct فعال است.

تصادفی‌سازی نشانی MAC مانع از آن می‌شود که شنوندگان از نشانی‌های MAC برای ایجاد سابقه فعالیت دستگاه استفاده کنند و ازاین‌رو حریم خصوصی کاربر را افزایش می‌دهد.

علاوه‌براین، مک آدرس‌ها به‌عنوان بخشی از عملیات‌های Wi-Fi Aware و Wi-Fi RTT تصادفی‌سازی می‌شوند.

برای اطلاعات بیشتر، به رفتار تصادفی‌سازی MAC مراجعه کنید.

پیاده‌سازی

برای پیاده‌سازی تصادفی‌سازی MAC در دستگاهتان:

  1. با فروشنده تراشه Wi-Fi همکاری کنید تا روش‌های HAL زیر را پیاده‌سازی کنید:

    • ‫IWifiStaIface#setMacAddress: مک آدرس میانای را پیکربندی می‌کند. پیاده‌سازی پیش‌فرض میانای را پایین می‌آورد، نشانی MAC را تغییر می‌دهد، و میانای را دوباره بالا می‌آورد.
    • IWifiStaIface#getFactoryMacAddress: بااستفاده از تماس ioctl، آدرس MAC کارخانه‌ای wlan0 را دریافت می‌کند.
    • ISupplicantP2pIface#setMacRandomization: تصادفی‌سازی MAC همتا به همتا را در درخواست‌کننده روشن یا خاموش می‌کند.
  2. config_wifi_connected_mac_randomization_supported در «تنظیمات» config.xml روی true تنظیم کنید (این کار را می‌توانید در رونهاد سفارشی دستگاه انجام دهید).

    • این پرچم برای کنترل فعال بودن تصادفی‌سازی MAC حالت مشتری استفاده می‌شود.
  3. در «تنظیمات» config.xml روی true تنظیم کنید (این کار را می‌توانید در رونهاد سفارشی دستگاه انجام دهید).config_wifi_p2p_mac_randomization_supported

    • این پرچم برای کنترل فعال بودن تصادفی‌سازی MAC Wi-Fi Direct استفاده می‌شود.
  4. پیاده‌سازی‌تان را بااستفاده از روش‌های شرح‌داده‌شده در اعتبارسنجی آزمایش کنید.

«میانای کاربر سیستم» باید:

  • گزینه‌ای برای فعال یا غیرفعال کردن تصادفی‌سازی برای هر SSID داشته باشید.
  • تصادفی‌سازی مک آدرس به‌طور پیش‌فرض برای همه شبکه‌های جدید اضافه‌شده فعال باشد.

برای پیاده‌سازی پیام‌واره‌های جدید، از پیاده‌سازی مرجع «میانای کاربر تنظیمات» استفاده کنید.

دستگاه‌های دارای Android نسخه ۹ یا پایین‌تر ممکن است از تصادفی‌سازی نشانی MAC Wi-Fi پشتیبانی نکنند. هنگام ارتقا دادن این دستگاه‌ها به Android 10، با تنظیم پرچم WIFI_HIDL_FEATURE_DISABLE_AP_MAC_RANDOMIZATION روی درست در فایل ساخت HAL فروشنده Wi-Fi، ویژگی تصادفی‌سازی مک آدرس Wi-Fi می‌تواند غیرفعال شود.

اعتبارسنجی

برای تأیید اینکه ویژگی طبق انتظار کار می‌کند، یک آزمایش دستی اجرا کنید:

  1. با بررسی اینکه config_wifi_connected_mac_randomization_supported در رونهاد دستگاه روی true تنظیم شده است، درستی‌سنجی کنید که تصادفی‌سازی نشانی MAC در دستگاه فعال باشد.
  2. به شبکه Wi-Fi متصل شوید.
  3. روی شبکه ضربه بزنید تا به صفحه «جزئیات شبکه» بروید. تأیید کنید که تصادفی‌سازی MAC روشن باشد. تأیید کنید که مک آدرس نمایش‌داده‌شده یک مک آدرس تصادفی است که بیت تولیدشده محلی آن روی ۱ و بیت چندپخشی آن روی ۰ تنظیم شده است.
  4. تصادفی‌سازی مک آدرس را خاموش کنید. به همان شبکه متصل شوید و تأیید کنید که از مک آدرس کارخانه استفاده می‌شود.
  5. با تک‌ضرب زدن روی فراموش کردن در صفحه «جزئیات شبکه»، شبکه را حذف کنید.
  6. به شبکه یکسانی متصل شوید و تأیید کنید که از همان نشانی MAC تصادفی استفاده می‌شود.

برای آزمایش تصادفی‌سازی مک در دستگاهی با Android نسخه قبل‌از ۱۰ (که از تصادفی‌سازی مک پشتیبانی می‌کند) که به Android نسخه ۱۰ یا بالاتر ارتقا می‌یابد:

  1. حداقل یک شبکه ذخیره‌شده در دستگاهی با سیستم‌عامل Android 9 یا پایین‌تر داشته باشید.
  2. تصویر سیستم Android 10 را فلش کنید.
  3. در انتخابگر Wi-Fi، بررسی کنید که تصادفی‌سازی مک آدرس برای همه شبکه‌های ذخیره‌شده خاموش باشد.
  4. تصادفی‌سازی مک آدرس را روشن کنید. به شبکه یکسانی متصل شوید و تأیید کنید که از MAC تصادفی استفاده می‌شود.