[BUG] Error parsing styled strings
JoshMiers-FS opened this issue · comments
Information
- Apktool Version (
apktool -version
) - 2.9.3 - Operating System (Mac, Linux, Windows) - Mac
- APK From? (Playstore, ROM, Other) - Other
- Java Version (
java --version
) - Openjdk 17.0.9 2023-10-17 LTS
Stacktrace/Logcat
I: Using Apktool 2.9.3 on app-debug.apk
I: Loading resource table...
Exception in thread "main" java.lang.IllegalArgumentException: Chunk [color:#00a652] is not a valid entry
at com.google.common.base.Preconditions.checkArgument(Preconditions.java:218)
at com.google.common.base.Splitter$MapSplitter.split(Splitter.java:525)
at brut.androlib.res.decoder.StyledString$Span.getAttributes(StyledString.java:84)
at brut.androlib.res.decoder.StyledString$Decoder.decodeIterate(StyledString.java:129)
at brut.androlib.res.decoder.StyledString$Decoder.decode(StyledString.java:116)
at brut.androlib.res.decoder.StyledString.toString(StyledString.java:48)
at brut.androlib.res.decoder.StringBlock.getHTML(StringBlock.java:145)
at brut.androlib.res.decoder.ARSCDecoder.readValue(ARSCDecoder.java:482)
at brut.androlib.res.decoder.ARSCDecoder.readEntryData(ARSCDecoder.java:385)
at brut.androlib.res.decoder.ARSCDecoder.readTableType(ARSCDecoder.java:340)
at brut.androlib.res.decoder.ARSCDecoder.readResourceTable(ARSCDecoder.java:96)
at brut.androlib.res.decoder.ARSCDecoder.decode(ARSCDecoder.java:44)
at brut.androlib.res.data.ResTable.loadResPackagesFromApk(ResTable.java:182)
at brut.androlib.res.data.ResTable.loadMainPkg(ResTable.java:134)
at brut.androlib.res.ResourcesDecoder.decodeResources(ResourcesDecoder.java:147)
at brut.androlib.ApkDecoder.decode(ApkDecoder.java:104)
at brut.apktool.Main.cmdDecode(Main.java:217)
at brut.apktool.Main.main(Main.java:92)
Steps to Reproduce
- Add this to your strings.xml:
<string name="styled_string_single_values_0"><paragraph style="font–size:16px;">Paragraph</paragraph></string>
<string name="styled_string_single_values_1"><paragraph style="color:#00a652;">Paragraph</paragraph></string>
<string name="styled_string_double_values_0"><paragraph style="font–size:16px;color:#00a652;">Paragraph</paragraph></string>
<string name="styled_string_double_values_1"><paragraph style="color:#00a652;font–size:16px;">Paragraph</paragraph></string>
<string name="styled_string_double_values_2"><paragraph style="font–size:16px; color:#00a652;">Paragraph</paragraph></string>
<string name="styled_string_double_values_3"><paragraph style="color:#00a652; font–size:16px;">Paragraph</paragraph></string>
- Run
apktool d styled-strings.apk
.
Frameworks
If this APK is from an OEM ROM (Samsung, HTC, LG). Please attach framework files
(.apks
that live in /system/framework
or /system/priv-app
)
APK
If this APK can be freely shared, please upload/attach a link to it.
styled-strings.apk.zip
Questions to ask before submission
- Have you tried
apktool d
,apktool b
without changing anything? Yes. - If you are trying to install a modified apk, did you resign it? N/A
- Are you using the latest apktool version? Yes.
Thanks for the sample. Guess this new styled string handling is full of edge cases.
Possible duplicate: #2890