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 seçimi, istemci modu, SoftAp ve Wi-Fi Direct 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/kapatır.
  2. Ayarlar'da config.xml config_wifi_connected_mac_randomization_supported true olarak ayarlayın (bu işlem, cihaz özel katmanında yapılabilir).

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

    • 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ğlarda MAC adresini rastgeleleştirme varsayılan olarak etkin olmalıdır.

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'dan önceki bir cihazda MAC rastgele seçimini test etmek için (MAC rastgele seçimini destekleyebilir) 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 kaydedilmiş en az bir ağ 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 etkinleştirin. Aynı ağa bağlanın ve rastgele MAC'in kullanıldığını doğrulayın.