Согласно документу здесь:
https://source.android.com/devices/bootloader/product-partitions
Google говорит:
Раздел / product в Android 9 является расширением/ системный раздел .Поскольку существует слабый ABI между разделами / product и / system, оба должны быть обновлены одновременно, а ABI должен быть основан на System SDK.Если System SDK не покрывает все поверхности API между / product и / system, то OEM-производитель должен поддерживать свой собственный ABI между двумя разделами.
Разделы / product и / system могут иметь зависимостьдруг на друга.Тем не менее, тесты с Generic System Image (GSI) должны работать правильно без раздела / product.
Раздел / product не должен зависеть от раздела / vendor и не иметь прямого взаимодействия между разделом / product и/ vendor разрешен (применяется SEpolicy).
У меня проблемы с APK, который ведет себя не так, когда он находится в / product / priv-app vs / system / priv-app.
Сведения об APK:
- с подписью с ключом платформы
- работает как система (системный общий идентификатор в манифесте)
- взаимодействует с сокетами (принадлежитсистема) on / data
AOSP:
- многопользовательский режим
Проблема:
Когда APK размещенв (вручную, как просто в папке) / system / priv-app, все функции работают правильно.Приложение может общаться через сокет, помещенный в / data.Сокет принадлежит системе, а приложение (в многопользовательской среде) имеет 2 экземпляра.Тот, который работает как система, а другой как пользователь.Когда что-то происходит, это приложение пишет в сокет.Находясь в / system / priv-app, приложение может подключиться к сокету и успешно выполнить запись.Когда я генерирую новый чистый системный образ и вместо этого добавляю apk в / product / priv-app, я получаю отказано в разрешении на сокет.
Документы очень запутанные, и в течение многих лет Google еще не уточнила илиперечислите конкретные разрешения, основанные на размещении APK в системе.
Я читал о том, что некоторые приложения являются более системными, чем другие, но что это значит.Таким образом, все, что я знаю о разрешениях, это из моих собственных экспериментов.
Это поведение не описано ни в одном документе, и я хотел бы, чтобы кто-то еще, кто имел дело с priv-apps в разделе продукта, включил это и уточнитьесли возможно.
Спасибо!