提问人:IrenKlim 提问时间:3/18/2023 最后编辑:cokeman19IrenKlim 更新时间:9/26/2023 访问量:507
从源代码在 Android 上构建 Telegram 应用程序
Building the Telegram application on Android from source
问:
这是我第一次从源代码编译应用程序,我正在恢复适用于 Android 的 Telegram 5.3.0 版本。
我是否正确理解该版本需要 gradle 版本 4.8 而不是其他版本,以及不高于 8 的 JDK 版本?另外,我没有 reseale.keystore 文件,我可以从较新版本的源代码中获取此文件,还是单独创建此文件?
项目结构:
答:
TLDR:Gradle 包装器已经设置好了,所以你可以使用它使用的任何版本。JDK 8 保证可以工作,其他版本可能会也可能不会工作。您需要创建自己的 release.keystore,它用于对应用程序进行签名,共享会带来严重的安全风险。
注意:我能找到的最接近的 Telegram 来源版本是 5.3.1,所以我将使用它作为参考。
该版本的 Telegram 是使用 Gradle 4.4 和 Android Gradle 插件 3.1.4 设置的。查看 Gradle-AGP 兼容性 AGP 3.1.4 需要 Gradle 4.4+。所以 4.4 和 4.10.2(最后一个 4.x 版本)之间的版本。更高版本 (5.x+) 可能有效,但不能保证。
AGP 3.1.4 的另一个考虑点是 Android Studio 兼容性。北极狐 |2020.3.1 是支持 AGP 3.1 的最后一个版本,因此使用新的 Studio 版本将需要 AGP,并且可能需要升级 Gradle 和 JDK。
现在关于 JDK。从 Android Studio 2.2.0 开始,它与 JDK 8 捆绑在一起,直到 Android Studio 4.2.0 切换到 JDK 11 时也是如此。此外,Gradle 4.4 最高支持 JDK 9 和 Gradle 4.7 - 最高支持 JDK 10(兼容性文档)。因此,除了使用 JDK 8 之外,您真的没有太多选择。
最后是 .文档中有一个很好的部分,说明为什么它应该保密。基本上,它存储用于对应用程序进行签名的密钥。因此,任何有权访问密钥库的人(例如恶意行为者)都可以创建不同的应用程序,操作系统将将其视为对现有版本的更新。这就是为什么 Telegram 的密钥库不是公开的,您需要创建自己的密钥库。release.keystore
评论