Как подписать Android-приложение системной подписью? - PullRequest
67 голосов
/ 03 сентября 2010

Я скачал и скомпилировал версию Android 2.1 с изображением signed-google_ion-ota-14721.zip для своего телефона HTC. Компиляция завершена успешно и образ системы мигает. Как я могу подписать свое собственное приложение для Android системной подписью?

Может кто-нибудь описать весь процесс подписания пользовательского приложения системной подписью, поскольку я совершенно новичок в процессе подписания.

Ответы [ 2 ]

112 голосов
/ 06 сентября 2010

Наконец мне удалось найти способ подписать свое приложение подписью платформы. Вам нужно использовать ключи, расположенные в <root-of-android-source-tree>/build/target/product/security/ и добавить android:sharedUserId="android.uid.system" в ваш файл AndroidManifest.xml.

Подробности из этой ветки групп Google :

Над подписью Android 1.6 для Dream с сертификатами, сгенерированными Я также смог подписать свое приложение сертификатом платформы и запустить его с системой sharedUserId. Вот шаги, которые я предпринял:

  • Создайте и установите на свой Dream свой собственный Android, используя https://web.archive.org/web/20081211205758/http://source.android.com:80/documentation/building-for-dream. Используйте скрипт mkkey.sh включен https://web.archive.org/web/20091213215940/http://pdk.android.com/online-pdk/guide/release_keys.html для создания новые сертификаты, включая сертификаты x509 перед тем, как вы сделаете 'make'.
  • В AndroidManifest.xml вашего приложения: под элементом <manifest> добавьте атрибут android:sharedUserId="android.uid.system".
  • Экспорт неподписанной версии вашего приложения Android с помощью Eclipse: щелкните правой кнопкой мыши проект >> Инструменты Android >> Экспорт Пакет без подписи.
  • Используйте <root-of-android-source-tree>/out/host/<your-host>/framework/signapk.jar, чтобы подписать ваше приложение, используя platform.x509.pem и platform.pk8 в <root-of-android-source-tree>/build/target/product/security сгенерированный ранее:

    java -jar signapk.jar platform.x509.pem platform.pk8 YourApp-unsigned.apk YourApp-signed.apk.
    
  • Установите приложение на ваше устройство:

    adb install YourApp-signed.apk
    
  • Запустите ваше приложение
  • Используйте adb shell ps, чтобы подтвердить, что ваше приложение работает как система.
10 голосов
/ 23 февраля 2014

Процедура работает нормально, я попробовал.До тех пор, пока вы не забудете запустить zipalign после подписи, так как в процессе подписи APK не выровнен, и он НЕ будет установлен.Вам нужно будет установить выровненный APK.

zipalign -fv 4 YourApplication-signed.apk YourApplication-aligned.apk
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...