Skip to content

A solution to fix obfuscated Java services after ProGuard has run.

License

Notifications You must be signed in to change notification settings

GiantTreeLP/proguard-services-mapper

Repository files navigation

ProGuard Service Mapper

GitHub license Maven Package Maven Central Sonatype Nexus (Snapshots) GitHub stars

This is a service mapper for the ProGuard Java bytecode obfuscator.

It fixes the issue that files in the META-INF/services directory are not renamed or adapted to the new class names.

It replaces the original Jar file with a new one that contains the renamed services.

It consists of the following modules:

ProGuard Service Mapper CLI

For convenience, the service mapper can be run from the command line. Withouth any additional arguments, it will print help information.

Usage

$ java -jar proguard-service-mapper-cli-<version>.jar -i <input-file> -m <mapping-file>

ProGuard Service Mapper Maven

This plugin is intended to be integrated into your Maven build process and run after the ProGuard Maven plugin.

Usage in Maven

<plugin>
  <groupId>com.github.gianttreelp.proguardservicesmapper</groupId>
  <artifactId>proguard-service-mapper-maven-plugin</artifactId>
  <version>1.1-SNAPSHOT</version> <!-- Update with the version you want to use, preferably the latest -->
  <executions>
    <execution>
      <phase>package</phase>
      <goals>
        <goal>map-proguard</goal>
      </goals>
    </execution>
  </executions>
  <configuration>
    <input><!-- The obfuscated input file --></input>
    <mapping><!-- The mapping file from ProGuard --></mapping>
  </configuration>
</plugin>