Nagram is a third-party Telegram client based on NekoX with some modifications.
Nagram's source code is licensed under GPLv3. The Nagram name and project identity belong to @NextAlone; the Nagram application icon artwork is copyright © MaitungTM. These are separate brand assets. Modified, forked, and third-party distributions must use distinct branding and replace the Nagram brand assets. See BRANDING.md for the complete policy.
Telegram API manuals: https://core.telegram.org/api
MTProto protocol manuals: https://core.telegram.org/mtproto
NOTE: For Windows users, please consider using a Linux VM (such as WSL2) or dual booting.
Environment:
Linux distribution based on Debian or Arch Linux, or macOS
Native tools: gcc go make cmake ninja yasm
# for Debian based distribution
sudo apt install gcc golang make cmake ninja-build yasm
# for Arch Linux based distribution
sudo pacman -S base-devel go ninja cmake yasm
# for macOS
xcode-select --install # install developer tools (will open confirm dialog)
brew install go cmake ninja yasm # install other tools by homebrew
Android SDK: build-tools;33.0.0 platforms;android-33 ndk;27.2.12479018 cmake;3.18.1 cmake;3.22.1 (the default location is $HOME/Android/SDK, otherwise you need to specify $ANDROID_HOME for it)
It is recommended to use Android Studio to install, but you can also use sdkmanager command on distributions based on Debian:
sudo apt install sdkmanager
sdkmanager --sdk_root $HOME/Android/SDK --install "build-tools;33.0.0" "platforms;android-33" "ndk;27.2.12479018" "cmake;3.18.1" "cmake;3.22.1"
Build:
Checkout submodules
git submodule update --init --recursive
Disable signature check by removing the following lines in TMessagesProj/jni/jni.c:
if (verifySign(env) != JNI_OK) {
return JNI_ERR;
}
Build native dependencies:
./run init libs
Build external libraries and native code:
./run libs native
Fill out TELEGRAM_APP_ID and TELEGRAM_APP_HASH in local.properties (from Telegram Developer)
Replace TMessagesProj/google-services.json if you want FCM to work.
Replace release.keystore with yours and fill out ALIAS_NAME, KEYSTORE_PASS and ALIAS_PASS in local.properties.
Build with Gradle:
./gradlew assemble<Release/Debug>
Create your own release.keystore to replace TMessagesProj/release.keystore.
Prepare LOCAL_PROPERTIES
KEYSTORE_PASS=123456
ALIAS_NAME=key0
ALIAS_PASS=123456
TELEGRAM_APP_ID=123456
TELEGRAM_APP_HASH=abcdefg
Then, use base64 to encode the above.
1111:abcd777000Disable signature check by removing the following lines in TMessagesProj/jni/jni.c:
if (verifySign(env) != JNI_OK) {
return JNI_ERR;
}
Run Release Build
Developed by different developers, read the feature list above to understand the differences.
First, make sure you have the latest version installed (check the channel).
Then, if the issue appears in the official Telegram client too, please submit it to the officials, (be careful not to show custom clients in the description and screenshots).
Then, submit it to our bot.
If you experience a crash, you also need to click on the version number at the bottom of the settings and select "Enable Log" and send it to us.
Nagram is forked from Telegram, thus most locales follows the translations of Telegram for Android, checkout https://translations.telegram.org/en/android/.
Is Nagram not in your language, or the translation is incorrect or incomplete? Get involved in the translations on our Weblate.
Nagram is a third-party Telegram client based on NekoX with some modifications.
Nagram's source code is licensed under GPLv3. The Nagram name and project identity belong to @NextAlone; the Nagram application icon artwork is copyright © MaitungTM. These are separate brand assets. Modified, forked, and third-party distributions must use distinct branding and replace the Nagram brand assets. See BRANDING.md for the complete policy.
Telegram API manuals: https://core.telegram.org/api
MTProto protocol manuals: https://core.telegram.org/mtproto
NOTE: For Windows users, please consider using a Linux VM (such as WSL2) or dual booting.
Environment:
Linux distribution based on Debian or Arch Linux, or macOS
Native tools: gcc go make cmake ninja yasm
# for Debian based distribution
sudo apt install gcc golang make cmake ninja-build yasm
# for Arch Linux based distribution
sudo pacman -S base-devel go ninja cmake yasm
# for macOS
xcode-select --install # install developer tools (will open confirm dialog)
brew install go cmake ninja yasm # install other tools by homebrew
Android SDK: build-tools;33.0.0 platforms;android-33 ndk;27.2.12479018 cmake;3.18.1 cmake;3.22.1 (the default location is $HOME/Android/SDK, otherwise you need to specify $ANDROID_HOME for it)
It is recommended to use Android Studio to install, but you can also use sdkmanager command on distributions based on Debian:
sudo apt install sdkmanager
sdkmanager --sdk_root $HOME/Android/SDK --install "build-tools;33.0.0" "platforms;android-33" "ndk;27.2.12479018" "cmake;3.18.1" "cmake;3.22.1"
Build:
Checkout submodules
git submodule update --init --recursive
Disable signature check by removing the following lines in TMessagesProj/jni/jni.c:
if (verifySign(env) != JNI_OK) {
return JNI_ERR;
}
Build native dependencies:
./run init libs
Build external libraries and native code:
./run libs native
Fill out TELEGRAM_APP_ID and TELEGRAM_APP_HASH in local.properties (from Telegram Developer)
Replace TMessagesProj/google-services.json if you want FCM to work.
Replace release.keystore with yours and fill out ALIAS_NAME, KEYSTORE_PASS and ALIAS_PASS in local.properties.
Build with Gradle:
./gradlew assemble<Release/Debug>
Create your own release.keystore to replace TMessagesProj/release.keystore.
Prepare LOCAL_PROPERTIES
KEYSTORE_PASS=123456
ALIAS_NAME=key0
ALIAS_PASS=123456
TELEGRAM_APP_ID=123456
TELEGRAM_APP_HASH=abcdefg
Then, use base64 to encode the above.
1111:abcd777000Disable signature check by removing the following lines in TMessagesProj/jni/jni.c:
if (verifySign(env) != JNI_OK) {
return JNI_ERR;
}
Run Release Build
Developed by different developers, read the feature list above to understand the differences.
First, make sure you have the latest version installed (check the channel).
Then, if the issue appears in the official Telegram client too, please submit it to the officials, (be careful not to show custom clients in the description and screenshots).
Then, submit it to our bot.
If you experience a crash, you also need to click on the version number at the bottom of the settings and select "Enable Log" and send it to us.
Nagram is forked from Telegram, thus most locales follows the translations of Telegram for Android, checkout https://translations.telegram.org/en/android/.
Is Nagram not in your language, or the translation is incorrect or incomplete? Get involved in the translations on our Weblate.