Bonjour,

Dans le cadre de ma formation en sécurité informatique, j'étudie le code source d'un pare-feu pour smartphone Android. J'ai commencé plusieurs tuto pour prendre en main l'IDE Android Studio depuis quelques jours mais ce domaine est tout nouveau pour moi.

Le problème qui m'amène ici est le suivant :
Mon premier objectif est de faire tourner l'application pour étudier les logs générés. Mais dès cette première étape, je rentre des difficultés.
J'ai récupéré sur GitHub les sources de l'appli que je dois étudier. Quand je cherche à les compiler, j'ai une erreur m'indiquant que le fichier keystore.properties est absent. Après pas mal de recherches, j'ai vu qu'il fallait que l'appli soit signée pour pouvoir être compilée. J'ai donc créé mon porpre keystore en ligne de commande :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
keytool -genkeypair -v  -keystore essaiKeystore.jks -storepass XXXX -alias YYYY -keypass ZZZZ -keyalg RSA -keysize 2048 -validity 10000
En effet, je n'ai pas pour une raison que j'ignore la possibilité de générer les clés via le menu build d'Android Studio.

J'ai ensuite édité à la main le fichier keystore.properties à la racine de mon projet :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
storePassword=XXXX
keyPassword=ZZZZ
keyAlias=YYYY
storeFile=/Users/DLG/essaiKeystore.jks
J'ai ensuite recompilé les sources mais j'obtiens l'erreur suivante :
Gradle sync failed: Could not find method storeFile() for arguments [/Users/DLG/.../keystore.properties] on SigningConfig_Decorated{name=release, storeFile=null, storePassword=null, keyAlias=null, keyPassword=null, storeType=jks, v1SigningEnabled=true, v2SigningEnabled=true} of type com.android.build.gradle.internal.dsl.SigningConfig.

J'ai également essayé de déclarer le keystore via le menu File>ProjectStructure>Signing Configs sans succès...

J'ai aussi vu que je devais pouvoir compiler en build variant ''debug'' pour ue les clés de debug soient utilisées mais je n'ai pas encore réussi à faire cela. Le menu Build>Select Build Variant est grisé alors que la variant build est bien présente dans build.gradle :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 
  buildTypes {
        release {
            minifyEnabled = true
            useProguard = true
            proguardFiles.add(file('proguard-rules.pro'))
            signingConfig signingConfigs.release
            buildConfigField "boolean", "PLAY_STORE_RELEASE", "false"
            buildConfigField "String", "HOSTS_FILE_URI", "\"http://www.netguard.me/hosts\""
            buildConfigField "String", "GITHUB_LATEST_API", "\"https://api.github.com/repos/M66B/NetGuard/releases/latest\""
            manifestPlaceholders = [keystore: keystoreProperties]
        }
        play {
            minifyEnabled = true
            useProguard = true
            signingConfig signingConfigs.release
            proguardFiles.add(file('proguard-rules.pro'))
            buildConfigField "boolean", "PLAY_STORE_RELEASE", "true"
            buildConfigField "String", "HOSTS_FILE_URI", "\"\""
            buildConfigField "String", "GITHUB_LATEST_API", "\"\""
        }
        debug {
            minifyEnabled = true
            useProguard = true
            proguardFiles.add(file('proguard-rules.pro'))
            buildConfigField "boolean", "PLAY_STORE_RELEASE", "false"
            buildConfigField "String", "HOSTS_FILE_URI", "\"http://www.netguard.me/hosts\""
            buildConfigField "String", "GITHUB_LATEST_API", "\"https://api.github.com/repos/M66B/NetGuard/releases/latest\""
            manifestPlaceholders = [keystore: keystorePropertiesFile]
        }
    }
Bref, je suis perdu... Une âme charitable pourrait-elle m'aider?