🌐 Languages / Языки: English · Русский
FortGram is an Android Telegram client based on a fork of Telegram X, with a parental-control layer built into the app. It is intended for a child’s device that is already managed by a device-level tool such as Google Family Link.
FortGram does not introduce a separate “child mode” or a special account type. Protection comes from two layers that complement each other:
The first layer is what Telegram already offers; the second is what FortGram adds. Together they close the gaps each has alone: Telegram’s privacy settings cannot hide an existing chat, and a client alone cannot stop the child from logging in elsewhere — that is why the account preparation below matters.
| Area | What it does |
|---|---|
| Parental PIN | 4-digit PIN, separate from the app passcode, stored on the device as a hash. Opening Settings asks for it, so the child cannot change account or privacy settings, sign out or add another account. |
| Whitelist mode | When on, the child can chat only with phone contacts, users the parent allowed explicitly, and groups the parent allowed. Everything else — unknown users, other groups, channels, secret chats, bots — is hidden from the chat list, search and notifications, and cannot be opened by link. Creating groups and channels, starting secret chats and joining by invite link are blocked. |
| Allowed contacts | Users who are not in the phone book but may talk to the child, added by @username. |
| Allowed groups | The list of groups the child is a member of, each with a switch. Only switched-on groups are visible and writable. |
| Adding contacts | A separate switch decides whether the child may add new contacts on their own (adding a contact would otherwise whitelist that person). |
| Sticker packs | Optional restriction: only official Telegram packs plus packs the parent allowed. Other stickers — incoming ones too — are drawn as their emoji instead of the image. Packs are picked from the installed list, found by name, or added by link. |
| Notifications | Push notifications work as in Telegram X, but nothing from hidden chats reaches the notification shade. |
| Backup of the rules | Every parental setting except the PIN can be exported and imported — as a file, via the clipboard, or as a QR code. See Backup, transfer and QR. |
| Background work and calls | A settings screen with shortcuts to the phone-maker’s switches (battery, autostart, pop-up windows) that decide whether calls and messages arrive while the app is closed. |
| Languages | The parental screens are available in English, Russian and Ukrainian; the rest of the app uses Telegram’s translations. |
| No in-app updater | Updates come from fgram.org / GitHub Releases, never from the Telegram X channel. |
When the whitelist mode is off, FortGram behaves exactly like Telegram X.
FortGram does not use any third-party infrastructure.
FortGram does not run its own backend, does not proxy messages, does not collect telemetry and does not store anything outside of Telegram. All traffic goes through Telegram’s servers exactly as with any other client. The parental PIN and the whitelist are stored only on the device. Push notifications are delivered through Firebase Cloud Messaging, the same channel every Telegram client on Android uses; Google Analytics is not enabled in the project.
Consequently:
firebase-analytics / firebase-core libraries (Telegram X excludes them explicitly); firebase_analytics_collection_deactivated is set in the manifest as a second guard.All of this happens through normal Telegram features; nothing FortGram-specific yet.
Register the account on a phone number you (the parent) control long-term — a separate SIM, an eSIM or a virtual number. The parent must keep access to that number for account recovery.
Enable Two-Step Verification on the child’s account.
On the parent’s phone add the child’s account as a second account in any client (Telegram, Telegram X or FortGram). You need the SMS code and the cloud password. Both parents or guardians can keep their own session.
From the parent’s session of the child’s account:
Then add the contacts the child may talk to and join the groups the child may be in.
Install FortGram (see Installation) and sign in with the child’s account — SMS code and cloud password as usual.
Settings → Parental Controls: set the PIN, then enable Whitelist mode. The app asks to restart so the change applies to existing chats. Then:
@username if some people are not in the phone book;Finally, Export settings (see below) so the rules can be restored on a new phone.
Day-to-day — new contacts, new groups, reviewing chats — happens on the parent’s phone in the parent’s session of the child’s account. A group the parent adds the child to stays hidden until it is switched on in Allowed groups on the child’s device (behind the PIN). Remote switching from the parent’s phone is on the roadmap.
Settings → Parental Controls → Backup.
Export settings produces a small text document with all the rules: the three switches (whitelist mode, adding contacts, official stickers only), allowed users (with id, @username and name), allowed groups (id and title) and allowed sticker packs (id, short name, title). The PIN is never exported.
Export targets:
Import settings reads the same document from a QR code (built-in scanner), a file, the clipboard or pasted text. Before anything is applied, a preview shows every switch and every entry with a checkbox — untick what you do not want, then Apply. Users and packs without numeric ids are resolved on the device by @username and pack name, so a document can be written by hand:
{"fortgram_parental": 1,
"whitelist": {"enabled": true, "allow_add_contact": false,
"users": [{"username": "grandma_anna"}], "groups": []},
"stickers": {"official_only": true, "sets": [{"name": "HotCherry"}]}}
Importing replaces the current rules. If the whitelist switch changes, the app asks to restart.
Messages arrive through push notifications even when FortGram is closed. Incoming calls additionally need the phone to let the app show the call screen from the background. Many manufacturers (Xiaomi/Redmi, realme, Huawei, Samsung) block this by default.
Settings → Background work and calls lists the switches and opens the right screen for each:
If calls ring only while the app is open, go through this screen first.
FortGram is distributed as an APK from fgram.org and GitHub Releases; it is not in Google Play yet (see the roadmap). Package name: org.fgram.app.
apksigner verify --print-certs FortGram-*.apk must show certificate SHA-256 54:DA:5E:95:C6:83:2D:DE:0A:89:35:48:2D:5D:EE:C7:A3:FA:C0:A1:9B:10:AF:58:E1:E1:70:F7:1C:17:5F:2B. An APK with a different fingerprint is not from this project.Requirements: Android 7.0 or newer, 64-bit ARM device (arm64-v8a) — that is practically every phone sold since 2017.
🌐 Languages / Языки: English · Русский
FortGram — Android-клиент Telegram на основе форка Telegram X со встроенным слоем родительского контроля. Предназначен для устройства ребёнка, которое уже управляется на уровне системы — например, через Google Family Link.
FortGram не вводит отдельный «детский режим» и не создаёт особый тип аккаунта. Защита строится из двух уровней, которые дополняют друг друга:
Первый уровень даёт сам Telegram, второй добавляет FortGram. Вместе они закрывают дыры друг друга: настройки приватности Telegram не могут скрыть уже существующий чат, а клиент сам по себе не помешает ребёнку войти в аккаунт в другом месте — поэтому важна подготовка аккаунта ниже.
| Область | Что делает |
|---|---|
| Родительский PIN | 4-значный PIN, отдельный от пароля приложения, хранится на устройстве в виде хеша. Вход в Настройки требует его ввода, поэтому ребёнок не может изменить настройки аккаунта и приватности, выйти из аккаунта или добавить другой. |
| Режим белого списка | Когда включён, ребёнок может общаться только с контактами из телефонной книги, с явно разрешёнными пользователями и в разрешённых группах. Всё остальное — незнакомые пользователи, другие группы, каналы, секретные чаты, боты — скрыто из списка чатов, поиска и уведомлений и не открывается по ссылке. Создание групп и каналов, секретные чаты и вступление по приглашению заблокированы. |
| Разрешённые контакты | Люди не из телефонной книги, с которыми ребёнку можно общаться; добавляются по @username. |
| Разрешённые группы | Список групп, в которых состоит ребёнок, с переключателем у каждой. Видны и доступны для сообщений только включённые. |
| Добавление контактов | Отдельный переключатель: может ли ребёнок сам добавлять новые контакты (иначе добавленный контакт автоматически попадал бы в белый список). |
| Стикерпаки | Необязательное ограничение: только официальные наборы Telegram плюс разрешённые родителем. Остальные стикеры — в том числе входящие — рисуются как эмодзи вместо картинки. Наборы выбираются из установленных, ищутся по названию или добавляются по ссылке. |
| Уведомления | Push-уведомления работают как в Telegram X, но из скрытых чатов в шторку ничего не попадает. |
| Резервная копия правил | Все родительские настройки, кроме PIN, экспортируются и импортируются — файлом, через буфер обмена или QR-кодом. См. Резервная копия, перенос и QR. |
| Фоновая работа и звонки | Экран настроек с переходами к переключателям производителя (батарея, автозапуск, всплывающие окна), от которых зависит, приходят ли звонки и сообщения при закрытом приложении. |
| Языки | Родительские экраны доступны на английском, русском и украинском; остальное приложение использует переводы Telegram. |
| Без встроенного обновления | Обновления берутся с fgram.org / GitHub Releases, а не из канала Telegram X. |
Когда режим белого списка выключен, FortGram ведёт себя ровно как Telegram X.
FortGram не использует стороннюю инфраструктуру.
FortGram не запускает собственный бэкенд, не проксирует сообщения, не собирает телеметрию и не хранит ничего за пределами Telegram. Весь трафик идёт через серверы Telegram, как у любого другого клиента. Родительский PIN и белый список хранятся только на устройстве. Push-уведомления доставляются через Firebase Cloud Messaging — тот же канал, которым пользуется каждый Telegram-клиент на Android; Google Analytics в проекте не включён.
Из этого следует:
firebase-analytics / firebase-core (Telegram X исключает их явно); в манифесте дополнительно стоит firebase_analytics_collection_deactivated.Всё делается штатными средствами Telegram, ничего специфичного для FortGram пока не требуется.
Зарегистрируйте аккаунт на номер, который контролируете вы (родитель) и сохраните надолго — отдельная SIM, eSIM или виртуальный номер. Доступ к номеру нужен для восстановления аккаунта.
Включите двухэтапную проверку на детском аккаунте.
На своём телефоне добавьте детский аккаунт как второй в любой клиент (Telegram, Telegram X или FortGram). Понадобятся SMS-код и облачный пароль. Оба родителя или опекуна могут держать по своей сессии.
Из родительской сессии детского аккаунта:
Затем добавьте контакты, с которыми ребёнку можно общаться, и вступите в группы, где ему можно состоять.
Установите FortGram (см. Установка) и войдите под детским аккаунтом — SMS-код и облачный пароль как обычно.
Настройки → Родительский контроль: задайте PIN, затем включите Режим белого списка. Приложение попросит перезапуск, чтобы правила применились к существующим чатам. Дальше:
@username, если кого-то нет в телефонной книге;В конце сделайте Экспорт настроек (см. ниже), чтобы правила можно было восстановить на новом телефоне.
Повседневное — новые контакты, новые группы, просмотр переписки — происходит на телефоне родителя в его сессии детского аккаунта. Группа, куда родитель добавил ребёнка, остаётся скрытой, пока её не включить в Разрешённых группах на устройстве ребёнка (за PIN). Удалённое включение с телефона родителя — в дорожной карте.
Настройки → Родительский контроль → Резервная копия.
Экспорт настроек создаёт небольшой текстовый документ со всеми правилами: три переключателя (белый список, добавление контактов, только официальные стикеры), разрешённые пользователи (id, @username, имя), разрешённые группы (id, название) и разрешённые стикерпаки (id, короткое имя, название). PIN не экспортируется никогда.
Куда экспортировать:
Импорт настроек читает тот же документ из QR-кода (встроенный сканер), файла, буфера обмена или вставленного текста. Перед применением открывается предпросмотр: все переключатели и все записи с галочками — снимите лишнее и нажмите Применить. Пользователи и наборы без числовых id распознаются на устройстве по @username и имени набора, так что документ можно написать и руками:
{"fortgram_parental": 1,
"whitelist": {"enabled": true, "allow_add_contact": false,
"users": [{"username": "grandma_anna"}], "groups": []},
"stickers": {"official_only": true, "sets": [{"name": "HotCherry"}]}}
Импорт заменяет текущие правила. Если меняется переключатель белого списка, приложение попросит перезапуск.
Сообщения приходят через push-уведомления даже при закрытом FortGram. Входящим звонкам дополнительно нужно, чтобы телефон разрешил приложению показать экран звонка из фона. Многие производители (Xiaomi/Redmi, realme, Huawei, Samsung) по умолчанию это запрещают.
Настройки → Фоновая работа и звонки перечисляет нужные переключатели и открывает для каждого нужный экран:
Если звонки приходят только при открытом приложении — сначала пройдите этот экран.
FortGram распространяется как APK с fgram.org и через GitHub Releases; в Google Play его пока нет (см. дорожную карту). Имя пакета: org.fgram.app.
apksigner verify --print-certs FortGram-*.apk должен показать сертификат SHA-256 54:DA:5E:95:C6:83:2D:DE:0A:89:35:48:2D:5D:EE:C7:A3:FA:C0:A1:9B:10:AF:58:E1:E1:70:F7:1C:17:5F:2B. APK с другим отпечатком — не от этого проекта.Требования: Android 7.0 и новее, 64-битное ARM-устройство (arm64-v8a) — практически любой телефон, выпущенный с 2017 года.