27 Mart 2025'ten itibaren AOSP'yi derlemek ve AOSP'ye katkıda bulunmak için aosp-main yerine android-latest-release kullanmanızı öneririz. Daha fazla bilgi için AOSP'de yapılan değişiklikler başlıklı makaleyi inceleyin.
Koleksiyonlar ile düzeninizi koruyun
İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.
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 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.
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 rastgele hale getirme ö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'nin true 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 destekleyebilen) Android 10 veya sonraki bir sürüme yükseltme işleminde 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.
Bu sayfadaki içerik ve kod örnekleri, İçerik Lisansı sayfasında açıklanan lisanslara tabidir. Java ve OpenJDK, Oracle ve/veya satış ortaklarının tescilli ticari markasıdır.
Son güncelleme tarihi: 2025-07-27 UTC.
[[["Anlaması kolay","easyToUnderstand","thumb-up"],["Sorunumu çözdü","solvedMyProblem","thumb-up"],["Diğer","otherUp","thumb-up"]],[["İhtiyacım olan bilgiler yok","missingTheInformationINeed","thumb-down"],["Çok karmaşık / çok fazla adım var","tooComplicatedTooManySteps","thumb-down"],["Güncel değil","outOfDate","thumb-down"],["Çeviri sorunu","translationIssue","thumb-down"],["Örnek veya kod sorunu","samplesCodeIssue","thumb-down"],["Diğer","otherDown","thumb-down"]],["Son güncelleme tarihi: 2025-07-27 UTC."],[],[],null,["# Implement MAC randomization\n\nStarting in Android 8.0, Android devices use randomized MAC addresses when\nprobing for new networks while not associated with a network. In\nAndroid 9, you can enable a developer option (it's\n**disabled** by default) to cause the device to use a randomized MAC address\nwhen connecting to a Wi-Fi network.\n\nIn Android 10, MAC randomization is enabled by default\nfor client mode, SoftAp, and Wi-Fi Direct.\n\nMAC randomization prevents listeners from using MAC addresses to build a history\nof device activity, thus increasing user privacy.\n\nAdditionally, MAC addresses are randomized as part of\n[Wi-Fi Aware](/docs/core/connect/wifi-aware) and\n[Wi-Fi RTT](/docs/core/connect/wifi-rtt) operations.\n\nFor more information, see\n[MAC Randomization Behavior](/docs/core/connect/wifi-mac-randomization-behavior).\n\nImplementation\n--------------\n\nTo implement MAC randomization on your device:\n\n1. Work with a Wi-Fi chip vendor to implement the following HAL methods:\n\n - `IWifiStaIface#setMacAddress`: Configures the MAC address of the interface. The default implementation brings the interface down, changes the MAC address, and brings the interface back up.\n - `IWifiStaIface#getFactoryMacAddress`: Gets the factory MAC of `wlan0` using an `ioctl` call.\n - `ISupplicantP2pIface#setMacRandomization`: Sets P2P MAC randomization on/off in the supplicant.\n2. Set\n [`config_wifi_connected_mac_randomization_supported`](https://android.googlesource.com/platform/frameworks/base/+/refs/heads/android16-release/core/res/res/values/config.xml)\n to `true` in the Settings `config.xml` (this can be done in a device\n custom overlay).\n\n - This flag is used to control whether client-mode MAC randomization is enabled.\n3. Set\n [`config_wifi_p2p_mac_randomization_supported`](https://android.googlesource.com/platform/frameworks/base/+/refs/heads/android16-release/core/res/res/values/config.xml)\n to `true` in the Settings `config.xml` (this can be done in a device\n custom overlay).\n\n - This flag is used to control whether Wi-Fi direct MAC randomization is enabled.\n4. Test your implementation using the methods described in\n [Validation](#validation).\n\nThe System UI must:\n\n- Have an option to enable or disable randomization for each SSID.\n- Have MAC randomization enabled by default for all newly added networks.\n\nUse the\n[reference implementation](https://cs.android.com/android/platform/superproject/+/android-latest-release:packages/apps/Settings/src/com/android/settings/wifi/details2/WifiPrivacyPreferenceController2.java)\nof Settings UI to implement new prompts.\n\nDevices running Android 9 or lower might not have\nsupport for Wi-Fi MAC randomization. When upgrading such devices to Android\n10, the Wi-Fi MAC randomization feature can be disabled\nby setting the `WIFI_HIDL_FEATURE_DISABLE_AP_MAC_RANDOMIZATION` flag to true in\nthe Wi-Fi vendor HAL make file.\n\nValidation\n----------\n\nTo validate that the feature is working as intended, run a manual test:\n\n1. Verify that MAC randomization is enabled on the device by checking that `config_wifi_connected_mac_randomization_supported` is set to `true` in the device overlay.\n2. Connect to a Wi-Fi network.\n3. Tap the network to go to the Network details page. Verify that MAC randomization is turned on. Verify that the MAC address displayed is a randomized MAC, which has the locally generated bit set to 1 and the multicast bit set to 0.\n4. Turn MAC randomization off. Connect to the same network and verify that the factory MAC is being used.\n5. Delete the network by tapping **Forget** on the Network details page.\n6. Connect to the same network and verify that the **same** randomized MAC\n address is being used.\n\n | **Note:** Randomized MAC addresses are generated per SSID and are persistent.\n\nTo test MAC randomization on a pre-Android 10 device\n(capable of supporting MAC randomization) upgrading to Android\n10 or higher:\n\n1. Have at least one saved network on a device running Android 9 or lower.\n2. Flash the Android 10 system image.\n3. In the Wi-Fi picker, verify that MAC randomization is turned off for all saved networks.\n4. Turn MAC randomization on. Connect to the same network and verify that the randomized MAC is being used.\n\n| **Note:** You may experience up to a three-second delay when connecting to a network due to the driver flushing saved scan results when the interface goes down. If this is the case, check with your silicon partners to resolve the issue."]]