Приложение вылетает при запуске, если оно установлено в системный раздел

Я пытаюсь установить APK как системное приложение в /system/app

когда я устанавливаю его как обычное пользовательское приложение на data/app, все работает нормально.
когда я пытаюсь установить другое приложение как системное приложение, все работает нормально

но для этого приложения происходит сбой с ошибкой E/dalvikvm( 1533): Dex cache directory isn't writable: /data/dalvik-cache. любое другое приложение работает нормально, и на /data разделе достаточно места.

/data/dalvik-cache имеет разрешение drwxrwx--x.
после запуска chmod 777 /data/dalvik-cache приложение открылось корректно!

Возникает вопрос: почему у андроида проблема с записью в /data/dalvik-cache, только когда приложение установлено как системное приложение, и только для этого приложения.
Я также заметил, что размер значка меньше при установке как системное приложение. существует ли другой метод синтаксического анализа системного приложения, а не пользовательского приложения?

версия андроида: 4.4


person meume    schedule 07.10.2020    source источник


Ответы (1)


Копировать и вставить: Кэш Dalvik — это набор сохраненных файлов. файлы dex. А . dex представляет собой скомпилированную версию приложения с байт-кодом, созданную для виртуальной машины Dalvik, на которой работают приложения Android

Если вы изучаете файловую систему в целом, все разделы, которые предназначены для использования только системой, должны иметь ограниченные или не иметь прав доступа для пользователей, потому что существует потенциальный риск повреждения файловой системы,

В частности, если вам нужно понять, почему папка Dalvik действительно существует, посмотрите StackOverFlow

person Ali    schedule 07.10.2020
comment
спасибо за ответ. не отвечает, как процесс, который генерирует кеш байт-кода, не имеет разрешения на запись в /data/dalvik-cache только для одного приложения и только при установке в качестве системного приложения - person meume; 08.10.2020