Renaming
Renaming — Options
When renaming has been enabled, the Renaming Options panel gives you additional control over the renaming of items in your project.
Renaming
Enables or disables renaming of classes, methods, and fields globally. You can control the portions of the project to which renaming is applied by using exclude rules. Overload Induction™ uses the same new name on multiple methods when their signature is different. Simple renaming generates names for methods without creating additional overloading.
Rename Annotations
Enables or disables renaming of internally defined annotations.
Classes/Packages
You can elect to rename classes or to keep their original names. This provides for a very coarse level of control – you can use exclusions to preserve the names of individual classes, whole packages, or classes that meet certain criteria. When randomize is selected, new class names are assigned in a random fashion from the list of shortest available identifiers.
When classes are renamed you can specify if the package hierarchy should be flattened or if the package naming hierarchy is retained.
You can also add an optional prefix to the new class name. Using periods in the prefix, will place the renamed classes into a different package.
Note: When flattened, all renamed classes are moved to the default package, unless there is
prefix
which includes a period.
Members
You can elect to rename all methods and fields or to retain the names of public members. This provides for a very coarse level of control – you can use exclusions to preserve the names of particular methods based on their names, arguments and other criteria. When randomize is selected, new method and field names are assigned in a random fashion from the list of shortest available identifiers.
Alphabets
You can specify the alphabets used to create the new names for classes and members. You can select one of the predefined alphabets or enter your own. When creating your own alphabet the following restrictions apply:
The minimum length of the alphabet is two characters. Using three or more characters is recommended for larger projects.
The initial characters of the alphabet must be valid starting characters for Java identifiers. You must have at least one starting character.
The remaining characters of the alphabet must be valid characters for Java identifiers.
Renaming — Exclude
The Renaming Excludes panel lets you compose rules that exclude classes and/or their methods and fields from renaming. Individual methods, fields, classes, or entire packages may be excluded.
When a class rule is defined, it can be used to exclude the class itself from renaming or only the members matched by its method and field rules. To change this setting, select the rule, press the Edit.. button and change the Selects Class setting.
See Graphical Rules Editor for details.
Renaming — Map Files
The Renaming Map Files panel is used to instruct DashO to read or write the renaming information for the project. This information is used to perform Incremental Obfuscation and to decode stack traces from an obfuscated application.
Input
The map input file specified is a file created by a previous DashO run. When configuring this file, DashO uses the names used in the previous run to perform Incremental Obfuscation. The map report file will make note of the input classes which are not found in the map and any classes in the map which are not found in the inputs.
Output
The information created in this file can be used for the map input file in a future DashO run. It is also used to decode a stack trace from your obfuscated application.
Note:
Accidental loss of this file could destroy your chances of incrementally updating your application in the future. CheckOverwrite
to allow DashO to overwrite an existing file.
ProGuard-compatible Output
The information created in this file can be used for any analytics tools which support ProGuard map files.
DashO does not automatically overwrite this file.
Selecting the Overwrite
option allows DashO to overwrite an existing file.