Создание системного приложения

Что мне нужно сделать для создания системного приложения (для получения прав на использование android:sharedUserId="android.uid.system" в файле манифеста без получения ошибок диспетчера пакетов о проблемах сертификации?

Я использую встроенный телефон с прошивкой.

Ответы

Ответ 1

Хорошо, я считаю, что я нашел решение от великих разработчиков xda: http://forum.xda-developers.com/showthread.php?t=1776095 здесь представлено полное описание того, как получить доступ к приложениям, подписанным ключами платформы. Вы применяете этот подход? PS PS Интересно, что пользователи из стека вместо того, чтобы исследовать жесткую проблему, сразу скажут, что вы не можете ее решить, а затем уменьшите репутацию пользователя...

Ответ 2

Что мне нужно сделать для создания системного приложения

Существует два типа системных приложений:

  • Приложения, установленные на системном разделе, которые могут выполняться пользователями с привилегиями root

  • Приложения, подписанные одним и тем же ключом подписки, который подписал прошивку

для получения прав на использование android: sharedUserId = "android.uid.system"

Это определенно потребовало бы, чтобы ваше приложение было подписано с помощью того же ключа подписи, который подписал прошивку. Это верно для любого android:sharedUserId.

Но некоторые ребята редактируют фондовые приложения, готовят zip файл, который пользователь может обновлять системные приложения путем восстановления.

Вы можете предоставить какие-либо доказательства того, что они каким-то образом связаны с android:sharedUserId="android.uid.system".

Ответ 3

Мне не нужно было подписывать мое приложение с помощью прошивки! У меня есть корневое устройство. Поэтому я могу предоставить себе права на запись в определенные каталоги с помощью adb.

Я переместил приложение в /system/priv-app вместо /system/app с помощью следующих шагов: Push my apk to/system/app

Теперь я могу получить доступ к системным разрешениям, например, android.permission.SHUTDOWN

Ответ 4

Существует два типа системных приложений.

Тип 1: Приложение с той же подписью в ПЗУ устройства.

Тип 2. Подписанное приложение, которое находится в system/priv-app (может отличаться в зависимости от версии adnroid) в вашем хранилище устройства.

Посетите эту ссылку → http://www.archive.ricston.com/blog/explaining-behavior-android-application-system-apps-nonsystem-apps/

Ответ 5

Системное приложение должно быть подписано ключом платформы. Это делается разработчиками, внедряющими платформу Android на собственном устройстве, или мобильными операторами.

Если это ваш случай, проще всего добавить это на свой Android.mk:

LOCAL_CERTIFICATE := platform
LOCAL_PRIVILEGED_MODULE := true

Если вы добавите эти строки без добавления android: sharedUserId = "android.uid.system" в свой манифест, вы станете платформенным приложением. Системное приложение является более привилегированным, чем приложение платформы. Он использует ключ платформы и работает как системный пользователь.

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

Без подписи ваше приложение может использоваться только на рутованных устройствах.