Підписант APK

Підписувач APK онлайн — як безкоштовно підписувати файли APK

Повний посібник з підписувач APK — дізнайтеся, як підписувати файли APK за допомогою apksigner, jarsigner або debug keystore. Безкоштовний крок за кроком Навчальний посібник із підписання APK для розробників і тестувальників. Підпишіть APK без Android Studio.

Чому файли APK потрібно підписувати?

Кожна програма для Android повинна бути підписана цифровим підписом, перш ніж її можна буде встановити. Підпис має кілька цілей:

  • Перевіряє особу розробника програми
  • Переконується, що APK не було змінено
  • Дозволяє Android зіставляти оновлення програми з оригіналом
  • Необхідний для встановлення на всіх пристроях Android

Потрібен інструмент робочого столу

Для підпису APK потрібні інструменти командного рядка (JDK / Android SDK). Це неможливо зробити у веб-браузері. Щоб підписати файли .apk на комп’ютері, дотримуйтесь інструкцій нижче.

Спосіб 1. Підпишіть за допомогою apksigner (рекомендовано)

apksigner — це офіційний інструмент Google для підписання файлів APK, який входить до складу інструментів створення 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 (Legacy)

# 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

Порівняння засобів підписання

Параметрapksignerjarsigner
Підпис V1
Підпис V2
Підпис V3
РекомендованоСпадщина

Підписант APK — запитання й відповіді

Поширені запитання щодо підпису 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, щоб безкоштовно перевірити підпис онлайн.

V1 (підпис JAR): Оригінальна схема підпису Android. Перевіряє кожен запис ZIP окремо. Повільніше, але широко сумісно з усіма версіями Android. V2 (схема підпису APK): Представлено в Android 7.0. Перевіряє весь APK в цілому, забезпечуючи швидше встановлення. V3 (схема підпису APK v3): Android 9.0+, підтримує ротацію клавіш. V4: 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 були вирівняні в zipal для надсилання.

Чому порядок вирівнювання (zipalign перед apksigner) важливий на Android 11–15

Однією з найпоширеніших помилок розробників і моддерів під час підписання зміненого або об’єднаного APK є запуск zipalign після для підписання пакета або використання застарілої утиліти Java jarsigner замість Android SDK apksigner від Google. Оскільки схеми підпису APK версії 2 і версії 3 обчислюють криптографічний хеш для всього бінарного макета ZIP-архіву, зміна зсувів байтів за допомогою zipalign після підписання негайно робить блок підпису версії 2/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 (який записує лише підпис v1 META-INF/) призведе до того, що Android 11–15 відхилить установку за допомогою INSTALL_PARSE_FAILED_NO_CERTIFICATES. Використовуйте наведений вище інтерактивний генератор команд, щоб створити точну команду apksigner --v2-signing-enabled=true для вашого сховища ключів, або перевірте свій підписаний вихід у нашому Перевірка підпису APK.
Розроблено та задокументовано Mst Shaefale Провідний розробник і архітектор пакетів Android • Перевірено на Android 12–15

Кожна утиліта в наборі інструментів XAPK to APK працює на 100% локально у вашому браузері через JavaScript і WebAssembly. Знайшли граничний кейс із певним пакетом? Повідомте про це нашій команді інженерів.