Con strumenti come dex2jar e jdgui2 è molto semplice ispezionare il contenuto dell'APK.Cordova android 5.1.1 offuscazione APK con confusione proguard
Stiamo cercando di utilizzare Proguard nel nostro progetto Cordova per "proteggere" alcune classi che contengono informazioni che vogliamo mantenere segrete (Principalmente le chiavi per decodificare alcuni contenuti che cerchiamo di proteggere per il nostro cliente).
Non possiamo farlo bene. L'app si arresta in modo anomalo o non viene offuscata.
Abbiamo aggiunto al nostro build.gradle:
buildTypes {
release {
signingConfig signingConfigs.release
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
nostro proguard.pro contiene:
-keep class !com.smartmobilesoftware.** (*; }
smartmobilesoftware è un plugin inAppPurchases.
In quel pacchetto abbiamo modificato alcune classi, che funzionano alla grande senza proguard.
ho trovato la seguente "supporto Proguard mancante": https://issues.apache.org/jira/browse/CB-9269
Qui Joe Bowser afferma quanto segue: "OK, non si dovrebbe usare ProGuard con Cordova, o per lo meno, non c'è alcuna buona ragione per usarlo, dal momento che non è possibile utilizzarlo con minifyEnabled, che è ciò che rende ProGuard in grado di funzionare correttamente. Poiché Cordova utilizza Reflection dappertutto, questo è un buon modo per far esplodere Cordova senza un file proguard-rules.pro. "
abbiamo cercato di evitare tale questione dicendo Proguard che tutte le classi dovrebbero essere lasciati intatti, tranne quelle nella com.smartmobilesoftware (classe -keep com.smartmobilesoftware ** (*;!.})
Sono non so se questo è un problema witih nostro codice (ma il codice funziona bene senza Proguard), il plug-in, o Proguard stesso.
non vediamo errori significativi.
Abbiamo rilasciato applicazioni prima costruite con Cordova 2.2.0, che ha usato ANT e proguard e un altro plugin, che ha funzionato bene, quindi ci chiediamo se Cordove sia cambiato rispetto a Proguard.
Qualcuno può far luce su questo problema?
Grazie per la risposta. Non ho ancora potuto controllare, ma la taglia stava scadendo, quindi l'ho data a te. :-) Risponderò qui se il tuo suggerimento funziona. –