Может ли приложение Android установить другое приложение для Android?
Мне было интересно, можно ли установить приложение Android, которое уже установлено, и загрузить другое приложение и установить его? Я полагаю, что с этим могут возникнуть проблемы с безопасностью, но возможно ли это для ОС Android?
Ответы
Ответ 1
Строго говоря нет, это невозможно: каждый установленный на устройстве файл пакета Android (.apk) имеет свой собственный уникальный идентификатор пользователя Linux, создающий для этого песочницу и не позволяющий ему трогать других приложений.
Если приложение "установит" другое, оно не сможет указать целевому пользователю новый идентификатор пользователя. Это может сделать только системный апплет, работающий на корневом уровне.
То, что приложение может сделать, это косвенно вызвать установщик пакетов с намерением ACTION_VIEW
и типом application/vnd.android.package-archive
MIME: система запустит соответствующий "просмотрщик", который, конечно же, является установщиком пакетов.
Хорошая ссылка об этой теме: http://android.amberfog.com/?p=98
Ответ 2
Да. Так работает бета-версия Swype. В основном вы загружаете новый apk и используете некоторый Intent (не уверенный), который запускает установщик пакетов (и на данный момент это новый вид активности, и пользователь должен согласиться установить его так же, как загрузка с рынка).
Ответ 3
Попробуйте следующее:
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(new File(path+"/yourapp.apk")), application/vnd.android.package-archive");
startActivity(intent);
Ответ 4
Если ответ НЕТ. Тогда мне интересно, как facebook устанавливает приложение "Messenger" вместе с приложением "Facebook для Android" ?
Если я не ошибаюсь, "Messenger" также является отличным приложением от приложения Main Facebook.
Facebook для Android Приложение не будет просить установить приложение Messenger, когда мы хотим поговорить через facebook. Он уже установлен с facebook.
Вы также можете установить/удалить приложение Messenger отдельно.
Возможно, я ошибаюсь. У меня нет полной информации, но, глядя на процесс и применяя немного логики, я думаю, что мы можем установить приложение для Android из другого приложения. Но как я слишком учусь и ищу его.
Как они это сделали? Пожалуйста, поправьте меня, если я ошибаюсь.
Ответ 5
Если ваше приложение принадлежит root, вы можете перенести apk, который хотите установить в /data/app, и он будет установлен, когда устройство перезагрузится