Как подписать уже скомпилированный Apk



Я декодировал APK с apktool (так как исходный исходный код был потерян), поэтому я мог бы исправить некоторые проблемы с XML-файлами макета. Затем я восстановил его с помощью apktool, и когда я попытался установить его на свое устройство (используя adb: adb install appname.apk) это дало мне эту ошибку:



[INSTALL_PARSE_FAILED_NO_CERTIFICATES]


исходный apk, однако, был подписан хранилищем ключей (на Eclipse IDE), это не так, как я могу правильно подписать его с помощью оригинального файла keystone за пределами Eclipse!?

877   6  

6 ответов:

создать ключ с помощью

keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000

затем подпишите apk, используя:

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-release-key.keystore my_application.apk alias_name

проверьте здесь для получения дополнительной информации

Автоматизированный Процесс:

используйте этот инструмент (использует новый apksigner от Google):

https://github.com/patrickfav/uber-apk-signer

отказ от ответственности: Im разработчик :)

Ручной Процесс:

Шаг 1: создание хранилища ключей (только один раз)

вам нужно создать хранилище ключей один раз и использовать его для подписи вашего unsigned apk. Используйте keytoolпредусмотрено JDK нашли в %JAVA_HOME%/bin/

keytool -genkey -v -keystore my.keystore -keyalg RSA -keysize 2048 -validity 10000 -alias app

Шаг 2 или 4: Zipalign

zipalignкоторый является инструментом, предоставляемым Android SDK нашли, например,%ANDROID_HOME%/sdk/build-tools/24.0.2/ является обязательным шагом оптимизации, если вы хотите загрузить apk в Play Store.

zipalign -p 4 my.apk my-aligned.apk

Примечание: при использовании старых jarsigner вам нужно zipalign после подписание. При использовании нового apksigner метод вы это делаете до подпись (запутанная, я знаю). вызов zipalign перед apksigner работает нормально потому что apksigner сохраняет выравнивание APK и сжатие (в отличие от jarsigner).

вы можете проверка выравнивание с

zipalign -c 4 my-aligned.apk

Шаг 3: Подписать И Проверить

использование build-tools 24.0.2 и старше

использовать jarsigner который, как и keytool, поставляется с дистрибутивом JDK найдено в %JAVA_HOME%/bin/ и использовать его вот так:

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my.keystore my-app.apk my_alias_name

и может быть проверена с

jarsigner -verify -verbose my_application.apk

использование build-tools 24.0.3 и новее

Android 7.0 представляет APK Signature Scheme v2, новую схему подписи приложений, которая обеспечивает более быстрое время установки приложения и большую защиту от несанкционированных изменений файлов APK (см. здесь и здесь для более подробной информации). Таким образом, Google реализовали свои собственный apk signer называется apksigner (хм!) Файл скрипта можно найти в %ANDROID_HOME%/sdk/build-tools/24.0.3/ (the .jar находится в /lib папку). Используйте его вот так

apksigner sign --ks my.keystore my-app.apk --ks-key-alias alias_name

и может быть проверена с

apksigner verify my-app.apk

официальная документация находится здесь.

самый быстрый способ-подписать с хранилищем ключей отладки:

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore ~/.android/debug.keystore app.apk androiddebugkey -storepass android

или на Windows:

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore %USERPROFILE%/.android/debug.keystore test.apk androiddebugkey -storepass android

вы использовать jarsigner подписать АПК. Вы не должны подписать с оригиналом ключей, просто создайте новый. Читайте подробнее:http://developer.android.com/guide/publishing/app-signing.html

Регистрация apk-signer хороший способ подписать ваше приложение

для тех из вас, кто не хочет создавать файл bat для редактирования для каждого проекта или не хочет запоминать все команды, связанные с программами keytools и jarsigner, и просто хочет сделать это в одном процессе, используйте эту программу:

http://lukealderton.com/projects/programs/android-apk-signer-aligner.aspx

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

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

не требуется установка, он полностью переносится и сохраняет свои конфигурации в CSV в той же папке.

Comments

    Ничего не найдено.