Подписчик APK

Подпись APK онлайн — Как подписать APK-файлы бесплатно

Полное руководство по Лицо, подписавшее APK — узнайте, как использовать подписывать APK-файлы с помощью apksigner, jarsigner или хранилища ключей отладки. Бесплатный пошаговый Руководство по подписанию APK для разработчиков и тестировщиков. Подписать APK без Android Studio.

Почему APK-файлы необходимо подписывать?

Перед установкой каждое приложение Android должно быть подписано цифровой подписью. Подпись служит нескольким целям:

  • Проверяет личность разработчика приложения
  • Гарантирует, что APK не был подделан.
  • Позволяет Android сопоставлять обновления приложений с оригиналом
  • Требуется для установки на все устройства Android

Требуется настольный инструмент

Для подписания APK требуются инструменты командной строки (JDK/Android SDK). Это невозможно сделать в веб-браузере. Следуйте приведенному ниже руководству, чтобы подписать APK-файлы на своем компьютере.

Способ 1. Войдите с помощью apksigner (рекомендуется).

apksigner — это официальный инструмент подписи APK от Google, включенный в инструменты сборки Android SDK.

Шаг 1. Создайте хранилище ключей

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

Шаг 2. Подпишите APK

apksigner sign --ks my-release-key.jks \
  --ks-key-alias my-key-alias \
  --out signed-app.apk unsigned-app.apk

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

apksigner verify --verbose signed-app.apk

Способ 2. Подписание с помощью jarsigner (устаревшая версия)

# Sign
jarsigner -verbose -sigalg SHA256withRSA \
  -digestalg SHA-256 \
  -keystore my-release-key.jks \
  app-unsigned.apk my-key-alias

# Verify
jarsigner -verify -verbose app-signed.apk

Шаг 4: Zipalign (важно!)

После подписания оптимизируйте APK с помощью zipalign:

zipalign -v 4 signed-app.apk aligned-app.apk

Подписание отладки (для тестирования)

В целях тестирования вы можете использовать хранилище ключей отладки Android по умолчанию:

# Location of debug keystore:
# Linux/Mac: ~/.android/debug.keystore
# Windows: C:\Users\{USERNAME}\.android\debug.keystore

# Sign with debug key
apksigner sign --ks ~/.android/debug.keystore \
  --ks-key-alias androiddebugkey \
  --ks-pass pass:android \
  app.apk

Сопутствующие инструменты

APK-верификатор Информация об APK XAPK в APK AAB в APK

Сравнение инструментов подписи

Параметрапксигнерjarsigner
Подпись V1
Подпись V2
Подпись V3
РекомендуетсяНаследие

APK Signer — Часто задаваемые вопросы

Распространенные вопросы о подписании APK, хранилищах ключей и подписании кода Android

Для подписать APK-файл вам понадобится apksigner (рекомендуется) или jarsigner: (1) Создайте хранилище ключей с помощью keytool -genkey, (2) Подпишите APK с помощью apksigner sign --ks my-key.jks --out signed.apk unsigned.apk, (3) Проверьте подпись с помощью apksigner verify signed.apk. Вы также можете использовать хранилище ключей отладки Android в целях тестирования. Это стандартный путь к подписать APK без Android Studio.

Хотя вы не можете безопасно использовать подписать APK онлайн (поскольку для подписи APK требуется ваше личное хранилище ключей, которое никогда не следует загружать на какой-либо сервер), вы можете использовать наш бесплатный Руководство для подписантов APK для подписи файлов APK на вашем локальном компьютере. Наше пошаговое руководство проведет вас через весь процесс с использованием официальных инструментов Google apksigner и jarsigner. После подписания воспользуйтесь нашим Проверка подписи APK для бесплатной проверки подписи онлайн.

Версия 1 (подпись JAR): Оригинальная схема подписи Android. Проверяет каждую запись ZIP индивидуально. Медленнее, но широко совместим со всеми версиями Android. V2 (схема подписи APK): Представлен в Android 7.0. Проверяет весь APK в целом, обеспечивая более быструю установку. V3 (Схема подписи APK v3): Android 9.0+, поддерживает вращение клавиш. В4: Android 11.0+, поддерживает потоковую установку. Используйте apksigner для поддержки всех схем; jarsigner поддерживает только V1.

Для подписать APK без Android Studio: (1) Установите Java JDK 8 или выше, (2) Загрузите Android SDK Build Tools, включающий apksigner, или загрузите отдельный прилагаемый инструмент, (3) Создайте хранилище ключей: keytool -genkey -v -keystore my-key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias my-alias, (4) Подпишите: apksigner sign --ks my-key.jks --out signed.apk app.apk. Этот метод работает в Windows, Mac и Linux, не требуя полной установки Android Studio.

zipalign — это инструмент Android SDK, который выравнивает несжатые данные в APK по 4-байтовым границам. Эта оптимизация снижает потребление оперативной памяти при запуске приложения на устройстве. Важно: Если вы используете apksigner, запустите zipalign ПЕРЕД подписанием. Если вы используете jarsigner (устаревшая версия), запустите zipalign ПОСЛЕ подписания. Команда: zipalign -v 4 input.apk output.apk. Google Play требует, чтобы APK-файлы были zip-архивированы для отправки.

Почему порядок выравнивания (zipalign перед apksigner) важен на Android 11–15

Одна из наиболее частых ошибок, которые допускают разработчики и моддеры при подписании измененного или объединенного APK, — это запуск zipalign после для подписи пакета или использование устаревшей утилиты Java jarsigner вместо Android SDK от Google apksigner. Поскольку схемы подписи APK v2 и v3 вычисляют криптографический хэш по всей двоичной структуре ZIP-архива, изменение смещений байтов с помощью zipalign после подписания немедленно делает недействительным блок подписи v2/v3.

Начиная с Android 11 (уровень API 30) и строго применяется в Android 14 и 15, PackageManager требует двух необсуждаемых условий для любого APK, ориентированного на современные уровни SDK:

  • Несжатый 4-байтовый выровненный resources.arsc: Скомпилированная таблица ресурсов (resources.arsc) должна храниться в несжатом виде (STORED) и выровнена по 4-байтовой границе, чтобы Android мог отображать ее в памяти (mmap) напрямую, не копируя ее в ОЗУ. Всегда выполняйте подпись zipalign -p -f -v 4 input.apk aligned.apk до.
  • Обязательный блок подписи v2+: Подписание APK, ориентированного на API 30+, с помощью jarsigner (который записывает только подпись META-INF/ v1) приведет к тому, что Android 11–15 отклонит установку с помощью INSTALL_PARSE_FAILED_NO_CERTIFICATES. Используйте приведенный выше интерактивный генератор команд, чтобы создать точную команду apksigner --v2-signing-enabled=true для вашего хранилища ключей, или проверьте подписанный вывод в нашем Проверка подписи APK.
Разработано и задокументировано Мстом Шафале Ведущий разработчик и архитектор пакетов Android • Проверено на Android 12–15.

Каждая утилита из набора инструментов XAPK to APK работает на 100% локально в вашем браузере через JavaScript и WebAssembly. Нашли крайний случай с конкретным пакетом? Сообщите об этом нашей инженерной команде.