Closed bagipro closed 1 year ago
Hey!
Does anybody have an idea how it potentially can be fixed? Is RES_STRING_POOL_TYPE
value always present in AndroidManifest.xml
? If yes, there's a sense to process this file first.
Or it can be located in other XML files?
Fixed. Not the best solution, but it should work :slightly_smiling_face:
Hey,
I've caught a really weird bug that throws the following error:
However, this error is thrown with a ~50% chance (in other cases
this.resourceIds
isn'tnull
). In case of an error, you will see a stacktrace in output logs.It leads to incorrect decoding of
AndroidManifest.xml
:and other XML files aren't decoded too
Arguments:
APK: https://drive.google.com/file/d/1Sm0d0I1hYW_93HQUcCvt5nEYfMtRJAi-/view?usp=sharing
UPD: I found a race condition in https://github.com/skylot/jadx/blob/master/jadx-core/src/main/java/jadx/core/xmlgen/ResourcesSaver.java#L32. If
AndroidManifest.xml
is processed first, no errors will happen. However, if other XML files are processed first,NullPointerException
will be thrown andBinaryXMLParser
will remain in a corrupted state and output extra>