Декомпиляция приложения apk kotlin

После декомпиляции и последующей сборки обратно в apk приложение не открывается на 11 андройде.

Использовалась последняя версия apktool (v2.5.0)

Алгоритм:

 apktool d test.apk
// Внесение правок (цвет меню)
 apktool b test
// Подпись apk

Ошибка: Installation did not succeed. The application could not be installed: INSTALL_PARSE_FAILED_RESOURCES_ARSC_COMPRESSED

Пробовал упаковать вручную winrar-ом без сжатия *.arsc, но это не решило проблему. Как я понимаю проблема состоит в том, что файл resources.arsc не должен быть сжат


Ответы (1 шт):

Автор решения: Eugene Krivenja

Вот код из Android Core Framework, возможно выравнивание и есть ваша проблема

if (assets.containsAllocatedTable()) {
    final ParseResult<?> deferResult = input.deferError(
        "Targeting R+ (version " + Build.VERSION_CODES.R + " and above) requires"
        + " the resources.arsc of installed APKs to be stored uncompressed"
        + " and aligned on a 4-byte boundary",
        DeferredError.RESOURCES_ARSC_COMPRESSED);
    if (deferResult.isError()) {
        return input.error(INSTALL_PARSE_FAILED_RESOURCES_ARSC_COMPRESSED,
            deferResult.getErrorMessage());
    }
}

/**
 * Installation failed return code: the {@code resources.arsc} of one of the APKs being
 * installed is compressed or not aligned on a 4-byte boundary. Resource tables that cannot be
 * memory mapped exert excess memory pressure on the system and drastically slow down
 * construction of {@link Resources} objects.
 *
 * @hide
 */
public static final int INSTALL_PARSE_FAILED_RESOURCES_ARSC_COMPRESSED = -124;
→ Ссылка