or
1McafEgMvqAVujNLtcJumZHxp2UfaNByqs
Telegram-FOSS-unchained
Telegram is a messaging app with a focus on speed and security. It’s superfast, simple and free (doubtful).
This is an unofficial, FOSS-friendly fork of the unofficial, FOSS-friendly fork Telegram FOSS App for Android.
Upstream maintainers
Upstream contributors
- slp
- Sudokamikaze
- l2dy
- maximgrafin
- vn971
- theel0ja
- AnXh3L0
- noplanman
- vk496
- verdulo
- anupritaisno1
- nekohasekai
- kdrag0n
- terachad
- ppnplus
Upstream changes:
Replacement of non-FOSS, untrustworthy or suspicious binaries or source code:
- Do location sharing with OpenStreetMap(osmdroid) instead of Google Maps
- Use Twemoji emoji set instead of Apple's emoji
- Google Play Services GCM replaced with Telegram's push service
- Has to show a notification on Oreo+, ask Google
- SECURITY: Old BoringSSL prebuilts are replaced with the newest upstream source code built at compile time
- SECURITY: Old FFmpeg prebuilts are replaced with the newest upstream source code built at compile time
- SECURITY: Bundled libWebP is updated
Removal of non-FOSS, untrustworthy or suspicious binaries or source code and their functionality:
- Google Vision face detection and barcode scanning (Passport)
- Google Wallet and Android Pay integration
- Google Voice integration
- HockeyApp crash reporting and self-updates
- Google SMS retrieval. You have to type the code manually
Other:
- Allow to set a proxy before login
- Added the ability to parse locations from intents containing a
geo:<lat>,<lon>,<zoom>
string - Force static map previews from Telegram
- No content restrictions
Versioning
This repository contains tags to make tracking versions easier.
Versions are in form "v$UPSTREAM$RELEASE" where:
- $UPSTREAM is the public, visible version of upstream.
- $RELEASE is a letter ([a-z]) indicating minor releases between official versions (sometimes, upstream is updated without relating the changes to an specific version).
API, Protocol documentation
Telegram API manuals: https://core.telegram.org/api
MTproto protocol manuals: https://core.telegram.org/mtproto
Building
NOTE: Building on Windows is, unfortunately, not supported.
Consider using a Linux VM or dual booting.
Important:
-
You need the Android NDK, Go(Golang) and Ninja to build the apk.
-
Don't forget to include the submodules when you clone:
git clone --recursive https://github.com/Telegram-FOSS-Team/Telegram-FOSS.git
-
Build native FFmpeg and BoringSSL dependencies:
- Go to the
TMessagesProj/jni
folder and execute the following (define the paths to your NDK and Ninja):
export NDK=[PATH_TO_NDK] export NINJA_PATH=[PATH_TO_NINJA] ./build_ffmpeg_clang.sh ./patch_ffmpeg.sh ./patch_boringssl.sh ./build_boringssl.sh
- Go to the
-
If you want to publish a modified version of Telegram:
- You should get your own API key here: https://core.telegram.org/api/obtaining_api_id and create a file called
API_KEYS
in the source root directory. The contents should look like this:APP_ID = 12345 APP_HASH = aaaaaaaabbbbbbccccccfffffff001122
- Do not use the name Telegram and the standard logo (white paper plane in a blue circle) for your app — or make sure your users understand that it is unofficial
- Take good care of your users' data and privacy
- Please remember to publish your code too in order to comply with the licenses
- You should get your own API key here: https://core.telegram.org/api/obtaining_api_id and create a file called
The project can be built with Android Studio or from the command line with gradle:
./gradlew assembleAfatRelease