Change Log - Version 8.0.0 - Release Date November 28, 2016
Version 8.0.0
This release of PreEmptive Protection – DashO includes a wide range of enhancements, changes, and fixes. One major new feature is the ability to inject Debug Checks that can detect and respond to debugging at runtime. This release also includes a few backwards-incompatible changes, including that the minimum-required Java version is now 1.7. Please review the Changes section carefully, before upgrading.
-
Enhancements
- Added the ability to inject Debug Checks (
@DebuggingCheck
,@DebuggingResponse
,@DebugEnabledCheck
,@DebugEnabledResponse
), with new code annotations and a new user interface. - New Tamper and Shelf Life UI screens.
- The User Guide is now in an easy-to-read HTML format.
- Lucidator now provides a command-line mode and ships with DashO.
- A new map file conversion tool:
ConvertMap.jar
. - Added an Android debug check sample.
- Updated the injected code annotations and virtual annotations to include a
customDataSource
element which replaces@PropertySource
. - Improved logging of injected code.
- Improved the Android project wizard.
- Added the ability to inject Debug Checks (
-
Changes
- DashO now requires a 1.7 JVM or higher, to run.
- Changed product name from DashO to PreEmptive Protection - DashO.
- The DashO GUI now saves modified projects before building.
- Ant-based configuration of
.dox
files is deprecated. - DashO builds now stop immediately if an error is encountered. Existing projects expecting output from DashO after errors will need to be updated to fix the errors.
- The
HALTONFIRSTERROR
global option has been removed, as its behavior is now the default. The option will be silently ignored for existing projects. - The
PRE_7_0_EXIT_BEHAVIOR
global option has been removed. A warning will be emitted for existing projects using this option. - The
.dox
configuration format has changed. Opening an older project file in this new version of DashO will perform a one-way migration of the project file.- The
<instrumentation>
section has been moved under a new<injection>
section. @TamperCheck
and@TamperResponse
virtual annotations are now under new<tamperCheck>
and<tamperResponse>
sections.@ExpiryCheck
virtual annotation has been replaced with the new<shelfLifeCheck>
section.@ExpiryDate
,@WarningDate
,@StartDateSource
,@ExpiryPeriod
,@WarningPeriod
, and@ExpiryTokenSource
virtual annotations have been replaced with attributes on the new<shelfLifeCheck>
element.@SignerInfo
virtual annotation was replaced with<signerInfo>
inside the new<tamperCheck>
section.
- The
- Lucidator output has been changed to better mimic actual stack traces, rather than the prior report-style output.
- The Instrumentation UI has been updated.
- Method-level virtual annotations can no longer be applied at the class level.
- The
@PropertySource
annotation is deprecated and replaced with the per-annotation propertycustomDataSource
. - The
@SignerInfo
annotation is deprecated and replaced with properties inside@TamperCheck
. - The
@ExpiryCheck
annotation has been renamed to@ShelfLifeCheck
. - The
@ExpiryDate
,@WarningDate
,@StartDateSource
,@ExpiryPeriod
,@WarningPeriod
, and@ExpiryTokenSource
annotations have been deprecated in favor of properties of the new@ShelfLifeCheck
annotation. - The
@ReportThrownExceptions
and@ReportCaughtExceptions
annotations will emit build warnings if the injection site has no throw statements or catch blocks, respectively. - The
@TamperCheck
and@TamperResponse
code annotations'response
attribute is now an enumeration. - The
@TamperResponse
code annotation now requires thesource
attribute to be set. - Setting the
probability
to0
in a Tamper Response now disables the response, instead of triggering it every time. - A Tamper Response with an incorrectly configured probability will generate a build error.
- A Tamper Check with no valid action, response, or message will generate a build error.
- Checks, responses, and code injection virtual annotations that are configured but unused during injection will produce a build error. Other unused annotations will produce a build warning.
- The Android Ant project wizard was removed.
- The Android project wizard now defaults
Make Public
toAutomatic
. - The reflection report no longer includes classes from the merged PreEmptive Analytics runtime.
- The renaming map file will now contain all classes, methods, and fields processed by DashO and not just ones which were renamed.
- An error will be output when a renaming input map contains a new name for a class, method, or field which is configured as non-renameable.
- Updated to use ASM version 5.1.
- Includes apktool-2.2.1.
-
Fixes
- The incremental renaming report no longer includes the globally excluded classes.
- Fixed the probability calculation for injected responses.
- Tamper Response will now send a message (when configured) even when
response
is set tonone
. - Tamper Check no longer causes a validation issue on Android devices when using an old version of the Android build tools (e.g. v19.1 or v20.0) and a custom private
getApplicationContext()
method. - Fixed an exception when processing configuration files under certain circumstances.
- Fixed an exception when processing the
athrow
bytecode under certain circumstances. - Direct APK processing no longer compresses assets, which prevented some apps from working properly.