Projects / Telegram client for Android
Opengram
A Telegram client focused on a better experience, more privacy, and lifting some of the original's restrictions.
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
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
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
Skip four steps
Skip steps 2, 3, 4, and 6 of that guide. Opengram's changes already cover them.
-
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.