安装与升级

选择合适的 APK,安装 Throne for Android,从 1.x 或 NekoBox 升级,并让应用保持最新。

本页说明应下载哪个 APK、如何安装、如何从旧版本迁移,以及更新如何进行。Throne for Android 需要 Android 7.0 或更高版本,可在手机、平板和 Android TV 设备上运行。

选择合适的 APK

每个版本都为每种处理器类型(ABI)各提供一个 APK。没有能在所有设备上运行的通用 APK,因此请选择与你的设备匹配的文件:

APK 典型设备
Throne-<version>-arm64-v8a.apk 近几年的几乎所有手机和平板
Throne-<version>-armeabi-v7a.apk 较旧的 32 位手机,以及许多 Android TV 盒子和电视棒
Throne-<version>-x86_64.apk 模拟器、部分 Chromebook 和 PC

没有面向 32 位 x86 设备的版本。

起决定作用的是 Android 系统,而不是处理器。许多电视盒子使用 64 位处理器,但运行的是 32 位 Android,它们需要 armeabi-v7a。

要查看设备的 ABI,请打开一个设备信息类应用,查找 ABI 或指令集。如果你有一台装有 adb 的电脑,可以用以下命令输出 ABI:

adb shell getprop ro.product.cpu.abi

如果不确定,请先尝试 arm64-v8a。如果 Android 提示该应用不兼容,或者不安装它,请改用 armeabi-v7a。

下载与校验

从下载页面或 GitHub 发布页下载 APK。版本标签以 v 开头,例如 v2.0.0。

每个版本还包含 SHA256SUMS,即该版本各 APK 的 SHA-256 校验和。校验是可选的,它可以确认文件在下载过程中没有被更改或损坏。请把 APK 和 SHA256SUMS 放在电脑上的同一个文件夹中,然后运行适用于你系统的命令。

Linux:

sha256sum -c --ignore-missing SHA256SUMS

输出中你的文件必须显示 OK,例如 Throne-2.0.0-arm64-v8a.apk: OK。

macOS:

shasum -a 256 Throne-2.0.0-arm64-v8a.apk

Windows:

Get-FileHash .\Throne-2.0.0-arm64-v8a.apk -Algorithm SHA256

在 macOS 和 Windows 上,请将输出的校验和与 SHA256SUMS 中对应你文件的那一行进行比较。字母大小写无关紧要。

安装

如果已安装 Throne for Android 1.x,请先阅读从 1.x 或 NekoBox 升级。

  1. 打开下载的 APK,例如从浏览器的下载列表或文件管理器中打开。
  2. 如果 Android 阻止安装,请允许你用来打开该文件的应用安装应用。在 Android 8 及更高版本上,点按提示中的 设置(Settings),然后开启 允许来自此来源的应用(Allow from this source)。在 Android 7 上,请在 Android 的安全设置中开启 未知来源(Unknown sources)。
  3. 返回并点按 安装(Install)。
  4. 打开 Throne 并回答首次启动时的问题。参见权限与后台运行。

关于 Android TV,请参见 Android TV。

从 1.x 或 NekoBox 升级

Throne for Android 2.0.0 基于桌面版核心重新构建。它使用新的密钥签名,并采用新的数据格式:

  • Android 无法在 Throne for Android 1.x 之上安装 2.0.0。在你卸载旧版本之前,安装都会失败。
  • 2.0.0 启动时没有任何配置、分组或设置。它无法读取旧应用的数据。
  • 它无法恢复旧备份,即 throne_backup_….json 文件以及 WebDAV 上的 .zip 文件。它只能恢复 .thrbackup 文件,也就是 Throne 桌面版的备份格式。
  1. 在旧应用中复制每个订阅的 URL,并保存在安全的地方,例如一条私密笔记中。要找到它,请在侧边菜单中打开 分组(Group),点按该分组的编辑按钮(铅笔图标),然后复制 订阅链接(Subscription Link)。不要使用 分享订阅(Share Subscription):它复制的是 2.0.0 无法读取的 sn:// 链接。
  2. 导出不是来自订阅的配置:打开该分组的菜单,选择 导出(Export)→ 导出到文件(Export to file)。该文件以分享链接的形式包含这些配置。对于某些类型,例如 WireGuard、SSH、ShadowTLS、Mieru、代理链和自定义配置类型的配置,旧应用会写出 2.0.0 无法导入的 sn:// 链接。请记下这些配置的设置,以便重新创建它们。
  3. 如果你在 Throne 桌面版中使用相同的配置,也可以改为在桌面版中创建备份(设置(Settings)→ 基本设置(Basic Settings)→ 备份和恢复(Backup and Restore)),之后在手机上恢复。参见在桌面版与 Android 之间迁移。
  4. 卸载旧应用。
  5. 按照安装中的说明安装 2.0.0。
  6. 重新添加订阅(添加服务器配置(Add profile)→ 从剪切板导入(Import from clipboard)→ Create new subscription group),导入导出的文件(添加服务器配置 → 从文件中导入(Import from file)),或恢复桌面版备份(侧边菜单 → 工具(Tools)→ Restore)。

NekoBox for Android: 原版 NekoBox 应用的包名不同,因此 Android 会把 Throne 与它并列安装。Throne 无法读取 NekoBox 的数据或备份。请通过订阅链接迁移你的订阅。同一时间只能有一个 VPN 应用处于连接状态。

稳定版与预览版

稳定版以普通发布版本(release)的形式发布在 GitHub 上,例如 v2.0.0。预览版会自动以 GitHub 预发布版本(pre-release)的形式发布,标签形如 v<version>-pre.<number>。它们包含最新的更改,用于测试,因此可能存在 bug。

预览版在应用打开时会显示一条警告:“本应用为预览版,可能存在诸多问题。若您不愿参与测试,请前往GitHub下载正式发布版本!”在你点按 不再显示(Don't show again)之前,每次启动都会再次显示该警告。更新到较新的预览版后,警告会重新出现。

稳定版和预览版使用同一个密钥签名,因此较新的版本可以直接覆盖安装在较旧的版本之上,无需卸载。要在应用内更新程序中接收预览版,请开启 Allow updating to beta versions。

应用内更新程序

从 GitHub 获取的版本可以自行更新:

  1. 在侧边菜单中打开 关于(About),点按 Check for updates。其下方的一行显示更新渠道:“Channel: stable releases”(渠道:稳定版)或“Channel: stable and pre-releases”(渠道:稳定版和预发布版)。
  2. 如果有新版本,Throne 会显示“发现新版本”,并列出版本号、下载大小和更新说明。点按 Update。
  3. 在 Android 8 及更高版本上,Throne 第一次会询问“Allow installing updates”(允许安装更新)。点按 打开设置(Open settings),允许 Throne 安装应用,然后返回。
  4. Throne 会下载并检查 APK,然后 Android 会请你确认安装。

替换应用期间连接会停止,更新完成后会重新启动。

更新设置位于 设置(Settings)→ General 的 Updates 部分:

设置 默认值 作用
Allow updating to beta versions 关闭 同时提供预发布版本(预览版)。
Check for updates daily 关闭 每天检查一次,并显示通知“Throne … is available”(Throne … 已发布)。该通知带有 Skip this version 按钮。

在安装任何内容之前,Throne 会检查下载的文件:

  • 其大小和 SHA-256 校验和,需与该版本的更新清单(throne-update.json)中列出的一致;
  • 它是 Throne,并且比已安装的版本更新;
  • 它与已安装的应用使用同一个密钥签名,并且使用 Throne 发布密钥签名。

如果任何一项检查失败,都不会安装任何内容。如果你的副本不是用 Throne 发布密钥签名的(例如来自其他来源的构建),更新程序会显示“The download is signed with a different key than this build, so Android cannot install it as an update. Back up, uninstall this build and install the release from GitHub.”(下载的文件与当前版本的签名密钥不同,因此 Android 无法将其作为更新安装。请先备份,卸载当前版本,然后安装 GitHub 上的正式版本。)

更新程序还有以下行为:

  • 它会安装与你已安装版本相同 ABI 的 APK,例如 arm64-v8a。它绝不会切换到其他 ABI。
  • 有些版本无法在应用内安装:没有更新清单的版本,以及没有适用于你的 ABI 的 APK 的版本。此时 Throne 会显示“This update cannot be installed from the app (…). Download it from the release page.”(此更新无法在应用内安装(…)。请从发布页面下载。),并提供 Open in browser 按钮。
  • 当 设置 → 订阅(Subscriptions)中的 Use proxy 开启,或运行模式为 仅代理(Proxy only),并且 Throne 已连接时,检查和下载会经由 Throne 的本地代理进行。没有配置在运行时,它们会直接连接。开启 禁用混合入站(Disable mixed inbound)时,它们不会使用本地代理。
  • 更新时绝不会忽略 TLS 证书错误,即使开启了 Ignore TLS errors 也是如此。

F-Droid 版本

源代码中还有第二个构建变体 fdroid,供 F-Droid 使用。它没有应用内更新程序:没有 关于(About)→ Check for updates 和 Updates 设置,应用也不会请求安装应用的权限。Throne for Android 目前尚未上架 F-Droid,已在 #37 中请求上架。

只有当更新与已安装的应用使用同一个密钥签名时,Android 才会安装它。因此,使用其他密钥签名的版本与来自 GitHub 的版本无法相互更新。要切换版本,请先备份数据(侧边菜单 → 工具(Tools)→ Create backup),卸载应用,安装另一个版本,然后恢复备份。