Make Synthetic
PreEmptive Protection™ DashO™ for Android & Java can mark 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 methods or fields are made synthetic. |
Only private and package | private |
Only private and package-private members are made synthetic. |
If not public | non-public |
Only private, package-private, and protected methods and fields are made synthetic. |
All | all |
All 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 methods and fields from being made synthetic using the Make Synthetic - Exclude page of the DashO GUI.