Autore Topic: Proguard  (Letto 1030 volte)

Offline andream1977

  • Utente normale
  • ***
  • Post: 260
  • Respect: +7
    • Mostra profilo
  • Dispositivo Android:
    Nexus S
  • Sistema operativo:
    windows xp
Proguard
« il: 28 Febbraio 2011, 23:12:35 CET »
0
Ho realizzato e finito di testare un'app e vorrei provare ad offuscarla
Ho letto le istruzioni nel seguente link:
ProGuard | Android Developers
In particolare ho aggiunto la stringa:
proguard.config=proguard.cfg
nel file:
default.properties
che si trova nella root del mio progetto di Eclipse
Ho esportato il mio file apk, leggendo nel link, proguard dovrebbe aver generato i seguenti files:
dump.txt
mapping.txt
seeds.txt
usage.txt
Questi files non mi sono stati generati, penso che mi manchi qualcosa per attivare l'offuscamento del codice, sapete dirmi cosa?

aggiungo anche che il mio progetto è stato creato per la versione 4, quindi ho copiato da un altro progetto il file proguard.cfg
Il file proguard.cfg è vuoto
grazie
« Ultima modifica: 28 Febbraio 2011, 23:46:09 CET da andream1977 »

Offline andream1977

  • Utente normale
  • ***
  • Post: 260
  • Respect: +7
    • Mostra profilo
  • Dispositivo Android:
    Nexus S
  • Sistema operativo:
    windows xp
Re:Proguard
« Risposta #1 il: 01 Marzo 2011, 18:04:06 CET »
0
qualcuno ha mai scritto un file proguard.cfg ?
avete un esempio da potermi mostrare?

ho provato a guardare questo sito

ProGuard

ma mi ci perdo

Offline blackgin

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1387
  • Respect: +164
    • Google+
    • blackgins
    • blackginsoft
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Mac OSX 10.8
Re:Proguard
« Risposta #2 il: 01 Marzo 2011, 20:08:16 CET »
0
In Configuring Proguard, nel tuo primo link si trova scritto:
Citazione
For some situations, the default configurations in the proguard.cfg file will suffice. However, many situations are hard for ProGuard to analyze correctly and it might remove code that it thinks is not used, but your application actually needs. Some examples include:

-a class that is referenced only in the AndroidManifest.xml file
-a method called from JNI
-dynamically referenced fields and methods
Se pensi che per te la configurazione base vada bene, non devi fare niente se non quello che hai fatto.
Postate il LogCat LogCat LogCat LogCat LogCat

Offline andream1977

  • Utente normale
  • ***
  • Post: 260
  • Respect: +7
    • Mostra profilo
  • Dispositivo Android:
    Nexus S
  • Sistema operativo:
    windows xp
Re:Proguard
« Risposta #3 il: 02 Marzo 2011, 00:25:29 CET »
0
esatto l'ho letto pure io, a me va bene i valori di default, ma il file proguard.cfg che ha creato eclipse quando ho creato il progetto è vuoto, e quando esporto la mia app non viene offuscato niente
di questo ne sono certo perchè ho decompilato il file .apk ed ho visto il codice con i nomi originali dei miei metodi
quindi mi manca qualcosa da configurare, oppure qualcosa da scrivere nel file proguard.cfg
l'unica cosa che ho fatto è stato aggiungere
proguard.config=proguard.cfg
nel file:
default.properties

Offline andream1977

  • Utente normale
  • ***
  • Post: 260
  • Respect: +7
    • Mostra profilo
  • Dispositivo Android:
    Nexus S
  • Sistema operativo:
    windows xp
Re:Proguard
« Risposta #4 il: 02 Marzo 2011, 17:27:30 CET »
0
Per esempio, nel mio ambiente di eclipse non ho mai scaricato nessun jar o plugin di prguard
non è che devo scaricare qualche libreria aggiuntiva tipo un proguard.jar e linkarla da qualche parte?

Offline blackgin

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1387
  • Respect: +164
    • Google+
    • blackgins
    • blackginsoft
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Mac OSX 10.8
Re:Proguard
« Risposta #5 il: 02 Marzo 2011, 18:33:05 CET »
0
Non scrivere doppi post. Esiste il tasto edit.

Comunque quando io creo un nuovo progetto android mi si genere un file proguard standard e non vuoto. Sicuro di avere l'sdk android e tutti i tools aggiornati (compreso il plugin android per eclipse)?
E no, non servono plugin o librerie aggiuntive.
Postate il LogCat LogCat LogCat LogCat LogCat

Offline andream1977

  • Utente normale
  • ***
  • Post: 260
  • Respect: +7
    • Mostra profilo
  • Dispositivo Android:
    Nexus S
  • Sistema operativo:
    windows xp
Re:Proguard
« Risposta #6 il: 02 Marzo 2011, 20:49:52 CET »
0
blackgin potresti scrivermi il contenuto del tuo file proguard? così lo copio nel mio che è vuoto e vedo se mi funziona

Offline blackgin

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1387
  • Respect: +164
    • Google+
    • blackgins
    • blackginsoft
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Mac OSX 10.8
Re:Proguard
« Risposta #7 il: 02 Marzo 2011, 22:01:30 CET »
0
Eccotelo, ma non so se basta.

Codice: [Seleziona]
-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*

-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class * extends android.app.backup.BackupAgentHelper
-keep public class * extends android.preference.Preference
-keep public class com.android.vending.licensing.ILicensingService

-keepclasseswithmembernames class * {
    native <methods>;
}

-keepclasseswithmembernames class * {
    public <init>(android.content.Context, android.util.AttributeSet);
}

-keepclasseswithmembernames class * {
    public <init>(android.content.Context, android.util.AttributeSet, int);
}

-keepclassmembers enum * {
    public static **[] values();
    public static ** valueOf(java.lang.String);
}

-keep class * implements android.os.Parcelable {
  public static final android.os.Parcelable$Creator *;
}
Postate il LogCat LogCat LogCat LogCat LogCat