以下问题用 android 版本 4.3 和 nexus 7 测试
使用Android 4.3 版本的KeyStore 时,将锁屏设置为none 后key 会被删除,之前是否设置了none 无关紧要。
要重现这一点,您可以使用位于
“sdk\samples\android-18\security\keystore\BasicAndroidKeyStore”下的提供的 android 示例。
运行应用程序后:
- 项目清单
- 符号(应该为空)
- 生成密钥
- 签署(将签署某事)
- 关闭应用程序
- 重新开始
- 签署(将签署某事)
- 将屏幕锁定设置为“无”(即使之前没有)(可以在设置 -> 安全 -> 屏幕安全下找到)。
- 返回应用程序并再次尝试签名(将返回 null)
在检查我发现的 android 源代码时,在第 639 行中,密钥库似乎已被重置。请参阅:https ://android.googlesource.com/platform/frameworks/base/+/52c489cd63cca0361f374f7cb392018fabfa8bcc/core/java/com/android/internal/widget/LockPatternUtils.java
有谁知道为什么会这样?我将此报告给 android 社区 https://code.google.com/p/android/issues/detail?id=60176
编辑:在 android 版本 4.2 中,如果保存了某些密钥,则无法将锁定屏幕设置为无。在这样做之前,您必须先删除您的凭据。