MAC rastgele hale getirme uygulama

Android 8.0 sürümünden başlayarak, Android cihazlar bir ağla ilişkili değilken yeni ağları yoklarken rastgele MAC adresleri kullanır. Android 9'da, cihazın bir kablosuz ağa bağlanırken rastgele bir MAC adresi kullanmasına neden olacak 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 seçimi varsayılan olarak etkindir.

MAC rastgele hale getirme işlevi, dinleyicilerin MAC adreslerini kullanarak cihaz etkinliği geçmişi oluşturmasını önleyerek 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 Rastgeleleştirme Davranışı bölümüne bakın.

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 ağ çipi satıcısıyla çalışın:

    • IWifiStaIface#setMacAddress: Arayüzün MAC adresini yapılandırır. Varsayılan uygulama arayüzü aşağı çeker, MAC adresini değiştirir ve arayüzü tekrar eski haline getirir.
    • IWifiStaIface#getFactoryMacAddress: Bir ioctl çağrısı kullanarak wlan0 fabrika MAC'sini alır.
    • ISupplicantP2pIface#setMacRandomization: Tedarikçide P2P MAC rastgele hale getirmeyi açık/kapalı olarak ayarlar.
  2. Ayarlar'da config.xml config_wifi_connected_mac_randomization_supported değerini true olarak ayarlayın (bu işlem, cihazın özel yer paylaşımında yapılabilir).

    • Bu işaret, istemci modunda MAC rastgele hale getirme özelliğinin etkinleştirilip etkinleştirilmediğini kontrol etmek için kullanılır.
  3. Ayarlar'da config.xml config_wifi_p2p_mac_randomization_supported değerini true olarak ayarlayın (bu işlem, cihazın özel yer paylaşımında yapılabilir).

    • Bu işaret, Wi-Fi doğrudan MAC rastgele hale getirme özelliğinin etkinleştirilip etkinleştirilmediğini 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 önceki sürümleri çalıştıran cihazlarda Wi-Fi MAC rastgele hale getirme desteği olmayabilir. Bu tür cihazlar Android 10'a yükseltilirken kablosuz ağ tedarikçi firması HAL oluşturma dosyasında WIFI_HIDL_FEATURE_DISABLE_AP_MAC_RANDOMIZATION işareti doğru değerine ayarlanarak Wi-Fi MAC rastgele hale getirme özelliği devre dışı bırakılabilir.

Doğrulama

Özelliğin amaçlandığı şekilde çalıştığını doğrulamak için manuel test yapın:

  1. Cihaz yer paylaşımında config_wifi_connected_mac_randomization_supported değerinin true olarak ayarlandığından emin olarak cihazda MAC rastgele hale getirme özelliğinin etkinleştirildiğini doğrulayın.
  2. Kablosuz bir ağa bağlanmalısınız.
  3. Ağ ayrıntıları sayfasına gitmek için ağa dokunun. MAC rastgele hale getirme özelliğinin açık olduğunu doğrulayın. Görüntülenen MAC adresinin, yerel olarak oluşturulan bitin 1, çoklu yayın bitinin de 0'a ayarlandığı rastgele bir MAC olduğunu doğrulayın.
  4. MAC rastgele hale getirmeyi kapatı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ığından emin olun.

Android 10 veya sonraki bir sürüme geçen ve Android 10 öncesi bir cihazda (MAC rastgele hale getirmeyi destekleyebilen) MAC rastgele hale getirmeyi 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ü güncelleyin.
  3. Kablosuz seçicide, MAC rastgele hale getirme ayarının tüm kayıtlı ağlar için kapalı olduğunu doğrulayın.
  4. MAC rastgele hale getirmeyi etkinleştirin. Aynı ağa bağlanın ve rastgele MAC'nin kullanıldığını doğrulayın.