Output — Options
The Output — Options page controls where PreEmptive Protection™ DashO™ will place the results of the build and what form those results will take.
Create Directory/Single Jar/Single War/APK
DashO can place the results of the build into a directory, a single jar, a single war, or an APK. Changing the main output type may change other settings on this page to their defaults. See the <output> element for instructions regarding configuring the output.
When outputting to a directory, DashO can combine the obfuscated results into a single directory or keep the original packaging of the input classes.
Auto copy controls how non-class files are handled when merging inputs. It is available when merge is on and works as follows:
- Non-class files from jar inputs will be copied. Non-class files from input directories will not be copied.
Auto Copy On – Non-class files from both input directories and input jars will be copied to the output.
Auto Copy Off – Non-class files will not be copied to the output.
XML configuration files found when processing the non-class files may be updated allowing class and method names to be changed.
Name and Manifest
The Name field specifies the name of the output directory or jar. When merging is off only a directory can be used. DashO will use this as the root of the output and will attempt to recreate the hierarchy of the original input jars and directories.
If you have DashO create a single merged jar for you DashO can add a manifest file to the jar. The manifest can either be a text file or a jar. DashO can extract the manifest from a jar file.
Compress: Not only store data but also compress it.
Level: Level at which file compression should be performed. Valid values range from
0(no compression/fastest) to
9. The default value is
Exclude Directory Entries: Store only file entries, not directory entries.
Preserve Jars With No Classes: Output jars when they have no remaining classes. This can be used to output resource jars.
Constant Pool Tag
The optional constant pool tag text is inserted into every class in the resulting output. See <constpooltag> for details.
SourceFile attribute of every resulting output class is set to the given value.
See <sourcefile> for details.
Output — APK
The Output — APK page configures settings specific to APK output.
Build Tools Directory
Specifies the location for the Android build tools.
The directory configured should contain the
Specifies if the output APK should be aligned (uses
This box is only enabled if the APK is being signed.
Specifies if the output APK should be generated using
Output — Reports
The Output — Reports page configures the generation of reports that detail the results of the build.
Specifies the name and location for a report outlining the class and member Removal and Renaming performed by DashO.
A summary is given detailing the total methods/fields/constant pool entries, as well as the final number and percentage of reduction after DashO execution.
It also contains information about dynamically loaded classes, including reflection and
Renaming Report File
This specifies the name and location for a report listing old and new names for renamed classes as well as their renamed members.
Output — Preverification
You can choose to run the preverifier on your CLDC application after DashO is finished processing your class files. You can enable or disable preverification by checking the Run Preverifier checkbox.
By default DashO will try to find the preverifier application
preverify on the system path.
If you need to run a particular version of the preverifier you can explicitly specify which one to run.
-nofinalize to the preverifier: no finalizers are allowed in the input.
No Floating Point
-nofp to the preverifier: no floating point operations allowed in the input.
No Native Methods
-nonative to the preverifier: no native methods allowed.
Output — Signing
You can have DashO sign the output jars or APK that it produces. You can enable or disable signing by checking the Sign Jars/WAR/APK checkbox.
By default, DashO will try to find the signing application,
jarsigner, in the configured JDK location.
If you are not including the JDK, need to run a particular version of
jarsigner, or want to run
apksigner, you can explicitly specify the path.
Note: If you want to use the
jarsignerexecutable on the system path, you can simply enter
jarsignerfor the signing tool.
This information defines the key store that contains the private key used for signing.
Only the Password is required.
The Type defaults to use the type specified by the JVM running DashO (e.g.
The Location defaults to the
.keystore file in your home directory.
Passwords that do not contain property references are stored in an encrypted form in the project file.
This information specifies the private key that is used to perform the signing. Only the Alias value is required. The Password defaults to the password specified for the key store. This password is also stored encrypted in the project file if it does not contain any property references.
This corresponds to the
-sigFile option on
jarsigner and the
--v1-signer-name option on
Internals .SF & Sections Only
These values correspond to the
-sectionsonly options of
They are not applicable with
This field allows you to specify any additional flags.
If signing APKs using
jarsigner you may need to enter additional arguments (e.g.
-sigalg SHA1withRSA -digestalg SHA1).
apksigner you may want to enter additional arguments to determine the APK signature scheme (e.g.
--v1-signing-enabled [true|false] --v2-signing-enabled [true|false] or
--min-sdk-version nn --max-sdk-version nn (where
nn is an sdk version)).
Signing will pass the passwords via the environment instead of the command line. If you need to use an older version of
jarsignerwhich does not support this, add a User Property named
SIGN_WITH_PLAINTEXT_PASSWORDSand set it to
Please see the jarsigner and apksigner documentation for details on the arguments.