1. 安卓唯一标识列举
标识 | 所需权限 | 唯一性/防伪造 | 兼容性 | 是否隐私敏感 | 推荐指数 | 备注 |
---|---|---|---|---|---|---|
WiFI MAC Bluetooth MAC | android.permission.ACCESS_WIFI_STATE android.permission.BLUETOOTH | 差 (root权限可修改) | 一般 | 敏感 | 不推荐 | Android 6.0 之后无法通过安卓API获取 |
Android ID | 无 | 差 (重置后更新... | 好 | 一般 | 不推荐 | 可能为空; 重置后重新生成; Android 8之后,每个app获取的Android ID 不同 |
Serial Number | android.permission.READ_PHONE_STATE (使用getSerial()新接口需要此权限 | 差 (root权限可修改 | 好 | 一般 | 一般 | 硬件设备序列号,有些设备可能返回随机值 |
ICCID (SimSerialNumber) | android.permission.READ_PHONE_STATE | 差 (依赖SIM卡 | 差 (依赖SIM卡 | 敏感 | 不推荐 | 没有SIM卡返回 null |
IMEI/MEID | android.permission.READ_PHONE_STATE | 一般 (部分设备可修改 | 一般 (无基带设备 | 非常敏感 | 推荐 | 建议使用root权限直接从基带读取IMEI |
WIDEVINE_UUID | 无 | 一般 (重置后更新 | 一般 (需DRM设备 | 一般 | 推荐 | MediaDrm.PROPERTY_DEVICE_UNIQUE_ID,DRM 设备 ID,重置后更新 |
Advertising ID | android.permission.INTERNET | 差 | 差 (依赖 google play service | 不敏感 | 不推荐 | 由Google Play服务提供的广告ID |
SafetyNET | 无 | 好 | 差 (依赖 google play service | 否 | 推荐 | SafetyNET其实是一个API接口,通过google play 服务进行设备身份认证 |
2. 参考资料
- https://developer.android.com/training/articles/user-data-ids?hl=zh-cn
- https://stackoverflow.com/questions/2785485/is-there-a-unique-android-device-id
- https://blog.csdn.net/Innost/article/details/9732847
- https://www.jianshu.com/p/178786f833b6
- http://beltran.work/device-unique-id-android/
- https://android-developers.googleblog.com/2017/04/changes-to-device-identifiers-in.html
- https://blog.csdn.net/dqliangjun/article/details/79120776
- https://blog.csdn.net/chaozhung_no_l/article/details/78329371
- https://developer.android.com/reference/android/os/Build
- https://blog.csdn.net/gulinxieying/article/details/78677608
- https://developer.android.com/training/safetynet/attestation
- https://www.androidbrick.com/ultimate-guide-qualcomm-snapdragon-xiaomi-mi5-imei-and-baseband-repair-fix/