安全
此表列出了 androidx.security
组中的所有 artifact。
Artifact | 稳定版 | 候选发布版 | Beta 版 | Alpha 版 |
---|---|---|---|---|
security-crypto | 1.0.0 | - | 1.1.0-beta01 | - |
security-app-authenticator | - | 1.0.0-rc01 | - | - |
security-identity-credential | - | - | - | 1.0.0-alpha03 |
声明依赖项
要添加对 Security 的依赖项,您必须将 Google Maven 代码库添加到您的项目中。请阅读 Google 的 Maven 代码库以了解更多信息。
在您应用或模块的 build.gradle
文件中添加所需 artifact 的依赖项
有关依赖项的更多信息,请参阅 添加构建依赖项。
反馈
您的反馈有助于改进 Jetpack。如果您发现新问题或有改进此库的建议,请告诉我们。在创建新问题之前,请查看此库中的现有问题。您可以通过点击星形按钮为您关注的现有问题投票。
如需了解更多信息,请参阅问题跟踪器文档。
Security-State 1.0 版
1.0.0-beta01 版
2025年2月26日
androidx.security:security-state:1.0.0-beta01
已发布。1.0.0-beta01 版包含这些提交。
Bug 修复
- 修复了阻止
getPatchedCves()
为COMPONENT_SYSTEM_MODULES
返回已打补丁的 CVE 的问题。(Ice5e2)
1.0.0-alpha05 版
2025年1月29日
androidx.security:security-state:1.0.0-alpha05
已发布。1.0.0-alpha05 版包含这些提交。
新功能
- 默认系统模块的包名已添加到库的清单文件中,以允许客户端应用获取系统模块的设备 SPL。(Ic259c)
API 变更
- 将
SecurityStateManager
重命名为SecurityStateManagerCompat
,为公共属性和函数添加了额外文档,并将getComponentSecurityPatchLevel
和getVulnerabilityReportUrl
设为静态方法。(I44a0c) - 更新可用性功能(
listAvailableUpdates()
和getAvailableSecurityPatchLevel()
方法)已暂时从 API 接口中移除,并计划在未来的库更新中返回。(Idbc5e) - 访问供应商 SPL 现在受编译时标志保护,该标志在默认情况下处于禁用状态,直到将来的库更新。(I45b58)
getGlobalSecurityState()
现在为 SDK 35+ 返回系统服务中的全局安全状态。(I7b9da)
Bug 修复
- 修复了在较旧的 Android 版本上尝试获取 Kernel 的已发布 SPL 时发生的崩溃,这些版本中未提供已发布的 Kernel LTS 版本。(I93dff)
1.0.0-alpha04 版
2024年8月7日
androidx.security:security-state:1.0.0-alpha04
已发布。1.0.0-alpha04 版包含这些提交。
注意
- 将
compileSdk
更新到 35 5dc41be
API 变更
- 破坏性变更:为实现可扩展性,Component 枚举已替换为字符串常量。(Ia3283)
1.0.0-alpha03 版
2024年7月10日
androidx.security:security-state:1.0.0-alpha03
已发布。1.0.0-alpha03 版包含这些提交。
Bug 修复
- 修复了 Android 安全公告错误、附加组件的 JSON 解析以及
Webview
包裹检索的 ASB-A- 模式。(Ide86a)
1.0.0-alpha02 版
2024年6月26日
androidx.security:security-state:1.0.0-alpha02
已发布。1.0.0-alpha02 版包含这些提交。
Bug 修复
- 修复了获取内核版本的逻辑。(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-rc01 版
2025年5月20日
androidx.security:security-app-authenticator:1.0.0-rc01
和 androidx.security:security-app-authenticator-testing:1.0.0-rc01
已发布。1.0.0-rc01 版包含这些提交。
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 版包含这些提交。
Bug 修复
- 更新了测试,以适应新的 API 行为,即在未提供给
[check|enforce]CallingAppIdentity
API 时,不再假定Binder#getCalling[Uid|Pid]
。(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 计算。
Bug 修复
- 配置中提供的所有证书摘要现在都已标准化,以确保在运行时计算摘要以及在使用测试库时定义显式签名身份时,都可以报告成功的签名匹配。
1.0.0-alpha01 版
2021年5月5日
androidx.security:security-app-authenticator:1.0.0-alpha01
已发布。1.0.0-alpha01 版包含这些提交。
新功能
AppAuthenticator 是一个新库,旨在简化基于签名身份的应用信任验证。应用只需指定一个包含受信任应用包名和签名身份的 XML 配置文件,该库就会负责在运行时验证应用的签名身份。
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 版包含这些提交。
Bug 修复
- 更新了身份凭证 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 版本,该版本已添加到 Android 11 和 API 级别 30。如果在 Android 11 上运行且设备支持硬件支持的 Identity Credential,则此 Jetpack 仅将调用转发到平台 API。否则,将使用 Android Keystore 支持的实现。虽然 Android Keystore 支持的实现无法提供相同的安全和隐私级别,但在所有数据均由发行方签名的情况下,它对于持有方和发行方来说都完全足够。此库需要 API 级别 24 或更高版本。
Identity Credential API 提供了用户身份文档安全存储的接口。这些 API 故意设计得相当通用和抽象。在可能的情况下,与凭证验证设备和颁发机构 (IA) 通信的消息格式和语义规范不在这些 API 的范围之内。API 所依赖的数据结构与即将发布的 ISO/IEC IS 18013-5 个人身份识别 — 符合 ISO 标准的驾驶执照 — 第 5 部分:移动驾驶执照 (mDL) 应用标准中的数据结构兼容。
API 变更
- 添加了 Identity Credential Jetpack。(Icf90b)
Security-Crypto 1.1.0 版
1.1.0-beta01 版
2025年6月4日
androidx.security:security-crypto:1.1.0-beta01
和 androidx.security:security-crypto-ktx:1.1.0-beta01
已发布。1.1.0-beta01 版包含这些提交。
API 变更
- 已弃用所有 API,转而支持现有平台 API 和直接使用 Android Keystore。
1.1.0-alpha07 版
2025年4月9日
androidx.security:security-crypto:1.1.0-alpha07
和 androidx.security:security-crypto-ktx:1.1.0-alpha07
已发布。1.1.0-alpha07 版包含这些提交。
API 变更
- 已弃用所有 API,转而支持现有平台 API 和直接使用 Android Keystore。
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 版包含这些提交。
Bug 修复
- 修复了
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)
Bug 修复
- 通过将其降低到 v21,使 security-crypto-ktx 库的最低 SDK 版本与 security-crypto 同步 (b/193550375)
- 修复了构建多个
EncryptedFile
时的并发错误 (b/136590547)
外部贡献
- 收到来自 chr.ibbotson@gmail.com 的
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
Bug 修复
- Tink 更新应修复 R8 和 Proguard 与 shaded Protobuf 依赖项相关的问题。
- 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-Crypto 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 版包含这些提交。
Bug 修复
- 将 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
Bug 修复
- Tink 更新应修复 R8 和 Proguard 与 shaded Protobuf 依赖项相关的问题。
- 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 版包含这些提交。
Bug 修复
- 已更新到 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 版包含这些提交。
Bug 修复
- 添加了检查以确保如果将
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
已发布。此版本中包含的提交可以在此提交日志中找到。
Bug 修复
- 修复了从
getAll()
检索与共享偏好设置关联的键/值时的问题。 - 阻止了受限偏好设置键的使用。
- 次要 Javadoc 更新。
1.0.0-alpha01 版
2019年5月7日
androidx.security:security-crypto:1.0.0-alpha01
已发布。此版本中包含的提交可以在此处找到。
新功能亮点
EncryptedFile
,提供加密的输入和输出流,用于向文件读写加密数据。EncryptedSharedPreferences
,提供SharedPreferences
的实现,可自动加密/解密所有键和值。- 通过 MasterKeys 提供简单的密钥生成。