Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
DSDP/MTJ/Obfuscate the code
Back to main DSDP-MTJ Use Cases
Short description:
The developer obfuscates the application compiled code using an external Java code obfuscator.
The Obfuscation is included as a task in the build process. Obfuscation task is one of other build tasks such as compilation, code reduction, preverification, packaging, signing, deployment and running. User can manage build process as he needs by adding tasks to build process. Managing build process is done in project properties.
Obfuscation build task needs to its running several attributes. User has to set up the obfuscator location path (user can choose from several external obfuscators) and obfuscator additional parameters (like command line parameters). These parameters are for the better future using saved in the Obfuscation configuration. Each configuration has unique name and it contains user defined attributes about the Obfuscator.
User can manage a configuration of obfuscation via preferences/properties pages. Global setting is done via the obfuscation preferences in global eclipse preferences page. Here user can create, edit or remove configurations of the Obfuscator. Assigning concrete configuration to the MTJ project is set up in the project properties. Here user can enable obfuscation task and choose from saved configuration which obfuscator is used.
Priority:
Owner:
Status: Proposed, Outlined
Community Review: review_date_here
Manual Obfuscation
Priority:
Owner:
Status:
- Proposed:|Accepted: date_here
- Identified|Described|Outlined|Detailed
Community Review: review_date_here
Use Case Description
The developer obfuscates compiled code
Basic Flow
- B1: User selects the application.
- B2: User chooses to generate the obfuscated code.
- B3: System verifies that the code is compiled. If not, an error message is displayed with an option to compile.
- B4: The system obfuscates the compiled code using the external obfuscator specified in the project properties.
- B5: The system notifies that the obfuscation was successfully executed or an error message is displayed in case of failure.
Alternate Flows
Preconditions
A MTJ project is installed in Eclipse and is compilable.
User has installed at least one Obfuscator and saved at least one the Obfuscation configuration. See: Configure Obfuscator
Postconditions
The obfuscated code is generated in the project folder
A code with the user defined parameters has been generated.
Extension Points
Special Requirements
Additional Information
Comments:
Automatic Obfuscation
Priority:
Owner:
Status:
- Proposed:|Accepted: date_here
- Identified|Described|Outlined|Detailed
Community Review: review_date_here
Use Case Description
The code will be obfuscated automatically after a successful compilation
Basic Flow
B1: User selects to compile the application code, or the system compiles it automatically, if specified in preferences. B2: The system notifies that the obfuscation was successfully executed.
Alternate Flows
- Obfuscation fails
- A1:If obfuscation fails, an error message will be displayed
Preconditions
Automatic code obfuscation has been set on to project settings
At least one obfuscator has been installed and configured See: Configure Obfuscator
The code compiles without errors
Postconditions
The code has been obfuscated successfully
Extension Points
Special Requirements
Additional Information
Comments:
Configure Obfuscator
Priority:
Owner:
Status:
- Proposed:|Accepted: date_here
- Identified|Described|Outlined|Detailed
Community Review: review_date_here
Use Case Description
Basic Flow
- B1: User chooses to create a new Obfuscation Configuration from Obfuscation preferences page.
- B2: User fills in these attributes:
- Obfuscator location path
- Additional obfuscator parameters
- Unique configuration name
- B3: User confirms the configuration creation.
- B4: The configuration is stored in the system.
- B5: Steps B1-B3 can be repeated as many times as needed.
Alternate Flows
- Alternative Flow 1: Edit existing obfuscation configuration
- A1: User selects Obfuscation Configuration from the list on Obfuscation preferences page.
- A2: System shows configuration attributes.
- A3: User changes configuration attributes.
- A4: User save changed Obfuscation configuration.
- A5: System saves new configuration data.
- A6: Steps A1-A4 can be repeated as many times as needed.
- Alternative Flow 2: Remove existing obfuscation configuration
- A1: User selects an Obfuscation configuration from the obfuscation preferences page.
- A2: System shows configuration attributes.
- A3: User chooses to delete selected configuration.
- A4: System removes selected configuration.
- A5: Steps A1-A3 can be repeated as many times as needed.
Preconditions
Preconditions for basic flow 1
User has installed at least one Obfuscator.
Given name of obfuscation configuration is never used.
Preconditions for alternative flow 1
User has saved at least one the obfuscation configuration.
Preconditions for alternative flow 2
User has saved at least one the obfuscation configuration.
Postconditions
Post Conditions for basic flow 3
The new Obfuscation configuration is stored in the system and it’s ready to use.
Post Conditions for alternative flow 1
The changes in the editing Obfuscation configuration are stored in the system and it’s ready to use.
Post Conditions for alternative flow 2
Selected configuration is removed from the system. Projects which was this configuration assigned are now set up without the obfuscation task in the build process.
Extension Points
Special Requirements
Additional Information
Comments:
Back to main DSDP-MTJ Use Cases