分享到朋友圈 1. 点击导航栏右侧按钮。
2. 选择 发送给朋友 或 分享到朋友圈。
收起 捐款给作者

Cherysun’s Tech Café

通过 ADB Shell 获取 Android ID

Android ID 是一个以十六进制字符串体现的 64 位数字,在用户第一次启用设备的时候随机生成,并且在用户使用设备时不会发生改变。而当设备恢复出厂设置时可能发生改变。

什么是 Android ID?

A 64-bit number (as a hex string) that is randomly generated when the user first sets up the device and should remain constant for the lifetime of the user’s device. The value may change if a factory reset is performed on the device.

String ANDROID_ID in Settings.Secure—Android Developers

在运行有 Android 4.2 或更高版本的某些设备上可以创建多用户,每个用户都相当于拥有一个独立的设备,因而每个用户的 ANDROID_ID 也是不同的。

获取 Android ID

获取 Android ID 的方法有很多种,如果你是 Android 开发者,自然不必多说;或者可以在 Google Play 上下载相关的 app 同样可以获取到 Android ID,然而作为用户,很难得知下载的 app 除了获取 Android ID 还会获取什么其他的信息,又是如何来使用这些信息的。因而最简单也是最安全的方法就是通过 ADB Shell1 自行查询。

如何安装和使用 ADB Shell 这里不再赘述。你只需要在连接 Android 设备并且在 Developer options 中允许 USB debugging 后使用以下的命令行查询 Android ID。

> adb shell settings get secure android_id

或者查询 Settings 的 content provider 的值。

> adb shell content query --uri content://settings/secure/android_id --projection value

使用以上两个命令中所获得的结果就像以下图示。(在这里我的设备的 Android ID 已被隐藏。)

使用 ADB Shell 获取 Android ID 的结果

Android 标识符的使用原则

最重要地,如果你是 Android 开发者,那么请仔细阅读 Android Developers 提供的 唯一标识符最佳做法 的文档,请尽可能地使用广告 ID2、实例 ID 和 GUID3 替代使用 Android ID 或 MAC 地址4

根据 Android 开发指南,建议在使用 Android 标识符时遵循以下原则:

原则 1:避免使用硬件标识符。 您可以在大多数用例中避免使用 SSAID(Android ID)和 IMEI 等硬件标识符,而必需功能也不会受到限制。

原则 2:只为用户分析或广告用例使用广告 ID。 使用 广告 ID 时,务必遵守限制广告追踪标记,确保标识符无法与个人可识别信息(PII)建立关联,并避免桥接广告 ID 重置。

原则 3:尽一切可能为防欺诈支付和电话以外的所有其他用例使用实例 ID 或私密存储的 GUID。 对于绝大多数非广告用例,使用实例 ID 或 GUID 应该足矣。

原则 4:使用适合您的用例的 API 以尽量降低隐私权风险。 为高价值内容保护使用 DRM API,为滥用预防使用 SafetyNet API。Safetynet API 是能够确定设备真伪而又不会招致隐私权风险的最简单方法。

  1. Android 调试桥(adb)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试应用,并提供对 Unix shell(可用来在模拟器或连接的设备上运行各种命令)的访问:https://developer.android.com/studio/command-line/adb.html?hl=zh-cn 

  2. 广告 ID 是一种可由用户重置的标识符,适用于广告用例。 

  3. 标识运行在设备上的应用实例最简单明了的方法就是使用实例 ID,在大多数非广告用例中,这是建议的解决方案。只有进行了针对性配置的应用实例才能访问该标识符,并且标识符重置起来(相对)容易,因为它只存在于应用的安装期。 

  4. 从 Android M 开始,无法再通过第三方 API 获得 本地设备 MAC 地址(例如,WLAN 和蓝牙)。 

在微信中扫描二维码,然后发送给朋友分享到朋友圈

感谢您的支持与贡献

您的捐款将使您阅读到的内容变得更好。

支持微信支付和支付宝。

在微信中扫描二维码 在支付宝中扫描二维码

感谢您的支持与贡献

您的捐款将使您阅读到的内容变得更好。

触摸并按住二维码,选择识别图中二维码

触摸并按住二维码