Android 6 ve sonraki sürümlerde, kablosuz ağ servis sağlayıcılarının ve paket analiz araçlarının, ağ isteklerinden kablosuz ağ yığınını kullanarak cihazın fabrika MAC adresini almaları kısıtlanmıştır. Android 10'dan itibaren, cihaz tanımlayıcılarına (kimlikler) erişimi imtiyazlıizin düzeyine sahip uygulamalarla sınırlayan ek kısıtlamalar uygulanmaktadır. Bu sayede aşağıdakiler gibi cihaz kimlikleri korunur:
- telefon IMEI, MEID, ESN ve IMSI numaraları.
- derleme, SIM veya USB seri numaraları.
Cihaz kimliklerine kimler erişebilir?
Uygulamalar Android 9 veya önceki sürümleri hedefliyorsa bile cihaz kimlikleri tüm Android 10 cihazlarda kısıtlanır. Cihaz kimliklerine aşağıdakiler erişebilir:
- Varsayılan SMS uygulaması.
- Hem
Manifest.permission
sınıfındaREAD_PRIVILEGED_PHONE_STATE
iznine hem deprivapp-permission.xml
dosyasında izin verilenler listesine eklenmiş olan uygulamalar. Bunlar dapriv-app
dizinine yüklenmelidir. - UICC Operatör Ayrıcalıkları bölümünde tanımlandığı şekilde operatör ayrıcalıklarına sahip uygulamalar.
Manifest.permission
sınıfındaREAD_PHONE_STATE
izni verilmiş bir cihaz sahibi veya profil sahibi. (İzin verilenler listesine ekleme gerekli değildir.)
Ayrıcalıklı paketlere erişim
Bir paketin, cihaz kimliklerine erişebilmesi için ayrıcalıklı olması gerekir. Manifest.permission
sınıfında
READ_PRIVILEGED_PHONE_STATE
iznine sahip olmalı ve privapp-permission.xml
dosyasında izin verilenler listesine eklenmiş olmalıdır. İzin verilenler listesi süreci hakkında bilgi edinmek için Ayrıcalıklı İzin İzin Verilenler Listesi başlıklı makaleyi inceleyin.
Özellikli olmayan bir paket için benzersiz kimlik alma hakkında bilgi edinmek istiyorsanız Yaygın kullanım alanları ve kullanılacak uygun tanımlayıcı başlıklı makaleyi inceleyin.
Kısıtlanmış cihaz kimlikleri ve rastgele MAC adresleri
Cihaz kimliklerini daha da kısıtlamak için Android 10'daki tüm cihazlar hem keşif hem de ilişkili istekler için varsayılan olarak rastgele MAC adresleri iletir ve her SSID için farklı bir rastgele MAC adresine sahip olmalıdır. İstemci modu, yazılım erişim noktası (AP) veya kablosuz Direct kullanım alanlarında cihazın fabrika MAC adresini kullanmayın. Ayrıcalıklı uygulama olmayan, herkese açık API'lerden gizli kalmalıdır. Fabrika MAC adresinin döndürülmesini gerektiren ayrıcalıklı uygulamaların LOCAL_MAC_ADDRESS
iznine sahip olması gerekir.
Kullanıcılar, her SSID'ye atanan varsayılan rastgele MAC adresini kullanmaya devam edebilir. Bu seçenek, Ayarlar > Ağ ayrıntıları bölümündeki Gizlilik altında görüntülenebilir. Rastgele MAC adresi alma hakkında bilgi edinmek için Rastgele MAC adresleri başlıklı makaleyi inceleyin.

Şekil 1. Ağ ayrıntılarındaki Gizlilik bölümünde MAC adresi rastgele olarak gösterilir.
Cihaz kimliği API'lerini çağıran uygulamalar
Cihaz kimliği API'lerini çağıran uygulamalar Android 10 şartlarını karşılamalıdır. Aksi takdirde, cihaz kimliklerine erişmeye çalıştıklarında aşağıdakiler döndürülür:
- Android 10'u hedefleyen uygulamalar
SecurityException
cihaz kimliği API'lerinden atılır.- Android 9 veya önceki sürümleri hedefleyen uygulamalar
READ_PHONE_STATE
iznine sahipsenull
yanıtı veya yer tutucu veriler döndürülür.- Aksi takdirde cihaz kimliği API'leri, çağrılan yöntemin adını ve çağıran uygulamanın istenen kimliğe erişme koşullarını karşılamadığını belirten bir
SecurityException
isteği gönderir.
Değiştirilemez cihaz kimlikleri hakkında daha fazla bilgi için Sıfırlanamayan cihaz tanımlayıcıları ve benzersiz tanımlayıcılar için en iyi uygulamalar başlıklı makaleleri inceleyin.
Test
Uygulamaların cihaz seri numarasına ve geçerli olduğu durumlarda IMEI veya MEID, SIM seri numarası ve abone kimliğine erişmesi engellenmelidir. Bu kimliklere erişme izni olan uygulamaların, Cihaz kimliklerine kimler erişebilir? bölümünde listelenen ölçütlerden birini de karşılaması gerekir.