|
EasyConnect手机端同一个手机卸载后再安装硬件特征码变化,分安卓和iOS两种系统场景,原因如下: 1. Android 手机场景Android 端硬件特征码的生成规则为: - 优先获取手机 IMEI,获取成功则将 IMEI 做 MD5 散列后作为硬件特征码[2][4]
- 如果无法获取 IMEI,则获取 MAC 地址,做 MD5 散列后作为硬件特征码[2][4]
当卸载重装后特征码变化,通常是因为: - 如果应用获取 IMEI/MAC 地址的权限发生变化,会导致原本能获取到 IMEI 现在无法获取,切换为 MAC 地址生成特征码,导致结果不同[4]
- 部分安卓系统在卸载应用后会重置应用权限,重新安装后权限授权状态改变,影响硬件信息的获取,最终导致特征码变化。
2. iOS 手机场景iOS 端硬件特征码的生成规则为: - 优先获取APP的广告标识,若获取不到则本地随机生成一个标识,并持久化保存在本地[2]
- 正常情况下会将 Vendor ID 保存在 keychain 中,后续登录都从 keychain 读取,keychain 内容保持不变(仅刷机才会改变)[4]
卸载重装后特征码变化的原因: - 如果是通过 APP 广告标识生成特征码,部分 iOS 系统隐私策略会限制卸载重装后广告标识的获取,导致无法读取原标识而重新随机生成,特征码因此改变。
- 如果是随机生成本地持久化的标识,卸载应用时如果本地存储(UserDefaults 等存储位置)被清除,重新安装后会再次随机生成新标识,导致特征码变化。keychain 本身不会被卸载清除,但若为重新随机生成的场景则会变化。
总结:不同系统下,特征码变化主要源于权限变化、隐私策略限制、本地存储数据被清除等原因,导致重新安装后用于生成特征码的原始信息发生改变,最终输出不同的特征码结果 |