A variant of Nagram with additional features.
This is a personal fork by @dazewell with a bunch of extras on top of NagramX. The full list, with what each one does, is in FEATURES.md.
Latest versions are available through:
- Telegram Channel (Latest Beta)
- GitHub Actions (CI Artifacts)
- GitHub Releases (Latest Stable)
I ship two builds, and each one deliberately borrows another app's package name:
- Dazegram —
org.telegram.messenger.beta(Telegram Beta's package) - Dazegram X —
nekox.messenger(NekoX's package)
This is on purpose. Icon packs already ship custom icons for Telegram Beta and NekoX, so by parasiting on their package names my builds get themed icons out of the box instead of waiting for any pack to add me. The catch is that you can't keep the app I'm borrowing from installed at the same time, since Android won't allow two apps to share one package name.
Both builds are signed with my certificate:
- SHA-256:
40:56:B5:DF:0C:20:58:46:51:EE:AF:70:95:A8:EF:5A:A4:73:02:4D:8A:22:57:7E:89:F0:85:A8:EF:3A:24:4C
-
Clone the repository with its submodules:
git clone --recursive --shallow-submodules https://github.com/risin42/NagramX.git NagramX
If you already cloned the repository without submodules, run:
git submodule update --init --recursive --depth=1
-
Obtain API credentials (
TELEGRAM_APP_IDandTELEGRAM_APP_HASH) from Telegram Developer Portal. Createlocal.propertiesin the project root with:TELEGRAM_APP_ID=<your_telegram_app_id> TELEGRAM_APP_HASH=<your_telegram_app_hash>
-
For APK signing: Replace
release.keystorewith your keystore and add signing configuration tolocal.properties:KEYSTORE_PASS=<your_keystore_password> ALIAS_NAME=<your_alias_name> ALIAS_PASS=<your_alias_password>
-
For FCM support: Replace
TMessagesProj/google-services.jsonwith your own configuration file. -
Replace project-specific metadata:
- Set your Google Maps API key in the
com.google.android.maps.v2.API_KEYmeta-data entry inTMessagesProj/src/main/AndroidManifest.xml. - Set
BaseRemoteHelper.CHANNEL_METADATA_IDinTMessagesProj/src/main/java/tw/nekomimi/nekogram/helpers/remote/BaseRemoteHelper.javato your metadata channel's numeric ID, without the-100prefix.
- Set your Google Maps API key in the
-
Open the project in Android Studio to start building.
-
Replace
TMessagesProj/release.keystorewith your keystore file. -
Configure
local.propertieswith the following:KEYSTORE_PASS=<your_keystore_password> ALIAS_NAME=<your_alias_name> ALIAS_PASS=<your_alias_password> TELEGRAM_APP_ID=<your_telegram_app_id> TELEGRAM_APP_HASH=<your_telegram_app_hash>
Base64 encode the contents of this file.
-
Configure GitHub Action secrets:
LOCAL_PROPERTIES: Base64-encoded content from step 2HELPER_BOT_TOKEN: Telegram bot token from @Botfather (e.g.,1111:abcd)HELPER_BOT_TARGET: Primary Telegram chat ID (e.g.,777000)
-
Trigger the Staging build workflow (or push to
dev).