Инструмент сравнения версий APK

Инструмент сравнения версий APK и XAPK онлайн

Сравните два Пакеты .apk, .xapk или .apks рядом в своем браузере. Проверьте, совпадают ли их сертификаты криптографической подписи (чтобы предотвратить ошибки INSTALL_FAILED_UPDATE_INCOMPATIBLE), и проверьте различия в байт-коде DEX, собственных библиотеках и внутренних записях.

Пакет А (старая/базовая версия)

Нажмите или перетащите первый файл .apk/.xapk.

Пакет B (новая/обновленная версия)

Нажмите или перетащите второй файл .apk/.xapk.

Почему сравнение версий APK предотвращает неудачные обновления

Когда вы устанавливаете более новую версию приложения Android поверх существующей установки, Android PackageManager применяет два строгих правила: versionCode нового пакета должен быть больше или равен установленной сборке, а его сертификат подписи внутри META-INF/ (или APK Signing Block v2/v3) должен быть побайтно идентичен.

  • Соответствие дайджеста сертификата подписи: Вычисляет отпечаток SHA-256 блока подписи .RSA / .DSA / .EC в обоих пакетах, поэтому вы сразу узнаете, будет ли обновление на месте успешным без удаления.
  • Собственные различия ABI и DEX: Указывает, удалило ли обновление 32-битные библиотеки armeabi-v7a или добавило новые файлы classes*.dex.
  • Дельта записи CRC32: Перечисляет точные файлы, добавленные или удаленные между сборками.

Как Android оценивает обновления пакетов (INSTALL_FAILED_UPDATE_INCOMPATIBLE)

Одна из наиболее частых ошибок, с которыми пользователи сталкиваются при обновлении загруженного приложения, — это «Приложение не установлено, поскольку пакет конфликтует с существующим пакетом» (известная в журналах ADB как INSTALL_FAILED_UPDATE_INCOMPATIBLE). Это происходит всякий раз, когда установленное приложение поступает из Google Play Store (подписано закрытым ключом выпуска разработчика) и обновление конвертируется из разделенного архива .xapk (который необходимо повторно подписать ключом подписи конвертера после объединения разделений).

Однако если и ваша старая, и новая версия были преобразованы с помощью xapktoapk.com, наш детерминированный конвейер подписывания использует один и тот же согласованный сертификат подписи для всех преобразований — это означает, что вы можете установить новый преобразованный APK непосредственно поверх старого преобразованного APK, не удаляя и не теряя прогресс в приложении! Перед установкой воспользуйтесь приведенным выше инструментом сравнения, чтобы убедиться, что оба файла используют один и тот же дайджест сертификата.

Разработано и задокументировано Мстом Шафале Ведущий разработчик и архитектор пакетов Android • Проверено на Android 12–15.

Все двоичные сравнения и хеширование SHA-256 выполняются на 100% локально в вашем браузере через Web Crypto. Если у вас есть вопросы, свяжитесь с нашей службой поддержки.