DashO Professional Change Log

Change Log - Version 9.0.0 - Release Date August 13, 2018

9.0.0

IMPORTANT NOTES:

This release includes substantial new features, changes to existing features, and the removal of certain deprecated features.
Please review this changelog carefully, and see the Upgrades page in the documentation to learn more about upgrading to this release.

Support for Java 9 is no longer provisional, but support for Java Modules is still provisional.

Java 10 is now supported.

It is now easier to configure a build-time JDK that is independent of the JDK/JRE that DashO is run with.
Projects created with earlier versions of DashO should be updated to use this feature.
See the documentation for details.

A new feature, Block Splitting, was added to DashO's Control Flow options.
Block Splitting splits blocks into smaller blocks and adds control flow logic.
This feature is on, by default, when Control Flow is enabled, even on existing projects.

PreEmptive Analytics features have been removed.

Projects using PreEmptive Analytics code annotations or annotation attributes will encounter a compile-time error (when compiled with the updated lib/dasho-annotations.jar).
References to these elements must be removed from the source code.

Projects using PreEmptive Analytics virtual annotations will error at build time.
Opening these projects within the DashO GUI, and saving, will automatically strip them of the affected settings.

The obfuscate-jar Ant task has been removed and will no longer be recognized.

Ant-based configuration of build settings is no longer supported.
Nested elements of the obfuscate task will no longer be recognized, and the project attribute of the obfuscate task is now required.

Enhancements

You can now run DashO with the Java 9 or Java 10 JRE, DashO can process Java 10 classes.

It is now possible to specify the JDK used to build a project in the DashO project configuration.
This is presented as Include JDK on the "Input - Support" page of the GUI, and is the preferred way to locate the runtime libraries.

A new feature, Block Splitting, was added to DashO's Control Flow options.

Tamper Checks can now reference trusted certificates in addition to signing certificates to enable support for Google Play App Signing.

Improved computation of stack-map frames allowing DashO to process classes built with a more recent version of Java than that which DashO is run on.

The wizard will now warn before overwriting a file.

Double clicking or pressing enter when an entry is selected in most of the list/tree editors in DashO will display the properties editor.

Include and exclude rule configuration is now done exclusively via dialogs, rather than through in-page fields.
The dialogs will appear automatically when new rules are added via the "New" buttons on the side of the UI, or when clicking the new "Edit..." button in the UI.
This same UI workflow has been applied to the Input and Property pages, as well.

Changes:

Support for Java 9 is no longer provisional; support for modules is still provisional.

The Append current Java runtime and Use Classpath from Environment options are deprecated.
Using these options will cause an error when running DashO in Java 9 or later, and will generate a warning when running DashO in Java 7 or 8.
The new Include JDK feature should be used instead.

The Java wizards now require a valid JDK location.

Automatic checking for updates is now enabled by default, even if you did not previously employ automatic update checking.
You can disable update checks via the User Preferences dialog.

Signing will use the configured JDK to locate the jarsigner executable if no signing tool is configured.

DashO no longer supports appending the current runtime if running with an Apple or IBM JVM.