我正在尝试检查引导加载程序是否已解锁。为此,我在网上检查了一些讨论,但除了以下内容外,我没有得到任何相关信息(我不知道它是否正确)
String BootLoader_value = Build.BOOTLOADER;
但这unknown
为每个设备提供了字符串。任何人都知道,如何检测boot loader
是否解锁
我正在尝试检查引导加载程序是否已解锁。为此,我在网上检查了一些讨论,但除了以下内容外,我没有得到任何相关信息(我不知道它是否正确)
String BootLoader_value = Build.BOOTLOADER;
但这unknown
为每个设备提供了字符串。任何人都知道,如何检测boot loader
是否解锁
我在 SO 中看到了这个答案。但现在 google 提供了名为SafetyNet的 API 。在这我使用了Attestation API。此 API 正在检测设备中的引导加载程序是否已解锁。有关其他详细信息,请查看此表
正如您所提到的,最可靠的解决方案是使用 SafetyNet Attestation。但是,这不会检测到所有引导加载程序解锁(例如,未检测到运行 Magisk 的我的 Nexus 6)。此外,您可能会因为其他原因导致设备出现故障,例如作为模拟器、运行自定义 ROM、被 root、API 挂钩,甚至只是拥有未经 Google 认证的手机。
如果您对保证引导加载程序被解锁的情况感兴趣,请使用 SafetyNet Attestation API 并查看建议字段。如果 API 检测到未锁定的引导加载程序,{"advice": "LOCK_BOOTLOADER"}
将出现在令牌中。请注意,在正常使用情况下,不会有建议字段。