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şlemleri kapsamında rastgele seçilir.
Daha fazla bilgi için MAC Rastgele Oluşturma Davranışı başlıklı makaleyi inceleyin.
Uygulama
Cihazınızda MAC rastgele hale getirmeyi uygulamak için:
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
:ioctl
çağrısı kullanarakwlan0
öğesinin fabrika MAC'sini alır.ISupplicantP2pIface#setMacRandomization
: İstemcide P2P MAC rasgeleleştirmeyi etkinleştirir/devre dışı bırakır.
Ayarlar
config.xml
bölümündeconfig_wifi_connected_mac_randomization_supported
seçeneğinitrue
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.
Ayarlar
config.xml
bölümündeconfig_wifi_p2p_mac_randomization_supported
seçeneğinitrue
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.
Doğrulama bölümünde açıklanan yöntemleri kullanarak uygulamanızı test edin.
Sistem kullanıcı arayüzü:
- Her SSID için rastgeleleştirmeyi etkinleştirme veya devre dışı bırakma seçeneğiniz olmalıdır.
- Yeni eklenen tüm ağlar için MAC adresini rastgele atama özelliğini varsayılan olarak etkinleştirin.
Yeni istemler 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 ağ MAC'inin rastgele atanması desteklenmiyor olabilir. 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:
- Cihaz yer paylaşımında
config_wifi_connected_mac_randomization_supported
'nintrue
olarak ayarlandığından emin olarak cihazda MAC rastgeleleştirmenin etkinleştirildiğini doğrulayın. - Kablosuz ağa bağlanın.
- 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.
- 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.
- Ağ ayrıntıları sayfasında Unut'a dokunarak ağı silin.
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:
- Android 9 veya daha eski bir sürümün yüklü olduğu bir cihazda en az bir kayıtlı ağınız olmalıdır.
- Android 10 sistem görüntüsünü yükleyin.
- Kablosuz seçicide, kayıtlı tüm ağlar için MAC rastgeleleştirmenin devre dışı olduğunu doğrulayın.
- MAC rastgele seçimini etkinleştirin. Aynı ağa bağlanın ve rastgele MAC'nin kullanıldığını doğrulayın.