1. 基本信息
| 项目 | 内容 |
|---|---|
| 名称 | restore-credentials-android-skills |
| 作者/维护者 | Google LLC |
| 来源链接 | https://github.com/android/skills/tree/main/identity/restore-credentials |
| 许可证 | Apache License 2.0(数据来自 GitHub API) |
| GitHub Stars | 所属合集仓库 android/skills 整体 7,317(数据来自 GitHub API;该数字属整个合集,不代表本技能自身热度) |
| Forks | 477(同上,属合集整体数字) |
| 最新版本 | SKILL.md 标注 last-updated 2026-09-01 |
| 安装方式 | Android CLI 一条命令,或手动复制目录到 Agent 技能目录 |
2. 功能介绍与亮点
- 基于 Android Credential Manager API(
androidx.credentials),为应用实现 Restore Credentials(恢复凭据) 功能:用户在新设备上完成系统备份恢复后,无需重新输入密码或走登录流程即可自动重新登录。 - 给出两级恢复架构:Tier 1 在
BackupAgent.onRestoreFinished()回调中后台静默执行(用户尚未打开应用前完成);Tier 2 在 LauncherActivity.onCreate()中兜底,覆盖网络中断、allowBackup关闭等失败场景。 - 完整覆盖创建、获取、清除恢复凭据三个阶段的 Kotlin 代码示例,并逐条列出 DO/DON’T 清单(如恢复凭据类型判断、异常处理、避免与
allowBackup设置产生矛盾行为)。 - 明确划清客户端与服务端职责:技能只负责客户端集成,正文单列“后端准则”章节(凭据类型区分存储、防止孤儿凭据、TTL 设置、多设备支持),并要求 Agent 在完成客户端实现后原样转达给开发者,不得代为实现后端逻辑。
- 与同仓库
verified-email共用同一套 Credential Manager 基础设施,两者可组合使用(免验证码验证 + 换机免登录)。
3. 适用场景
所属固定分类:工程效率与代码质量——该技能教的是如何在 Android 客户端代码中集成 androidx.credentials SDK 完成特定登录状态迁移的编码流程,属技术栈/SDK 编码指南;与库内 --neighbors "Android Credential Manager 客户端集成" 命中最多的分类(13/47,含 agp-9-upgrade、android-cli、camerax、testing-setup 等同仓库编码类技能)及同仓库姊妹技能 verified-email-android-skills 的既有分类判定一致。
适用人群:已使用或计划使用 Credential Manager 实现登录的 Android 开发团队,尤其是希望在用户更换新设备后自动恢复登录态、减少“重新登录”环节流失的产品;要求项目最低支持 Android 9(API 28)、Google Play services 24220000 及以上版本。
4. 跨 Agent 兼容性
- Claude Code:⚠️ 需适配。技能目录本身是标准 SKILL.md + YAML frontmatter + references 结构,遵循开放的 Agent Skills 规范,可手动复制到
.claude/skills/使用;但官方 Android CLI 安装器默认只为 Gemini 与 Antigravity 生成技能目录,不会自动识别 Claude Code。 - Codex:⚠️ 需适配,理由同上——技能内容本身与 Agent 无关(纯 Markdown + Kotlin/Groovy 代码示例),但需手动放置或显式指定安装目标。
- OpenClaw:❓ 未验证。
- Hermes Agent:❓ 未验证。
判断依据:核对 android/skills 仓库 README「Install Android skills」章节,其官方安装命令 android skills add <skill> --project=. 明确写明“若未指定 --agent 且未检测到现有 Agent 目录,默认为 Gemini 与 Antigravity 安装”,未将 Claude Code / Codex 列入默认安装目标。
5. 推荐理由
Google 官方将“换设备后自动恢复登录”这一几乎所有需要账号体系的 App 都会遇到的痛点,沉淀为一套结构清晰、双层容错(后台静默 + 前台兜底)的标准实现方案,附带完整代码示例与明确的前后端职责边界,能显著降低开发者踩坑成本。
6. 评分
| 维度 | 分数 | 说明 |
|---|---|---|
| 受欢迎程度 | 7 | Google LLC 官方出品(Android 平台所有者本身);所属合集仓库整体 7,317★ 不代表本技能自身热度,子技能自身除底层 Restore Credentials 功能的官方博客/文档报道外,暂无独立于合集之外的第三方讨论证据 |
| 可用性 | 8 | 步骤清晰、含完整两级架构说明与 Kotlin/Groovy 代码示例,2026-09-01 近期仍有更新维护;但核心依赖 androidx.credentials 目前为 1.7.0-alpha03 预发布版本,且明确要求开发者自行实现服务端加密校验逻辑,非纯复制即用 |
| 安全性 | 9 | 纯文档/代码指南类技能,本身不执行 shell 命令、不联网外发数据;License 明确、官方维护、无夹带私货或可疑指令迹象 |
安全检查清单:
① Shell 命令:无,技能不执行任何 shell 命令,仅指导添加 Gradle 依赖与编写 Kotlin 代码。 ② 联网外发:技能本身不联网;文档描述的是 App 运行时调用系统级 Credential Manager API 与 Google 身份验证服务器交互,属功能本身而非技能夹带的外发行为。 ③ API key/凭据:无需 API key;SKILL.md 未索取任何开发者凭据,且明确要求服务端做签名校验。 ④ 可疑指令:正文含一处面向 Agent 的强指令(“完成客户端实现后必须原样转达后端准则给开发者,不得代为实现后端逻辑”),经核实用途是防止 Agent 越权实现未经审查的后端加密校验代码,不涉及推广无关产品或外发数据,不属于夹带私货类可疑指令。 ⑤ 作者信誉:Google LLC 官方维护,无造假迹象。 ⑥ License:Apache License 2.0,明确。 ⑦ 维护时间:2026-09-01 更新,活跃维护。
7. 跟同类 Skills 相比的优势
| 对比对象 | 定位 | 差异 |
|---|---|---|
| verified-email-android-skills(同仓库) | 用系统凭据替代邮箱验证码完成免验证码验证 | 解决“注册/找回时验证身份”问题,本技能解决“换设备后免重新登录”问题,二者共用 Credential Manager 基础设施但服务不同的登录生命周期阶段,可组合使用 |
| auth0-auth0-agent-skills | Auth0 第三方托管身份平台的 Agent 集成技能 | 需注册 Auth0 账号并管理平台 API 凭据,是“接入外部身份托管服务”路线;本技能调用 Android 系统内置 Credential Manager,无需额外身份服务商账号 |
差异化在于:不依赖任何第三方身份托管平台,而是利用 Android 系统级备份恢复机制与端侧凭据管理,对已使用 Credential Manager 的应用改造成本更低。
8. 用户评价
该技能目前在第三方平台尚无具名用户评价。
9. 安装使用方式
方式一:Android CLI(官方,需先安装 Android CLI)
android skills add restore-credentials --project=.
未指定 --agent 时默认为 Gemini 与 Antigravity 自动安装;面向 Claude Code / Codex 需显式使用 --agent 参数,或使用下方手动方式。
方式二:手动安装(适用于 Claude Code / Codex)
从 https://github.com/android/skills/tree/main/identity/restore-credentials 下载 SKILL.md 与 references/ 目录,整体复制到项目对应 Agent 的技能目录(如 .claude/skills/restore-credentials/)。
安装后注意事项:向 Agent 描述“给 App 加换机免登录/恢复凭据”等相关任务,Agent 会自动检索并使用该技能;无需重启,生效范围仅限当前项目/会话;首次使用需在 build.gradle 声明 androidx.credentials 相关依赖(技能会指导添加),并已具备可复用的服务端 passkey 基础设施(同一套服务端实现可同时支撑 passkey 与恢复凭据)。
10. 注意事项
- 核心依赖
androidx.credentials目前为 1.7.0-alpha03 预发布版本,生产环境使用需自行评估稳定性风险。 - 技能不包含服务端加密校验实现,需开发者自行完成 FIDO2/WebAuthn 签名与孤儿凭据清理等后端逻辑。
- 仅覆盖 Android 客户端集成,最低要求 API 28(Android 9)及对应版本 Google Play services。
- OpenClaw、Hermes Agent 兼容性未经专门验证,建议先小范围试点。
- 若开发者尚未为应用搭建 passkey 服务端基础设施,需先完成该前置工作才能落地本技能。