Как создавать приложения в android, которые нельзя удалить? Можем ли мы сделать системные приложения?

Мы предоставляем одно приложение по умолчанию для наших клиентов с телефоном Android. Какой пользователь не может удалить. Я использовал функцию Device Admin из этого примера Но пользователь может удалить приложение, отключив его из настроек.

Другим возможным способом, который я нашел, чтобы установить приложение в папку System/apps, как и все приложения Google (я не уверен).

Для этого мне нужен root-доступ, поэтому я планирую сделать следующее, но не знаю, как его реализовать.

  • Программно-корневое устройство
  • Установить приложение в папку "Система/приложения"
  • Отключите устройство еще раз.

Как и многие системные приложения, как они работают для такой функции?

Пожалуйста, помогите.

Ответы

Ответ 1

Я создал пользовательский Launcher, который нельзя удалить.

  • Важно: root
  • установить приложение как системное приложение (установить в /system/app) из recovery mode.
  • Дополнительно: подписаться на удаление пакета, проверить, пытается ли пользователь удалить ваше приложение, и не разрешать ему делать это действие (закрыть операцию удаления пакета).

Я сделал архив, который можно установить из recovery mode. Также для моего Launcher требуется специальное приложение Superuser (я не хочу видеть уведомления из приложения Superuser, когда мои Launcher запускают корневые команды - тихо дают root доступ к моему Launcher).

Что я получил в результате: приложение Launcher, установленное как системное приложение (не может быть удалено). Также я заблокировал установку других пусковых установок, добавил белый список разрешенных приложений (не устанавливайте приложения, которые могут управлять файловой системой и изменять что-то важное).

Это решение полнее трюков, но его проще реализовать, чем пользовательский ПЗУ.

Если вы настроили ПЗУ и каким-то образом установили его на устройство (производитель контактных устройств из Китая, например, запросите драйверы целевых устройств и создайте ПЗУ на устройстве), вы можете подписать свое приложение с помощью системного ключа, поместить его с другим системных приложений, а затем его нельзя удалить. В этом случае root не нужен, но для этого требуется гораздо больше времени и сил.

Если вы будете корневать устройство программным путем, то вы должны использовать эксплойт, что делает rooting. И разные устройства внедрены по-разному.

Ответ 2

Проще есть что-то вроде Администратор устройства, но учтите, что пользователю будет предложено включить режим администратора в установленном приложении.

ЗДЕСЬ вы можете найти неплохое описание примера и учебник - попробуйте.