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
This commit is contained in:
parent
87b8ea4949
commit
d1bd2d7b2d
5 changed files with 103 additions and 0 deletions
15
README.md
15
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-<version>-<code>-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.
|
||||
|
|
|
|||
75
README.ru.md
Normal file
75
README.ru.md
Normal file
|
|
@ -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=<NDK>/toolchains/llvm/prebuilt/<host>/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-<версия>-<код>-<abi>.apk`.
|
||||
|
||||
## Примечания
|
||||
|
||||
- `google-services.json`, ключи подписи и `local.properties` не хранятся в
|
||||
репозитории. Для релизной сборки подставьте свои.
|
||||
- Это форк для личного использования. Основан на Nekogram, который основан на
|
||||
Telegram для Android.
|
||||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -103,6 +103,8 @@
|
|||
<string name="ProviderMicrosoftTranslator">Microsoft Translator</string>
|
||||
<string name="TranslationProviderShort">Поставщик</string>
|
||||
<string name="ViewSourceCode">Посмотреть исходный код</string>
|
||||
<string name="FoxiDownload">Скачать FoxiGram</string>
|
||||
<string name="FoxiDownloadAbout">Скачайте свежую версию и поделитесь с друзьями</string>
|
||||
<string name="AvatarAsBackground">Фото профиля в качестве фона</string>
|
||||
<string name="BlurAvatarBackground">Размытие фотографии профиля</string>
|
||||
<string name="DarkenAvatarBackground">Затемнение фотографии профиля</string>
|
||||
|
|
@ -336,4 +338,9 @@
|
|||
<string name="FoxAccountSubExpired">Подписка истекла</string>
|
||||
<string name="FoxAccountSubNone">Нет подписки</string>
|
||||
<string name="FoxAccountDaysLeft">осталось %1$d дн.</string>
|
||||
<string name="HidePhoneNumber">Мой номер телефона</string>
|
||||
<string name="HidePhoneNumberAbout">Выберите, как отображается ваш номер телефона в приложении (шапка настроек и профиль). Меняется только вид на этом устройстве.</string>
|
||||
<string name="HidePhoneNumberShow">Показывать</string>
|
||||
<string name="HidePhoneNumberBlur">Размыть</string>
|
||||
<string name="HidePhoneNumberHide">Скрыть</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -112,6 +112,8 @@
|
|||
<string name="ProviderMicrosoftTranslator">Microsoft Translator</string>
|
||||
<string name="TranslationProviderShort">Provider</string>
|
||||
<string name="ViewSourceCode">View source code</string>
|
||||
<string name="FoxiDownload">Download FoxiGram</string>
|
||||
<string name="FoxiDownloadAbout">Get the latest version and share it with friends</string>
|
||||
<string name="AvatarAsBackground">Profile picture as background</string>
|
||||
<string name="BlurAvatarBackground">Blur profile picture</string>
|
||||
<string name="DarkenAvatarBackground">Darken profile picture</string>
|
||||
|
|
|
|||
Loading…
Reference in a new issue