Releases: DexPatcher/dexpatcher-gradle
v1.0.0
IMPORTANT:
Always make sure to update your local clone of DexPatcher-gradle-tools.
First stable release of the DexPatcher Gradle plugins:
- Supports the Java 8-based Android toolset:
- Android Studio from v2.2.0 on.
- Java-based Android Plugin for Gradle v2.2.0 through v2.2.3.
- Tested with Gradle v2.14.1 and v3.0 through v3.5.1.
- Supports the legacy Java 7-based Android toolset:
- Android Studio up to v2.1.3.
- Groovy-based Android Plugin for Gradle v1.5.0 through v2.1.3.
- Adapts to Groovy/Java plugin differences via reflection.
- Tested with Gradle v2.9 through v2.14.1. (But see the Android Plugin requirements.)
- Supports javac/dx and the deprecated Jack/Jill compiler toolchains.
- Supports Java 8 language features and patching of Android 7.x apps thanks to my updated builds of dex2jar.
Limitations:
- Instant run must be disabled.
- Android Plugin for Gradle v2.3.x is not supported due to a blocking bug in the plugin.
Changes:
- Simplified the structure of local dependencies:
- Removed the per-plugin dependency groups.
- Coalesced dependencies into the
added
andprovided
scopes.
- Extended the officially-supported project property set:
dexpatcher.dir
dexpatcher.lib.dir
dexpatcher.lib.added.dir
dexpatcher.lib.provided.dir
dexpatcher.tool.dir
dexpatcher.tool.apktool.dir
dexpatcher.tool.apktool.framework.dir
dexpatcher.tool.apktool.aapt.file
dexpatcher.tool.dex2jar.dir
dexpatcher.tool.dexpatcher.dir
- Added a project property access API for build scripts.
- Added the
apkFileOrDir
property to theapk-library
plugin extension object. - Reworked the extension object hierarchy.
- Fail fast on misconfigured setups.
- Updated samples.
The official video track for DexPatcher-gradle v1.0.0 is Arctic Monkeys' Do I Wanna Know?
v0.4.6
IMPORTANT:
Make sure you read all previous release notes down to v0.4.0.
- Added the
dexpatcher.constructorAutoIgnore
option to disable the implicit ignore of trivial default constructors. This option complements the existing*.importSymbols
options to ensure that all symbols potentially used in the patch are also declared and explicitly tagged there, trivial default constructors included. The motivation for this functionality is the planned@DexCheck
tag.
v0.4.5
IMPORTANT:
Make sure you read all previous release notes down to v0.4.0.
- Added the
patchedApplication.importSymbols
andpatchLibrary.importSymbols
options to disable import of Java symbols from the source app. These options complements the planned@DexCheck
tag by ensuring that all symbols used in the patch are also declared there. They can also be used to side-step issues created by importing symbols of obfuscated apps. - Updated support of ApkTool decode command-line options.
v0.4.4
IMPORTANT:
Make sure you read all previous release notes down to v0.4.0.
- The
apk-library
plugin features improved handling of ApkTool framework directory defaults.
Now both of these examples are valid:
apply plugin: 'com.github.lanchon.dexpatcher.apk-library'
// Use a provided framework to decode the APK.
dexpatcherConfig {
apktool {
// Set defaults for all ApkTool-based tasks.
frameworkDirAsInput = 'framework'
frameworkTag = 'tag'
}
}
apply plugin: 'com.github.lanchon.dexpatcher.apk-library'
// Use a provided framework to decode the APK.
decodeApk.with {
// Set values for a specific ApkTool decode task.
frameworkDirAsInput = 'framework'
frameworkTag = 'tag'
}
v0.4.3
IMPORTANT:
You must update your local clone of DexPatcher-gradle-tools to use this release.
Make sure you read all previous release notes down to v0.4.0.
- The plugins now leverage multi-dex support available in dex2jar v2.1 and later.
- Patching of Android 7.x apps is now supported thanks to my updated builds of dex2jar.
- Supports Android Plugin for Gradle v1.5.0 through v2.2.3.
- Tested with Gradle v2.14.1 and v3.3.
v0.4.2
IMPORTANT:
Make sure you read all previous release notes down to v0.4.0.
A big load of small improvements. Most notable:
- The locally installed DexPatcher-gradle-tools can now optionally include global and per-plugin dependency groups, with each group potentially including dependencies in the
compile
,provided
andapk
scopes. (The new plugins are compatible with the old DexPatcher-gradle-tools layout, but you should still update your local clone of the DexPatcher-gradle-tools repo whenever you update the DexPatcher-gradle plugins.) - The Apktool task no longer depends on locally installed framework(s) and will instead unpack a default framework within the build directory.
- Added support for all options of all tools.
Note: This release fixes a regression in v0.4.1 involving multi-dex apps and dex2jar exception files. Release v0.4.1 has been retired.
v0.4.0
Major rework of the Gradle plugins, including a more robust implementation that is compatible with a wide range of tool versions and environments.
- Supports the 'traditional' Java 7-based toolset:
- Android Studio up to v2.1.3.
- Groovy-based Android Plugin for Gradle v1.5.0 through v2.1.3.
- Tested with Gradle v2.9 through v2.14.1. (But see the Android Plugin requirements.)
- Supports the new Java 8-based toolset:
- Android Studio from v2.2.0 on.
- Java-based Android Plugin for Gradle v2.2.0 through v2.2.3.
- Adapts to Groovy/Java plugin differences via reflection.
- Tested with Gradle v2.14.1.
- Supports both javac/dx and the new Jack/Jill compiler toolchains, including Java 8 language features. (But Jack has annotation processing bugs that may limit its usefulness with DexPatcher in the short term.)
- Can speed up testing by using opportunistic multi-threaded multi-dex processing on debug builds.
- Old limitation fixed: the
patch-library
plugin now supports bundling Java as well as Android resources. - The contents of APK library files have changed. The new files are marked with the double extension
.apk.aar
. - Updated samples.
Limitations:
- Instant run must be disabled.
- The old
patchCode = false
option is no longer supported.
The officially supported video track for DexPatcher-gradle v0.4.0 is Rone's Bye Bye Macadam.
v0.3.1
v0.3.0
- Added multi-dex support !!!
- Added support for new features in DexPatcher tool v1.2.0.
Requirements:
- Android Studio v2.1.3 or earlier.
- Android Plugin for Gradle v1.2.3 (com.android.tools.build:gradle:1.2.3).
- Android Build Tools v21.1.1 or higher.
- Gradle v2.2.1 to v2.9 (tested against v2.2.1).
- DexPatcher tool v1.2.0 or higher.
v0.2.0
- New build script DSL syntax (breaks compatibility with previous build scripts, sorry)
- Hierarchy of modularized extension objects replaces the previous fat interface
- New
patch-library
plugin produces library file that bundles compiled changes to code and resources of an application without bundling any part of the application itself - Better error handling in DexPatcher, Apktool and dex2jar tasks
- Major code refactoring and cleanup
Limitation: The patch-library
plugin does not currently support bundling of Java resources, but the patched-application
plugin does extract and merge Java resources if they are present in patch libraries. (This limitation applies to Java resources only; Android resources are fully supported.)
Note: A patch-library
plugin sample is available in the sample repo.