Информация о приложении Android System

Мне нужна общая информация о системных приложениях. Я работаю с производителем, который готов предоставить мне информацию, необходимую, чтобы сделать мое приложение системным приложением. Тем не менее, я не знаю точно, какова должна быть эта информация и как сменить приложение, чтобы сделать его системным приложением с данной информацией. Я считаю, что мне нужно что-то в моем манифесте вроде этого

android:sharedUserId="android.uid.system"

а затем мне нужно подписать мое приложение с ключом производителя? Я не уверен, может ли кто-нибудь объяснить мне, в чем именно будет выглядеть этот процесс?

Также причиной моего приложения должно быть системное приложение, поэтому пользователь не может его удалить, но мое приложение все еще нуждается в обновлении. Возможно ли обновить мое приложение, когда оно является системным приложением? Я буду обновляться, если из игры Google, как обычно.

Спасибо за любую помощь, я просто не мог найти очень много информации по этому вопросу и был бы признателен за помощь.

Ответ 1

Эта ссылка здесь даст вам немного информации.

Системное приложение НЕ является приложением, которое подписывается ОС платформенные подписи. Это распространенная ошибка, которую многие считают и мы придет к этому позже. Системное приложение - это просто приложение, которое находится в папке /system/app в Android устройство. Приложение может быть установлено только в этой папке, если у нас есть доступ к ROM операционной системы (system.img). Приложение помещено в /app после того, как ROM был извлечен. Устройство, которое загружает в пользовательском ПЗУ будет добавлено новое системное приложение. Преимущество системное приложение заключается в том, что приложение не может быть удалено из устройство (не может быть удалено пользователем). Это происходит только потому, что /system/app - это папка только для чтения.

http://ricston.com/blog/explaining-behavior-android-application-system-apps-nonsystem-apps/

Что касается обновления вашего приложения через магазин воспроизведения, я предполагаю, что вы сможете это сделать без каких-либо проблем, если приложение находится в магазине воспроизведения, и вы используете одну и ту же подпись каждый раз. Это не должен быть сертификат производителя, но лучше использовать этот сертификат для подписания вашего приложения.

Итак, единственное, что вам нужно, это то, что при создании ПЗУ производитель помещает ваш apk в системную папку, и он должен работать.

Ответ 2

  • Используйте mkkey.sh http://www.kandroid.org/online-pdk/guide/release_keys.html script для создания новых сертификатов, включая сертификаты x509. вам не нужны эти шаги, так как производитель дает вам ключи.
  • В AndroidManifest.xml вашего приложения: под элементом добавить атрибут android: sharedUserId = "android.uid.system"
  • Экспорт неподписанной версии вашего приложения для Android с помощью eclipse. Проект → Инструменты Android → Экспорт без подписного пакета приложений
  • Используйте /out/host//framework/signapk.jar, чтобы подписать ваше приложение, используя platform.x509.pem и platform.pk8 в/build/target/product/security/сгенерированные ранее

java -jar signapk.jar platform.x509.pem platform.pk8 your_app_unsigned.apk your_app_signed.apk

Ответ на некоторые из ваших других вопросов уже задал Кумар Бибек. Это те шаги, которые я выполнил, когда я должен был сделать то же самое. Это было сделано в Android ICS. Шаги, возможно, изменились, но все же стоит попробовать.

Ответ 3

Начиная с Android O (Oreo), вам нужно подписать системные приложения с помощью dev-ключей, в отличие от предыдущих версий, вы можете просто скопировать их в системную папку, которая изменилась в прошлом.