Android ID / SSAID 的伪装与注意事项
什么是 Android ID
Android ID 是一串 64 位十六进制字符串(如 554e544f424c4f47),在设备首次启动时生成。在 Android 10 之前,它是设备级别的唯一标识——所有应用读到的都是同一个值。
Android 10 后引入 SSAID(Scoped Storage App ID),按应用签名隔离:不同签名的应用读到的 Android ID 可以不同。但在同一开发者账号下签名的多个应用,仍共享同一个 SSAID。
Guise 怎么伪装 Android ID
Guise 覆盖以下读取入口:
| 入口 | 说明 |
|---|---|
Settings.Secure.ANDROID_ID | 最常用入口 |
Settings.System | 部分应用从此读 |
| WebView 等独立进程 | WebView 内部有独立读取 |
随机数据生成规则
如果用「一键随机」,Guise 生成的 Android ID 是符合平台形态的 16 位十六进制字符串(长度正确、字符范围正确)。避免了手动乱填的长度不对、字符不全等问题。
Android ID 和 IMEI 的分工
Android ID 是应用级、非永久性标识(恢复出厂设置后会变),IMEI 是硬件级、永久性标识。应用通常两个都读——一个做设备去重,一个做更严格的唯一性校验。
两个都需要伪装,但 Guise 让你分开配:Android ID 走标识符通道,IMEI 走电话 API 通道。各有各的随机规则和校验方式。
注意事项
- Android 10+ 下,如果你伪装的 Android ID 在多个目标应用里相同,它们会被认为来自同一设备(同一签名)
- 如果应用跨进程(比如 WebView),Guise 已经覆盖了独立进程的读取
- 伪装的 Android ID 改变后,目标应用会认为这是「新设备」——之前登录过的账号状态可能失效,首次启动可能走「新用户引导」