MAC rastgele hale getirme uygulama

Android 8.0'dan itibaren Android cihazlar, bir ağla ilişkili değilken yeni ağları araştırırken rastgele MAC adresleri kullanır. Android 9'da, cihazın bir kablosuz ağa bağlanırken rastgele bir MAC adresi kullanması 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 rastgele hale getirme varsayılan olarak etkindir.

MAC adreslerinin rastgele atanması, dinleyicilerin cihaz etkinliği geçmişi oluşturmak için MAC adreslerini kullanmasını engelleyerek 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 hale getirilir.

Daha fazla bilgi için MAC Rastgele Oluşturma Davranışı başlıklı makaleyi inceleyin.

Uygulama

Cihazınızda MAC rastgele hale getirme özelliğini uygulamak için:

  1. Aşağıdaki HAL yöntemlerini uygulamak için bir kablosuz çip tedarikçisiyle birlikte ç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'sini alır.
    • ISupplicantP2pIface#setMacRandomization: İstemcide P2P MAC rastgele hale getirmeyi etkinleştirir/devre dışı bırakır.
  2. Ayarlar config.xml bölümünde config_wifi_connected_mac_randomization_supported seçeneğini true olarak ayarlayın (bu işlem cihaz özel yer paylaşımı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 config.xml bölümünde config_wifi_p2p_mac_randomization_supported seçeneğini true olarak ayarlayın (bu işlem cihaz özel yer paylaşımında yapılabilir).

    • Bu işaret, kablosuz doğrudan MAC rastgeleleştirmenin 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 bir SSID için rastgele sıralamayı etkinleştirme veya devre dışı bırakma seçeneğiniz vardır.
  • Yeni eklenen tüm ağlar için MAC rastgele hale getirme özelliğinin varsayılan olarak etkin olmasını sağlayın.

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

Android 9 veya daha eski sürümleri çalıştıran cihazlarda kablosuz MAC adresini rastgele atama özelliği olmayabilir. Bu tür cihazlar Android 10'a yükseltilirken kablosuz ağ tedarikçisi HAL make dosyasında WIFI_HIDL_FEATURE_DISABLE_AP_MAC_RANDOMIZATION işaretçisi true olarak ayarlanarak kablosuz ağ MAC rastgeleleştirme özelliği devre dışı bırakılabilir.

Doğrulama

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

  1. Cihaz yer paylaşımında config_wifi_connected_mac_randomization_supported'nin true olarak ayarlandığından emin olarak 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 etkin olduğunu doğrulayın. Gösterilen MAC adresinin, yerel olarak oluşturulan bitinin 1 ve çoklu yayın bitinin 0 olarak ayarlandığı rastgele bir MAC olduğunu doğrulayın.
  4. MAC rastgele seçimini devre dışı bırakın. Aynı ağa bağlanın ve fabrika MAC'sinin 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 rastgele seçimini destekleyebilir) Android 10 veya sonraki bir sürüme yükseltme işlemini gerçekleştirerek MAC rastgele seçimini test etmek için:

  1. Android 9 veya önceki sürümleri çalıştıran bir cihazda en az bir kayıtlı ağa sahip olun.
  2. Android 10 sistem görüntüsünü yükleyin.
  3. Kablosuz seçicide, kayıtlı tüm ağlar için MAC rastgeleleştirmenin devre dışı olduğunu doğrulayın.
  4. MAC rastgele seçimini etkinleştirin. Aynı ağa bağlanın ve rastgele MAC'nin kullanıldığını doğrulayın.