Декомпиляция приложения 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;