Тихая установка apk программно с помощью системного приложения (без root)

У меня есть системное приложение с android: sharedUserId = "android.uid.system" (UID: 1000).

Устройство не укоренено! Разрешение INSTALL_PACKAGES включено в манифест.

Могу ли я установить загруженный *.apk без проблем?

Ответ 1

Я нашел проблему.

  • Добавлено разрешение "android.permission.INSTALL_PACKAGES".
  • Я подписал свое приложение с помощью "signapk.jar" с сертификатом, который я получил от производителя моего устройства.
  • Теперь это приложение может устанавливать другие, используя "pm install /.../app.apk" без "su".

Это работает!

P.S. Обновление приложения, используя только "pm install", не заменяет существующее приложение новым, но возвращает exit_value = 0. Поэтому для обновления есть два способа:

  • используйте "pm install -r /.../app.apk";
  • сначала удалите приложение, используя "pm uninstall com.mydomain.myapp" (вам нужно "android.permission.DELETE_PACKAGES" ), а затем установите новый.

Ответ 2

Нет, вы не можете. Просто одного и того же UID недостаточно. Вы также должны быть подписаны с тем же ключом, что и сам ПЗУ.

Тихая установка приложений или обновлений в собственное приложение запрещена по соображениям безопасности.