MAC rastgele seçimini uygulama

Android 8.0'dan itibaren Android cihazlar, bir ağa bağlı değilken yeni ağları araştırırken rastgele MAC adresleri kullanır. Android 9'da, bir kablosuz ağa bağlanırken cihazın rastgele bir MAC adresi kullanmasına neden olmak için bir geliştirici seçeneğini (varsayılan olarak devre dışıdır) etkinleştirebilirsiniz.

Android 10'da MAC rastgele hale getirme, istemci modu, SoftAp ve Kablosuz Doğrudan Bağlantı için varsayılan olarak etkindir.

MAC adresini rastgeleleştirme, dinleyicilerin cihaz etkinliği geçmişi oluşturmak için MAC adreslerini kullanmasını önleyerek kullanıcı gizliliğini artırır.

Ayrıca, MAC adresleri Wi-Fi Aware ve Wi-Fi RTT işlemleri kapsamında rastgele seçilir.

Daha fazla bilgi için MAC Randomization Behavior (MAC adresini rastgeleleştirme davranışı) başlıklı makaleyi inceleyin.

Uygulama

Cihazınızda MAC rastgele hale getirmeyi uygulamak için:

  1. Aşağıdaki HAL yöntemlerini uygulamak için bir kablosuz çip tedarikçisiyle çalışın:

    • IWifiStaIface#setMacAddress: Arayüzün MAC adresini yapılandırır. Varsayılan uygulama, arayüzü kapatır, MAC adresini değiştirir ve arayüzü tekrar açar.
    • IWifiStaIface#getFactoryMacAddress: ioctl çağrısı kullanarak wlan0 cihazının fabrika MAC adresini alır.
    • ISupplicantP2pIface#setMacRandomization: İstek gönderende P2P MAC rastgeleleştirmeyi açar veya kapatır.
  2. Ayarlar'da true olarak ayarlayın config.xml (bu işlem, cihaz özel katmanında yapılabilir).config_wifi_connected_mac_randomization_supported

    • Bu işaret, istemci modu MAC rastgele seçiminin etkinleştirilip etkinleştirilmeyeceğini kontrol etmek için kullanılır.
  3. Ayarlar'da true olarak ayarlayın config.xml (bu işlem, cihaz özel katmanında yapılabilir).config_wifi_p2p_mac_randomization_supported

    • Bu işaret, Wi-Fi Direct MAC rastgeleleştirmenin etkinleştirilip etkinleştirilmeyeceğini kontrol etmek için kullanılır.
  4. Uygulamanızı Doğrulama bölümünde açıklanan yöntemleri kullanarak test edin.

Sistem Arayüzü:

  • Her SSID için rastgeleleştirme özelliğini etkinleştirme veya devre dışı bırakma seçeneği olmalıdır.
  • Yeni eklenen tüm ağlar için MAC adresini rastgeleleştirme özelliğini varsayılan olarak etkinleştirin.

Yeni istemleri uygulamak için Ayarlar kullanıcı arayüzünün referans uygulamasını kullanın.

Android 9 veya önceki sürümlerin yüklü olduğu cihazlarda kablosuz MAC adresini rastgeleleştirme özelliği desteklenmeyebilir. Bu tür cihazlar Android 10'a yükseltilirken, Wi-Fi MAC rastgele hale getirme özelliği, Wi-Fi tedarikçisi HAL make dosyasında WIFI_HIDL_FEATURE_DISABLE_AP_MAC_RANDOMIZATION işareti true olarak ayarlanarak devre dışı bırakılabilir.

Doğrulama

Özelliğin beklendiği gibi çalıştığını doğrulamak için manuel test yapın:

  1. Cihaz kaplamasında config_wifi_connected_mac_randomization_supported seçeneğinin true olarak ayarlandığını kontrol ederek cihazda MAC rastgeleleştirmenin etkinleştirildiğini doğrulayın.
  2. Kablosuz ağa bağlanın.
  3. Ağ ayrıntıları sayfasına gitmek için ağa dokunun. MAC rastgeleleştirmenin açık olduğunu doğrulayın. Görüntülenen MAC adresinin, yerel olarak oluşturulan bit'i 1'e ve çoklu yayın bit'i 0'a ayarlanmış rastgele bir MAC adresi olduğunu doğrulayın.
  4. MAC rastgele seçimini devre dışı bırakın. Aynı ağa bağlanın ve fabrika MAC'inin kullanıldığını doğrulayın.
  5. Ağ ayrıntıları sayfasında Unut'a dokunarak ağı silin.
  6. Aynı ağa bağlanın ve aynı rastgele MAC adresinin kullanıldığını doğrulayın.

Android 10 öncesi bir cihazda (MAC rastgeleleştirmeyi destekleyebilen) MAC rastgeleleştirmeyi test etmek için Android 10 veya sonraki bir sürüme yükseltme yapın:

  1. Android 9 veya daha eski bir sürümün yüklü olduğu cihazda en az bir kayıtlı ağınız olmalıdır.
  2. Android 10 sistem görüntüsünü yükleyin.
  3. Wi-Fi seçicide, MAC rastgele hale getirme özelliğinin tüm kayıtlı ağlar için devre dışı olduğunu doğrulayın.
  4. MAC rastgele seçimi özelliğini açın. Aynı ağa bağlanın ve rastgele MAC'in kullanıldığını doğrulayın.