Skip to content

me0wkie/maxplus

Repository files navigation

Max+ Logo

Max+ Client

Неофициальный клиент Макс с поддержкой сквозного E2E-шифрования.

License: MIT Rust JavaScript

Что НЕ реализовано:
➖ Уведомления, звонки, поддержка WebApps, в том числе сферум, отправка файлов, стикеры, скачивание чатов, работа с папками, настройки приватности, аппаратное шифрование

Что реализовано:
➕ Вход, регистрация, работа с контактами, каналы и чаты, функции сообщений, сохранение удаленных сообщений, включение шифрования

Что еще будет:
➕ Светлая тема, Telegram Proxy, разные интерфейсы, шифрованные звонки, поддержка кастомного сервера

Предостережения

Warning

Не призываю никого скачивать данный клиент и заводить аккаунт в Max как альтернативу Telegram. Делайте это только в крайнем случае, когда активны белые списки или хочется поэкспериментировать.

Warning

Сервер может опознать сторонний клиент, используйте на свой риск!

Important

Поддерживаются версии Android 9+ (для Keystore 10+)

✨ Стать тестером Max+ (.apk, .ipa)

Download APK

Содержание

Особенности

  • Открытый исходный код
  • Приложение не требует доступ к файлам устройства, микрофону, камере
  • Прозрачность запросов к oneme[.]ru и ok[.]ru, можно просматривать каждый запрос в логах
  • Сквозное E2E шифрование (можно включить для отдельных чатов)
  • В планах: поддержка звонков, многопользовательских чатов

Небольшой размер приложения достигается использованием системного WebView (Tauri)

Note

Для покупки пива в Магните можно разрешить доступ к камере (QR-сканер)

Использование

Предварительные версии доступны в разделе Releases

  • Чтобы приложение запустилось, архитектура процессора должна совпасть.
    Например: устройство имеет процессор arm64, тогда устанавливаете maxplus-android-aarch64.apk

  • Если не удается запустить, попробуйте заменить браузер по умолчанию на устройстве.

Про обновления

Проверять обновления можно в настройках. Если GitHub ограничен:

Разработка

Модификация кода приветствуется — сейчас проект очень сырой!

Требования

  • Bun или NodeJS
  • Rust (для Tauri и сборки)
  • Android Studio и зависимости для сборки под Android
  • Немного знания Svelte и Rust, либо наличие ChatGPT Pro

Установка

$ git clone https://github.com/me0wkie/maxplus
git clone https://github.com/me0wkie/rumax
cd maxplus
bun install # Или npm install / pnpm install
bun run tauri icon static/favicon.png # Важно для запуска

В стандартном окружении, папка rumax должна быть наравне с папкой maxplus (можно изменить в Cargo.toml)

Запуск Development сервера

Чтобы запустить сервер для разработки, выполните команду:

# Разработка в Desktop-режиме (не поддерживает Android-специфичные плагины)
$ bun run tauri dev

ИЛИ

# Разработка через adb (предварительно запустите Android Studio и законнектите устройство)
$ bun run tauri android dev

# Опционально (если ошибки из-за jdk > 17)
$ JAVA_HOME=/usr/lib/путь_к_jdk_17 bun run tauri android dev

Чтобы ускорить запуск на Android, создайте копию tauri.conf.json - tauri.android.conf.json и укажите в devUrl точный адрес ПК в локальной сети.

Отладка на Android

С запущенным приложением (bun run tauri android dev):

Перейти в Chrome на chrome://inspect#devices -> WebView in org.meowkie.max (tauri.localhost)

Сборка проекта

Для сборки под Windows, Linux, iOS нужна предварительная настройка (Windows, Debian, iOS, macOS)

Сборка под Android в среде Linux

Important

Вместо локальной сборки, можно воспользоваться готовым скриптом GitHub Actions. Это сэкономит ~5-10 ГБ на диске.

  1. Установите Android Studio, а в нём дополнительно: Android NDK, Android SDK и по желанию Android Emulator

  2. Согласно инструкции на сайте Tauri, настройте переменные среды NDK_HOME, ANDROID_HOME

  3. Создайте Java Keystore в папке проекта:

$ keytool -genkeypair -v \
  -keystore src-tauri/gen/android/app/keystore.jks \
  -keyalg RSA \
  -keysize 2048 \
  -validity 10000 \
  -alias SECRET_123
  1. Настройте keystore.properties в папке проекта:
$ cd src-tauri/gen/android
mv keystore.properties.example keystore.properties
nano keystore.properties
  1. Сама сборка
    Вместо aarch64 можно подставить другую архитектуру (armv7, i686, x86_64). Можно собрать для всех платформ Android сразу (увеличится размер .apk)
# Для конкретной архитектуры
$ cargo tauri android build --target aarch64

ИЛИ

# Единый .apk для всех архитектур
$ cargo tauri android build

Нормальная сборка под iOS возможна только с macOS. Может понадобиться платная подписка Apple Developer.

Сброс данных клиента

Секретные чаты теряются!

Для Linux:

$ rm -rf ~/.local/share/org.meowkie.max

Для Android:

Очистка кеша и данных приложения через настройки

В планах

  • Мини-приложения и Сферум
  • Уведомления
  • Шифрование в группах по схеме MLS
  • Установка любых реакций и фона
  • Звонки с e2e шифрованием

Источники

  • PyMax — работа с Max API (портировано на Rust в репозитории rumax)
  • Tauri — фреймворк для разработки приложений на WebView
  • libsodium-wrappers-sumo — криптография для сквозного шифрования

About

Создаваемый с нуля кастомный клиент Max (Макс) для Android, iOS, Windows, Linux

Topics

Resources

License

Stars

Watchers

Forks

Contributors