Skip to content

Unofficial, FOSS-friendly fork of the original Telegram client for Android

License

Notifications You must be signed in to change notification settings

HannesGitH/Telegram-FOSS-system-emoji

 
 

Repository files navigation

Releases Discussions

Donate or Bitcoin 1P8kNcifVAkBWtWmjKY4RvVLy5QwruE2LQ

Telegram-FOSS

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

Contributors

Discussion

Join the Telegram-FOSS Offtopics group

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

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: BoringSSL prebuilts are replaced with recent upstream source code built at compile time
  • SECURITY: FFmpeg prebuilts are replaced with recent upstream source code built at compile time
  • SECURITY: libvpx prebuilts are replaced with recent 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
  • Google ML Kit

Other:

  • 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. WindowsSupport

Important:

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

  2. Also make sure you have yarn as well as that your environment uses the gnu-sed when invoking sed (macOS builtin sed wont work)

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

    • git clone --recursive https://github.com/HannesGitH/Telegram-FOSS-system-emoji.git
  4. 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] # This should be version 21.4.7075529 newer or older might not work
    export NINJA_PATH=[PATH_TO_NINJA]
    ./build_libvpx_clang.sh
    ./build_ffmpeg_clang.sh
    ./patch_ffmpeg.sh
    ./patch_boringssl.sh
    ./build_boringssl.sh
    
  5. 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

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

./gradlew assembleAfatRelease

DIGITAL RESISTANCE

DIGITALRESISTANCE

About

Unofficial, FOSS-friendly fork of the original Telegram client for Android

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 41.2%
  • C++ 36.3%
  • C 20.2%
  • Assembly 1.8%
  • CMake 0.2%
  • NASL 0.1%
  • Other 0.2%