Currently if you do `jadx --help`, it says the `--deobf-cfg-file-mode` option accepts the value `read-or-save`.
However, if you give it that option, it instead prints the following error message:
```
java.lang.IllegalArgumentException: 'read-or-save' is unknown, possible values are: read, read-or-save, overwrite, ignore
at jadx.cli.JadxCLIArgs$DeobfuscationMapFileModeConverter.convert(JadxCLIArgs.java:524)
at jadx.cli.JadxCLIArgs$DeobfuscationMapFileModeConverter.convert(JadxCLIArgs.java:516)
at com.beust.jcommander.JCommander.convertValue(JCommander.java:1340)
at com.beust.jcommander.ParameterDescription.addValue(ParameterDescription.java:249)
at com.beust.jcommander.JCommander.processFixedArity(JCommander.java:920)
at com.beust.jcommander.JCommander.processFixedArity(JCommander.java:901)
at com.beust.jcommander.JCommander.parseValues(JCommander.java:731)
at com.beust.jcommander.JCommander.parse(JCommander.java:363)
at com.beust.jcommander.JCommander.parse(JCommander.java:342)
at jadx.cli.JCommanderWrapper.parse(JCommanderWrapper.java:37)
at jadx.cli.JadxCLIArgs.processArgs(JadxCLIArgs.java:211)
at jadx.cli.JadxCLI.execute(JadxCLI.java:35)
at jadx.cli.JadxCLI.main(JadxCLI.java:20)
```
This commit changes all the enum parsers to do the inverse string of `enumValuesString`, so the documented behavior works.
Details:
- add simple and annotated code writers to allow
skip code annotations processing in jadx-cli and other places
- add annotated code info to use only than needed
- allow to set provider for codewriter in JadxArgs
- add JadxArgs argument to constructor to allow change output
- add cli option to insert debug line numbers as code comments
(example for previous change)
Change details:
- use common code for process override methods in deobfuscator (move OverrideMethodVisitor to pre-decompile stage)
- add all public methods to jadx class set to allow search of override base method
- add don't rename flag if override hierarchy have unresolved methods
fix: do not rename resources names for building res-map.txt
allow loading of resources.arsc from android.jar files
res-map.txt bases on resources.arsc from API 3, 4, 7-30 (taken from https://github.com/Sable/android-platforms)
- support 'extends' for generic type variables
- insert cast instructions to help type inference (#956)
- correct move instructions insertion (to resolve types in PHI)
Signed-off-by: Skylot <skylot@gmail.com>