![]() |
||
---|---|---|
.github/workflows | ||
manifests | ||
patches | ||
scripts | ||
source_apk | ||
ANALYSIS.md | ||
README.md |
README.md
max-patcher-privacy - Патч для приватности
Этот проект содержит автоматизированный патч для удаления шпионского SDK my.tracker
(и другие логгеры) из приложения max.
Готовый апк файл в https://github.com/TheSillyStever/max-patcher-privacy/actions (наверное не тестированный)
Если есть проблемы или предложения? создайте пост!. Хотите добавить что-то своё? Пул-реквесты всегда открыты!
О проекте
В связи с требованием о предустановке ПО, это приложение поставляется на многих устройствах. Внутри него находится трекеры, включая my.tracker
(принадлежит VK), который собирает огромное количество данных о пользователе и устройстве.
Цель этого проекта предоставить версию приложения, в которой шпионские функции трекера полностью отключены. Процесс полностью автоматизирован с помощью GitHub Actions, и вы можете собрать APK самостоятельно.
Если уж устанавливать так с безопасностью!
Как это работает
Процесс полностью автоматизирован. Воркфлоу GitHub делает следующее:
- Декомпиляция: Оригинальный APK из этого репозитория распаковывается с помощью
apktool
. - Патчинг: Python-скрипт (
scripts/patcher.py
) находит и заменяет участки Smali-кода, отвечающие за сбор данных, на "пустышки". Патчи находятся в папкеpatches
. - Сборка: Модифицированные файлы собираются обратно в APK с помощью
apktool
. - Выравнивание и Подпись: APK выравнивается (
zipalign
) и подписывается временным ключом, который генерируется во время сборки.
Что конкретно делает патч?
Патч отключает ключевые шпионские функции SDK my.tracker
и другие аналитические модули (список пополняется):
-
Сбор личных данных: Все методы
set...
для отправки PII (возраст, пол, email, телефон, ID соцсетей и т.д.) вMyTrackerParams.smali
заменены на пустые. Они просто возвращают управление, ничего не делая. -
Сбор аналитики звонков: Методы
send
иforceSendScheduledEvents
вru/ok/android/externcalls/analytics/CallAnalyticsSender.smali
заменены на пустые. Это предотвращает сбор и отправку данных о ваших звонках. -
Отчеты о сбоях и сессиях (Apptracer): Отключены функции отправки данных о сбоях (
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
). Данные просто не уходят с устройства. -
Системное логирование: Основные методы логирования в классе, делегирующем вызовы логгеру
ir6
(различные уровни info, debug, warn, error), заменены на пустые. Это значительно снижает вероятность непреднамеренной утечки чувствительных данных через системные логи приложения. Внимание: имя файла и методов, отвечающих за логирование, может изменяться с каждой версией приложения, патчи названы какNL_...
. Это экспериментальные патчи, и в будущем планируется автоматизировать их обнаружение. Патч может не сработать, если версия приложения не совпадает с версией патча.
Доказательства
Я приложу скриншоты из JEB Pro, которые показывают код до и после применения патча на примере методов. Это демонстрирует, как опасный код заменяется на "пустышку".
До (Оригинальный код MyTrackerParams
):
После (Код после патча):
Или например:
До (Оригинальный код b0.smali (HttpURLConnection)
):
После (Код после патча):
Как собрать APK самостоятельно
Вы не должны доверять APK-файлам из интернета, включая мои. Поэтому вы можете (и должны) собрать его самостоятельно, используя открытый код этого репозитория.
- Сделайте форк этого репозитория.
- Закиньте свой апк макс в папку source_apk вместо моего!! (мой взят с https://apkcombo.com/downloader/#package=ru.oneme.app, 25.9.2 · Aug 27, 2025, extract xapk -> ru.oneme.app.apk)
- Перейдите во вкладку "Actions" в вашем форке.
- Найдите воркфлоу с названием "Build Patched APK" и запустите его (кнопка
Run workflow
). - После завершения работы (обычно 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
(по умолчанию): Включает экспериментальные патчи. Сейчас это включает агрессивное отключение всей системы логирования (iu7.smali
), которая может собирать внутренние данные приложения.false
: Отключает экспериментальные патчи. Используйте эту опцию, если приложение с включенными экспериментальными патчами ведет себя нестабильно.
Дисклеймер
Этот проект создан исключительно в образовательных и исследовательских целях для демонстрации техник обратной инженерии и автоматизации. Он не связан с разработчиками оригинального приложения. Вы используете его на свой страх и риск.