Projects / Telegram client for Android

Opengram

A Telegram client focused on a better experience, more privacy, and lifting some of the original's restrictions.

Latest
Platform
Android
License
GPL-2.0
Try it: flip the switches

01 About

The official client, minus the parts that work against you

Unlike many alternative clients, Opengram deliberately changes as little of the client code as possible, makes zero network requests of its own, and follows the license of the original.

It is a fork of the official Telegram for Android source. Everything below is a switch or a removal on top of that code, not a rewrite.

02 Changes

9 changes, nothing more

Each one is a switch or a removal on top of upstream code, kept small so it is easy to review.

  • No ads

    Ads are switched off in channels, in bots, and in the media player.

  • Limits, not upsells

    Most offers to buy Premium are disabled and replaced with plain information about the limit you reached.

  • Ghost mode

    Hide most of your activity from the people you talk to and from Telegram's servers: read receipts, story views, and similar signals.

  • Faster media

    Speed up media downloads by lifting the limits on downloaded file parts and files.

  • Secret chats by default

    Create, and use, only secret chats by default, so conversations are end-to-end encrypted.

  • Save what you can see

    FLAG_SECURE is removed from chats and media that forbid forwarding, and saving them (noForwards) works in most of them.

  • Uniform device info

    The device details sent to Telegram are unified: time zone, language, model, Android version, performance class, and install method.

  • A common fingerprint

    The client fingerprint is replaced with a more widespread one, so the app does not stand out.

  • ARM MTE forced on

    ARM Memory Tagging Extension is switched on for devices whose hardware supports it.

03 Verify

Check the signature before the first install

Android pins the signing key on first install, and every later update must carry the same key. Compare this SHA-256 certificate fingerprint once and you are covered from then on.

Signing certificate, SHA-256

Package org.recultivation.opengram

E2:23:B1:B8:84:80:76:1C:BC:57:D6:67:E1:FB:F9:4D:37:A8:30:E8:71:02:F3:A7:A6:14:47:EE:BA:EC:66:C7

Check with apksigner
apksigner verify --print-certs opengram.apk

Look for the line Signer #1 certificate SHA-256 digest. The value must match, byte for byte (apksigner prints it in lowercase without colons).

04 Build

Build it yourself

  1. 1

    Follow the upstream guide

    Building Opengram is practically the same as building the official client, because the changes are kept to a minimum. Use the compilation guide in DrKLO/Telegram.

  2. 2

    Skip four steps

    Skip steps 2, 3, 4, and 6 of that guide. Opengram's changes already cover them.

  3. 3

    Check the result

    If you sign your own build, it will carry your key, not the one below. Android treats it as a different publisher.

05 Releases

Release history

Every build is published on GitHub with its APK attached.

06 Questions

Questions

Is Opengram an official Telegram app?

No. It is a fork of the official Telegram for Android source (DrKLO/Telegram), published under the same GPL-2.0 license, with a small set of changes on top.

Does Opengram send data anywhere besides Telegram?

No. It makes zero network requests of its own. The only connections are the ones the official client already makes.

How do I know the APK is genuine?

Compare the signing certificate fingerprint before the first install. Android pins the key after that, so every later update has to be signed by the same key.

Can I build it myself?

Yes. Follow the official compilation guide and skip steps 2, 3, 4, and 6. The full source is on GitHub.

Where can I read about each change in depth?

There is a long article about Opengram and its changes on kremlinkernel.com (in Russian).

Further reading

The long article about Opengram and each of its changes lives on kremlinkernel.com.

Read it (in Russian)