尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

验证 Ensu Android APK 签名:核对 Ente 官方签名证书指纹的完整指南

验证 Ensu Android APK 签名:核对 Ente 官方签名证书指纹的完整指南 验证 Ensu Android APK 签名核对 Ente 官方签名证书指纹的完整指南【免费下载链接】ente End-to-end encrypted cloud for everything.项目地址: https://gitcode.com/GitHub_Trending/en/enteEnsu 是 Ente 推出的端到端隐私 AI 聊天应用模型完全在本机运行详见 Ensu 工作原理。当您从 GitHub Releases 直接下载 Ensu 的 Android APK 时可以通过核对 APK 的签名证书指纹SHA1/SHA256确认它确实由 Ente 的官方签名证书签发而非被篡改或仿冒的版本。本文将完整说明官方指纹、验证命令、输出比对细节并结合仓库中的签名配置源码解释为什么「来源不同、签名就不同」。为什么要验证 Ensu 的 APK 签名Android 应用都必须使用开发者的私钥签名后才能安装。签名起到三重作用来源证明证明 APK 出自声称的发布者这里即 Ente完整性校验APK 一旦被修改签名立即失效安装会被拒绝更新连续性应用后续升级必须使用同一证书链签名或遵循 Play 的密钥轮换机制否则系统视为不同应用。Ensu 是一个本地优先local-first的 AI 聊天应用对话数据全部留在设备上。正因为如此确保安装的是官方未动过的二进制直接关系到您本地数据的安全。从 GitHub Releases 直接下载 APK 属于侧载sideload场景跳过应用商店审核因此自行验证签名尤其重要。需要特别说明的是以下指纹仅适用于从 GitHub Releases 直接下载的 APK。Play Store 分发的包可能使用不同的签名密钥指纹也会不同详见后文「为什么来源不同、签名就不同」。官方签名证书指纹Ente 官方文档给出的 Ensu Android APKGitHub Releases 直链下载签名证书指纹如下摘要算法指纹SHA155:32:94:80:28:F7:C7:43:9F:41:07:58:4B:13:F1:56:38:00:75:0CSHA25666:99:CF:8C:42:AF:42:7B:55:2C:96:20:54:E5:D6:95:89:FA:49:09:96:55:3A:53:04:5E:B3:9C:C3:4F:2E:66比对时只需核对其中任意一个即可SHA256 强度更高、冲突概率更低优先推荐SHA1 可用于兼容较旧工具链的比对。验证步骤一条命令核对 APK1. 准备 apksigner 工具apksigner随 Android SDK Build-Tools 一起分发路径形如$ANDROID_HOME/build-tools/版本号/apksigner在 Linux / macOS 上如果apksigner不在PATH中可以直接用上面的绝对路径调用也可通过export PATH$ANDROID_HOME/build-tools/版本号:$PATH加入环境变量。Windows 下对应为apksigner.bat。2. 打印 APK 的签名证书apksigner verify --print-certs path_to_apk将path_to_apk替换为您下载的 APK 实际路径。命令执行成功后会在输出中列出签名者Signer及其证书摘要例如Signer #1 certificate DN: CNEnte, OEnte, ... Signer #1 certificate SHA-256 digest: 6699cf8c42af427b552c962054e5d69589fa490996553a53045eb39cc34f2e66 Signer #1 certificate SHA-1 digest: 5532948028f7c7439f4107584b13f1563800750c3. 与官方指纹比对注意格式差异apksigner打印的证书摘要使用小写字母且不含冒号而官方文档公布的指纹使用大写字母且以冒号分隔。也就是说将官方指纹中的冒号全部去掉、字母全部转为小写后应与apksigner的输出完全一致官方 SHA25666:99:CF:8C:42:AF:42:7B:55:2C:96:20:54:E5:D6:95:89:FA:49:09:96:55:3A:53:04:5E:B3:9C:C3:4F:2E:66去掉冒号并转小写6699cf8c42af427b552c962054e5d69589fa490996553a53045eb39cc34f2e66两者逐字符一致即验证通过任何一位不同都说明您手上的 APK不是由 Ente 官方签名证书签发的版本应停止安装并从官方渠道重新下载。apksigner校验不通过时命令本身也会以非零退出码结束并提示DOES NOT VERIFY之类的错误信息可与指纹比对相互印证。4.可选用 keytool 交叉验证如果环境中没有apksigner也可以使用 JDK 自带的keytool打印 JAR/APK 中嵌入的签名证书keytool -printcert -jarfile path_to_apk其输出中的SHA1:与SHA256:指纹为大写、冒号分隔格式可直接与官方指纹逐字对照无需转换。为什么来源不同、签名就不同源码视角签名差异并非玄学而是由构建配置决定的。查看 Ensu Android 工程 app/build.gradle.kts 中的签名配置即可理解signingConfigs { create(release) { if (hasReleaseKeystore) { storeFile file(keystoreProps[storeFile] as String) storePassword keystoreProps[storePassword] as String keyAlias keystoreProps[keyAlias] as String keyPassword keystoreProps[keyPassword] as String } else { storeFile file(../debug.keystore) storePassword android keyAlias androiddebugkey keyPassword android } } }结合 README 的说明可以得出以下几点官方发布Ente 在发布 GitHub Releases 与 Play Store 包时会通过key.properties对应 key.properties.example指定真实的发布密钥因此签名字段与官方公布指纹一致自行从源码构建如果没有配置key.propertiesrelease 构建会回退到仓库内的debug.keystore密钥库密码为android别名为androiddebugkey——这类自编译 APK 的签名指纹必然与官方发布版不同这是正常现象不代表构建有问题Play Store 分发上架 Google Play 的包可能经过 Play 应用签名或使用与 GitHub 直链 APK 不同的密钥体系所以官方文档明确指出 Play Store 包可能使用不同签名密钥、指纹也不适用。结论官方公布的两条指纹只用于「从 GitHub Releases 直接下载的 APK」这一种场景。如果您是从 Play Store 安装的或自行构建的版本指纹不同属于预期行为不必恐慌。常见疑问与注意事项Q1验证时提示「Signer #1 certificate SHA-256 digest」出现了多次APK 可能由多个签名者如 v1/v2/v3 签名方案组合签发--print-certs会逐一列出。请以官方指纹对应的签名者输出为准通常比对Signer #1即可。Q2为什么官方文档只给出 GitHub Releases 的指纹因为 GitHub Releases 的 APK 由 Ente 使用同一把发布私钥签名、全程可控而应用商店渠道的签名策略归各商店平台管理可能启用 Play App Signing 等机制Ente 无法保证指纹不变因此单独给出直链 APK 的指纹。Q3指纹一致是否代表 100% 安全指纹一致只能证明「该 APK 由 Ente 官方签名证书签发且未被篡改」。它不能防御以下情形官方证书本身泄露、您下载的渠道被中间人替换为同样由官方签名但过期的旧版本可再核对版本号、或设备本身已被入侵。验证签名是供应链安全的第一道闸门建议与「仅从 GitHub Releases 等官方渠道下载」结合使用。Q4Ensu 卸载后如何彻底清理模型与本地数据验证安装只是第一步。Ensu 的模型文件与聊天数据存放在应用内部及外部文件目录卸载时一并清除如需手动释放空间参见 Uninstall Ensu。更多关于隐私、模型与故障排查的内容可阅读 Ensu FAQ。小结在侧载场景下核对 APK 签名是确认「拿到的是不是官方原版」最直接、最可靠的工程手段。记住三件事apksigner verify --print-certs打印指纹、去冒号转小写后与官方 SHA256 逐位比对、且指纹只对 GitHub Releases 直链 APK 有效。若比对一致即可放心安装这款完全离线、无账号、无遥测的本地 AI 聊天应用。【免费下载链接】ente End-to-end encrypted cloud for everything.项目地址: https://gitcode.com/GitHub_Trending/en/ente创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表