Тихая установка 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 недостаточно. Вы также должны быть подписаны с тем же ключом, что и сам ПЗУ.
Тихая установка приложений или обновлений в собственное приложение запрещена по соображениям безопасности.