本仓库使用 GitHub Actions 自动完成:
- 获取最新
ReVanced/revanced-cli和Aunali321/ReVancedExperimentsrelease - 下载 Telegram 官方 APK(
https://telegram.org/dl/android/apk) - 使用自定义签名密钥进行 patch 与签名
- 上传 artifact,并发布/覆盖
telegram-patched-latestRelease 资产
工作流文件:.github/workflows/patch-telegram.yml
revanced-cli 当前签名库按 BKS 读取 keystore。
如果使用 PKCS12/JKS,会报:java.io.IOException: Wrong version of key store.
在本地执行:
# 下载 BouncyCastle Provider(用于 keytool 处理 BKS)
curl -fL -o bcprov.jar \
https://repo1.maven.org/maven2/org/bouncycastle/bcprov-jdk18on/1.78.1/bcprov-jdk18on-1.78.1.jar
keytool -genkeypair \
-v \
-keystore release.bks \
-storetype BKS \
-alias telegramrevanced \
-keyalg RSA \
-keysize 4096 \
-validity 36500 \
-providerclass org.bouncycastle.jce.provider.BouncyCastleProvider \
-providerpath bcprov.jar说明:
-alias可自定义,但后续要和 SecretANDROID_KEY_ALIAS完全一致。keystore password与key password可以相同(推荐)。
curl -fL -o bcprov.jar \
https://repo1.maven.org/maven2/org/bouncycastle/bcprov-jdk18on/1.78.1/bcprov-jdk18on-1.78.1.jar
keytool -importkeystore \
-srckeystore release.keystore \
-srcstoretype PKCS12 \
-srcalias telegramrevanced \
-destkeystore release.bks \
-deststoretype BKS \
-destalias telegramrevanced \
-providerclass org.bouncycastle.jce.provider.BouncyCastleProvider \
-providerpath bcprov.jar转换完成后,后续都用 release.bks。
base64 -w 0 release.bks > keystore.b64base64 release.bks | tr -d '\n' > keystore.b64进入:Repository -> Settings -> Secrets and variables -> Actions
新增以下 4 个 Secrets:
ANDROID_KEYSTORE_B64
- 值:
keystore.b64文件内容(整行)
ANDROID_KEYSTORE_PASSWORD
- 值:keystore 密码
ANDROID_KEY_ALIAS
- 值:创建 keystore 时使用的 alias(例如
telegramrevanced)
ANDROID_KEY_PASSWORD
- 值:alias 对应 key 的密码
- 提交并推送仓库代码
- 打开
Actions -> Patch Telegram APK - 点击
Run workflow
成功后产物位置:
Actions的artifactReleases中固定 tag:telegram-patched-latest- 资产名:
telegram-patched-latest.apk
- 资产名:
- 只要持续使用同一个 keystore + alias + 密码,安装时可直接覆盖更新。
- 如果以前安装的是“其他签名”的包,第一次切换到新签名时可能需要先卸载旧包。
未配置 Secret 或名称拼写错误。
ANDROID_KEYSTORE_PASSWORD 错误,或 ANDROID_KEYSTORE_B64 内容损坏。
你上传的是 PKCS12/JKS,不是 BKS。按本 README 的转换步骤改成 release.bks 后重新上传 Secret。
ANDROID_KEY_ALIAS 或 ANDROID_KEY_PASSWORD 不匹配。
当前 workflow 已显式输出到:work/telegram-patched-latest.apk。
- 不要提交
release.bks、release.keystore、keystore.b64到公开仓库。 - 建议仅在本地临时保存,配置完 Secrets 后删除:
rm -f release.bks release.keystore keystore.b64 bcprov.jar