Apktool
Apktool copied to clipboard
[BUG] ARSCDecoder regression in 2.6.2-SNAPSHOT
Information
- Apktool Version - 2.6.2-SNAPSHOT
- Operating System - Windows (x64), Debian (x64)
- APK From? - ROM
Stacktrace/Logcat
I: Using Apktool 2.6.2-SNAPSHOT on InProcessTethering.apk
I: Loading resource table...
I: Skipping overlay (720065)
I: Skipping overlay (6e0069)
I: Skipping overlay (430067)
I: Skipping overlay (6e006f)
I: Skipping overlay (690066)
I: Skipping overlay (67)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (0)
I: Skipping overlay (100205)
I: Skipping overlay (5c)
I: Skipping overlay (e)
I: Skipping overlay (13)
I: Skipping overlay (7f010000)
I: Skipping overlay (7f010001)
I: Skipping overlay (7f010002)
I: Skipping overlay (7f010003)
I: Skipping overlay (7f010004)
I: Skipping overlay (7f010005)
I: Skipping overlay (7f010006)
I: Skipping overlay (7f010007)
I: Skipping overlay (7f010008)
I: Skipping overlay (7f020000)
I: Skipping overlay (7f020001)
I: Skipping overlay (7f020002)
I: Skipping overlay (7f020003)
I: Skipping overlay (7f040000)
I: Skipping overlay (7f040001)
I: Skipping overlay (7f040002)
I: Skipping overlay (7f050000)
I: Skipping overlay (7f050001)
I: Skipping overlay (7f050002)
Exception in thread "main" brut.androlib.AndrolibException: Could not decode arsc file
at brut.androlib.res.decoder.ARSCDecoder.decode(ARSCDecoder.java:55)
at brut.androlib.res.AndrolibResources.getResPackagesFromApk(AndrolibResources.java:787)
at brut.androlib.res.AndrolibResources.loadMainPkg(AndrolibResources.java:64)
at brut.androlib.res.AndrolibResources.getResTable(AndrolibResources.java:56)
at brut.androlib.Androlib.getResTable(Androlib.java:70)
at brut.androlib.ApkDecoder.getResTable(ApkDecoder.java:247)
at brut.androlib.ApkDecoder.decode(ApkDecoder.java:109)
at brut.apktool.Main.cmdDecode(Main.java:175)
at brut.apktool.Main.main(Main.java:79)
Caused by: java.io.EOFException
at com.google.common.io.LittleEndianDataInputStream.readAndCheckByte(LittleEndianDataInputStream.java:235)
at com.google.common.io.LittleEndianDataInputStream.readInt(LittleEndianDataInputStream.java:118)
at brut.util.DataInputDelegate.readInt(DataInputDelegate.java:58)
at brut.androlib.res.decoder.ARSCDecoder.readOverlaySpec(ARSCDecoder.java:185)
at brut.androlib.res.decoder.ARSCDecoder.readTablePackage(ARSCDecoder.java:138)
at brut.androlib.res.decoder.ARSCDecoder.readTableHeader(ARSCDecoder.java:84)
at brut.androlib.res.decoder.ARSCDecoder.decode(ARSCDecoder.java:50)
... 8 more
Steps to Reproduce
A normal decompilation with the latest 2.6.2-SNAPSHOT. This issue is not reproducible with Apktool 2.6.1 or older.
Frameworks
Pre-included framework works fine. No third-party framework needed.
APK
https://drive.google.com/file/d/1S69DCYjG76_vbTHC0Vh9H_IoLz_8QZrO/view?usp=sharing
Not sure how. It skips chunks, so it must be a ton of overlay chunks in a row.
Not sure how. It skips chunks, so it must be a ton of overlay chunks in a row.
Ending up with an Exception, sounds like an issue to me.
True, but I don't see how at the moment.
Replicated. Marking as bug.
It's a parsing error. (The bytes in the first 6 "Skipping overlay" lines above represent ASCII for "eringConfig".)
It's trying to decode a XML_TYPE_OVERLAY as XML_TYPE_OVERLAY_POLICY.
Correct decode gives overlay name="TetheringConfig" and actor="".