Как подписать Android-приложение с сигнатурой системы?

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

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

Ответ 1

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

Детали из этот поток групп google:

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

  • Создайте флеш-память для своего собственного Android с помощью http://source.android.com/documentation/building-for-dream. Использовать mkkey.sh script on 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, чтобы подтвердить, что приложение работает как система.

Ответ 2

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

zipalign -fv 4 YourApplication-signed.apk YourApplication-aligned.apk