Autore Topic: Offuscare un'app con Android Studio  (Letto 2901 volte)

Offline oberdank

  • Utente normale
  • ***
  • Post: 287
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Core LTE
  • Play Store ID:
    BuzzOne
  • Sistema operativo:
    Windows 8.1
Offuscare un'app con Android Studio
« il: 09 Marzo 2015, 13:09:58 CET »
0
Ho inserito un banner pubblicitario in una mia semplice app gratuita, adesso vorrei OFFUSCARE l'app, come si fa?
Android Studio puo' offuscare l'app in automatico o va usato ProGuard?

Nella cartella del progetto dove si trova il file APK generato da Android Studio?
I file APK sono dei file JAR rinominati?

Offline oberdank

  • Utente normale
  • ***
  • Post: 287
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Core LTE
  • Play Store ID:
    BuzzOne
  • Sistema operativo:
    Windows 8.1
Re:Offuscare un'app con Android Studio
« Risposta #1 il: 10 Marzo 2015, 13:13:54 CET »
0
Finora non mi ha risposto nessuno, qualcuno puo' rispondere?

Offline oberdank

  • Utente normale
  • ***
  • Post: 287
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Core LTE
  • Play Store ID:
    BuzzOne
  • Sistema operativo:
    Windows 8.1
Re:Offuscare un'app con Android Studio
« Risposta #2 il: 11 Marzo 2015, 13:16:26 CET »
0
Finora non mi ha risposto nessuno, qualcuno puo' rispondere?

Offline LinkOut

  • Utente normale
  • ***
  • Post: 268
  • Respect: +37
    • Mostra profilo
  • Dispositivo Android:
    Xiaomi Mi5
Re:Offuscare un'app con Android Studio
« Risposta #3 il: 11 Marzo 2015, 13:59:17 CET »
0
Ti serve comunque ProGuard perchè android studio non lo fa da solo... E' solo un'IDE.

In gradle è una cosa simile a questa:

buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }


Offline oberdank

  • Utente normale
  • ***
  • Post: 287
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Core LTE
  • Play Store ID:
    BuzzOne
  • Sistema operativo:
    Windows 8.1
Re:Offuscare un\'app con Android Studio
« Risposta #4 il: 11 Marzo 2015, 15:15:51 CET »
0
Invece di

   minifyEnabled false

intendevi dire cosi?

   minifyEnabled true

E' sufficiente cambiare quel settaggio da "false" a "true" per offuscare l'app?
Per chiarezza riporto il mio file "build.gradle"

Quando entra in gioco "ProGuard" ?

Nella cartella del progetto dove si trova il file APK generato da Android Studio?
I file APK sono dei file JAR rinominati?

********** build.gradle **********
Codice: [Seleziona]
apply plugin: 'com.android.application'

android {
    compileSdkVersion 21
    buildToolsVersion "20.0.0"

    defaultConfig {
        applicationId "it.giocoparole.trovanagramma"
        minSdkVersion 10
        targetSdkVersion 21
        versionCode 1
        versionName "0.9"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:21.0.0'
    compile 'com.google.android.gms:play-services:6.+'

}


Post unito: 12 Marzo 2015, 12:08:46 CET
Qualcuno puo' rispondere alle mie ultime domande?
« Ultima modifica: 12 Marzo 2015, 12:08:46 CET da oberdank, Reason: Merged DoublePost »

Offline oberdank

  • Utente normale
  • ***
  • Post: 287
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Core LTE
  • Play Store ID:
    BuzzOne
  • Sistema operativo:
    Windows 8.1
Re:Offuscare un'app con Android Studio
« Risposta #5 il: 12 Marzo 2015, 15:38:48 CET »
0
Qualcuno puo' rispondere alle mie ultime domande?

Offline tonno16

  • Utente storico
  • *****
  • Post: 1169
  • Respect: +56
    • Mostra profilo
  • Dispositivo Android:
    moto g
  • Play Store ID:
    Diego Tonini
  • Sistema operativo:
    OpenSuse
Re:Offuscare un'app con Android Studio
« Risposta #6 il: 12 Marzo 2015, 15:46:36 CET »
0
Apk è diverso da jar. Al massimo apk contiene tutto e contiene anche il jar.
Apk lo trovi col nome appDebug.apk credo.
Vai nella cartella del progetto con explorer. Spulcia le varie cartelle. In 1 minuto massimo trovi il tuo apk.

Offline oberdank

  • Utente normale
  • ***
  • Post: 287
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Core LTE
  • Play Store ID:
    BuzzOne
  • Sistema operativo:
    Windows 8.1
Re:Offuscare un'app con Android Studio
« Risposta #7 il: 12 Marzo 2015, 16:15:53 CET »
0
Nella cartella

C:\Users\Amministratore\AndroidStudioProjects\TrovAnagramma\app\build\outputs\apk

ho trovato i seguenti tre file:

1) app-debug.apk
2) app-debug-unaligned.apk
3) manifest-merger-debug-report.txt

di cosa si tratta?
Il programma generato da Android Studio e' "app-debug.apk" o "app-debug-unaligned.apk" ?

Il file APK va rinominato al nome del programma? (per esempio a "TrovAnagramma.apk")

Offline tonno16

  • Utente storico
  • *****
  • Post: 1169
  • Respect: +56
    • Mostra profilo
  • Dispositivo Android:
    moto g
  • Play Store ID:
    Diego Tonini
  • Sistema operativo:
    OpenSuse
Re:Offuscare un'app con Android Studio
« Risposta #8 il: 12 Marzo 2015, 16:20:08 CET »
+1
Puoi rinominarlo come vuoi. Anche acaso.apk.

Quando fai il run AS installa automaticamente l'applicazione sul telefono. Non devi fare copia incolla

Offline oberdank

  • Utente normale
  • ***
  • Post: 287
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Core LTE
  • Play Store ID:
    BuzzOne
  • Sistema operativo:
    Windows 8.1
Re:Offuscare un'app con Android Studio
« Risposta #9 il: 12 Marzo 2015, 16:53:39 CET »
0
Grazie della celere risposta.

Il programma generato da Android Studio e' "app-debug.apk" o "app-debug-unaligned.apk" ?

Puoi darmi delle informazioni sul file "manifest-merger-debug-report.txt" ?

Offline arlabs

  • Utente normale
  • ***
  • Post: 430
  • Respect: +49
    • Mostra profilo
  • Dispositivo Android:
    GalaxyS6, Nexus5
  • Play Store ID:
    AR Labs
  • Sistema operativo:
    Windows 10
Re:Offuscare un'app con Android Studio
« Risposta #10 il: 13 Marzo 2015, 14:32:13 CET »
+1
Cmq, visto che il thread era a riguardo di Proguard...

E' la versione release che ti viene offuscata. non quella debug (di cui tu stai vedendo l'APK)
Per compilare in release seleziona la build variant corretta dalla finestra dockable delle build variant, prima di fare la build.

La versione da usare sarà app-release.apk (che puoi rinominare come vuoi), non quella unaligned.
Insieme all'apk mettivi via anche il file mapping.txt (che trovi sotto build\outputs\mapping).
Ti serve per deoffuscare il codice, nel caso tu abbia lo stack di un eccezione.

Se usi flavors, con il comando 'gradlew clean assembleRelease' nella finestra 'terminal' di AndroidStudio fai la build di tutte le versioni.
E' da richiamare dalla cartella di progetto (dove c'è il file gradlew). In Linux penso si usi gradle al posto di di gradlew.

Ciao.

Offline oberdank

  • Utente normale
  • ***
  • Post: 287
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Core LTE
  • Play Store ID:
    BuzzOne
  • Sistema operativo:
    Windows 8.1
Re:Offuscare un'app con Android Studio
« Risposta #11 il: 13 Marzo 2015, 17:03:46 CET »
0
Grazie arlabs per la risposta, ma non ho capito diverse cose:

Citazione
Per compilare in release seleziona la build variant corretta dalla finestra dockable delle build variant, prima di fare la build.

NON ho capito dove devo cliccare in Android Studio per compilare la versione "release".

Citazione
Se usi flavors, con il comando 'gradlew clean assembleRelease' nella finestra 'terminal' di AndroidStudio fai la build di tutte le versioni.

Non uso flavors.

NON ho capito come fare a offuscare un'app, nel file "build.gradle" invece di

   minifyEnabled false

va scritto cosi'

   minifyEnabled true

e dopo? Quando entra in gioco ProGuard?

Offline arlabs

  • Utente normale
  • ***
  • Post: 430
  • Respect: +49
    • Mostra profilo
  • Dispositivo Android:
    GalaxyS6, Nexus5
  • Play Store ID:
    AR Labs
  • Sistema operativo:
    Windows 10
Re:Offuscare un'app con Android Studio
« Risposta #12 il: 13 Marzo 2015, 17:10:58 CET »
0
NON ho capito dove devo cliccare in Android Studio per compilare la versione "release".

View->Tool Windows->Build Variants

e dopo? Quando entra in gioco ProGuard?

ProGuard lo chiama automaticamente gradle durante la build.


Offline oberdank

  • Utente normale
  • ***
  • Post: 287
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Core LTE
  • Play Store ID:
    BuzzOne
  • Sistema operativo:
    Windows 8.1
Re:Offuscare un\\\\\\\'app con Android Studio
« Risposta #13 il: 13 Marzo 2015, 17:22:54 CET »
0
Ho cliccato su "View->Tool Windows->Build Variants" e mi e' apparsa l'immagine che allego, COME devo procedere?
La combobox "Test Artifact:" e' disattivata.

PER FAVORE mi spieghi la procedura da seguire per offuscare un'app?
Ciao.


Post unito: [time]13 Marzo 2015, 17:48:02 CET[/time]
Nella finestra "Terminal" ho provato a scrivere "gradlew clean assembleRelease" e adesso in Android Studio
"MainActivity.java" mi appare scritto ROSSO SOTTOLINEATO, che errore c'e'?
Per chiarezza allego l'immagine.


Post unito: [time]13 Marzo 2015, 17:56:28 CET[/time]
Ho cliccato su "Run" e adesso sembra tutto a posto, "MainActivity.java" NON e' piu' sottolineato in rosso.

Pero' NON ho capito come fare a offuscare l'app.


Post unito: 13 Marzo 2015, 18:04:24 CET
Adesso nella cartella

C:\Users\Amministratore\AndroidStudioProjects\TrovAnagramma\app\build\outputs\apk

ho i seguenti cinque file:

1) app-debug.apk
2) app-debug-unaligned.apk
3) app-release-unaligned.apk
4) manifest-merger-debug-report.txt
5) manifest-merger-release-report.txt

il file "app-release.apk" MANCA.
« Ultima modifica: 13 Marzo 2015, 18:04:24 CET da oberdank, Reason: Merged DoublePost »

Offline arlabs

  • Utente normale
  • ***
  • Post: 430
  • Respect: +49
    • Mostra profilo
  • Dispositivo Android:
    GalaxyS6, Nexus5
  • Play Store ID:
    AR Labs
  • Sistema operativo:
    Windows 10
Re:Offuscare un'app con Android Studio
« Risposta #14 il: 13 Marzo 2015, 18:27:13 CET »
0
Da quello che vedo nel tuo screenshot, non è stato chiamato né proguard, né zipalign.
Dovrebbero esserci due step di build che si chiamano "proguardRelease" e "zipAlignRelease".

tra l'altro lo zip align è abilitato di default se non lo disabiliti.

Sei sicuro che stai compilando con questo build.gradle?

Codice (XML): [Seleziona]
apply plugin: 'com.android.application'

android {
    compileSdkVersion 21
    buildToolsVersion "20.0.0"

    defaultConfig {
        applicationId "it.giocoparole.trovanagramma"
        minSdkVersion 10
        targetSdkVersion 21
        versionCode 1
        versionName "0.9"
    }
    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:21.0.0'
    compile 'com.google.android.gms:play-services:6.+'

}