jadx is generally used with a graphical user interface, start the jadx-gui.bat file (inside the jadx-folder/bin folder) with administrator rights. As first you will get a window that allows you to choose the APK file that you want to decompile:
Once you've selected the file, jadx will decompile it and will provide an explorer IDE-style (tree style view) in the left side of the application that list all the Java packages and files of the APK. In this example we are going to use the APK of Our Code Editor Premium, whose native code is based in Cordova and the app itself with Javascript (the source code is inside Resources/assets/www):
I have one problem with java heap memory. I developed one client server application in java which is run as a windows service it requires more than 512MB of memory. I have 2GB of RAM but when I run my application it throws an exception
but I have already set heap size (maximum 512MB) in the java control panel and I still get the same error. I can't set heap size through the command line because my application runs as a windows service so how can I increase the default heap size?
if you need to increase reserved memory, there are VM parameters -Xms and -Xmx, usage e.g. -Xms512m -Xmx512m . There is also parameter -XX:MaxPermSize=256m which changes memory reserved for permanent generation
If your application runs as windows service, in Control panels -> Administration tools -> Services you can add some run parameters to your service
JaDX - Decompiler is a free app for Android published in the System Maintenance list of apps, part of System Utilities.
The company that develops JaDX - Decompiler is Nick Software. The latest version released by its developer is 1.2. This app was rated by 5 users of our site and has an average rating of 3.1.
To install JaDX - Decompiler on your Android device, just click the green Continue To App button above to start the installation process. The app is listed on our website since 2013-12-01 and was downloaded 2577 times. We have already checked if the download link is safe, however for your own protection we recommend that you scan the downloaded app with your antivirus. Your antivirus may detect the JaDX - Decompiler as malware as malware if the download link to ua.naiksoftware.jadx is broken.
How to install JaDX - Decompiler on your Android device:
now that we know little basics of android emulator and ADB. we should move on to a debugger & decompiler JADX. I am using jadx-gui which I like more than the CLI version. you can download it from GitHub and build it.
There is a button (green bug icon) on the top bar of jadx-gui. you can use it to start debugging the application. but it requires the ADB service to have one or more devices to run the application on that.
for example, I want my application(activity) to look for notifications (request the server) when the application is started (onCreate). and I want my application to kill all the child processes it may have created while the process ends (onDestroy). If I go back into the jadx-gui output and view the MainActivity source, I can easily spot these methods.
jadx-gui features:- view decompiled code with highlighted syntax- jump to declaration- find usage- full text search- smali debugger (thanks to @LBJ-the-GOAT), check wiki page for setup and usage
jadx[-gui] [options] (.apk, .dex, .jar, .class, .smali, .zip, .aar, .arsc, .aab)options: -d, --output-dir - output directory -ds, --output-dir-src - output directory for sources -dr, --output-dir-res - output directory for resources -r, --no-res - do not decode resources -s, --no-src - do not decompile source code --single-class - decompile a single class --output-format - can be 'java' or 'json', default: java -e, --export-gradle - save as android gradle project -j, --threads-count - processing threads count, default: 4 --show-bad-code - show inconsistent code (incorrectly decompiled) --no-imports - disable use of imports, always write entire package name --no-debug-info - disable debug info --add-debug-lines - add comments with debug line numbers if available --no-inline-anonymous - disable anonymous classes inline --no-inline-methods - disable methods inline --no-replace-consts - don't replace constant value with matching constant field --escape-unicode - escape non latin characters in strings (with \u) --respect-bytecode-access-modifiers - don't change original access modifiers --deobf - activate deobfuscation --deobf-min - min length of name, renamed if shorter, default: 3 --deobf-max - max length of name, renamed if longer, default: 64 --deobf-cfg-file - deobfuscation map file, default: same dir and name as input file with '.jobf' extension --deobf-rewrite-cfg - force to ignore and overwrite deobfuscation map file --deobf-use-sourcename - use source file name as class name alias --deobf-parse-kotlin-metadata - parse kotlin metadata to class and package names --rename-flags - fix options (comma-separated list of): 'case' - fix case sensitivity issues (according to --fs-case-sensitive option), 'valid' - rename java identifiers to make them valid, 'printable' - remove non-printable chars from identifiers, or single 'none' - to disable all renames or single 'all' - to enable all (default) --fs-case-sensitive - treat filesystem as case sensitive, false by default --cfg - save methods control flow graph to dot file --raw-cfg - save methods control flow graph (use raw instructions) -f, --fallback - make simple dump (using goto instead of 'if', 'for', etc) --use-dx - use dx/d8 to convert java bytecode --comments-level - set code comments level, values: none, user_only, error, warn, info, debug, default: info --log-level - set log level, values: quiet, progress, error, warn, info, debug, default: progress -v, --verbose - verbose output (set --log-level to DEBUG) -q, --quiet - turn off output (set --log-level to QUIET) --version - print jadx version -h, --help - print this helpExamples: jadx -d out classes.dex jadx --rename-flags "none" classes.dex jadx --rename-flags "valid, printable" classes.dex jadx --log-level ERROR app.apkThese options also worked on jadx-gui running from command line and override options from preferences dialog
760c119bf3