MAC Randomizasyonunu Uygulamak

Android 8.0'dan başlayarak, Android cihazlar, şu anda bir ağla ilişkilendirilmemişken yeni ağları araştırırken rastgele MAC adresleri kullanır. Android 9'da, cihazın bir Wi-Fi ağına bağlanırken 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 istemci modu, SoftAp ve Wi-Fi Direct için MAC rastgeleleştirmesi varsayılan olarak etkindir.

MAC rastgeleleştirmesi, dinleyicilerin cihaz etkinliği geçmişini oluşturmak için MAC adreslerini kullanmasını önler, böylece kullanıcı gizliliğini artırır.

Ayrıca MAC adresleri, Wi-Fi Aware ve Wi-Fi RTT işlemlerinin bir parçası olarak rastgele seçilir.

Daha fazla bilgi için bkz. MAC Rastgeleleştirme Davranışı .

Uygulama

Cihazınızda MAC rastgeleleştirmesini uygulamak için:

  1. Aşağıdaki HAL yöntemlerini uygulamak için bir Wi-Fi yongası satıcısıyla ç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 : Bir ioctl çağrısı kullanarak wlan0 fabrika MAC'ini alır.
    • ISupplicantP2pIface#setMacRandomization : İstemcide P2P MAC rastgeleleştirmesini açık/kapalı olarak ayarlar.
  2. Ayarlar config.xml dosyasında config_wifi_connected_mac_randomization_supported değerini true olarak ayarlayın (bu, cihazın özel katmanında yapılabilir).

    • Bu bayrak, istemci modu MAC rastgeleleştirmesinin etkin olup olmadığını kontrol etmek için kullanılır.
  3. Ayarlar config.xml config_wifi_p2p_mac_randomization_supported değerini true olarak ayarlayın (bu, cihazın özel katmanında yapılabilir).

    • Bu bayrak, Wi-Fi doğrudan MAC rastgeleleştirmesinin etkin olup olmadığını kontrol etmek için kullanılır.
  4. Doğrulama bölümünde açıklanan yöntemleri kullanarak uygulamanızı test edin.

Sistem Kullanıcı Arayüzü şunları yapmalıdır:

  • Her SSID için rastgeleleştirmeyi etkinleştirme veya devre dışı bırakma seçeneğiniz olsun.
  • Yeni eklenen tüm ağlar için MAC rastgeleleştirmesini 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 daha önceki sürümleri çalıştıran cihazlarda Wi-Fi MAC rastgele seçimi desteği bulunmayabilir. Bu tür cihazları Android 10'a yükseltirken Wi-Fi MAC rastgeleleştirme özelliği, Wi-Fi satıcısının HAL yapım dosyasında WIFI_HIDL_FEATURE_DISABLE_AP_MAC_RANDOMIZATION bayrağını true olarak ayarlayarak devre dışı bırakılabilir.

Doğrulama

Özelliğin amaçlandığı gibi çalıştığını doğrulamak için hem entegrasyon testi (ACTS) hem de manuel test çalıştırın.

Bir entegrasyon testi çalıştırmak için, cihazın rastgele MAC adresini kullandığını ve her biri için rastgele MAC adresini doğru şekilde sakladığını doğrulamak amacıyla tools/test/connectivity/acts_tests/tests/google/wifi konumunda bulunan WifiMacRandomizationTest.py ACTS dosyasını kullanın. ağ.

Manuel test çalıştırmak için:

  1. Cihaz katmanı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. Bir Wi-Fi ağına bağlanın.
  3. Ağ ayrıntıları sayfasına gitmek için ağa dokunun. MAC rastgeleleştirmesinin açık olduğunu doğrulayın. Görüntülenen MAC adresinin, yerel olarak üretilen biti 1'e ve çok noktaya yayın biti 0'a ayarlanmış rastgele bir MAC olduğunu doğrulayın.
  4. MAC rastgeleleştirmesini kapatı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 öğesine 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ştirmesini destekleyebilen) Android 10 veya daha yüksek bir sürüme yükseltme yaparak MAC rastgeleleştirmesini test etmek için:

  1. Android 9 veya daha eski bir sürümü çalıştıran bir cihazda en az bir kayıtlı ağınızın olması.
  2. Android 10 sistem görüntüsünü flaşlayın.
  3. Wi-Fi seçicide, kayıtlı tüm ağlar için MAC rastgeleleştirmesinin kapalı olduğunu doğrulayın.
  4. MAC rastgeleleştirmesini açın. Aynı ağa bağlanın ve rastgele MAC'ın kullanıldığını doğrulayın.