From d1bd2d7b2d93327b5e6977393b457a2430fb93f1 Mon Sep 17 00:00:00 2001 From: instant992 Date: Wed, 10 Jun 2026 03:26:32 +0400 Subject: [PATCH] Add Russian README and in-app download link - New README.ru.md (Russian) with a download section pointing to the GitHub releases page; both READMEs cross-link via a language switcher - Add 'Download FoxiGram' row in Foxi settings opening the releases page - Provide English and Russian strings for the download row and the previously added phone-number privacy option --- README.md | 15 ++++ README.ru.md | 75 +++++++++++++++++++ .../settings/NekoSettingsActivity.java | 4 + .../src/main/res/values-ru/strings_neko.xml | 7 ++ .../src/main/res/values/strings_neko.xml | 2 + 5 files changed, 103 insertions(+) create mode 100644 README.ru.md diff --git a/README.md b/README.md index 42bfe65b..43d2287e 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,23 @@ # FoxiGram +**English** · [Русский](README.ru.md) + An unofficial Telegram client based on Nekogram, with a built-in VLESS+Reality proxy client (Xray) for bundled, one-tap proxy access. +## Download + +Latest builds are on the releases page: + +**https://github.com/instant992/FoxiGram/releases** + +Download `FoxiGram---arm64-v8a.apk` from the newest release and +install it on your device (you may need to allow installs from unknown +sources). + +You can also open the download link straight from the app: +**Settings → Foxi → Download FoxiGram**. + ## Built-in proxy servers Server credentials are intentionally kept out of this repository. diff --git a/README.ru.md b/README.ru.md new file mode 100644 index 00000000..e13cfa14 --- /dev/null +++ b/README.ru.md @@ -0,0 +1,75 @@ +# FoxiGram + +[English](README.md) · **Русский** + +Неофициальный клиент Telegram на базе Nekogram со встроенным +прокси-клиентом VLESS+Reality (Xray) для доступа к прокси в одно касание. + +## Скачать + +Свежие версии — на странице релизов: + +**https://github.com/instant992/FoxiGram/releases** + +Скачайте файл `FoxiGram-<версия>-<код>-arm64-v8a.apk` из последнего релиза и +установите его на устройстве (для этого может понадобиться разрешить установку +из неизвестных источников). + +Ссылку на скачивание также можно открыть прямо из приложения: +**Настройки → Foxi → Скачать FoxiGram**. + +## Встроенные прокси-серверы + +Данные серверов намеренно не хранятся в этом репозитории. + +- Реальные серверы лежат в файле + `TMessagesProj/src/main/java/org/telegram/messenger/XrayServers.java`, + который исключён из git. +- Шаблон находится в `XrayServers.java.template`. + +Чтобы настроить свои встроенные прокси: + +```sh +cd TMessagesProj/src/main/java/org/telegram/messenger/ +cp XrayServers.java.template XrayServers.java +# затем отредактируйте XrayServers.java и впишите данные своих серверов VLESS+Reality +``` + +Если оставить адреса пустыми, встроенные прокси отключатся — приложение всё +равно соберётся и будет работать, просто в списке прокси не будет +предзаданных записей. + +## Нативная библиотека Xray (libxray.so) + +Ядро прокси — небольшая Go-обёртка над xray-core, собранная как разделяемая +JNI-библиотека. Исходники в `libxray/`. Скомпилированный `libxray.so` исключён +из git и собирается локально. + +Сборка под Android arm64 (нужны Go и Android NDK): + +```sh +cd libxray +go mod tidy +set CGO_ENABLED=1 +set GOOS=android +set GOARCH=arm64 +set CC=/toolchains/llvm/prebuilt//bin/aarch64-linux-android21-clang +go build -buildmode=c-shared -o ../TMessagesProj/src/main/jniLibs/arm64-v8a/libxray.so . +``` + +## Сборка приложения + +Обычная сборка через Gradle: + +```sh +./gradlew :TMessagesProj_App:assembleRelease -Pandroid.injected.build.abi.filter=arm64-v8a +``` + +Итоговый APK называется `FoxiGram-<версия>-<код>-.apk`. + +## Примечания + +- `google-services.json`, ключи подписи и `local.properties` не хранятся в + репозитории. Для релизной сборки подставьте свои. +- Это форк для личного использования. Основан на Nekogram, который основан на + Telegram для Android. diff --git a/TMessagesProj/src/main/java/tw/nekomimi/nekogram/settings/NekoSettingsActivity.java b/TMessagesProj/src/main/java/tw/nekomimi/nekogram/settings/NekoSettingsActivity.java index a122c52c..1a979a9d 100644 --- a/TMessagesProj/src/main/java/tw/nekomimi/nekogram/settings/NekoSettingsActivity.java +++ b/TMessagesProj/src/main/java/tw/nekomimi/nekogram/settings/NekoSettingsActivity.java @@ -65,6 +65,7 @@ public class NekoSettingsActivity extends BaseNekoSettingsActivity implements Fa private final int accessibilityRow = rowId++; private final int sourceCodeRow = rowId++; + private final int downloadRow = rowId++; private final int translationRow = rowId++; private final int donateRow = rowId++; private final int checkUpdateRow = rowId++; @@ -168,6 +169,7 @@ public class NekoSettingsActivity extends BaseNekoSettingsActivity implements Fa items.add(UItem.asShadow(null)); items.add(UItem.asButton(sourceCodeRow, R.drawable.msg_link, LocaleController.getString(R.string.ViewSourceCode), "GitHub").slug("sourceCode")); + items.add(UItem.asButtonSubtext(downloadRow, R.drawable.msg_download, LocaleController.getString(R.string.FoxiDownload), LocaleController.getString(R.string.FoxiDownloadAbout)).slug("download")); items.add(UItem.asButtonSubtext(translationRow, R.drawable.msg_translate, LocaleController.getString(R.string.Translation), LocaleController.getString(R.string.TranslationAbout)).slug("translation")); items.add(UItem.asButtonSubtext(donateRow, R.drawable.msg_input_like, LocaleController.getString(R.string.Donate), LocaleController.getString(R.string.DonateAbout)).slug("donate")); items.add(UItem.asButtonSubtext(checkUpdateRow, R.drawable.msg_reset, LocaleController.getString(R.string.CheckUpdate), UpdateHelper.formatDateUpdate(SharedConfig.lastUpdateCheckTime)).slug("checkUpdate")); @@ -223,6 +225,8 @@ public class NekoSettingsActivity extends BaseNekoSettingsActivity implements Fa Browser.openUrl(getParentActivity(), "https://neko.crowdin.com/nekogram"); } else if (id == sourceCodeRow) { Browser.openUrl(getParentActivity(), "https://github.com/instant992/FoxiGram"); + } else if (id == downloadRow) { + Browser.openUrl(getParentActivity(), "https://github.com/instant992/FoxiGram/releases"); } else if (id >= sponsorRow) { var news = newsList.get(id - sponsorRow); Browser.openUrl(getParentActivity(), news.url); diff --git a/TMessagesProj/src/main/res/values-ru/strings_neko.xml b/TMessagesProj/src/main/res/values-ru/strings_neko.xml index b0c7be17..28aaa1b4 100644 --- a/TMessagesProj/src/main/res/values-ru/strings_neko.xml +++ b/TMessagesProj/src/main/res/values-ru/strings_neko.xml @@ -103,6 +103,8 @@ Microsoft Translator Поставщик Посмотреть исходный код + Скачать FoxiGram + Скачайте свежую версию и поделитесь с друзьями Фото профиля в качестве фона Размытие фотографии профиля Затемнение фотографии профиля @@ -336,4 +338,9 @@ Подписка истекла Нет подписки осталось %1$d дн. + Мой номер телефона + Выберите, как отображается ваш номер телефона в приложении (шапка настроек и профиль). Меняется только вид на этом устройстве. + Показывать + Размыть + Скрыть diff --git a/TMessagesProj/src/main/res/values/strings_neko.xml b/TMessagesProj/src/main/res/values/strings_neko.xml index 61b25d41..b7b358d9 100644 --- a/TMessagesProj/src/main/res/values/strings_neko.xml +++ b/TMessagesProj/src/main/res/values/strings_neko.xml @@ -112,6 +112,8 @@ Microsoft Translator Provider View source code + Download FoxiGram + Get the latest version and share it with friends Profile picture as background Blur profile picture Darken profile picture