skylot / jadx

Dex to Java decompiler
Apache License 2.0
41.91k stars 4.89k forks source link

[feature] Plugins API: allow traverse input files without opening (and decompressing) ZIP files every time #2304

Open skylot opened 1 month ago

skylot commented 1 month ago

Describe your idea

Now JadxCodeInput interface force every plugin to search code in all input files and in most cases it is apk or jar files, so every plugin parsing and decompressing same zip file, this is very resource consuming and slow down processing.

Solution is to provide tree structured representation of input files with already parsed zip files. Files content loading should be done in lazy fashion.

Also, as many files maybe encoded or transformed, it will be nice if plugins can replace or patch this input tree structure. Such replace will reduce common processing code and allow implementing plugins to support various archive and containers format.

Related to #2302.