【问题标题】:How to check Boot loader is unlocked or not如何检查引导加载程序是否已解锁
【发布时间】:2019-03-01 21:36:10
【问题描述】:

我正在尝试检查引导加载程序是否已解锁。为此,我在网上查看了一些讨论,但除了below one 之外我没有得到任何相关信息(我不知道它是否正确)

String BootLoader_value = Build.BOOTLOADER;

但是这个给每个设备的字符串unknown。有谁知道,如何检测boot loader是否解锁

【问题讨论】:

  • 你真的不能。您可以使用 samsungs KNOX/seap api 进行猜测,但这些仅适用于三星。检测设备是否已植根也是如此。由于您的应用程序在可能已植根的设备中运行,因此没有万无一失的方法。三星企业 api 应该可以让您了解设备是否被入侵,但如果您考虑一下,他们真的不能。 seap.samsung.com/sdk/knox-android 。此外,seap api 在非 root 设备上提供了许多“类似 root”的功能,例如禁用内置包(大多数)。
  • 谢谢你 Lassi Kinnunen :-)

标签: android bootloader rooted-device


【解决方案1】:

我在 SO 中看到了 this answer。但现在 google 提供了名为 SafetyNet 的 API。在此我使用了Attestation API。此 API 正在检测设备中的引导加载程序是否已解锁。有关其他详细信息,请查看table

【讨论】:

  • SafetyNet 是否可以检测 Magisk/MagiskHide 是否正在运行?
【解决方案2】:

正如您所提到的,最可靠的解决方案是使用 SafetyNet Attestation。但是,这不会检测到所有引导加载程序解锁(例如,未检测到我的 Nexus 6 运行 Magisk)。此外,由于其他原因,您可能会遇到设备出现故障,例如作为模拟器、运行自定义 ROM、root、API 挂钩,甚至只是拥有未经 Google 认证的手机。

如果您对确保引导加载程序被解锁的情况感兴趣,请使用 SafetyNet Attestation API 并查看advice field。如果 API 检测到未锁定的引导加载程序,{"advice": "LOCK_BOOTLOADER"} 将出现在令牌中。请注意,在正常使用情况下,不会有建议字段。

【讨论】:

    猜你喜欢
    • 2012-12-05
    • 2014-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-20
    • 2012-07-03
    • 1970-01-01
    • 2018-08-22
    相关资源
    最近更新 更多