PreEmptive Protection™ DashO™ can mark classes, methods, and fields as synthetic (generated by the compiler, not present in source code), which can confuse some decompilers. You can configure this behavior on the Make Synthetic page of the DashO GUI, or using the <make-synthetic>
element in your project file.
Note: Make Synthetic is unavailable in Android Mode, and related settings are ignored.
The following settings are available:
Name (used in GUI) |
<make-synthetic> value |
Behavior |
---|---|---|
Never | none |
No classes, methods, or fields are made synthetic. |
Only private and package | private |
Only private and package-private classes, methods, and fields are made synthetic. |
If not public | non-public |
Only private, package-private, and protected classes, methods, and fields are made synthetic. |
All | all |
All classes, methods, and fields are made synthetic. |
Note: When obfuscating a library, use a Make Synthetic option of "Never", "Only private and package", or "If not public". Choosing "Always" will prevent the library from being properly exposed to your end users.
You can exclude classes, methods, and fields from being made synthetic using the Make Synthetic - Exclude page of the DashO GUI.