Трудности установки в /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 [имя моего пакета] и перезагрузился. Программа была успешно установлена после восстановления системы.