Decentralization? We're still early!

Obtainium:让安卓开源软件实现自动更新的神器

  • Obtainium:让安卓开源软件实现自动更新的神器

    發布人 Brave 2026-03-01 13:45

    如果你是一个安卓(Android)极客,或者喜欢在 GitHub 和 F-Droid 上挖掘各类开源神器,那你一定遇到过这种烦恼:很多优秀的 App 并没有上架 Google Play,每次更新都得手动去网页下载 APK,既麻烦又容易漏掉版本更新。

    想象一下这样的场景:你在 GitHub 上关注了十几个开源项目——一个好用的 Telegram 第三方客户端、一款强大的广告屏蔽工具、几个复古游戏模拟器……每隔几天,你就不得不挨个打开浏览器,进入 GitHub Release 页面,找到对应的 APK 文件,下载、安装、确认权限——重复十几遍。更糟的是,如果你一段时间忘了检查,可能已经错过了包含重要安全修复的版本更新。

    这时候,Obtainium 就是为你量身定制的"救星"。


    什么是 Obtainium

    简单来说,Obtainium 是一款开源的安卓应用更新管理工具。它不生产应用,也不像传统应用商店那样依赖中心化的软件源。它的核心逻辑是:直接从源头抓取更新。

    只要你提供一个应用的发布页面(比如 GitHub 的 Release 页面),Obtainium 就会自动监测版本变动。一旦有新版,它会通知你并支持直接在应用内下载安装,让"侧载"(Sideloading)的应用也能享受和应用商店一样的自动更新体验。

    用一句话概括它的定位:Obtainium 不是应用商店,而是一个"应用更新聚合器"——它把分散在互联网各个角落的应用发布源统一到一个管理界面中。

    📌 基本信息速览

    项目详情
    开发者ImranR98
    开源协议GPLv3
    当前版本v1.3.2(Build 23293,2026 年 1 月 19 日更新)
    最低系统要求Android 7.0(Nougat)及以上
    开发框架Flutter(跨平台框架,目前仅支持 Android)
    GitHub 仓库ImranR98/Obtainium
    官方网站obtainium.imranr.dev

    核心功能与亮点

    📦 支持超多数据源

    涵盖了 GitHub、GitLab、Codeberg、F-Droid 以及 APKMirror 等主流平台。甚至对于那些没有标准化接口的网页,它还有一个强大的 "HTML 提取" 模式,能从网页链接中嗅探 APK。

    截至 2026 年初,Obtainium 已支持的数据源已远超最初版本,完整列表如下:

    🟢 开源平台(通过 API 获取):

    • GitHub — 最主流的开源项目托管平台
    • GitLab — 另一大开源托管平台,支持自建实例
    • Forgejo(含 Codeberg) — 去中心化的代码托管平台,Codeberg 是其最知名实例
    • F-Droid 官方仓库 — 专注自由开源软件的安卓应用商店
    • 第三方 F-Droid 仓库 — 如 IzzyOnDroid 等社区维护的扩展仓库
    • IzzyOnDroid — 独立的 F-Droid 兼容仓库,更新速度通常快于官方 F-Droid
    • SourceHut — 极简主义的代码托管平台

    🔵 第三方应用市场:

    • APKPure — 广受欢迎的第三方 APK 下载站
    • Aptoide — 去中心化的安卓应用市场
    • Uptodown — 西班牙老牌应用分发平台
    • APKMirror⚠️ 仅支持版本追踪,不支持直接下载
    • Huawei AppGallery(华为应用市场) — 华为生态的官方应用商店
    • Tencent App Store(腾讯应用宝) — 国内主流应用分发渠道
    • CoolApk(酷安) — 国内极客群体常用的应用社区
    • vivo 应用商店(中国区) — vivo 设备的官方应用商店
    • RuStore俄罗斯本土应用商店(近期版本已恢复支持)
    • Moddroid近期新增的数据源

    🟡 其他来源:

    • Jenkins Jobs — 持续集成/持续部署(CI/CD)系统的构建产物
    • Telegram App — 直接追踪 Telegram 官方频道中的 APK 发布
    • Neutron Code — 特定应用的发布源
    • HTML 通用提取模式万能后备方案,可从任意包含 APK 下载链接的网页中提取信息

    💡 小贴士: 对于没有专用数据源适配器的网站,"HTML 通用提取模式"是一个非常实用的兜底方案。它通过解析网页 HTML,自动识别页面中的 APK 下载链接。但需注意,这种基于网页抓取(Web Scraping)的方式在目标网站改版后可能失效,稳定性不如 API 方式。


    🔒 隐私与安全

    作为一个开源项目,它完全免费且无广告。由于是直接从开发者发布的源头下载,规避了第三方市场的篡改风险。

    在安全性方面,Obtainium 的设计理念值得深入理解:

    🛡️ Android APK 签名验证机制

    很多人担心侧载应用的安全性,但 Android 系统本身提供了一道重要的防线——APK 签名验证。这是理解 Obtainium 安全模型的关键:

    • 每个 APK 文件在发布前都必须经过开发者的数字签名,生成唯一的数字指纹
    • 当你安装一个应用的更新时,Android 系统会自动比对新旧版本的签名是否一致
    • 如果签名不匹配(意味着 APK 可能被第三方篡改),系统会直接拒绝安装
    • Android 先后推出了 v1(JAR 签名)、v2(全文件签名,Android 7.0+)、v3(支持密钥轮换,Android 9+)和 v4(增量更新优化,Android 11+)四代签名方案,安全性逐步提升

    这意味着:即使你从非官方渠道获取了 APK,只要首次安装时的来源是可信的,后续的更新都会受到签名机制的保护。任何被篡改的更新包都会被系统拦截。

    🔐 隐私保护设计

    • 无广告、无追踪脚本、无数据采集——完全零遥测
    • 无需注册账号即可使用全部功能
    • 不上传你的应用列表或使用习惯到任何服务器
    • 唯一的网络通信仅限于向你配置的数据源发起版本检查请求

    ⚠️ 安全使用的注意事项

    需要客观指出的是,Obtainium 的安全性在很大程度上取决于用户自身的判断力:

    • Obtainium 本身不对数据源中的应用进行安全审核——它只是忠实地从你指定的来源获取 APK
    • 从 GitHub 官方 Release 下载的知名开源项目通常是安全的,但来自不知名仓库或第三方市场的应用需要你自行甄别
    • 建议搭配 AppVerifier 等工具,在安装前验证 APK 的签名和完整性
    • Privacy Guides 社区建议:优先从开发者官方渠道(如其 GitHub Release 页面或官网)获取 APK,避免使用安全性存疑的第三方聚合站

    ⚡ 高度自动化

    支持后台定期检查更新。对于 Android 12 及以上系统,还可以实现无需手动点击的静默更新。

    自动化是 Obtainium 的灵魂功能,以下是其完整的自动化能力矩阵:

    🕐 全局更新策略

    设置项说明
    更新检查间隔默认每 6 小时检查一次,可自定义调整(最低至 15 分钟)
    仅 Wi-Fi 下载开启后只在 Wi-Fi 环境下载更新,节省移动流量
    仅充电时更新开启后仅在设备充电状态下执行更新操作

    📱 每应用独立控制

    Obtainium 支持为每个应用单独配置更新行为,提供极为精细的管理粒度:

    • 选择是否开启后台自动更新(部分应用你可能希望手动确认后再更新)
    • 选择是否追踪预发布版本(Pre-release)/ Beta 版本
    • 设置版本号过滤规则(例如排除特定架构或变体的 APK)
    • 选择特定的 APK 变体(如 arm64-v8a、x86_64 等,匹配你的设备架构)

    🤖 静默安装的三种实现方式

    要实现"完全无感知"的后台自动更新,Obtainium 提供了三种方案,适用于不同场景:

    方案条件说明
    Android 原生静默安装Android 12+利用系统原生的后台安装能力,无需额外工具
    Shizuku 辅助安装Android 11+,需运行 Shizuku 服务通过 ADB 权限实现静默安装,无需 Root(详见后文教程)
    Root 权限安装已 Root 的设备直接使用超级用户权限完成安装,最为彻底

    💡 关于版本回滚:如果某次更新引入了 Bug 或你不喜欢新版本的变化,Obtainium 还支持回滚到之前的版本——这是大多数应用商店不提供的功能。


    📤 便捷分享与导入

    你可以将自己追踪的应用列表导出为 JSON 文件分享给他人,或者直接导入社区维护的配置包(如模拟器全家桶、ReVanced 增强版等)。

    这一功能的实际应用场景非常丰富:

    🌐 社区众包配置库

    Obtainium 拥有一个官方维护的众包应用配置网站:apps.obtainium.imranr.dev。这个平台汇集了社区成员贡献的"难以添加"的应用配置(即那些需要特殊参数设置才能正确追踪的应用)。你可以:

    • 在网站上搜索你需要的应用,一键将配置导入到 Obtainium 中
    • 按分类浏览,如 "Community Clients"(社区客户端)等专题分类
    • 如果找不到某个应用的配置,可以在 讨论页面 提出请求
    • 贡献你自己的配置——向 配置仓库 提交 Pull Request 即可

    📦 热门社区配置包

    除了单个应用配置,社区还维护了一些实用的"全家桶"配置包,一次导入即可批量添加多个相关应用:

    • Obtainium Emulation Pack安卓模拟器全家桶,包含主流复古游戏模拟器
    • ReVanced 系列YouTube 增强版等定制化应用
    • 隐私工具合集各类隐私保护和广告屏蔽工具

    🔗 Obtainium 协议链接(obtainium://)

    Obtainium 支持自定义协议链接(obtainium://),可以通过链接直接在应用内打开并添加指定应用。但由于 GitHub Markdown 和许多即时通讯工具不支持自定义协议,官方提供了一个 网页重定向服务,将 obtainium:// 链接转换为标准的 https:// 链接。

    📋 GitHub Stars 导入

    如果你习惯在 GitHub 上给项目加 Star 来收藏,Obtainium 还支持直接从你的 GitHub Star 列表中批量导入应用——前提是这些仓库确实发布了 APK Release。


    🎨 Material You 设计

    界面紧跟 Android 系统原生风格,支持动态配色,美观且简洁。

    Obtainium 采用 Material You(Material Design 3)设计语言,具备以下界面特性:

    • 动态取色(Dynamic Color)自动从你的壁纸中提取主题色,与系统风格完美融合(Android 12+)
    • 浅色/深色主题自动切换跟随系统设置或手动指定
    • 简洁的应用管理面板所有追踪的应用一目了然,更新状态以醒目的标识呈现
    • 自定义界面选项可调整字体大小、隐藏不常用的操作按钮以简化界面

    为什么你需要它

    🚫 摆脱应用商店的束缚

    很多好用的工具(如 Telegram 第三方客户端、各类模拟器、广告屏蔽器)因为政策原因无法上架商店,Obtainium 解决了它们的维护难题。

    具体来说,以下几类应用是 Obtainium 的典型使用场景:

    • 📱 第三方客户端如 Telegram 的 Nekogram、Nagram,Reddit 的 Infinity,Twitter/X 的替代客户端等
    • 🎮 游戏模拟器如 Dolphin(Wii/GameCube)、PPSSPP(PSP)、AetherSX2(PS2)、Yuzu/Sudachi(Switch)等
    • 🛡️ 隐私与安全工具如 AdAway(广告屏蔽)、Invizible Pro(DNS+Tor+防火墙)、PCAPdroid(网络抓包)等
    • 📺 流媒体工具如 NewPipe(YouTube 替代客户端)、Seal(视频下载器)等
    • 🔧 系统增强工具如 Shizuku、LSPosed 等需要从 GitHub 获取的工具

    🚀 获取最快更新

    相比 F-Droid 这种需要人工审核的商店,Obtainium 直接对接开发者的 Release,更新速度通常快出数天甚至数周。

    为了让你更直观地理解各种获取方式的差异,以下是一个横向对比:

    对比维度ObtainiumF-DroidGoogle PlayAurora Store
    更新延迟⚡ 几乎实时🐢 数天到数周⚡ 较快⚡ 同 Play
    应用签名📝 开发者原始签名🔑 F-Droid 自有签名(重新编译)📝 开发者签名📝 开发者签名
    安全审核❌ 无(用户自行判断)✅ 有(人工审核源码)✅ 有(自动扫描+人工审核)✅ 同 Play
    需要账号❌ 不需要❌ 不需要✅ 需要 Google 账号⚠️ 可匿名,但功能受限
    隐私保护🟢 极佳🟢 优秀🔴 较差🟡 中等
    应用覆盖范围🌐 取决于你添加的源📦 仅开源应用🏪 最全面🏪 同 Play
    自动更新✅ 支持✅ 支持✅ 支持✅ 支持
    回滚旧版本支持❌ 不支持❌ 不支持❌ 不支持

    ⚠️ 关于 F-Droid 签名的重要提示: F-Droid 官方仓库中的应用是由 F-Droid 服务器使用自有密钥重新编译和签名的,这意味着 F-Droid 版本的签名与开发者在 GitHub 上发布的签名是不同的。因此,你无法直接从 F-Droid 版本"升级"到 GitHub Release 版本(反之亦然),必须先卸载再重新安装。这也是许多用户选择从一开始就使用 Obtainium 从 GitHub 获取应用的原因之一。


    🧰 极客的"全家桶"方案

    配合 Obtainium Wiki 中的教程,你可以将手机里所有的开源 App 集中在一个面板里管理,效率翻倍。

    实际上,许多安卓进阶用户已经将 Obtainium 作为手机上的"第二应用商店"——Google Play 管理主流商业应用,Obtainium 管理所有开源和侧载应用。两者互不冲突,各司其职。


    快速上手指南

    📥 第一步:安装 Obtainium

    你可以通过以下途径获取 Obtainium:

    • 🔗 GitHub Release(推荐): 访问 Obtainium Releases,下载最新的 app-release.apk 文件安装
    • 🏪 F-Droid: 在 F-Droid 中搜索 "Obtainium" 安装(注意:F-Droid 版本更新可能略有延迟
    • 🏪 IzzyOnDroid: 通过 IzzyOnDroid 仓库获取,更新速度通常快于 F-Droid 官方仓库

    ➕ 第二步:添加你的第一个应用

    1. 打开 Obtainium,点击底部的 "+" 按钮
    2. 在 URL 输入框中粘贴应用的发布页面地址
      • 例如,要追踪 NewPipe,输入:https://github.com/TeamNewPipe/NewPipe
    3. Obtainium 会自动识别数据源类型并获取最新的 Release 信息
    4. 确认应用信息无误后,点击 "Add" 添加
    5. 点击 "Install" 即可下载并安装最新版本

    💡 快捷方式:你也可以直接访问 apps.obtainium.imranr.dev,在网站上搜索应用并一键导入配置。


    ⚙️ 第三步:配置自动更新

    1. 进入 Obtainium 的 "Settings"(设置)页面
    2. 设置 "Update check interval"(更新检查间隔),建议设为 6-12 小时
    3. 根据需要开启 "Only download over Wi-Fi"(仅 Wi-Fi 下载)
    4. 如果你的设备支持(Android 12+),开启后台自动安装

    🔑 第四步(推荐):配置 GitHub Personal Access Token

    如果你追踪的 GitHub 应用较多(超过十几个),强烈建议配置 GitHub Personal Access Token(PAT),原因如下:

    GitHub 对未认证的 API 请求有严格的速率限制——每小时仅允许 60 次请求。而 Obtainium 每次检查更新时都需要为每个 GitHub 应用发起至少一次 API 请求。当你追踪的应用超过一定数量后,很容易触发 "Rate Limit"(速率限制)错误,导致无法正常检查更新甚至无法添加新应用。

    配置 PAT 后,请求上限将大幅提升至每小时 5,000 次,完全能满足日常使用。

    配置步骤:

    1. 登录 GitHub,进入 Settings → Developer settings → Fine-grained tokens
    2. 点击 "Generate new token"
    3. 为 Token 命名(如 "Obtainium"),设置合理的过期时间
    4. 在 Repository access 中选择 "Public Repositories (read-only)"
    5. 生成 Token 后复制,打开 Obtainium → Settings → 粘贴到 GitHub Personal Access Token 栏位

    ⚠️ 安全提醒: 2025 年初曾发生一起安全事件——某个第三方 GitHub 代理服务("sky22333/hubproxy")被发现可能将用户的 GitHub Token 发送至代理服务器。如果你曾在 Obtainium v1.2.5 中使用过该代理,请立即撤销并更换你的 GitHub Token。这个事件也提醒我们:仅在 Obtainium 官方设置中填入 Token,切勿使用不可信的代理服务。


    进阶技巧:使用 Shizuku 实现真正的静默安装

    对于追求极致自动化体验的用户,Shizuku + Obtainium 的组合可以实现"完全无感知"的后台自动更新——无需手动点击任何安装确认对话框。

    🔧 什么是 Shizuku?

    Shizuku 是一款利用 Android Debug Bridge(ADB)接口,为第三方应用提供系统级 API 访问能力的工具。简而言之,它让普通应用获得了通常只有系统应用才拥有的部分权限——而这一切无需 Root。

    📋 配置步骤

    第一步:安装 Shizuku

    Google PlayGitHub 下载并安装 Shizuku。

    第二步:启动 Shizuku 服务

    Shizuku 提供三种启动方式:

    方式适用条件是否需要电脑
    🛜 无线调试(推荐)Android 11+❌ 不需要
    🔌 USB 调试所有 Android 版本✅ 需要
    👑 Root 直接启动已 Root 的设备❌ 不需要

    以最推荐的「无线调试」方式为例:

    1. 进入 设置 → 开发者选项(如未开启,需在"关于手机"中连续点击 7 次"版本号"来激活)
    2. 开启 "无线调试"(Wireless debugging)
    3. 点击 "使用配对码配对设备",记下显示的配对码
    4. 打开 Shizuku 应用,按照屏幕提示输入配对码完成配对
    5. 配对成功后,在 Shizuku 中点击 "启动" 按钮
    6. 看到顶部显示 "Shizuku is running" 即表示服务启动成功

    ⚠️ 重要限制:由于 Android 安全机制,Shizuku 服务在每次设备重启后都需要重新启动。如果你使用的是无线调试方式,重启后需要重新执行上述配对步骤。Root 用户不受此限制。

    第三步:在 Obtainium 中启用 Shizuku

    1. 打开 Obtainium → Settings(设置)
    2. 开启 "Use Shizuku or Sui to install"(使用 Shizuku 或 Sui 安装)
    3. (可选)为需要的单个应用开启 "Install as Google Play through Shizuku/Sui"——这会让应用在系统中显示为"通过 Google Play 安装",对于 Android Auto 兼容性等场景非常有用

    完成以上配置后,Obtainium 将在后台自动下载并静默安装所有更新,无需任何人工干预。 🎉


    各数据源的注意事项与技巧

    不同的数据源有各自的特点和限制,了解这些细节能帮助你更高效地使用 Obtainium:

    🐙 GitHub

    • 最常用的数据源,绝大多数开源安卓应用都在此发布 Release
    • ⚠️ 存在 API 速率限制(未认证 60 次/小时,认证后 5,000 次/小时),务必配置 PAT
    • 支持筛选特定架构(arm64-v8a、armeabi-v7a、x86_64 等)的 APK
    • 支持追踪 Pre-release 版本

    🦊 GitLab

    • GitLab 的 Release 机制与 GitHub 类似,但 APK 有时会以非标准方式附加
    • 建议在 Obtainium 设置中配置 GitLab Personal Access Token 以获得更可靠的 APK 提取
    • 支持自建 GitLab 实例

    🏷️ F-Droid

    • ⚠️ 关键提醒:F-Droid 仓库中的应用使用 F-Droid 自有密钥签名,与开发者原始签名不同
    • 这意味着你无法在 F-Droid 版本和 GitHub 版本之间"无缝升级"——必须先卸载再重装
    • 如果你计划长期使用 Obtainium 管理某个应用,建议从一开始就从 GitHub 而非 F-Droid 安装

    📦 APKPure

    • 部分应用可能以 XAPK 格式(而非标准 APK)提供
    • ⚠️ Obtainium 对 XAPK 的支持尚不完善,可能存在安装失败的情况
    • 使用 Shizuku 安装时,APKPure 来源的应用可能会遇到兼容性问题。

    🌐 第三方 F-Droid 仓库 / Jenkins / SourceHut

    • 这些数据源没有固定的域名(不同实例使用不同的 URL),因此 Obtainium 无法自动识别
    • 添加这类来源的应用时,需要手动在 "Override Source"(覆盖数据源)下拉菜单中选择正确的源类型

    前瞻:2026-2027 年 Android 侧载政策变化

    作为关注安卓生态的用户,你需要了解一项即将到来的重大政策变化——Google 的「开发者身份验证」计划:

    • 🗓️ 2025 年 10 月: 开发者身份验证功能开启早期访问
    • 🗓️ 2026 年 3 月: 向所有开发者开放验证通道
    • 🗓️ 2026 年 9 月: 在巴西、印度尼西亚、新加坡和泰国率先生效
    • 🗓️ 2027 年及以后: 逐步扩展为全球强制要求

    这项政策意味着什么?

    • 未来,在认证 Android 设备上安装的所有应用都需要由经过身份验证的开发者注册
    • 但 Google 明确表示:"侧载是 Android 的根基,它不会消失。" 经过验证的开发者仍然可以自由选择通过侧载或任何应用商店分发其应用
    • 开发者和高级用户仍然可以通过 ADB 在自己的设备上安装未验证的应用(用于开发和测试)
    • 这项政策的核心目标是打击恶意应用分发,而非限制用户选择

    对于 Obtainium 用户来说,这意味着绝大多数正规的开源项目开发者只需完成一次身份验证即可继续正常分发应用,Obtainium 的使用方式预计不会受到实质性影响。


    常见问题(FAQ)

    ❓ Obtainium 和 F-Droid 有什么区别?应该用哪个?

    两者并非竞争关系,而是互补的。F-Droid 是一个有审核的应用仓库,专注于自由开源软件,提供经过人工审核的应用;Obtainium 是一个更新管理工具,直接从开发者源头获取 APK。建议两者配合使用:用 F-Droid 发现新应用,用 Obtainium 追踪那些你需要第一时间获取更新的应用。

    ❓ 可以完全替代 Google Play 吗?

    不能,也不应该。Obtainium 擅长管理开源和侧载应用,但主流商业应用(如微信、支付宝、银行 App 等)仍然需要通过官方应用商店获取,以确保安全性和功能完整性。最佳实践是 Google Play + Obtainium 的"双轨制"方案。

    ❓ 为什么我添加了应用却提示 "Rate Limit"?

    这是 GitHub API 的速率限制。未配置 Token 时每小时仅允许 60 次 API 请求,当你追踪的 GitHub 应用较多时很容易触发。解决方法是配置 GitHub Personal Access Token(详见前文"第四步")。

    ❓ 为什么从 F-Droid 安装的应用无法用 Obtainium 从 GitHub 更新?

    因为两者的签名密钥不同。F-Droid 使用自有密钥重新编译和签名应用,导致 Android 系统将其视为"不同来源的应用"而拒绝更新。解决方法是卸载 F-Droid 版本,然后通过 Obtainium 从 GitHub 重新安装。

    ❓ Shizuku 服务重启后失效怎么办?

    这是 Android 的安全限制,非 Root 设备上的 ADB 连接无法在重启后自动恢复。每次重启后需要重新启动 Shizuku 服务(无线调试方式需重新配对)。如果觉得麻烦,可以考虑 Root 后使用 Root 模式启动 Shizuku,该模式不受重启影响。

    ❓ Obtainium 支持 iOS 吗?

    不支持。Obtainium 使用 Flutter 框架开发,虽然 Flutter 理论上支持跨平台,但由于 iOS 的应用安装机制完全封闭(不允许侧载普通应用),Obtainium 在 iOS 上没有可行的实现方案。它是一款纯 Android 工具。


    小结

    Obtainium 填补了 Android 生态中一个长期存在的空缺——让侧载应用也能拥有媲美应用商店的自动更新体验。它不是一个应用商店,不会告诉你该装什么;它是一个更新管理器,忠实地帮你追踪和维护你已经选择的应用。

    对于安卓极客和开源软件爱好者而言,Obtainium 几乎是不可或缺的基础设施级工具。配合 Shizuku 的静默安装能力和社区众包配置的便利性,它让"脱离应用商店的束缚,掌控自己的软件栈"这一理想变得切实可行。

    📎 相关链接汇总

    Brave 回复 1 week, 1 day ago 1 成員 · 0 回复
  • 0 回复

歡迎留言回复交流。

Log in to reply.

讨论開始
00 回复 2018 年 6 月
現在