**ВТостерс Lite** — это модифицированный клиент официального ВКонтакте, основанный на версии **5.56.1 (4838)**
* Вы можете предложить свои идеи/сообщить о багах в [Issues](https://github.com/vtosters/lite/issues)
* Скачивать самые актуальные версии можно с [Actions](https://github.com/vtosters/lite/actions)
(могут содержать баги)
* Стабильные сборки находятся в [Releases](https://github.com/vtosters/lite/releases)
Зеркало на нашем [ Git](https://git.maki.su/vtosters/lite)
### Быстрая навигация
- [Функциональность](#функциональность)
- [Отладка приложения](#отладка-приложения)
- [Разработка](#разработка)
- [Всё необходимое для сборки и компиляции](#всё-необходимое-для-сборки-и-компиляции)
- [Необходимые зависимости](#необходимые-зависимости)
- [Linux/MacOS/Windows](#LinuxmacOSWindows)
## Функциональность
* Возможность вернуть старый дизайн ВКонтакте
* Нет рекламы и ограничений музыки
* Интеграция с VKX и Last.FM
* Самая большая кастомизация и фильтрация ленты новостей
* Кеширование и скачивание треков
* Редактор нижней панели
* Скрытие активности в сообщениях и офлайн-режим
* Возможность отправлять стикеры из Telegram
* Отключение редиректа через away.php
* Поддержка сторонних прокси для пользователей из Украины
* Эксклюзивные функции и галочки для тех кто поддержал разработку. Подробнее
* Глобальная оптимизация приложения VK (Удалены сторонние библиотеки рекламы, аналитики и метрики, заглушки для рекламных запросов)
Все функции модификации описаны [здесь](https://github.com/vtosters/lite/blob/main/.github/features.md)
## Отладка приложения
Для отладки с помощью Android Studio необходимо пройти в `/smali/AndroidManifest.xml` и изменить значение `android:debuggable`:
`android:debuggable="false"` ➝ `android:debuggable="true"`
Настройки, необходимые для **отладки** вне Android Studio, находятся по этой ссылке: [vk.com/vt/debug](https://vk.com/vt/debug)
* Для дополнительной отладки ответов и логов необходимо включить **[Режим разработчика]**
* Для просмотра SSL-трафика необходимо **отключить** функцию **[SSL Pinning]**
* Для логгирования внутренних запросов к API необходимо включить функцию **[Логгирование API]** (работает только при использовании внутреннего логгера!)
* Для использования внутреннего логгера необходимо включить функцию **[Запись логов в файл]**
Сразу после нажатия на запись приложение начнет записывать **все ваши действия** по пути `/Download/VK/logs/com.vtosters.lite/`
При следующем открытии приложения оно автоматически сохранит логи и отправит вам в [**Документы** ВК](https://vk.com/docs), откуда вы можете скачать архив логов и работать с ними.
## Разработка
Для понимания работы декомпилированного кода требуется использовать **Dex to Java** декомпилятор [jadx](https://github.com/skylot/jadx) или же сторонние варианты как [Fernflower](https://github.com/fesh0r/fernflower)
При нахождении решения каких-либо проблем ждем вас в [Pull Requests](https://github.com/vtosters/lite/pulls)
* Рекомендуется установка **ADB** в систему ([Как это сделать](https://technastic.com/system-wide-adb-fastboot-windows-10))
* Для индексации декомпилированного кода в Studio используется [dex2jar](https://github.com/pxb1988/dex2jar)
Сгенерированные библиотеки из .dex файлов находятся в `/app/libs`
При чистой перекомпиляции .dex в .jar может сломаться некоторая индексация файлов, исправляйте ручками что попадется (К примеру какие-то функции в дексах изменены с **private** на **public**)
Для сборки декомпилированного кода и ресурсов используется [Apktool](https://github.com/iBotPeaches/Apktool)
### Всё необходимое для сборки и компиляции
```diff
- Не меняйте имя пакета во избежание проблем с приложением
- Некоторые функции, связанные с музыкой не будут работать в пересобранном приложении
```
* Весь декомпилированный код клиента находится в `/smali`
* Весь исходный код модификации находится в `/app`
* Все необходимые скрипты/.jar файлы для компиляции APK, его подписывании и не только находятся в `/scripts`
### Необходимые зависимости
[**JDK**](https://adoptium.net/temurin/releases/) >14 версии
[**Rust**](https://www.rust-lang.org/learn/get-started) с Android ARM тулчейнами: `rustup target add aarch64-linux-android armv7-linux-androideabi`
Android SDK и NDK (устанавливаются через
[sdkmanager](https://developer.android.com/studio/command-line/sdkmanager) или [Android Studio](https://developer.android.com/studio))
### Linux/macOS/Windows
Для сборки необходимо вызвать одну из следующих gradle tasks:
+ `./gradlew buildVTL + ` - соберет и подпишет APK
+ `./gradlew buildAndInstallVTL + ` - соберет, подпишет и попытается установить через ADB
+ `./gradlew buildAndLaunchVTL + ` - соберет, подпишет, попытается установить через ADB и запустит на устройстве
+ [FOR DEVS] `./gradlew prepareDexForMerge + ` - соберет все необходимое для сборки в `smali/`
+ [FOR DEVS] `./gradlew exportDex + ` - экспортирование дексов из собранного приложения для переноса в `smali/`
```
Build types:
Dev
Beta
Release
```