[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-71433":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":23,"hasPages":23,"topics":25,"createdAt":10,"pushedAt":10,"updatedAt":29,"readmeContent":30,"aiSummary":31,"trendingCount":16,"starSnapshotCount":16,"syncStatus":32,"lastSyncTime":33,"discoverSource":34},71433,"Telegram-X","TGX-Android\u002FTelegram-X","TGX-Android","The main repository of Telegram X — official alternative Telegram client for Android.","https:\u002F\u002Fplay.google.com\u002Fstore\u002Fapps\u002Fdetails?id=org.thunderdog.challegram",null,"Java",5678,1010,262,202,0,13,29,97,39,40.01,"GNU General Public License v3.0",false,"main",[26,27,28],"android","telegram","telegram-x","2026-06-12 02:02:52","# [Telegram X](https:\u002F\u002Fplay.google.com\u002Fstore\u002Fapps\u002Fdetails?id=org.thunderdog.challegram) — a slick experimental Telegram client based on [TDLib](https:\u002F\u002Fcore.telegram.org\u002Ftdlib).\n\n![Telegram X](\u002Fimages\u002Ffeature.png)\n\nThis is the complete source code and the build instructions for the official alternative Android client for the Telegram messenger, based on the [Telegram API](https:\u002F\u002Fcore.telegram.org\u002Fapi) and the [MTProto](https:\u002F\u002Fcore.telegram.org\u002Fmtproto) secure protocol via [TDLib](https:\u002F\u002Fgithub.com\u002FTGX-Android\u002Ftdlib).\n\n* [**Telegram X** on Google Play](http:\u002F\u002Fplay.google.com\u002Fstore\u002Fapps\u002Fdetails?id=org.thunderdog.challegram) ([subscribe to beta](https:\u002F\u002Fplay.google.com\u002Fapps\u002Ftesting\u002Forg.thunderdog.challegram))\n* [APKs and Build Info](https:\u002F\u002Ft.me\u002Ftgx_log)\n* [Bot to verify APK hash](https:\u002F\u002Ft.me\u002Ftgx_bot)\n\n\u003Cdetails>\n\u003Csummary>Other sources\u003C\u002Fsummary>\n\n* [**Telegram X** on Huawei AppGallery](https:\u002F\u002Fappgallery.huawei.com\u002Fapp\u002FC101754199)\n* [**GitHub Releases**](https:\u002F\u002Fgithub.com\u002FTGX-Android\u002FTelegram-X\u002Freleases)\n\n\u003C\u002Fdetails>\n\n## Build instructions\n\n### Prerequisites\n\n* At least **5,34GB** of free disk space: **487,10MB** for source codes and around **4,85GB** for files generated after building all variants\n* **4GB** of RAM\n* **macOS** or **Linux**-based operating system. **Windows** platform is supported by using [MSYS](https:\u002F\u002Fwww.msys2.org\u002F) (e.g., [Git Bash](https:\u002F\u002Fgitforwindows.org\u002F)).\n\n#### macOS\n\n* [Homebrew](https:\u002F\u002Fbrew.sh)\n* git with LFS, wget and sed: `$ brew install git git-lfs wget gsed && git lfs install`\n\n#### Ubuntu\n\n* git with LFS: `# apt install git git-lfs`\n* Run `$ git lfs install` for the current user, if you didn't have `git-lfs` previously installed\n\n#### Windows\n\n* **Telegram X** does not provide official build instructions for Windows platform. It is recommended to rely on Linux distributions instead.\n\n### Building\n\n1. `$ git clone --recursive --depth=1 --shallow-submodules https:\u002F\u002Fgithub.com\u002FTGX-Android\u002FTelegram-X tgx` — clone **Telegram X** with submodules\n2. In case you forgot the `--recursive` flag, `cd` into `tgx` directory and: `$ git submodule init && git submodule update --init --recursive --depth=1`\n3. Create `keystore.properties` file outside of source tree with the following properties:\u003Cbr\u002F>`keystore.file`: absolute path to the keystore file\u003Cbr\u002F>`keystore.password`: password for the keystore\u003Cbr\u002F>`key.alias`: key alias that will be used to sign the app\u003Cbr\u002F>`key.password`: key password.\u003Cbr\u002F>**Warning**: keep this file safe and make sure nobody, except you, has access to it. For production builds one could use a separate user with home folder encryption to avoid harm from physical theft\n4. `$ cd tgx`\n5. Run `$ scripts\u002F.\u002Fsetup.sh` and follow up the instructions\n6. If you specified package name that's different from the one Telegram X uses, [setup Firebase](https:\u002F\u002Ffirebase.google.com\u002Fdocs\u002Fandroid\u002Fsetup) and replace `google-services.json` with the one that's suitable for the `app.id` you need\n7. Now you can open the project using **[Android Studio](https:\u002F\u002Fdeveloper.android.com\u002Fstudio\u002F)** or build manually from the command line: `.\u002Fgradlew assembleUniversalRelease`.\n\n#### Available flavors\n\n* `arm64`: **arm64-v8a** build with `minSdkVersion` set to `21` (**Lollipop**)\n* `arm32`: **armeabi-v7a** build\n* `x64`: **x86_64** build with `minSdkVersion` set to `21` (**Lollipop**)\n* `x86`: **x86** build\n* `universal`: universal build that includes native bundles for all platforms.\n\n### Quick setup for development\n\nIf you are developing a [contribution](https:\u002F\u002Fgithub.com\u002FTGX-Android\u002FTelegram-X\u002Fblob\u002Fmain\u002Fdocs\u002FPULL_REQUEST_TEMPLATE.md) to the project, you may follow the simpler building steps:\n\n1. `$ git clone --recursive https:\u002F\u002Fgithub.com\u002FTGX-Android\u002FTelegram-X tgx`\n2. `$ cd tgx`\n3. [Obtain Telegram API credentials](https:\u002F\u002Fcore.telegram.org\u002Fapi\u002Fobtaining_api_id)\n4. Create `local.properties` file in the root project folder using any text editor:\u003Cbr\u002F>\u003Cpre># Location where you have Android SDK installed\nsdk.dir=YOUR_ANDROID_SDK_FOLDER\n\\# Telegram API credentials obtained at previous step\ntelegram.api_id=YOUR_TELEGRAM_API_ID\ntelegram.api_hash=YOUR_TELEGRAM_API_HASH\u003C\u002Fpre>\n5. Run `$ scripts\u002F.\u002Fsetup.sh` — this will download required Android SDK packages and build native dependencies that aren't part of project's [CMakeLists.txt](\u002Fapp\u002Fjni\u002FCMakeLists.txt)\n6. Open and build project via [Android Studio](https:\u002F\u002Fdeveloper.android.com\u002Fstudio) or by using one of `.\u002Fgradlew assemble` commands in terminal\n\nAfter submitting a pull request and its initial review, special build including your contribution will be published in [@tgx_prs](https:\u002F\u002Ft.me\u002Ftgx_prs) channel, where it can be tested by the community. In case any issues or bugs found, you may push more commits to an existing PR that address them and request to publish a newer build by using comments section of pull request or in [@tgx_dev](https:\u002F\u002Ft.me\u002Ftgx_dev) chat.\n\n## Reproducing public builds\n\nIn order to verify that there is no additional source code injected inside official APKs, you must use one of the following versions of **Ubuntu**:\n\n* **21.04**: for builds published before [26th May 2023](https:\u002F\u002Fgithub.com\u002FTGX-Android\u002FTelegram-X\u002Fcommit\u002Fe9a054a0f469a98a13f7e0d751539687fef8759b)\n* **22.04.2 LTS**: for builds published before 27th September 2025\n* **24.04 LTS**: for any newer releases.\n\nAnd update its configuration:\n\n1. Create user called `vk` with the home directory located at `\u002Fhome\u002Fvk`\n2. Clone `tgx` repository to `\u002Fhome\u002Fvk\u002Ftgx`\n3. Check out the specific commit you want to verify\n4. In rare cases of builds that include unmerged pull requests, you must follow actions performed by [Publisher's](https:\u002F\u002Fgithub.com\u002FTGX-Android\u002FPublisher\u002Fblob\u002Fmain\u002Fmain.js) `fetchPr` and `squashPr` tasks\n5. `cd` into `tgx` folder and install dependencies: `# apt install $(cat reproducible-builds\u002Fdependencies.txt)`\n6. Follow up the build instruction from the previous section\n7. Run `$ apkanalyzer apk compare --different-only \u003Cremote-apk> \u003Creproduced-apk>`\n8. If only signature files and metadata differ, build reproduction is successful.\n\nIn future build reproduction might become easier. Here's a list of related PR-welcome TODOs:\n\n* Project path must not affect the resulting `.so` files, so user & project location requirement could be removed\n* When building native binaries on **macOS**, `.comment` ELF section differs from the one built with **Linux** version of NDK. It must be removed or made deterministic without any side-effects like breaking `native-debug-symbols.zip` (or should be reported to NDK team?)\n* Checksums of cold APK builds always differ, even though the same keystore applied and generated inner APK contents do not differ. Real cause must be investigated and fixed, if possible.\u003Cbr\u002F>To generate cold build, invoke `$ scripts\u002F.\u002Freset.sh` and `$ scripts\u002F.\u002Fsetup.sh --skip-sdk-setup`.\u003Cbr\u002F>**Warning**: this will also reset changes inside some of the submodules ([ffmpeg](\u002Fapp\u002Fjni\u002Fthirdparty\u002Fffmpeg), [libvpx](\u002Fapp\u002Fjni\u002Fthirdparty\u002Flibvpx), [webp](\u002Fapp\u002Fjni\u002Fthirdparty\u002Fwebp), [opus](\u002Fapp\u002Fjni\u002Fthirdparty\u002Fopus) and [ExoPlayer](\u002Fapp\u002Fjni\u002Fthirdparty\u002Fexoplayer))\n* Move local pull requests squash-merging from [Publisher](https:\u002F\u002Fgithub.com\u002FTGX-Android\u002FPublisher) to some script inside this repository to make reproduction of builds that include them easier.\n\n\u003Ci>PS: [Docker](https:\u002F\u002Fwww.docker.com) is not considered an option, as it just hides away these tasks, and requires that all published APKs must be built using it.\u003C\u002Fi>\n\n## Verifying side-loaded APKs\n\nIf you downloaded **Telegram X** APK from somewhere and would like to simply verify whether it's an original APK without any injected malicious source code, you need to get checksum (`SHA-256`, `SHA-1` or `MD5`) of the downloaded APK file and find whether it corresponds to any known **Telegram X** version.\n\nIn order to obtain **SHA-256** of the APK:\n\n* `$ sha256sum \u003Cpath-to-apk>` on **Ubuntu**\n* `$ shasum -a 256 \u003Cpath-to-apk>` on **macOS**\n* `$ certutil -hashfile \u003Cpath-to-apk> SHA256` on **Windows**\n\nOnce obtained, there are three ways to find out the commit for the specific checksum:\n\n* Sending checksum to [`@tgx_bot`](https:\u002F\u002Ft.me\u002Ftgx_bot)\n* Searching for a checksum in [`@tgx_log`](https:\u002F\u002Ft.me\u002Ftgx_log). You can do so without need in installing any Telegram client by using this URL format: [`https:\u002F\u002Ft.me\u002Fs\u002Ftgx_log?q={checksum}`](https:\u002F\u002Ft.me\u002Fs\u002Ftgx_log?q=c541ebb0a3ae7bb6e6bd155530f375d567b8aef1761fdd942fb5d69af62e24ae) (click to see in action). Note: unpublished builds cannot be verified this way.\n\n## License\n\n`Telegram X` is licensed under the terms of the GNU General Public License v3.0.\n\nFor more information, see [LICENSE](\u002FLICENSE) file.\n\nLicense of components and third-party dependencies it relies on might differ, check `LICENSE` file in the corresponding folder.\n\n### Third-party dependencies\n\nList of third-party components used in **Telegram X** can be found [here](\u002Fdocs\u002FTHIRDPARTY.md). Additionally you can check the specific commit of the third-party component used, for example, [here](\u002Fapp\u002Fjni\u002Fthirdparty) and [here](\u002Fthirdparty).\n\n## Contributions\n\n**Telegram X** welcomes contributions. Check out [pull request template](\u002Fdocs\u002FPULL_REQUEST_TEMPLATE.md) and [guide for contributors](\u002Fdocs\u002FGUIDE.md) to learn more about Telegram X internals before creating the first pull request.\n\nIf you are a regular user and experience a problem with Telegram X, the best place to look for solution is [Telegram X chat](https:\u002F\u002Ft.me\u002Ftgandroidtests) — a community with over 4 thousand members. Please do not use this repository to ask questions: if you have general issue with Telegram, refer to [FAQ](http:\u002F\u002Ftelegram.org\u002Ffaq) or contact [Telegram Support](https:\u002F\u002Ftelegram.org\u002Ffaq#telegram-support).\n","Telegram X 是一个基于TDLib的实验性Telegram客户端，专为Android平台设计。它使用Java语言编写，并通过Telegram API和MTProto安全协议实现消息传递功能。项目核心特点包括简洁流畅的用户界面、高效的消息处理能力以及对最新Android系统的良好兼容性。适用于追求更佳用户体验或对官方Telegram客户端有特殊需求的用户群体，比如需要更高定制化程度或更前沿技术特性的开发者和个人用户。",2,"2026-06-11 03:37:43","high_star"]