2016-10-13 3 views
-1

У меня есть приложение, которое находится в системной памяти телефона. Это своего рода приложение для блокировки телефона, для которого требуется пароль для доступа к телефону.Как программно удалить системное приложение с Android-телефона?

Мне нужно приложение исчезнуть с телефона, как только будет введен правильный пароль. Прямо сейчас, что я сделал, я сам удалил приложение с помощью Intent.DELETE при правильном пароле. Но проблема в том, что при перезагрузке телефона приложение снова появляется с запросом пароля.

Итак, есть способ программно удалить системное приложение, чтобы оно не появлялось даже после перезагрузки телефона?

Я нашел пару сообщений здесь, в разделе «Переполнение стека», но не смог заставить код работать.

How to uninstall android system app programmatically?

How to uninstall own app from /system/app?

+0

как, во второй ссылке я не знаю, что передать функцию «deleteFromSystem». Пожалуйста, помогите –

ответ

0

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

Оба предложенных вами решения пытаются удалить ваше приложение из системного раздела, который является разделом только для чтения (и по уважительной причине). Если вы хотите удалить файлы из этого раздела, вам придется перемонтировать его как раздел для чтения/записи и только затем удалить файлы.

Чтобы переустановить системный раздел, вам понадобится root-доступ, и, насколько мне известно, это будет невозможно изнутри стандартного приложения для Android.

Возможно, вы захотите использовать исполняемый Daemon с правами доступа root и выполните удаление для вас, но это довольно сложное решение.

Edit:

Будучи приложением системы не означает, что приложение имеет корневой доступ! Второй пример будет работать только в том случае, если все устройство внедрено. В этом случае безопасность вашего устройства крайне слабая. Если вы все еще хотите использовать этот подход, просто укажите путь к вашему apk (system/app/yourapp/yourapp.apk) .l

+0

приложение само будет находиться в системном разделе, поэтому он должен иметь корневой доступ –

+0

, можете ли вы мне помочь и выяснить, что нужно передать в качестве параметра в функции deleteFromSystem во второй ссылке. –

+0

См. Отредактированный ответ. –

Смежные вопросы