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

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

android:sharedUserId="android.uid.system"

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

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

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

3 ответа

Решение

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

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

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

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

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

  1. Используйте скрипт mkkey.sh http://www.kandroid.org/online-pdk/guide/release_keys.html для создания новых сертификатов, включая сертификаты x509. Вам не понадобятся эти шаги, так как производитель дает вам ключи.
  2. В AndroidManifest.xml вашего приложения: под элементом добавьте атрибут android:sharedUserId=”android.uid.system”
  3. Экспортируйте неподписанную версию вашего приложения Android, используя eclipse. Проект >> Инструменты Android >> Экспорт пакета неподписанного приложения
  4. Используйте /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. Шаги, возможно, изменились, но все же стоит попробовать.

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

Другие вопросы по тегам