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 шифрование (можно включать для отдельных чатов)
  • В планах: поддержка звонков, многопользовательских чатов

Небольшой размер приложения достигается использованием встроенных веб-браузеров (спасибо команде Tauri!)

Important

В будущем потребуется доступ к камере для покупки пива в Магните (через QR-код)

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

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

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

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

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

Обновления можно будет проверить, используя кнопку в настройках.
В целях безопасности автопроверка обновлений не будет реализована.

Разработка

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

Требования

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

Установка

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

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

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

# Разработка в Desktop-режиме (не поддерживает Keystore и 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

  1. Установите Android Studio, Android SDK и Android NDK r21e
    Версия r21e нужна для корректной сборки (это велосипед, нужно исправить)

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

  3. Из-за особенностей сборки, линкуем libunwind -> libgcc (это велосипед, нужно исправить)

cd $NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9.x/
ln -s libgcc.a libunwind.a
  1. Создайте 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_6). Можно собрать для всех платформ 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 шифрованием
  • Поддержка WebApps

Источники

  • PyMax - работа с Max API (портировано на Rust в репозитории rumax)
  • tauri-keystore-plugin - для аппаратного шифрования на мобильных устройствах (TODO сделать форк)

About

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

Topics

Resources

License

Stars

Watchers

Forks

Contributors