1. надо собрать в одном приложении функционал от нескольких других приложений 2. основные функции: -hard reset при срабатывании определенного сценария -работа с системной пин-панелью -заморозка (disable) приложений -работа с разными профилями (юзерами) - маскировка под калькулятор 3. особенности: -приложение должно быть рутовым (запрашивать и использовать рут-доступ) -приложение должно быть xposed (zygisk-lsposed) -приложение должно запрашивать и использовать права администратора устройства (если не получится сделать хард ресет просто с рутом) -приложение должно иметь защиту от копирования и переноса на другой телефон, например оно должно обращаться к определенному файлу в системе, лежащему гденибудь в разделе /data, с определенным содержанием, если файл там – работает, если его нет или содержание не совпадает – не работает - приложение должно иметь защиту от декомпиляции, т.е. обфускация кода
Примечание: Большая часть функционала уже реализована и работает в других приложениях, ссылки на репо (при наличии) и сами апк предоставим.
Подробно: 1.Маскировка под калькулятор и заморозка Из приложения blackhole берем функционал маскировки самого приложения под рабочий калькулятор: если набрать определенные цифры и нажать =, то попадаем внутрь нашего приложения.
Также из blackhole берем заморозку (hide) приложений, и делаем это отдельным разделом внутри нашего приложения.
Больше из blackhole никакие функции не нужны, только маскировка под рабочий калькулятор и заморозка других приложений, чтобы они пропадали из списка приложений. Если получится спрятать еще и из настроек - отлично
2.Паник сценарии Отдельный раздел – паник сценарии (т.е. hard reset при наступлении определенных обстоятельств): -специальный пин на панику – берем из duress -количество неправильных попыток ввода пинкода – из sentry -юсб, время, и другие сценарии – из wasted -кнопка в шторке, также можно из wasted, а можно из panic.apk, добавить возможность выбирать форму и вид этой иконки в шторке -также касательно сценария с приходом специального сообщения – если наше приложение может получить доступ к уведомлениям в заблокированном состоянии – это будет очень круто. С учетом рута и хпсд, это вполне возможно. -вытащить симкарту – берем из eradoo -возможно еще какието паник сценарии можем придумать, например срабатывание по голосу, или может еще чтото в голову придет, идеи приветствуются
3.Фейк пространство (второй юзер) Отдельный раздел – фейк пространство, т.е. переброс на другого андроид-юзера, с отдельным рабочим столом. Берем функционал (распознать спец пин и передать команду на смену юзера) из app-release.apk (AlternativeUnlockXposed). При этом если просто передать команду am switch-user 10 (11,12.), то телефон показывает анимацию “switching to user ..”. Вот эту анимацию надо както убрать, или накрыть черным экраном, или прокрутить просто какойнибудь loading, в общем чтобы не было понятно, что меняется юзер. Вот это важный момент, который неоткуда взять и надо както придумать самому. Тестировал на андроид 14, там есть эта анимация.. нам надо ее как то отключить. Никаких подходящих команд для этого я не нашел, разве что заблокировать телефон (выключить экран – input keyevent 26), но это плохое решение, т.к. если сразу после этого нажать кнопку power, то опять же видна анимация.. короче нам надо ее както плотно накрыть сверху чемто, или просто отключить. Опять же с учетом рут и хпсд это вполне возможно.
4.Особенности и защита приложения Приложение должно быть рутовым и хпсд, берем из AlternativeUnlockXposed. Приложение должно обращаться к определенному файлу с определенным содержанием, и только после этого вообще запускаться, при этом это должно быть быстро. Например, на этапе ввода специального кода в калькулятор и нажатия =, вот чтобы в этот момент, перед тем как пройти дальше в само приложение, оно сверяло этот файл. Или готов послушать другие варианты защиты. Смысл в том, чтобы это приложение работало только на определенных телефонах, и простое копирование апк файла из работающей системы не позволяло бы завести его на другом устройстве. Или повторюсь, готов послушать другие опции. Кроме того, надо делать обфускацию кода, хотя бы какуюнибудь базовую, чтобы, просто разобрав это приложение, невозможно было понять что внутри.
Ну и кроме того, приложение должно быть мультиюзерным, чтобы одни и те же настройки по части пинкода на панику срабатывали на обоих юзерах. Еще бы как то интегрировать переход между юзерами, чтобы у каждого был свой пароль, и в какой бы момент времени не ввели тот или иной пароль, то подгружался бы нужный юзер. Что касается дизайна, предпочтение черному и зеленому, темно-зеленому цветам. Там мож пару лого потом скинем тоже, щас непринципиально.
Структура интерфейса/разделы: -заморозка -паника -фейк юзер -настройки
Код для калькулятора: использовать системный пин, как это сделано в wasted/duress/sentry