Трудности установки в /system/priv-app на Android TV 5.1.1

Я скопировал свое приложение в /system/priv-app/ и перезагрузил систему. Приложение больше не отображается в разделе "Загруженные приложения", а теперь в разделе "Системные приложения". Однако это происходит только тогда, когда я не удаляю оригинальную копию приложения в / data / app /. Если я удаляю оригинальную копию в / data / app / и перезагружаюсь, приложение вообще нигде не отображается, хотя в /system/priv-app/ есть его копия. Кроме того, я проверил с помощью getPackageManager(). GetApplicationInfo(getPackageName(), 0).sourceDir, что когда приложение действительно запускается (если у меня все еще есть копия в /data/app/), оно запускается из непривилегированного каталога, хотя я запускаю его из-под системных приложений.

Мои права доступа и права собственности соответствуют всем другим приложениям в каталоге /system/priv-app/: drwxr-xr-x root root

Я обнаружил некоторые связанные с этим вопросы о стековом потоке, в которых иногда говорят, что необходимо запустить chcon на APK после копирования в /system/priv-app/. Система выдает сообщение об ошибке "Не удалось пометить [мой путь] с помощью u:object_r:app_data_file:s0: Операция не поддерживается на конечной точке транспорта". Я обнаружил некоторую документацию, в которой говорилось: "Вы ограничены изменением контекста файлов, раздел которых отформатирован в файловой системе ext4. Любая попытка изменить контекст файла в другой системе приводит к [полученному сообщению об ошибке]". Очевидно, что chcon не является решением в моем случае.

Я был бы признателен за любые советы по отображению моего приложения в системных приложениях и запуске из каталога /system/priv-app/.

Спасибо!

ИЗМЕНЕНО ДЛЯ ДОБАВЛЕНИЯ: Я также подписал свой APK системным ключом, который использовался для ключевых системных приложений. Это также не имело никакого эффекта.

1 ответ

Решение

Оказывается, мне нужно было сначала удалить пакет, используя его исходное местоположение, с помощью диспетчера пакетов Android, прежде чем система сможет подобрать приложение для установки. Ранее я просто удалил его в командной строке из исходного местоположения. На этот раз я скопировал файлы из / data / app / в /system/priv-app/, запустил pm uninstall [имя моего пакета] и перезагрузился. Программа была успешно установлена ​​после восстановления системы.

Другие вопросы по тегам