трудности с установкой в ​​/ system / priv-app на Android TV 5.1.1 - PullRequest
0 голосов
/ 27 июня 2018

Я скопировал свое приложение в / 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 Apps и запуску из каталога / system / priv-app /.

Спасибо!

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

1 Ответ

0 голосов
/ 28 июня 2018

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

...