Задание: Kotlin. Техническое задание: Модуль подмены камеры для Android (LSPosed/Zygisk) (Дистанционная работа)
1. Цель проекта: Создать приватный Android-модуль для среды LSPosed (Zygisk), который позволяет выбранным приложениям получать изображения или видео из галереи устройства вместо реального потока с камеры. Система должна быть защищена от несанкционированного копирования и работать по модели подписки.
2. Основной функционал (Payload):
Hooking API Камеры: Перехват вызовов на уровнях Camera (legacy), Camera2 и CameraX.
Подмена Intent-ов: Обработка стандартных системных запросов MediaStore.ACTION_IMAGE_CAPTURE и VIDEO_CAPTURE.
Media Injector: При вызове камеры в целевом приложении модуль должен открывать системный выбор файлов или кастомную галерею для выбора медиафайла (JPG/PNG/MP4).
White List (Scope): Возможность выбора конкретных пакетов приложений (например, Uber, Bolt), в которых будет работать подмена. Для всех остальных приложений камера должна работать в штатном режиме.
3. Анти-детект и скрытие (Anti-Detection):
Bypass Virtual Camera Check: Приложения не должны видеть, что источником видео является «Virtual Camera» или сторонний стрим.
Spoofing: Автоматическое удаление или подмена EXIF-данных выбранного фото, чтобы они соответствовали параметрам устройства (дата, модель камеры и т.д.).
Module Stealth: Модуль должен быть невидимым для проверок списка установленных пакетов (например, через методы GetInstalledPackages).
4. Система лицензирования и защиты (Business Logic):
Привязка к железу (HWID): Модуль должен генерировать уникальный ID устройства (Android ID + параметры железа) и привязывать лицензию к нему.
Server-side Auth: При каждом запуске или периодически модуль должен обращаться к удаленному серверу (через API) для проверки статуса подписки.
License Key: Поле в интерфейсе модуля для ввода ключа активации.
Обфускация: Весь код модуля должен быть максимально обфусцирован (ProGuard/DexGuard) для предотвращения реверс-инжиниринга и взлома системы лицензий.
5. Технические требования:
Языки: Java / Kotlin / C++ (JNI для лучшей защиты).
Среда: LSPosed (Zygisk mode).
ОС: Android 11 - 15.
Архитектура: Желательно MVVM, чистый код с возможностью дальнейшего обновления под новые версии Android.
6. Ожидаемый результат:
APK-файл модуля.
Простая серверная часть (или скрипт) для управления ключами/базой HWID.
Личное примечание: Привет! ТЗ (техническое задание) помогал составлять ИИ, но если вкратце: мне нужна программа, которая будет подменять поток камеры на фото из галереи. Суть в том, что в приложении, с которым я работаю, нет кнопки «выбрать фото» - там можно только сразу сделать снимок. Мне нужно, чтобы при нажатии кнопки «сделать фото» подтягивался файл из галереи (например, последний добавленный). Самое главное: максимальная безопасность. Нужно, чтобы приложение не вычислило подмену и меня не заблокировали. Все должно выглядеть как реальный снимок с камеры.