DashO 10 Beta 2 Release Notes
DashO 10 is now available, with support for R8 and a new Android mode!
Welcome to DashO v10 Beta 2! We are excited to share this preview of the big changes we’ve been making to DashO.
Before reading this page, please read our blog about this Beta. This page will assume you are already aware of:
- Google’s build architecture changes for R8
- DashO’s new Android Mode
- Our new DashO Android Gradle Plugin
- The changes to the DashO Gradle Plugin
We hope that you will download the Beta and that you will share your feedback from testing it. We welcome any and all issues, questions, critiques, or suggestions. Before you begin, however, you should be aware of the limitations and constraints of the Beta.
What to Expect from the Beta
DashO v10 Beta 2 does include a few breaking changes. A project upgraded to DashO v10 will not be usable in DashO 9, unless you roll back your project file to before it was upgraded. (Please use source control so that you can roll back if you need to.)
Licensed users may release software protected by the Beta and we will provide support to help troubleshoot any implementation issues you have. However, this release has incomplete features and known issues and we do not intend to make another release until the final release, in a few months. If you encounter a bug in the Beta that prevents your app from working, and there is no workaround, your only option may be to roll back to an earlier release.
The changes in this Beta are primarily focused on Android. There are some changes that affect non-Android projects, and you are welcome to upgrade if you want to see how they affect your project, but we generally don’t recommend upgrading unless you are protecting an Android project.
The DashO User Guide has been heavily modified in this version, including new instructions for how to set up a new Android project and how to migrate an existing Android project. The documentation accurately reflects the features of this Beta, but it does not include everything we plan to include in the final release. After the final DashO v10 is released, the Beta documentation will be replaced (on our website) with the final documentation, and the Beta will no longer be downloadable.
This Beta includes new versions of the DashO Gradle Plugin: both v3.4 and v4.0. Note that v4.0 drops support for Android (because that support is now provided in the DashO Android Gradle Plugin). We expect that both of these versions will be re-released unmodified in DashO v10, but if we do have to make changes before the release, we will increment their version number(s) appropriately.
This Beta also includes a new DashO Android Gradle Plugin, with a version number of v0.10.0. We expect to continue making changes to it before the final DashO v10 release, at which point the plugin will be versioned as v1.0.0. This new plugin supports multiple versions of Google’s Android Gradle Plugin, from v3.2 to v3.4, inclusive.
We will update the known issues list on this page if any new issues are discovered.
Please see the detailed changelog for a complete list of changes in this release.
- This release does not include Wizard support for the new Android Mode. We plan to add this feature before the final release. However, it is quite easy to integrate DashO v10 into an Android (Gradle) build, and some early testers have expressed a preference for the new instructions over a Wizard, so please don’t hesitate to try them.
- The regular samples have not been updated (yet) to reflect the changes in this release. The DashO-GameOfLife sample has been extensively updated with two new branches that do reflect this Beta: master-vNext and obfuscated-vNext.
- Some Checks require that a
getApplicationContext()method be reachable from the injection site. Usually DashO will error at build time if the method isn’t reachable, but the Beta will not error in this case. If the method is missing at runtime, the app will crash.
- There is at least one build-time issue with Automatic Input Management and input paths that contain a symlink; please do not test with symlinked directories or artifacts.
- It can be tricky to use
GENERATE_DASHO_CONFIGto generate build-variant-specific DashO project files. For now, please create variant-specific project files by generating a standard project file (“project.dox”) and then copying it to the variant(s) that you need.
- There is an issue with up-to-date checking for the DashO project file. If you update your DashO project configuration, please clean before building so that the changes are applied.
- The “Signing Key Information” section of the Tamper Check UI should not be used, and will be removed in the final release.
- DashO’s explicit Class Removal feature is not implemented for Android Mode. (Unused code removal is handled by R8.)
- Android apps with Dynamic Feature Modules are not supported in this Beta.
- The detailed changelog mentions “updates to the Spring sample”; those updates are not being released with this Beta.
- Unit tests that indirectly call AAR code processed by DashO may not work.
- R8 does not always automatically identify all methods that should be preserved in library projects, so additional
-keeprules may be required.
- DashO may put String Decrypters in R classes for libraries, which might then be removed by R8. If this happens, you can work around it by Globally Excluding the relevant R classes.
For technical support or to provide feedback, please contact support.
The DashO User Guide for the Beta includes detailed documentation for the new DashO Android Gradle Plugin and for the original DashO Gradle Plugin.
The changelog for the Beta includes additional details.
Our blog about the Beta provides a general overview.
The Beta can be downloaded from the DashO Downloads page.
We have also been hard at work filling some of the documentation gaps around R8; please see The Unofficial R8 Documentation to learn about R8 configuration.