Как подписать уже скомпилированный Apk
Я декодировал APK с apktool (так как исходный исходный код был потерян), поэтому я мог бы исправить некоторые проблемы с XML-файлами макета. Затем я восстановил его с помощью apktool, и когда я попытался установить его на свое устройство (используя adb: adb install appname.apk) это дало мне эту ошибку:
[INSTALL_PARSE_FAILED_NO_CERTIFICATES]
исходный apk, однако, был подписан хранилищем ключей (на Eclipse IDE), это не так, как я могу правильно подписать его с помощью оригинального файла keystone за пределами Eclipse!?
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: создание хранилища ключей (только один раз)
вам нужно создать хранилище ключей один раз и использовать его для подписи вашего
unsignedapk. Используйте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