Проект чтобы сделать мессенджер макс более конфиденциальным
Go to file
SillySteve c0f711d56e
fix: vid
2025-09-11 20:15:19 +02:00
.github/workflows fix: deprecate paranoid again 2025-09-04 19:58:26 +02:00
manifests chore: refactor manifests patches 2025-08-31 00:20:10 +02:00
patches feat: add firebase createConnection to DB 2025-09-11 19:51:53 +02:00
scripts fix: annotations 2025-09-04 19:41:21 +02:00
source_apk upd: bump to 25.10.2 2025-09-11 15:27:22 +02:00
README.md fix: vid 2025-09-11 20:15:19 +02:00

README.md

img

max-patcher-privacy - Патч для приватности

Этот проект содержит автоматизированный патч для удаления шпионского SDK my.tracker (и другие логгеры) из приложения max.

Готовый апк файл в https://github.com/TheSillyStever/max-patcher-privacy/actions (наверное не тестированный)

Если есть проблемы или предложения? создайте пост!. Хотите добавить что-то своё? Пул-реквесты всегда открыты!

О проекте

В связи с требованием о предустановке ПО, это приложение поставляется на многих устройствах. Внутри него находится трекеры, включая my.tracker (принадлежит VK), который собирает огромное количество данных о пользователе и устройстве.

Цель этого проекта предоставить версию приложения, в которой шпионские функции трекера полностью отключены. Процесс полностью автоматизирован с помощью GitHub Actions, и вы можете собрать APK самостоятельно.

Если уж устанавливать так с безопасностью!

Что конкретно делает патч?

Патч отключает ключевые шпионские функции SDK my.tracker и другие аналитические модули (список пополняется):

  • Сбор личных данных: Все методы set... для отправки PII (возраст, пол, email, телефон, ID соцсетей и т.д.) в MyTrackerParams.smali заменены на пустые. Они просто возвращают управление, ничего не делая.
  • Сбор аналитики звонков: Методы send и forceSendScheduledEvents в ru/ok/android/externcalls/analytics/CallAnalyticsSender.smali заменены на пустые. Это предотвращает сбор и отправку данных о ваших звонках.
  • Отчеты о сбоях и сессиях (Apptracer + Firebase): Отключены функции отправки данных о сбоях (fl6.smali), трекинга сессий (sbd.smali) и загрузки "образцов" данных (ru/ok/tracer/upload/SampleUploadWorker.smali) на серверы https://sdk-api.apptracer.ru. Патчи для dke.smali также предотвращают инициацию этих процессов.
  • Проверка на root-доступ: Функция проверки (obfuscated/r$a.smali) всегда возвращает false, так что трекер думает, что у вас нет root-прав.
  • Сбор списка установленных приложений: Функция (obfuscated/f.smali) теперь всегда возвращает пустой список.
  • Отправка данных (MyTracker): Все сетевые запросы к серверам трекера (tracker-api.vk-analytics.ru) блокируются на уровне кода (obfuscated/b0.smali и m0.smali). Данные просто не уходят с устройства.
  • Системное логирование: Основные методы логирования в классе, делегирующем вызовы логгеру d86 (различные уровни info, debug, warn, error), заменены на пустые. Это значительно снижает вероятность непреднамеренной утечки чувствительных данных через системные логи приложения. Внимание: имя файла и методов, отвечающих за логирование, может изменяться с каждой версией приложения, патчи названы как NL_.... Это экспериментальные патчи, и в будущем планируется автоматизировать их обнаружение. Патч может не сработать, если версия приложения не совпадает с версией патча.

Как это работает

Процесс полностью автоматизирован. Воркфлоу GitHub делает следующее:

  1. Декомпиляция: Оригинальный APK из этого репозитория распаковывается с помощью apktool.
  2. Патчинг: Python-скрипт (scripts/patcher.py) находит и заменяет участки Smali-кода, отвечающие за сбор данных, на "пустышки". Патчи находятся в папке patches.
  3. Сборка: Модифицированные файлы собираются обратно в APK с помощью apktool.
  4. Выравнивание и Подпись: APK выравнивается (zipalign) и подписывается временным ключом, который генерируется во время сборки.

Доказательства

Я приложу скриншоты, которые показывают код до и после применения патча на примере методов. Это демонстрирует, как опасный код заменяется на "пустышку". До (Оригинальный код MyTrackerParams): 1 (2)

После (Код после патча): 2

Или например:

До (Оригинальный код b0.smali (HttpURLConnection)): 3

После (Код после патча): 4

Это видео показывает эффективность патча. Как вы можете видеть в GIF-файле, после запуска приложения и ввода номера телефона, монитор сетевого трафика (слева) остается практически пустым. Присутствуют только запросы от самого эмулятора и официальной аналитики Google. Это служит доказательством того, что патч успешно блокирует все исходящие запросы к шпионским SDK, таким как my.tracker (VK) и другим модулям сбора данных вроде Firebase, обеспечивая тем самым вашу приватность.

Как собрать APK самостоятельно

Вы не должны доверять APK-файлам из интернета, включая мои. Поэтому вы можете (и должны) собрать его самостоятельно, используя открытый код этого репозитория.

  1. Сделайте форк этого репозитория.
  2. Закиньте свой апк макс в папку source_apk вместо моего! (мой взят с https://apkcombo.com/downloader/#package=ru.oneme.app, 25.10.2 · Sep 10, 2025, extract xapk -> ru.oneme.app.apk)
  3. Перейдите во вкладку "Actions" в вашем форке.
  4. Найдите воркфлоу с названием "Build Patched APK" и запустите его (кнопка Run workflow).
  5. После завершения работы (обычно 2-3 минуты), в артефактах сборки вы найдете zip-архив с готовым patched-app-release.apk.

Важно: Так как приложение подписано другим ключом (не ключом разработчика), вам нужно будет удалить оригинальную версию приложения перед установкой этой. Обновить поверх не получится.

Если во время патчя в воркфлоу вы видете [W] Unused patch pairs (X) значит что не удалось найти сигнатуры методов/ чтото пошло не так, ждите или попробуйте разобратся сами, но не рекоммендую использовать без патчей.

Настройки сборки (GitHub Actions)

При запуске воркфлоу "Build Patched APK" вы увидите несколько настроек:

  • permsRemoval (Уровень удаления разрешений) Эта настройка контролирует, какие разрешения будут удалены из файла AndroidManifest.xml приложения. Удаление разрешений повышает вашу приватность, но может привести к неработоспособности некоторых функций приложения.

    • none: Не удалять никаких разрешений. Будут применены только Smali-патчи.
    • dangerous (по умолчанию): Удаляет разрешения, которые напрямую и опасно вторгаются в вашу конфиденциальность (например, доступ к точному местоположению, управление аккаунтами, установка других приложений). Приложение, скорее всего, сохранит основную функциональность обмена сообщениями, но некоторые "удобные" функции будут недоступны.
    • strict: Удаляет все "опасные"(dangerous) разрешения, а также те, которые позволяют приложению получать широкий доступ к вашим личным данным или ресурсам устройства (например, чтение контактов, доступ к камере, микрофону, хранилищу, биометрии, системным окнам). Это значительно повышает приватность, но может привести к потере значительной части функциональности, такой как отправка медиафайлов или совершение звонков.
    • paranoid: (В разработке) Удаляет абсолютно все разрешения, включая доступ к интернету. Приложение будет полностью лишено любых прав на взаимодействие с вашей системой или сетью, что сделает его нефункциональным как мессенджер, но обеспечит максимальную конфиденциальность.
  • experimental (Включить экспериментальные патчи Smali) Эта настройка определяет, будут ли применены патчи, которые могут быть более агрессивными и потенциально вызывать нестабильность или сбои в работе приложения.

    • true (по умолчанию): Включает экспериментальные патчи. Сейчас это включает агрессивное отключение всей системы логирования (d86.smali), которая может собирать внутренние данные приложения.
    • false: Отключает экспериментальные патчи. Используйте эту опцию, если приложение с включенными экспериментальными патчами ведет себя нестабильно.

Дисклеймер

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