安全
此表列出了 androidx.security
组中的所有工件。
工件 | 稳定版 | 候选版 | Beta 版 | Alpha 版 |
---|---|---|---|---|
security-crypto | 1.0.0 | - | - | 1.1.0-alpha06 |
security-app-authenticator | - | - | 1.0.0-beta01 | - |
security-identity-credential | - | - | - | 1.0.0-alpha03 |
声明依赖项
要添加对安全的依赖项,您必须将 Google Maven 存储库添加到您的项目中。阅读 Google 的 Maven 存储库 以了解更多信息。
在您的应用程序或模块的 build.gradle
文件中添加您需要的工件的依赖项
有关依赖项的更多信息,请参阅 添加构建依赖项。
反馈
您的反馈有助于改进 Jetpack。如果您发现新的问题或有改进此库的想法,请告诉我们。在创建新问题之前,请查看此库中的 现有问题。您可以通过单击星形按钮为现有问题投票。
有关更多信息,请参阅 问题跟踪器文档。
Security-State 版本 1.0
版本 1.0.0-alpha04
2024 年 8 月 7 日
androidx.security:security-state:1.0.0-alpha04
已发布。版本 1.0.0-alpha04 包含 这些提交。
注意
- 将
compileSdk
更新为 35 5dc41be
API 更改
- 重大更改:组件枚举已被字符串常量替换,以实现可扩展性。(Ia3283)
版本 1.0.0-alpha03
2024 年 7 月 10 日
androidx.security:security-state:1.0.0-alpha03
已发布。版本 1.0.0-alpha03 包含 这些提交。
错误修复
- 修复 Android 安全公告错误的 ASB-A- 模式、附加组件的 JSON 解析以及
Webview
包裹式检索。(Ide86a)
版本 1.0.0-alpha02
2024 年 6 月 26 日
androidx.security:security-state:1.0.0-alpha02
已发布。版本 1.0.0-alpha02 包含 这些提交。
错误修复
- 修复了获取内核版本的逻辑。(I5602a)
版本 1.0.0-alpha01
2024 年 6 月 12 日
androidx.security:security-state:1.0.0-alpha01
已发布。版本 1.0.0-alpha01 包含 这些提交。
新功能
- Security State 是一个新的库,开发人员可以使用它来获取有关可更新系统组件的版本、安全更新和应用修复的可操作数据。
Security-App-Authenticator-Testing 版本 1.0
版本 1.0.0-beta01
2024 年 3 月 6 日
androidx.security:security-app-authenticator:1.0.0-beta01
和 androidx.security:security-app-authenticator-testing:1.0.0-beta01
已发布。版本 1.0.0-beta01 包含 这些提交。
版本 1.0.0-alpha02
2023 年 12 月 13 日
androidx.security:security-app-authenticator-testing:1.0.0-alpha02
已发布。 版本 1.0.0-alpha02 包含这些提交。
错误修复
- 更新了针对新 API 行为的测试,该行为不再假设
Binder#getCalling[Uid|Pid]
(如果未提供给[check|enforce]CallingAppIdentity
API)。(I1851b)
版本 1.0.0-alpha01
2021 年 6 月 2 日
androidx.security:security-app-authenticator-testing:1.0.0-alpha01
已发布。 版本 1.0.0-alpha01 包含这些提交。
新功能
这个测试库提供了一个构建器,可用于配置可注入的 AppAuthenticator 以满足测试要求。该库支持多种配置 AppAuthenticator 的方法
- 可以指定一个通用的测试策略,该策略会为配置中声明的所有软件包报告签名匹配。
- 可以指定各个软件包以返回与所有其他软件包的签名匹配,而所有其他软件包则报告不匹配。
- 可以为每个软件包设置显式签名标识;生成的 AppAuthenticator 只有在提供的标识与配置文件中的声明匹配时才会报告签名匹配。
- 软件包也可以被视为未安装或具有显式 UID。
Security-App-Authenticator 版本 1.0.0
版本 1.0.0-alpha03
2023 年 12 月 13 日
androidx.security:security-app-authenticator:1.0.0-alpha03
已发布。 版本 1.0.0-alpha03 包含这些提交。
API 更改
- 添加了对以下用例的支持:在需要验证的软件包的 UID/PID 不可用时;API 现在支持诸如
startActivityForResult
和活动/接收器之类的用例,其中调用应用程序的标识通过[Activity|Broadcast]Options#setShareIdentityEnabled
共享。 [check|enforce]CallingAppIdentity(String, String)
的行为已更新以支持这些新用例;如果未明确提供,这些方法将不再默认使用Binder#getCalling[Uid|Pid]
,而是跳过对调用软件包的 UID 的验证。(I1851b)
版本 1.0.0-alpha02
2021 年 6 月 2 日
androidx.security:security-app-authenticator:1.0.0-alpha02
已发布。 版本 1.0.0-alpha02 包含这些提交。
API 更改
- 为了准备支持 Android 12 中引入的新
knownSigner
权限保护标志,配置中不再允许指定 digestAlgorithm 属性;相反,所有证书摘要都应使用 SHA-256 计算。
错误修复
- 配置中提供的所有证书摘要现在都已规范化,以确保在运行时计算摘要以及在使用测试库时定义显式签名标识时,都能报告成功的签名匹配。
版本 1.0.0-alpha01
2021 年 5 月 5 日
androidx.security:security-app-authenticator:1.0.0-alpha01
已发布。 版本 1.0.0-alpha01 包含这些提交。
新功能
AppAuthenticator 是一个新的库,旨在简化基于签名标识的应用程序信任验证。应用程序只需指定包含受信任应用程序的软件包名称和签名标识的 XML 配置文件,库将在运行时处理验证应用程序的签名标识。
版本 1.1.0
版本 1.1.0-alpha06
2023 年 4 月 19 日
androidx.security:security-crypto:1.1.0-alpha06
和 androidx.security:security-crypto-ktx:1.1.0-alpha06
已发布。 版本 1.1.0-alpha06 包含这些提交。
新功能
- 将 Tink 依赖项更新为 1.8.0
版本 1.1.0-alpha05
2023 年 2 月 22 日
androidx.security:security-crypto:1.1.0-alpha05
和 androidx.security:security-crypto-ktx:1.1.0-alpha05
已发布。 版本 1.1.0-alpha05 包含这些提交。
错误修复
- 修复了
MasterKeys.getOrCreate
中的竞争条件 (I3391e, b/268572037)
版本 1.1.0-alpha04
2022 年 11 月 9 日
androidx.security:security-crypto:1.1.0-alpha04
和 androidx.security:security-crypto-ktx:1.1.0-alpha04
已发布。 版本 1.1.0-alpha04 包含这些提交。
新功能
- 删除了首次启动应用程序时的日志消息“未找到密钥集,将生成一个新的密钥集”。(b/185219606)
- 将 Tink 依赖项升级到版本 1.7.0。
API 更改
- 将
EncryptedFile#openFileInput()
的更改为抛出FileNotFoundException
,而不是在请求的文件不存在时抛出通用的IOException
。(I80e41, b/148804719) - 更新了 'MasterKeys' 类,要求 Android M 而不是它的每个方法。(I8b4b8)
- 更改
EncryptedSharedPreferences
上所有首选项获取器(例如#getString
、#getInt
)以在极少数情况下抛出SecurityException
,在这种情况下,值的类型无法与定义的枚举变体之一匹配。(b/241699427)
错误修复
- 将 security-crypto-ktx 库的最低 SDK 版本与 security-crypto 同步,将其降低到 v21 (b/193550375)
- 修复了在构建多个
EncryptedFile
时出现的并发错误 (b/136590547)
外部贡献
- 收到来自 [email protected] 的
EncryptedSharedPreferences.Editor#remove
的修复 (b/224994760, b/134197835, f44d44d)
Security-Crypto-Ktx 版本 1.1.0-alpha03
2021 年 5 月 18 日
androidx.security:security-crypto-ktx:1.1.0-alpha03
已发布。 版本 1.1.0-alpha03 包含这些提交。
更新为匹配 androidx.security:security-crypto:1.1.0-alpha03
。
版本 1.1.0-alpha03
2020 年 12 月 2 日
androidx.security:security-crypto:1.1.0-alpha03
已发布。 版本 1.1.0-alpha03 包含这些提交。
新功能
- 将 Tink 更新为稳定版本
1.5.0
版本 1.1.0-alpha02
2020 年 8 月 5 日
androidx.security:security-crypto:1.1.0-alpha02
和 androidx.security:security-crypto-ktx:1.1.0-alpha02
已发布。 版本 1.1.0-alpha02 包含这些提交。
新功能
- 将 Tink 更新为稳定版本
1.4.0
错误修复
- Tink 更新应解决与阴影 Protobuf 依赖项相关的 R8 和 Proguard 问题。
- Tink 更新应优雅地处理 AndroidKeyStore 并发失败。
外部贡献
- 在 apply 上清除
mKeysChanged
,修复 EncryptedSharedPreferences (aosp/1323026)
版本 1.1.0-alpha01
2020 年 6 月 10 日
androidx.security:security-crypto:1.1.0-alpha01
已发布。 版本 1.1.0-alpha01 包含这些提交。
新功能
- 现在支持 Lollipop(API 级别 21+)。请注意,对于 API 21 和 22,不会使用 AndroidKeyStore。(I7c12d, b/132325342)
- 新的 MasterKey 类为密钥提供了更多选项,同时弃用 MasterKeys 以支持新功能和不支持 KeyGenParamSpec 的 Android 版本。
Security-Identity-Credential 版本 1.0.0
版本 1.0.0-alpha03
2021 年 9 月 1 日
androidx.security:security-identity-credential:1.0.0-alpha03
已发布。 版本 1.0.0-alpha03 包含这些提交。
新功能
- 添加了对 Android 12 中的硬件支持的身份凭据功能的支持。
版本 1.0.0-alpha02
2021 年 2 月 24 日
androidx.security:security-identity-credential:1.0.0-alpha02
已发布。 版本 1.0.0-alpha02 包含这些提交。
错误修复
- 更新身份凭据 API 以匹配 Android 12 计划 (Iff83e)
版本 1.0.0-alpha01
2020 年 8 月 19 日
androidx.security:security-identity-credential:1.0.0-alpha01
已发布。 版本 1.0.0-alpha01 包含这些提交。
新功能
这个 Jetpack 版本包含 Identity Credential API 的 Jetpack 版本,该 API 已添加到 Android 11 和 API 级别 30 中。如果在 Android 11 上运行并且设备具有硬件支持的身份凭据支持,则此 Jetpack 只会将调用转发到平台 API。否则,将使用基于 Android Keystore 的实现。虽然基于 Android Keystore 的实现无法提供相同级别的安全性和隐私保护,但在所有数据均由发行者签署的情况下,它对于持有人和发行者来说都非常适合。此库需要 API 级别 24 或更高版本。
Identity Credential API 为用户身份文档提供了一个安全存储接口。这些 API 故意非常通用和抽象。在可能的范围内,与凭据验证设备和发行机构 (IA) 通信的消息格式和语义规范不在这些 API 的范围之内。API 依赖的数据结构与即将发布的 ISO/IEC IS 18013-5 个人识别 — 符合 ISO 标准的驾驶执照 — 第 5 部分:移动驾驶执照 (mDL) 应用程序标准中的数据结构兼容。
API 更改
- 添加了身份凭据 Jetpack。 (Icf90b)
版本 1.0.0
版本 1.0.0
2021 年 4 月 21 日
androidx.security:security-crypto:1.0.0
已发布。 版本 1.0.0 包含这些提交。
1.0.0 的主要功能
功能亮点
EncryptedFile
,提供加密的输入和输出流,用于读取/写入加密数据到文件。EncryptedSharedPreferences
,提供 SharedPreferences 的实现,它会自动加密/解密所有键和值。- 通过 MasterKeys 提供简单的密钥生成。
- 依靠 Tink 1.5.0 来提高稳定性。
版本 1.0.0-rc04
2021 年 1 月 13 日
androidx.security:security-crypto:1.0.0-rc04
已发布。 版本 1.0.0-rc04 包含这些提交。
错误修复
- 将 Tink 升级到 1.5.0 以提高稳定性。
版本 1.0.0-rc03
2020 年 8 月 5 日
androidx.security:security-crypto:1.0.0-rc03
已发布。 版本 1.0.0-rc03 包含这些提交。
新功能
- 将 Tink 更新为稳定版本
1.4.0
错误修复
- Tink 更新应解决与阴影 Protobuf 依赖项相关的 R8 和 Proguard 问题。
- Tink 更新应优雅地处理 AndroidKeyStore 并发失败。
外部贡献
- 在 apply 上清除
mKeysChanged
,修复 EncryptedSharedPreferences (aosp/1323026)
版本 1.0.0-rc02
2020 年 5 月 20 日
androidx.security:security-crypto:1.0.0-rc02
已发布。 版本 1.0.0-rc02 包含这些提交。
错误修复
- 更新到 Tink 版本 1.4.0-rc2,它对 proto buf lite 依赖项进行了遮蔽处理。这解决了与其他 Android SDK 发生冲突的广泛报道的问题。 (I8a831)
- 修复了
EncryptedSharedPreferences
中的apply()
。 (I29069, b/154366606)
版本 1.0.0-rc01
2020 年 4 月 15 日
androidx.security:security-crypto:1.0.0-rc01
已发布。 版本 1.0.0-rc01 包含这些提交。
错误修复
- 添加了检查,以确保如果将
KeyGenParamSpec
传递给MasterKeys.getOrCreate
,如果getUserAuthenticationRequired
返回true
,则getUserAuthenticationValidityDurationSeconds
返回一个值 > 0。 (I911f5) (b/152644939)
版本 1.0.0-beta01
2020 年 3 月 18 日
androidx.security:security-crypto:1.0.0-beta01
已发布,自 1.0.0-alpha02
以来没有变化。 版本 1.0.0-beta01 包含这些提交。
版本 1.0.0-alpha02
2019 年 5 月 23 日
androidx.security:security-crypto:1.0.0-alpha02
已发布。 此版本中包含的提交可以在此 提交日志 中找到。
错误修复
- 修复了从
getAll()
检索与共享首选项关联的键/值的问题。 - 阻止使用受限的首选项键。
- Javadoc 的细微更新。
版本 1.0.0-alpha01
2019 年 5 月 7 日
androidx.security:security-crypto:1.0.0-alpha01
已发布。 此版本中包含的提交可以在 此处 找到。
新功能亮点
EncryptedFile
,提供加密的输入和输出流,用于读取/写入加密数据到文件。EncryptedSharedPreferences
,提供SharedPreferences
的实现,它会自动加密/解密所有键和值。- 通过 MasterKeys 提供简单的密钥生成。