Telegram

module
v0.0.0-...-928146c Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 18, 2024 License: GPL-2.0

README

Telegram messenger for Android

Telegram is a messaging app with a focus on speed and security. It’s superfast, simple and free. This repo contains the official source code for Telegram App for Android.

Creating your Telegram Application

We welcome all developers to use our API and source code to create applications on our platform. There are several things we require from all developers for the moment.

  1. Obtain your own api_id for your application.
  2. Please do not use the name Telegram for your app — or make sure your users understand that it is unofficial.
  3. Kindly do not use our standard logo (white paper plane in a blue circle) as your app's logo.
  4. Please study our security guidelines and take good care of your users' data and privacy.
  5. Please remember to publish your code too in order to comply with the licences.

API, Protocol documentation

Telegram API manuals: https://core.telegram.org/api

MTproto protocol manuals: https://core.telegram.org/mtproto

Compilation Guide

Note: In order to support reproducible builds, this repo contains dummy release.keystore, google-services.json and filled variables inside BuildVars.java. Before publishing your own APKs please make sure to replace all these files with your own.

You will require Android Studio 3.4, Android NDK rev. 20 and Android SDK 8.1

  1. Download the Telegram source code from https://github.com/DrKLO/Telegram ( git clone https://github.com/DrKLO/Telegram.git )
  2. Copy your release.keystore into TMessagesProj/config
  3. Fill out RELEASE_KEY_PASSWORD, RELEASE_KEY_ALIAS, RELEASE_STORE_PASSWORD in gradle.properties to access your release.keystore
  4. Go to https://console.firebase.google.com/, create two android apps with application IDs org.telegram.messenger and org.telegram.messenger.beta, turn on firebase messaging and download google-services.json, which should be copied to the same folder as TMessagesProj.
  5. Open the project in the Studio (note that it should be opened, NOT imported).
  6. Fill out values in TMessagesProj/src/main/java/org/telegram/messenger/BuildVars.java – there’s a link for each of the variables showing where and which data to obtain.
  7. You are ready to compile Telegram.

Localization

We moved all translations to https://translations.telegram.org/en/android/. Please use it.

Directories

Path Synopsis
TMessagesProj
jni/boringssl/crypto/cipher_extra/test/nist_cavp
The make_cavp utility generates cipher_test input files from NIST CAVP Known Answer Test response (.rsp) files.
The make_cavp utility generates cipher_test input files from NIST CAVP Known Answer Test response (.rsp) files.
jni/boringssl/crypto/x509
make_many_constraints.go generates test certificates many_constraints.pem, many_names*.pem, and some_names*.pem for x509_test.cc
make_many_constraints.go generates test certificates many_constraints.pem, many_names*.pem, and some_names*.pem for x509_test.cc
jni/boringssl/ssl/test/runner
Package tls partially implements TLS 1.2, as specified in RFC 5246.
Package tls partially implements TLS 1.2, as specified in RFC 5246.
jni/boringssl/ssl/test/runner/curve25519
Package curve25519 provides an implementation of scalar multiplication on the elliptic curve known as curve25519.
Package curve25519 provides an implementation of scalar multiplication on the elliptic curve known as curve25519.
jni/boringssl/ssl/test/runner/poly1305
Package poly1305 implements Poly1305 one-time message authentication code as specified in https://cr.yp.to/mac/poly1305-20050329.pdf.
Package poly1305 implements Poly1305 one-time message authentication code as specified in https://cr.yp.to/mac/poly1305-20050329.pdf.
jni/boringssl/util
check_filenames.go checks that filenames are unique.
check_filenames.go checks that filenames are unique.
jni/boringssl/util/fipstools
break-hash parses an ELF binary containing the FIPS module and corrupts the first byte of the module.
break-hash parses an ELF binary containing the FIPS module and corrupts the first byte of the module.
jni/boringssl/util/fipstools/cavp
run_cavp.go processes CAVP input files and generates suitable response files, optionally comparing the results against the provided FAX files.
run_cavp.go processes CAVP input files and generates suitable response files, optionally comparing the results against the provided FAX files.
jni/boringssl/util/fipstools/delocate
delocate performs several transformations of textual assembly code.
delocate performs several transformations of textual assembly code.
jni/boringssl/util/fipstools/inject_hash
inject_hash parses an archive containing a file object file.
inject_hash parses an archive containing a file object file.
jni/boringssl/util/testresult
testresult is an implementation of Chromium's JSON test result format.
testresult is an implementation of Chromium's JSON test result format.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL