Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

DSDP/MTJ/Obfuscate the code

< DSDP‎ | MTJ
Revision as of 12:31, 27 May 2008 by Wgp010.motorola.com (Talk | contribs) (Obfuscate the code moved to DSDP/MTJ/Obfuscate the code)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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

Back to the top