代码之家  ›  专栏  ›  技术社区  ›  aga

直接引导-设备什么时候进入加密状态?

  •  6
  • aga  · 技术社区  · 7 年前

    一些背景知识:我开发的一个应用程序使用了HCE(主机卡仿真)——当设备靠近定制硬件时,系统会创建并启动HostApduService的实现。开始时,它从SharedPreferences读取一些信息,并相应地处理与定制硬件的通信。到目前为止,还不错。

    在某种程度上,我注意到奇怪的崩溃聚集在googleplayvitals中-事实证明,从android8.1开始 ContextImpl 在尝试读取共享首选项之前,检查用户是否已授权;如果没有,则引发异常。这就是我如何了解直接引导的含义。

    关于直接引导模式的文档提到凭证存储加密禁止任何人访问数据 直到用户提供了一些授权

    但是,一些应用程序的用户声称,有时设备硬件通信无法工作,即使他们很长时间没有重新启动设备。解决这个问题的唯一方法就是对设备进行自动验证——输入pin码、触摸指纹扫描仪等。

    所以这让我想知道,这部分加密是如何工作的,有没有可能有些供应商会更改此功能的实现,以便有时在设备处于锁定状态一个小时左右之后,它才会启动?我能理解打开设备屏幕以使NFC开始工作的必要性——关于NFC的文档提到,出于安全原因,当屏幕关闭时,NFC会进入睡眠状态。但为什么这需要解锁设备呢?或者这不是关于供应商本身,我的理解是完全错误的?

    升级版。 我有一个广播接收器,当设备重新启动时,它会唤醒应用程序——我需要在这里做一些工作,这部分工作包括从中读取数据 SharedPreferences . 在我改变了那个广播接收器的动作过滤器之后,它就启动了 之后 用户实际上已经授权了自己,绝大多数崩溃都与试图读取的内容有关 共享优先权 虽然处于加密状态的状态已经不复存在,但其中的一小部分(比如之前崩溃数量的0.1%)仍然存在。

    在这一点上,我确信它必须连接到设备跳回加密状态,但是

    对于潜在的原因是什么以及如何处理这些问题,有什么想法吗?

    直接引导模式文档现在包含以下语句:

    所以基本上手机不应该在屏幕锁定后进入加密状态,它应该只发生在重启之后和授权之前。

    0 回复  |  直到 7 年前
    推荐文章