Skip to content
Unofficial, FOSS-friendly fork of the original Telegram client for Android
Java C C++ Makefile Shell Objective-C Other
Branch: master
Clone or download
Latest commit 9fde5db May 31, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
TMessagesProj [TF][KILL] GMS SMS Receiver Sep 15, 2019
Tools Some new features and bug fixes Jun 17, 2014
.gitmodules [TF][JNI][UPDATE] BoringSSL from source (master) Sep 15, 2019
.travis.yml [TF] TravisCI support Sep 15, 2019
DigitalResistance.jpg [TF] Readme + Changelog Sep 15, 2019
LICENSE first commit Oct 25, 2013 [TF][PUSH] notification in foregroung on Oreo+ Sep 15, 2019 [TF] Readme + Changelog Sep 15, 2019 [TF][BRAND] Do not send to Google Play for update Sep 15, 2019
build.gradle [TF][MAPS] replace Google Maps with OSMDroid Sep 15, 2019 [TF] tiny build improvements Sep 15, 2019
tgfoss-build-under-win.gif [TF] Readme + Changelog Sep 15, 2019

Releases Discussions

Donate or Bitcoin 1McafEgMvqAVujNLtcJumZHxp2UfaNByqs


Telegram is a messaging app with a focus on speed and security. It’s superfast, simple and free.

This is an unofficial, FOSS-friendly fork of the original Telegram App for Android.

This version of Telegram is available on FDroid:

Get it on F-Droid

Current Maintainers



Join the Telegram-FOSS Offtopics group

You can also join via matrix or #telegram-foss on freenode.


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
  • HockeyApp crash reporting and self-updates
  • Google SMS retrieval. You have to type the code manually


  • 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


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:

MTproto protocol manuals:


NOTE: Building on Windows is, unfortunately, not supported. Consider using a Linux VM or dual booting. WindowsSupport


  1. You need the Android NDK, Go(Golang) and Ninja to build the apk.

  2. Don't forget to include the submodules when you clone:

    • git clone --recursive
  3. 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]
  4. If you want to publish a modified version of Telegram:

    • You should get your own API key here: 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

The project can be built with Android Studio or from the command line with gradle:

./gradlew assembleAfatRelease



You can’t perform that action at this time.