Beberapa pengembang mungkin perlu mengidentifikasi perangkat Android penggunanya. Paling sering ini dilakukan bukan untuk mengenali perangkat, tetapi untuk menentukan instalasi spesifik aplikasi. Saya juga bertemu beberapa kasus ketika diperlukan, jika pengembang memiliki beberapa aplikasi dan dia ingin memahami bahwa mereka bekerja di lingkungan yang sama.
Google mengatakan mengidentifikasi perangkat itu mudah. Tapi kita berbicara tentang Android :)
Artikel ini berfokus pada aplikasi atau perpustakaan yang tidak ingin dilampirkan ke layanan Google.Jadi, mari selami petualangan indah ini untuk mendapatkan pengenal perangkat yang unik.
Di sini kita melihat beberapa cara:
- ID Iklan
- IMEI
- Alamat MAC
- Nomor seri
- ID Android
Sejauh ini tidak terlihat buruk, bukan? Ada sebanyak lima cara untuk mendapatkan pengidentifikasi unik untuk perangkat Android. Saya yakin bahwa jika Anda masih berdesir di jaringan, Anda pasti akan menemukan beberapa cara lain, tetapi di sini saya membuat yang paling populer. Jadi mari kita mulai.
ID Iklan
Ini adalah pengidentifikasi iklan unik yang disediakan oleh layanan Google Play. Hal ini diperlukan agar iklan berfungsi, agar Google memahami iklan mana yang dapat ditampilkan kepada pengguna tertentu dan iklan mana yang telah ditampilkan menggunakan spanduk iklan yang ada di dalam aplikasi. Dan ini juga berarti Anda akan kehilangan pengidentifikasi ini jika aplikasi Anda diunduh, misalnya, dari Amazon, dan selain itu Anda harus menyeret
perpustakaan Google ke dalam aplikasi Anda.
dependencies { compile 'com.android.support:appcompat-v7:21.0.3' compile 'com.google.android.gms:play-services:6.5.87' }
Kesimpulan: kami tidak mengidentifikasi perangkat dalam semua kasus.
Tapi kami pasti ingin, kan? Kemudian lanjutkan.
IMEI
Ini adalah pengidentifikasi internasional untuk peralatan seluler yang digunakan pada ponsel GSM. Nomor IMEI digunakan oleh jaringan untuk mengidentifikasi smartphone dan memblokir akses ke jaringan perangkat yang dicuri atau masuk daftar hitam. Namun sayangnya dengan IMEI sejumlah masalah dapat muncul:
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { String imei = telephonyMgr.getImei(); } else { String imei = telephonyMgr.getDeviceId(); }
Kesimpulan: kami tidak mengidentifikasi perangkat dalam semua kasus, dan mereka juga dapat menipu kami: C
Alamat MAC
Tidak 100% andal.
Google sendiri membicarakan hal ini , tetapi, sayangnya, saya benar-benar bertemu dengan beberapa aplikasi yang mengandalkan alamat MAC perangkat. Jangan lakukan itu.
Dimungkinkan untuk mengambil alamat Mac dari WiFi perangkat atau perangkat keras Bluetooth. Kami tidak menyarankan menggunakan ini sebagai pengidentifikasi unik. Untuk memulainya, tidak semua perangkat memiliki WiFi. Juga, jika WiFi tidak dihidupkan, perangkat keras mungkin tidak melaporkan alamat Mac.
Nomor seri
Ini dianggap sebagai nomor seri unik perangkat, yang tetap bersamanya sampai "akhir". Anda bisa mendapatkannya dengan cara ini:
Dan sekarang tentang masalahnya. Pertama, untuk mendapatkan nomor seri, Anda harus meminta izin kepada pengguna
READ_PHONE_STATE , dan pengguna dapat menolak. Kedua, nomor seri
dapat diubah .
Kesimpulan: kami tidak mengidentifikasi perangkat dalam semua kasus, kami harus meminta izin dari pengguna, yang menipu mereka dan masih bisa menipu kami.
ID Android
- Ini dia! - kita harus berteriak. - Solusi untuk semua masalah kita!
ID Android juga merupakan pengidentifikasi perangkat unik. Ini adalah nilai 64-bit yang dihasilkan dan disimpan selama boot pertama perangkat.
Anda bisa mendapatkannya seperti ini:
Secure.getString(getContentResolver(), Secure.ANDROID_ID);
Tampaknya garis pendek seperti itu menyelamatkan kita dari sakit kepala dalam mengidentifikasi perangkat. Bahkan orang-orang Google menggunakan Android_ID untuk
LVL dalam contoh.
Dan di sini harapan kita hancur dan tidak ada yang sama. Setelah memperbarui ke Android 8,
Android_ID kini menjadi unik untuk setiap aplikasi yang diinstal. Namun, selain itu, Google peduli dengan kami, sehingga aplikasi yang diinstal sebelum pembaruan akan tetap dengan pengidentifikasi yang sama dengan yang disimpan oleh Google menggunakan layanan yang ditulis khusus untuk ini. Tetapi jika aplikasi dihapus dan kemudian diinstal ulang, Android_ID akan berbeda. Untuk mencegah hal ini terjadi, Anda perlu menggunakan KeyValueBackup.

Tetapi layanan cadangan ini perlu didaftarkan, juga nama paket yang harus ditentukan. Selain itu, dokumentasi mengatakan bahwa ini mungkin tidak berfungsi karena alasan
apa pun. Dan siapa yang harus disalahkan? Tidak ada yang seperti itu.
Kesimpulan umum
Jika Anda memiliki backend yang baik, maka kumpulkan saja perangkat (aplikasi yang terinstal, layanan, data apa pun tentang perangkat yang bisa Anda dapatkan) dan bandingkan parameter yang sudah ada di sana, pertimbangkan persentase perubahan yang dapat diterima.
PS Saya menerbitkan semua koleksi seperti biasa di saluran telegram
@paradisecurity , dan tautannya dapat ditemukan di profil saya, atau ditemukan dalam pencarian telegram dengan nama.
Selamat :)