TDLib, built from source
VueGram talks to Telegram through TDLib, Telegram's own client library. The native library and its Java bindings in this repository are built from TDLib's own source, so anyone can check them.
What is built
app/src/main/jniLibs/<abi>/libtdjni.so, forarmeabi-v7aandarm64-v8a- the Java bindings in
app/src/main/java/org/drinkless/tdlib/
They are built with TDLib's own Android Dockerfile (Ubuntu 24.04, Android NDK r23c, OpenSSL 1.1.1w), at commit cb863c16.
Build it yourself
sh
scripts/build-tdlib.sh # or: scripts/build-tdlib.sh <another TDLib commit>It needs Docker. The first run downloads about 2 GB and compiles for about half an hour.
Checksums
The files it produced for this repository:
| File | SHA-256 |
|---|---|
armeabi-v7a/libtdjni.so | 8e45fddeaac6fb3b76d141c8e9822646901aa4f31c261560f84bb3ab373043a4 |
arm64-v8a/libtdjni.so | 0ccdc1f6548cbb582bc2617a5f5206224a21349cbd9d12739f83e5f210393d70 |
Why from source
A prebuilt libtdjni.so from elsewhere can't be checked. Building it with TDLib's own Dockerfile at a pinned commit means anyone can rebuild it and compare the checksums above, and TdApi.java and Client.java come from the same commit as the native library they bind to.
Rules
- Never rename or move
org.drinkless.tdlib. The nativelibtdjni.sobinds to these exact class names. - Never drop in a prebuilt
.sofrom elsewhere. Build it withscripts/build-tdlib.sh, and update the checksums here and in THIRD_PARTY_NOTICES.md.