Skip to content

[BUG] java.lang.ArrayIndexOutOfBoundsException on decompilation #3943

@rodrigoq

Description

@rodrigoq

Information

  1. Apktool Version (apktool -version) - 2.12.0
  2. Operating System (Mac, Linux, Windows) - Windows 10
  3. APK From? (Playstore, ROM, Other) - Playstore
  4. Java Version (java --version) - java 24.0.2 2025-07-15

If I use apktool 2.9.3 the decompilation goes further but fails anyways almost in the end.

Stacktrace/Logcat

I: Using Apktool 2.12.0 on base.apk with 4 threads
I: Baksmaling classes.dex...
I: Baksmaling classes12.dex...
I: Baksmaling classes10.dex...
I: Loading resource table...
I: Baksmaling classes11.dex...
I: Baksmaling classes13.dex...
I: Baksmaling classes14.dex...
I: Baksmaling classes15.dex...
I: Baksmaling classes16.dex...
I: Baksmaling classes17.dex...
I: Baksmaling classes18.dex...
I: Baksmaling classes19.dex...
I: Baksmaling classes20.dex...
I: Baksmaling classes2.dex...
I: Baksmaling classes3.dex...
I: Baksmaling classes4.dex...
I: Baksmaling classes5.dex...
I: Baksmaling classes6.dex...
I: Baksmaling classes8.dex...
I: Baksmaling classes7.dex...
I: Baksmaling classes9.dex...
I: Baksmaling assets/NIrmAdvjXkuR/VcNCngGdubzQdCnM.dex...
I: Decoding file-resources...
I: Loading resource table from file: C:\Users\Admin\AppData\Local\apktool\framework\1.apk
I: Decoding values */* XMLs...
I: Decoding AndroidManifest.xml with resources...
Exception in thread "main" java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.ArrayIndexOutOfBoundsException: Index 13523608 out of bounds for length 160
        at brut.util.BackgroundWorker.waitForFinish(SourceFile:45)
        at brut.androlib.ApkDecoder.decode(SourceFile:88)
        at brut.apktool.Main.main(SourceFile:524)
Caused by: java.util.concurrent.ExecutionException: java.lang.ArrayIndexOutOfBoundsException: Index 13523608 out of bounds for length 160
        at java.base/java.util.concurrent.FutureTask.report(FutureTask.java:124)
        at java.base/java.util.concurrent.FutureTask.get(FutureTask.java:193)
        at brut.util.BackgroundWorker.waitForFinish(SourceFile:43)
        ... 2 more
Caused by: java.lang.ArrayIndexOutOfBoundsException: Index 13523608 out of bounds for length 160
        at com.android.tools.smali.dexlib2.dexbacked.DexBuffer.readSmallUint(SourceFile:53)
        at com.android.tools.smali.dexlib2.dexbacked.DexBackedDexFile.getMapItemForSection(SourceFile:277)
        at com.android.tools.smali.dexlib2.dexbacked.DexBackedDexFile.<init>(SourceFile:129)
        at com.android.tools.smali.dexlib2.dexbacked.ZipDexContainer.getEntries(SourceFile:104)
        at com.android.tools.smali.dexlib2.dexbacked.ZipDexContainer.getDexEntryNames(SourceFile:82)
        at brut.androlib.ApkDecoder.decodeSourcesSmaliJob(SourceFile:74)
        at brut.androlib.ApkDecoder.lambda$decodeSourcesSmali$0(SourceFile:169)
        at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:545)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:328)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1095)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:619)
        at java.base/java.lang.Thread.run(Thread.java:1447)

Steps to Reproduce

  1. apktool d base.apk

APK

https://drive.google.com/file/d/1z75gALAzL5g_CmZ3pMXZ0TeLTevyZUyy/view?usp=sharing

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions