studio ofuscar inversa ingenieria features evitar encriptar codigo java obfuscation proguard

java - ofuscar - Método de ofuscación con cláusula de lanzamientos.



proguard android (2)

Estoy usando ProGuard para ofuscar mi código. Mi proyecto se compone de algunos módulos, cada uno ofuscado de forma independiente.

Una biblioteca incluye una interfaz;

public interface IFace { public int methodA(boolean b) throws CustomException; }

Otra biblioteca proporciona una implementación.

public class IFaceImpl implements IFace { @Override public int methodA(boolean b) throws CustomException { return 0; } }

La biblioteca con la interfaz se construye primero, y la segunda se construye contra la versión ofuscada. Desafortunadamente, la compilación falla en @Override ya que la interfaz no tiene la cláusula throws.

Tengo un programa que mantiene la interfaz y todos sus miembros, pero no puedo averiguar cómo mantener la cláusula de los lanzamientos.


Ejemplo con Maven:

<plugin> <groupId>com.github.wvengen</groupId> <artifactId>proguard-maven-plugin</artifactId> <version>2.0.6</version> <dependencies> <dependency> <groupId>net.sf.proguard</groupId> <artifactId>proguard-base</artifactId> <version>4.10</version> </dependency> </dependencies> <executions> <execution> <phase>package</phase> <goals> <goal>proguard</goal> </goals> </execution> </executions> <configuration> <proguardVersion>4.10</proguardVersion> <options> <option>-keepattributes Exceptions</option> <option>-keep public class some.package.SomeClass{*;}</option> </options> <libs> <lib>${java.home}/lib/rt.jar</lib> <lib>${java.home}/lib/jce.jar</lib> <lib>${java.home}/lib/jsse.jar</lib> </libs> </configuration> </plugin>


Me lo imaginé.

-keepattributes Exceptions