The input section is used to configure the inputs to the project. This includes the location of jars and directories of classes that will be processed and entry points into these classes that are used to analyze the dynamic flow of the application.
Input — Jars and Classes
The input section starts with Input — Jars and Classes where the locations for the classes to be processed are configured. DashO can handle directories or classes, zip files, and jar files in the classpath. It also supports a single APK file. Entries may be added by selecting them from the file system using the Add button. You can also create an entry by using the New button and editing its name. After adding or removing items from the input use the refresh class list item in the toolbar or from the menu.
Note: Adding and removing entries will automatically refresh the class tree. However, manually entered names do not automatically refresh. Please use the refresh button when finished editing the name.
See the <inputpath> Section for more information regarding the creation of input entries.
Input — Supporting Classpath
DashO needs access to classes in the Java runtime and to classes in third party jars. The classes referenced here are needed for DashO's analysis but are not processed. Entries may be added by selecting them from the file system using the Add button. You can also create an entry by using the New button and editing its name.
By default the location of the Java runtime used by DashO is added to the path. Projects that use J2ME or the Android API should not append the runtime jar to the classpath. These projects require the runtime jar for these particular environments: e.g.,
android.jar. You may also
prepend the environmental classpath to the provided entries.
See the <classpath> Section for more information regarding the creation of new classpath entries.
Input — Global Processing Exclusions
The Input — Global Processing Exclusions panel lets you specify any classes or packages which should be excluded from all processing,
This UI defines the rules for the global exclusion of classes. See Graphical Rules Editor for details. Any class which matches the rules set here will be excluded as if it were in the excluded sections of all the features. See the <globalProcessingExclude> Section for details.
Matched classes will also be excluded from being a candidate for a string decrypter and from the Constant Pool Tag and SourceFile Tag additions. The class listings of the other UI screens will be impacted, after reloading, and will not show classes which have been globally excluded.
Input — Included Non-Class Files
The Input — Included Non-Class Files panel lets you specify the source for non-class contents, such as image, property, or configuration files that need to be in the application.
Directories, individual files, or jar files may be added to list by selecting an existing file using Add button. You can also create an entry by using the New button and editing its name. For directories and jars all non-class files are copied into DashO's output. Directory entries can contain wildcard patterns using the
* character to select particular file types.
Non-class files inside directory, zip, and jar sources will be copied to the output destination preserving their relative internal directories. Specified non-class files will be copied to the output destination. See the <includenonclassfiles> Section for details.
XML configuration files found when processing the non-class files may be updated. This allows class and method names to be changed.
If you are merging inputs and your inputs contain the non-class files you can either turn on Auto Copy or reference them here. If you are not merging inputs DashO will copy over all non-class files in your input jars automatically; but non-class files that appear in input directories will not be copied. See Auto copy for details.
Input — Options
This panel controls some basic options that DashO uses while analyzing the input classes.
Ignore Missing Classes
DashO will attempt to analyze all classes that the application attempts to call. You can instruct DashO to ignore missing classes by selecting this option.
DashO cannot ignore classes and interfaces that the application extends or implements.
Ignore Missing Methods
DashO will attempt to locate concrete implementations of methods as part of its analysis. Turning this option on lets DashO proceeded even if it cannot locate the desired method. Use this option with caution.
Bypass DashO Processing
Turning this option on configures DashO to not perform any processing. The inputs will simply be copied to the output. This option is supported when outputting an unmerged directory or an APK.
Reflection Halts Build
DashO's analysis makes note of reflection usage in the application so that the targets of reflection can be identified. Turn this option on when you are determining what parts of the application use reflection.
Note: You may need to disable injection when enabling this option because some injected code uses reflection.
Determine Reflected Classes
DashO can determine some targets of reflection and automatically make sure that these classes appear in the output. Note that this processing can increase the build time.
Rename Reflected Classes
By default, targets of reflection are not renamed. Use this option to allow these classes to be renamed.