Skip to content
 
 

Repository files navigation

Nagram X

Crowdin
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.

Download

Latest versions are available through:

Package names

I ship two builds, and each one deliberately borrows another app's package name:

  • Dazegramorg.telegram.messenger.beta (Telegram Beta's package)
  • Dazegram Xnekox.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.

Verify APK

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

Compilation Guide

  1. 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
  2. Obtain API credentials (TELEGRAM_APP_ID and TELEGRAM_APP_HASH) from Telegram Developer Portal. Create local.properties in the project root with:

    TELEGRAM_APP_ID=<your_telegram_app_id>
    TELEGRAM_APP_HASH=<your_telegram_app_hash>
  3. For APK signing: Replace release.keystore with your keystore and add signing configuration to local.properties:

    KEYSTORE_PASS=<your_keystore_password>
    ALIAS_NAME=<your_alias_name>
    ALIAS_PASS=<your_alias_password>
  4. For FCM support: Replace TMessagesProj/google-services.json with your own configuration file.

  5. Replace project-specific metadata:

    • Set your Google Maps API key in the com.google.android.maps.v2.API_KEY meta-data entry in TMessagesProj/src/main/AndroidManifest.xml.
    • Set BaseRemoteHelper.CHANNEL_METADATA_ID in TMessagesProj/src/main/java/tw/nekomimi/nekogram/helpers/remote/BaseRemoteHelper.java to your metadata channel's numeric ID, without the -100 prefix.
  6. Open the project in Android Studio to start building.

GitHub Actions Build

  1. Replace TMessagesProj/release.keystore with your keystore file.

  2. Configure local.properties with 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.

  3. Configure GitHub Action secrets:

    • LOCAL_PROPERTIES: Base64-encoded content from step 2
    • HELPER_BOT_TOKEN: Telegram bot token from @Botfather (e.g., 1111:abcd)
    • HELPER_BOT_TARGET: Primary Telegram chat ID (e.g., 777000)
  4. Trigger the Staging build workflow (or push to dev).

Acknowledgments

About

A variant of Nagram with additional features.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages