Değişmez Cihaz Kimlikleri

Android 6 ve sonraki sürümlerde, Wi-Fi hizmet sağlayıcıları ve paket çözümleyicilerinin, ağ isteklerinden Wi-Fi yığını aracılığıyla bir cihazın fabrika MAC adresini alması kısıtlanmıştır. Android 10'da başlayarak, ek kısıtlamalar yerinde olduğundan ile uygulamalara cihaz tanımlayıcıları (kimlik) erişim sınırı ayrıcalıklı izin düzeyiyle . Bu, aşağıdakiler gibi cihaz kimliklerini korur:

  • telefon IMEI, MEID, ESN ve IMSI numaraları.
  • yapı, SIM veya USB seri numaraları.

Cihaz kimliklerine kimler erişebilir?

Uygulamalar Android 9 veya önceki sürümleri hedeflese bile, cihaz kimlikleri tüm Android 10 cihazlarda kısıtlanır. Cihaz kimliklerine şuradan erişilebilir:

Ayrıcalıklı paket erişimi

Cihaz kimliklerine erişmek için bir paketin ayrıcalıklı olması gerekir. Bu olmalı READ_PRIVILEGED_PHONE_STATE izne Manifest.permission sınıfı ve içinde beyaz listeye alınmasını privapp-permission.xml dosyası. Beyaz liste süreciyle ilgili bilgi için, bkz İmtiyazlı izin beyaz listesi .

Bir ayrıcalıksız paket için benzersiz bir kimlik alma konusunda bilgi için, bkz Ortak kullanım durumları ve kullanımı uygun tanımlayıcı .

Kısıtlanmış cihaz kimlikleri ve rastgele MAC adresleri

Cihaz kimliklerini daha fazla kısıtlamak için Android 10'daki tüm cihazlar, hem araştırma 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 modunda, yumuşak erişim noktasında (AP) veya Wi-Fi Direct kullanım durumlarında cihaz fabrika MAC adresini kullanmayın. Ayrıcalıklı uygulamalar olmayan, genel olarak erişilebilir API'lerden gizli kalmalıdır. İade edilecek MAC adresi fabrika gerektiren İmtiyazlı uygulamalar sahip olmaları gerekmektedir LOCAL_MAC_ADDRESS izni.

Kullanıcılar varsayılan her SSID atanmış MAC adresini randomize tutmak seçeneği vardır. Bu seçenek Ayarlar görüntülenebilir altında Gizlilik> Ağ detay. Randomize MAC adresi bkz edinme hakkında bilgi edinmek için Randomize MAC adreslerini .

Screen shows if device ID uses a randomized MAC address for privacy
Ağ ayrıntılarda Gizlilik altında randomize olarak Şekil 1. MAC adresi gösterileri

Cihaz kimliği API'lerini çağıran uygulamalar

Cihaz kimliği API'lerini çağıran uygulamalar, Android 10 gereksinimlerini 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
  • Android 9 veya önceki sürümleri hedefleyen uygulamalar
    • Onlar varsa READ_PHONE_STATE izni, bir ya null yanıtı veya yer tutucu veri döndürülür.
    • Onlar değil, cihaz kimliği API'leri bir atmak SecurityException denilen yöntemle ve çağıran Uygulamanın, istekte kimliğine erişmek için gereksinimleri karşılamadığını bir göstergesi adını içerir.

Değişmez cihaz kimliklerine daha fazla bilgi için bkz Nonresettable cihaz tanımlayıcıları ve benzersiz tanımlayıcılar için en iyi uygulamaları .

Test yapmak

Uygulamalar aygıt seri numarası ve geçerli IMEI / MEID SİM seri numarası ve abone kimliği erişim önlenmelidir. Bu kimlikleri erişim izni olan uygulamalar da altında listelenen kriterlerden biri karşılaması gerekir cihaz kimliğini erişebilir kim .