- Added two new command line arguments to filter the library exports from the trace
- Changed the way object data was associated with output to ensure it is still visible if the method is not being traced
- Fix a bug preventing frida attach from working
- Updated README
- General code refactoring, including upgrading codebase to TypeScript
- Added tracing of the JavaVM struct by default
- Added method filters to include or exclude certain methods from the trace
- Added options to allow custom Frida scripts to be loaded before and after jnitrace is loaded
- Added option to export all traced data to a json formatted file
- Added options to switch off tracking of the whole JavaVM or JNIEnv
- Application is now killed when the tracer is finished to prevent crashes
- Log messages have been added to show when a tracked library is loaded
- Added support to capture floating point return values on X86 devices
- jnitrace now also displays the values of jvalue* and va_list for method calls
- Bugfix for crashes on arm 32 bit devices
- Bug fix - Backtraces are now printed correctly for variadic functions
- jboolean values now print true/false as well as the integer value
- Updated README
- Bug fix - Used Interceptor.replace to ensure that the CpuContext is populated for use by the Backtracer
- Bug fix - Updated the JNI function definitions to set the return type of GetArrayElements to be a pointer rather than a primitive
- Bug fix - Checked whether the this context exists before using it
- Bug fix - Use Process.findRangeByAddress instead of Process.findModuleByAddress for checking the validity of the stack pointer
- Travis integration
- Added a command argument to get the version of jnitrace
- jnitrace now intercepts calls to GetJavaVM, returning a shadowJavaVM
- Added support for extracting arguments stored in jvalue arrays
- Bug fix - CallStaticObjectMethod was the only va args method intercepted
- Added arm64 architecture support
- Modified how dlopen is intercepted to support Android 7 and above