Skip to content

Moved AAB input to separate plugin#2165

Merged
skylot merged 15 commits intoskylot:masterfrom
AndreiKud:proto-res-input
Apr 26, 2024
Merged

Moved AAB input to separate plugin#2165
skylot merged 15 commits intoskylot:masterfrom
AndreiKud:proto-res-input

Conversation

@AndreiKud
Copy link
Copy Markdown
Contributor

@AndreiKud AndreiKud commented Apr 24, 2024

Hello! Moved aab-protobuf-related stuff to separate plugin.

  1. Made lists of resource table parsers and resource content loaders in ResourcesLoader and put protobuf parsers there from plugin. Couldn't figure out how to do this with decompilation passes, since content is loaded on demand.
    Also used getRoot() which is @ApiStatus.Internal for last few years. I suppose it's fine as long as the plugin is part of the project?
  2. Added BundleConfig.pb content parser with bundletool dependency. Previously it was shown as binary blob.
  3. Added PrettyPrint support same as in binary XMLs.
  4. Minor notes: fixed NPE with getNamedValues() in ManifestAttributes; added .aab extension in "add file" dialog filter.
  5. Had to enable isZip64 for shadowJar task in jadx-gui since it now contains more than 65535 entries, not sure if it can break something.

Attaching dummy aab in case you need it (rename extension to .aab).
app-debug.zip

@skylot
Copy link
Copy Markdown
Owner

skylot commented Apr 24, 2024

@AndreiKud thanks, looks great 👍
But there are a lot of changes, so I will need a couple of days for review 🙂

@skylot skylot mentioned this pull request Apr 24, 2024
3 tasks
@skylot
Copy link
Copy Markdown
Owner

skylot commented Apr 26, 2024

I commit a few changes to use API methods instead static ones for adding new res handlers.
Usage of static methods as an API is not good idea because such methods are hard to discover, and also this can cause issues if we have several class instances or replace old with new one. In this case reload project or start a new in jadx-gui cause grow of these lists, it is not causing visible issues because only one is used.
Everything else is good, thank you for your work 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants