Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
1fe69ef
Monet themes PR by @Golbinex (#307)
Golbinex Jun 4, 2025
109b22d
UnifiedPush support PR by @Golbinex (#306)
Golbinex Jun 4, 2025
51941ec
fix invalid path to AndroidManifest*.xml files in TMessagesProj_App/b…
saintech Jun 17, 2025
cd38eda
Added correspond application name for fdroid build.
23rd Jun 29, 2025
d72706a
Added warning about limitation of SMS verification.
23rd Jun 29, 2025
c87a651
Fixed build.
23rd Sep 1, 2025
0964aea
Added integration of last.fm.
23rd Sep 19, 2025
95cb9fc
Reduced long-click time to context menu appearing from sticker preview.
23rd Sep 20, 2025
d4b37d4
Added option to delete all user messages in all forum topics at once.
23rd Sep 20, 2025
2fcb58b
Add option for last seen dots
derivativeoflog7 Apr 17, 2024
9fb1221
Document colored dots
derivativeoflog7 Apr 17, 2024
090f381
Added new option to hide archived stories.
23rd Nov 7, 2025
a806fe2
Update full_description.txt
Korb Oct 21, 2025
39c9cb1
Create ru/short_description.txt
Korb Oct 22, 2025
33783d7
Disabled new passkeys.
23rd Dec 20, 2025
f705f40
Added option to disable trigger video by volume change.
23rd Dec 20, 2025
e746a35
Added option for interval of updates check.
23rd Dec 20, 2025
e343f8a
Added offline status timer after MarkAsRead notification action.
23rd Dec 20, 2025
78479c2
Replaced frequent contacts with logged in accounts in App Shortcuts.
23rd Dec 20, 2025
462dea1
Dumped version.
23rd Dec 9, 2025
44985e5
[MG] add a setting option in order to set a custom PUT to POST gateway
Jan 17, 2024
de0cb99
Add better description to Background Connection option
Golbinex Jan 7, 2026
5a21080
[MG] add toggle setting in Debug Menu to disable Unified Push support
Dec 25, 2023
ee7a293
Update monet themes
tehcneko Sep 30, 2025
2c26bec
Refactor monet themes
tehcneko Dec 30, 2025
13728a4
Add building instructions for Debian 13 and bump Java version
Golbinex Jan 10, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .github/workflows/tandroid.yml
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,8 @@ jobs:
echo "CHECK_UPDATES=${{ matrix.updates }}" >> $vars
echo "USER_ID_OWNER=${{ secrets.USER_ID_OWNER }}" >> $vars
echo "UPDATE_CHANNEL_USERNAME=${{ secrets.UPDATE_CHANNEL_USERNAME }}" >> $vars
echo "LASTFM_API_KEY=${{ secrets.LASTFM_API_KEY }}" >> $vars
echo "LASTFM_API_SECRET=${{ secrets.LASTFM_API_SECRET }}" >> $vars

###
echo $ADDITIONAL_BUILD_NUMBER
Expand Down
39 changes: 39 additions & 0 deletions BUILDING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
## Building instructions for Debian 13

1. Install necessary software
- `sudo apt install cmake golang gperf meson ninja-build sdkmanager wget yasm`
- `sudo apt install google-android-platform-35-installer google-android-build-tools-35.0.0-installer google-android-ndk-r21e-installer google-android-ndk-r23c-installer openjdk-21-jdk-headless`

2. Don't forget to include the submodules when you clone:
- `git clone --recursive https://github.com/forkgram/TelegramAndroid.git`

3. Build native FFmpeg and BoringSSL dependencies:
- Go to the `TMessagesProj/jni` folder and execute the following (define the paths to your NDK and Ninja):

```
export NDK=/usr/lib/android-sdk/ndk/21.4.7075529
export NINJA_PATH=/usr/bin/ninja
export ANDROID_SDK=/usr/lib/android-sdk
export ANDROID_HOME=/usr/lib/android-sdk
sudo sdkmanager "cmake;3.22.1" --sdk_root /usr/lib/android-sdk
./build_libvpx_clang.sh
./build_ffmpeg_clang.sh
./patch_ffmpeg.sh
./patch_boringssl.sh
./build_boringssl.sh
```

4. If you want to publish a modified version of Telegram:
- You should get **your own API key** here: https://core.telegram.org/api/obtaining_api_id and edit a file called `gradle.properties` in the source root directory.
The contents should look like this:
```
APP_ID = 12345
APP_HASH = aaaaaaaabbbbbbccccccfffffff001122
```
- Do not use the name Telegram and the standard logo (white paper plane in a blue circle) for your app — or make sure your users understand that it is unofficial
- Take good care of your users' data and privacy
- **Please remember to publish your code too in order to comply with the licenses**

The project can be built with Android Studio or from the command line with gradle:

`./gradlew assembleAfatRelease`
7 changes: 7 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,10 @@ Fork Client is a fork of the official Telegram for Android application.
- Added ability to see unread count when you want to mark as read multiple dialogs.
- Option to directly open the archive on pulldown
- PiP mode for YouTube's in-app player
- Added an option to show colored dots to quickly see when a person was last online
- Yellow dot: last seen 15 minutes ago or less
- Orange dot: last seen 30 minutes ago or less
- Red dot: last seen 60 minutes ago or less

### Privacy Features:

Expand All @@ -48,3 +52,6 @@ Fork Client is a fork of the official Telegram for Android application.

## Downloads:
You can download binaries from Releases or from my [Telegram channel Forkgram](https://t.me/forkgram).

## Building instructions for Debian 13:
[BUILDING.md](BUILDING.md)
16 changes: 14 additions & 2 deletions TMessagesProj/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,12 @@ apply plugin: 'kotlin-android'
repositories {
mavenCentral()
google()
maven {
url 'https://www.jitpack.io'
content {
includeModule 'com.github.UnifiedPush', 'android-connector'
}
}
}

configurations {
Expand All @@ -18,6 +24,8 @@ configurations.all {
}

dependencies {
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.1.5'

implementation 'androidx.core:core:1.16.0'
implementation 'androidx.interpolator:interpolator:1.0.0'
implementation 'androidx.fragment:fragment:1.2.0'
Expand Down Expand Up @@ -55,6 +63,7 @@ dependencies {
because("kotlin-stdlib-jdk8 is now a part of kotlin-stdlib")
}
}
implementation 'com.github.UnifiedPush:android-connector:2.3.1'
implementation 'org.osmdroid:osmdroid-android:6.1.20'
}

Expand Down Expand Up @@ -83,8 +92,8 @@ android {
}

compileOptions {
sourceCompatibility JavaVersion.VERSION_17
targetCompatibility JavaVersion.VERSION_17
sourceCompatibility JavaVersion.VERSION_21
targetCompatibility JavaVersion.VERSION_21

coreLibraryDesugaringEnabled true
}
Expand All @@ -106,6 +115,8 @@ android {
buildConfigField 'String', 'USER_REPO', getStringForConfig(USER_REPO)
buildConfigField 'int', 'CHECK_UPDATES', CHECK_UPDATES
buildConfigField 'String', 'UPDATE_CHANNEL_USERNAME', getStringForConfig(UPDATE_CHANNEL_USERNAME)
buildConfigField 'String', 'LASTFM_API_KEY', getStringForConfig(LASTFM_API_KEY)
buildConfigField 'String', 'LASTFM_API_SECRET', getStringForConfig(LASTFM_API_SECRET)

vectorDrawables.generatedDensities = ['mdpi', 'hdpi', 'xhdpi', 'xxhdpi']

Expand All @@ -116,6 +127,7 @@ android {

buildConfigField 'boolean', 'SKIP_DNS_RESOLVER', (Utils['isFdroid']() ? 'true' : 'false')
buildConfigField 'boolean', 'SKIP_INTERNAL_BROWSER_BY_DEFAULT', (Utils['isFdroid']() ? 'true' : 'false')
manifestPlaceholders = [appLabel: Utils['isFdroid']() ? "@string/AppNameFdroid" : "@string/AppName"]

externalNativeBuild {
cmake {
Expand Down
10 changes: 9 additions & 1 deletion TMessagesProj/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,6 @@
<uses-permission android:name="com.oppo.launcher.permission.WRITE_SETTINGS"/>
<uses-permission android:name="me.everything.badger.permission.BADGE_COUNT_READ"/>
<uses-permission android:name="me.everything.badger.permission.BADGE_COUNT_WRITE"/>
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" tools:node="replace" />

<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
Expand Down Expand Up @@ -639,6 +638,15 @@ e <intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
</receiver>

<receiver android:exported="true" android:enabled="true" android:name="org.telegram.messenger.UnifiedPushReceiver">
<intent-filter>
<action android:name="org.unifiedpush.android.connector.MESSAGE"/>
<action android:name="org.unifiedpush.android.connector.UNREGISTERED"/>
<action android:name="org.unifiedpush.android.connector.NEW_ENDPOINT"/>
<action android:name="org.unifiedpush.android.connector.REGISTRATION_FAILED"/>
</intent-filter>
</receiver>

<service
android:name=".ContactsWidgetService"
Expand Down
Loading