Sto costruendo un framework per Android e ho bisogno di offuscare e ridurre il barattolo per spedirlo agli utenti.Come nascondere tutto tranne i nomi e gli attributi dei metodi pubblici con proguard?
sto usando lo strumento Proguard incluso nel SDK di Android e non ho i seguenti requisiti per il vaso di uscita:
- mantenere tutte le classi comprese nel vaso di ingresso, ma li offuscano.
- non offuscare la nomi di classe delle classi denominate in `AndroidManifest.xml
- non fanno offuscare il nome della classe e nomi di metodo pubblici/attributi per la classe che viene utilizzato dispone di un'interfaccia per l'utente, tuttavia fallo per i loro contenuti.
Per farlo, utilizzare la seguente configurazione:
-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose
-keep, allowobfuscation class com.company.*
-keepclassmembers, allowobfuscation class * {
*;
}
-keepnames class com.company.MyClass { *; }
-keepclassmembernames class com.company.MyClass {
public <methods>;
public <fields>;
#!private *; also tried this but it didn't work
}
Tuttavia il mio nomi classi private e gli attributi ancora avere lo stesso nome, anche se il contenuto è offuscato. Ho perso qualcosa nei miei jolly?
Hai davvero utilizzare l'opzione '-keepnames'? Penso che sia quello che rende scorretta la tua offuscazione. –