lord-ralf-adolf
Membre VIP
- Inscrit
- 15 Janvier 2012
- Messages
- 1 023
- Points
- 36
- #1
Salut tout le monde
Je voulais faire ce tutoriel y a un bon moment mais je n'ai pas pu pour plusieurs raison (que je ne vais pas lister) donc aujourd'hui je vous présente ce tutoriel
1/ Pour quoi utiliser Aroma ?
Pour donner plus de choix au utilisateurs qui vont flasher votre rom.
Pour donner une interface cool à vos zip
pour utiliser de nouvelles fonctionnalités contenu dans Aroma.
Une autre raison …
2/ c'est quoi au juste Aroma ?
Bonne question!! Aroma est un programme qui s'exécute dans le recovery, développé par « amarullz » sur XDA, écrit en langage c, compilé pour Android et pour les processeur à l’architecture ARM. Donc c'est pas compatible avec les architectures x86 …
Il propose beaucoup de fonctionnalités avancées tel que le tactile, afficher des image, faire des calculs, enregistrer des fichiers, exécuter des programmes, les conditions et encore plus !!
En une phrase: « il pousse le recovery au maximum de ses fonctionnalités »
3/ Comment Aroma fonctionne ?
Le recovery Android est développé pour pouvoir mettre à jour le téléphone en utilisant des fichiers zip. Quand on installe un zip, le recovery exécute le programme « update-binary ». Ce dernier reçoit les commandes du script « updater-script». Ça, je crois que tout le monde le sait …
avec Aroma, on remplace le « update-binary » avec le « update-binary » de Aroma. Donc, quand le recovery l’exécute, il exécute Aroma !! Aroma prend les commande du script « aroma-config ». Quand le script d'Aroma est fini il exécute le « update-binary-installer » qui est l’ancien « update-binary » ce dernier va installer la rom !!
Comment ces deux programmes (exécutable Aroma & exécutable recovery) communiquent entre eux ?
Les deux programmes communiquent grâce au fichier temporaire, l'exécutable Aroma laisse des fichiers temporaires dans /tmp/aroma-data/ ces fichier temporaires ont une extension « .prop » et contient des propriété du genre
Ces fichiers peuvent êtres récupérés par l'exécutable recovery en utilisant la commande
Voici un schéma qui explique tout :
Comment l'intégrer ?
1/ Télécharger la dernière version
2/ décompresser le zip d'Aroma téléchargé vers un dossier nommé Aroma
4/ tout le travail va se passer dans le chemin « /META-INF/com/google/android/ » donc, à partir de maintenant, les chemins seront donnés comme si ce chemin était le root.
3/ Prenez le « update-binary » d'une ancienne rom destinée au modèle de votre téléphone et renommez la vers «update-binary-installer» puis copier la vers /META-INF/com/google/android dans le dossier d'Aroma et acceptez le remplacement
c'est tout. Maintenant il faut écrire aroma config et votre updater-script !!
I ) Les principe des différentes interfaces utilisateur de Aroma :
Aroma est fait pour afficher des interfaces utilisateur (UI). Elle en offre quatre types:
c'est l' « UI » principale de Aroma installer. Elle offre des « ui » comme ceux d'un installeur sous Windows, avec deux bouton « suivant » et « précédent ». elle même contient plusieurs type :
checkbox
un interface qui affiche plusieurs « checkbox » « cocher /décocher » !
usage :
Explication du Code :
Ce qui est écrit après le "#" est un commentaire et Aroma va l'ignorer !
*(1) ceci est le titre de votre fenêtre il sera affiché en haut. Vous pouvez écrire ce que vous voulez entre les "" .
*(2) ceci est la description du titre ou un sous titre. Il sera afficher juste au dessous du titre.
*(3) ceci est le nom de l'icone que vous voulez afficher. Elle dois êtres placée dans /aroma/icons/nom_de_l'icone.png
*(4) veux dire que Aroma va sauvegarder le choix de l'utilisateur dans le fichier /tmp/aroma-data/fichier.prop
*(5) ceci est le titre du groupe. Il faut mètre le numéro
*(6) c'est le premier élément. le numéro 1 à la fin veut dire que cet élément seras coché par défaut sera sauvgardé dans
*(7) c'est le deuxième élément. le numéro 0 à la fin veut dire que cet élément seras coché par défaut
*(8) c'est le troisième élément. le numéro 0 à la fin veut dire que cet élément seras coché par défaut
Remarquez que la dernière ligne fini toujours par "" et pas par ",".
Exemple de l'utilisation :
Vous voulez proposer aux utilisateurs qui vont installer votre ROM de choisir quel sont les applications à installer ou désinstaller !
Code Aroma à écrire dans "aroma-config"
Récupération du choix de l'utilisateur (code à écrire dans "updater-script")
une image qui représente une vu de "checkbox"
Selectebox
une interface qui offre une liste de plusieurs éléments avec des boutons radio (un seul élément peut être sélectionné) .
Usage :
Explication du code
*(1) le titre
*(2) sous-titre
*(3) l'icone
*(4) le fichier dans le quel les choix de l'utilisateur seront sauvegardés.
*(5) le premier élément le numéro 1. dans le troisième argument veut dire sélectionné par défaut
*(6) le deuxième élément le numéro 0. dans le troisième argument veut dire non sélectionné par défaut
*(7) l'élément X. vous pouvez ajouter un nombre infini d'élément si vous le voulez !
Exemple de l'utilisation :
Par exemple, vous voulez proposer d'installer plusieurs kernels au utilisateurs qui vont installer votre Rom, vous ne pouvez pas utiliser une "checkbox" par ce que l'utilisateur va choisir d'installer plusieurs kernels à la fois et ce n'est pas possible ,On flash seulement un seul kernel !! donc le meilleur choix c'est d'utilisé un "selectbox" !
Code aroma à écrire dans aroma-config:
Code à écrire dans "updater-script" pour récupérer les différents choix de l'utilisateur
une image exemple d'une "selectbox":
textbox
Une UI qui vous permet d'afficher simplement du texte utile
Explication du Code:
pour le titre ,le sous titre et l'icone les même règle qu'avant
*(1) /n veut dire retourner à la ligne !! et + à la fin veut dire que ce que vous écrivez après et dans le même argument
*(2) la fin de l'argument. remarquez qu'il n'y a pas de "+" à la fin !!
Image exemple :
viewbox
La même chose que "textbox" sauf quelle n'accepte pas le défilement vertical et affiche un nombre limité de caractère !
Donc pas la peine d'expliquer l'usage du code !!
agreebox
cette UI est comme une "textbox" mais avec une case à cocher utile pour afficher les conditions de l'utilisation, par ce que si la case n'est pas cochée, l'utilisateur ne pourra pas avancer !
Usage :
Explication du Code :
*(1) Va afficher le texte des condition du fichier "license.txt" qui se trouve dans le dossier /aroma/ vous devez écrire vos conditions dans ce fichier ,vous pouvez décorer le texte dans le fichier "license.txt" en utilisant les balises HTML (<b></b> pour Gras ,<u></u> pour souligner , <i></i> pour italic , <*></*> pour les liste .
*(2) le texte qui sera affiché à coté de la case d'agrément .
*(3) le texte qui sera affiché dans une boite de dialogue si l'utilisateur n'accepte pas les condition et veut continuer l'installation.
menubox
cette UI est la même que selectbox sauf qu'il n'y a pas de bouton "suivant" l'utilisateur sera dirigé vers la fenêtre suivante dès qu'il cliquera sur un élément du menu.
Usage code dans "aroma-config"
Explication du code :
*(1) chaque élément à trois arguments. Le premier, c'est le titre de l'élément. Le second, c'est la description. Et le troisième, c'est l'icone de l'élément qui doit être placée dans le chemin "/aroma/icons/"
cette UI affiche les fenêtres de dialogue et elle contient plusieurs types elle même:
alert
Cette UI affiche une popup avec un nombre limité de texte et seulement un bouton OK. Utile pour faire des avertissements à l'utilisateur!
Usage : code dans "aroma-config"
confirm
cette UI affiche une Boite de dialogue avec deux bouton "ok" et "annuler". Utile pour donner une deuxième chance aux utilisateurs pour qu'ils confirment leurs choix !
Usage : code dans "aroma-config"
textdialog
la même chose que "alert" mais avec un texte illimité et peut défiler verticalement ! Et un seul bouton "ok" utile pour afficher les nouveaux changements que propose votre ROM.
USAGE : code dans "aroma-config"
Explication :
*(1) le texte de la boite sera lu à partir du fichier "changelog.txt" qui doit être dans le chemin "/aroma/" de votre zip bien sur !
3/ Splash UI
Cette UI affichera une image. Peut être utile pour afficher le logo de votre ROM au lancement du zip par l'utilisateur
Usage : code dans "aroma-config" :
4/Installer UI
On appel cet UI que dans la fin de notre installeur, par ce que elle va exécuter le "updater-script" et l'afficher en même temps. Une fois lancée, l'utilisateur ne peut pas annuler, continuer ou revenir en arrière! Quand le "updater-script" sera fini, elle affichera automatiquement un bouton "terminé".
Usage : code dans "aroma-config":
II ) Les Fonctions principales de aroma:
theme
Pour définir le thème de l'interface
Exemple de l'utilisation :
setvar
cette fonction permet de définir une variable. Il y a un seul type de variable dans aroma, de type "string" par défaut, et on peut pas le changer u_u !!
Usage :
getvar
cette fonction permet de récupérer une variable déjà définie pour l'afficher à l'utilisateur !
Usage :
On veut récupérer la variable "var" que nous avont défini précédemment et l'afficher dans une alerte :
appendvar
pour ajouter un string à la valeur d'une variable
Usage :
prependvar
La même fonction que "appendvar", sauf que la nouvelle valeur sera ajoutée avant la première valeur et pas après.
Usage :
file_getprop
cette fonction vous permettra de récupérer une valeur d'un fichier .prop
Usage :
sysprop
presque la même fonction que "file_getprop", sauf qu'avec cette fonction on récupérera une valeur directement du "build.prop" du téléphone !
Usage :
writetmpfile
cette fonction permet d'écrire un ficher temporaire dans le chemin "/tmp/aroma-data/nom-du-fichier"
Usage
Explication :
argument 1 : le nom du fichier à sauvegarder (sera sauvegardé dans /tmp/aroma-data/fichier.txt )
argument 2 : le contenu du ficher text , "/n" = "entrer" nouvel ligne
run_program
cette fonction permet d’exécuter un programme .
Usage :
par exemple on veux faire une sauvegarde du dossier "/efs" du téléphone :
J'ai pas pu tout expliquer dans ce tuto u_u ... croyez moi c'est très difficile!
Mais en tout cas je serai la pour répondre à vos question et vos suggestions sont les bien venu !
PS : j'ai du mal à m’exprimer en français u_u ,donc si vous voyez des erreur "orthographique, grammatical, vocabulaire ou de conjugaison S.V.P reportez les pour que je les corrige.
Merci d'avoir pris le temps de lire se guide ,j’espère qu'il vous était utile
Pour Plus d'info sur aroma regardez dans le poste Original sur XDA
Je voulais faire ce tutoriel y a un bon moment mais je n'ai pas pu pour plusieurs raison (que je ne vais pas lister) donc aujourd'hui je vous présente ce tutoriel
Intégrer Aroma dans vos roms ,mods ou thèmes
1/ Pour quoi utiliser Aroma ?
Pour donner plus de choix au utilisateurs qui vont flasher votre rom.
Pour donner une interface cool à vos zip
pour utiliser de nouvelles fonctionnalités contenu dans Aroma.
Une autre raison …
2/ c'est quoi au juste Aroma ?
Bonne question!! Aroma est un programme qui s'exécute dans le recovery, développé par « amarullz » sur XDA, écrit en langage c, compilé pour Android et pour les processeur à l’architecture ARM. Donc c'est pas compatible avec les architectures x86 …
Il propose beaucoup de fonctionnalités avancées tel que le tactile, afficher des image, faire des calculs, enregistrer des fichiers, exécuter des programmes, les conditions et encore plus !!
En une phrase: « il pousse le recovery au maximum de ses fonctionnalités »
3/ Comment Aroma fonctionne ?
Le recovery Android est développé pour pouvoir mettre à jour le téléphone en utilisant des fichiers zip. Quand on installe un zip, le recovery exécute le programme « update-binary ». Ce dernier reçoit les commandes du script « updater-script». Ça, je crois que tout le monde le sait …
avec Aroma, on remplace le « update-binary » avec le « update-binary » de Aroma. Donc, quand le recovery l’exécute, il exécute Aroma !! Aroma prend les commande du script « aroma-config ». Quand le script d'Aroma est fini il exécute le « update-binary-installer » qui est l’ancien « update-binary » ce dernier va installer la rom !!
Pour que vous compreniez vite à partir de ce point :
On va appeler update-binary ====> exécutable Aroma
On va appeler update-binary-installer ====> exécutable recovery
vous êtes d'accord ? Ok on continue !!
Comment ces deux programmes (exécutable Aroma & exécutable recovery) communiquent entre eux ?
Les deux programmes communiquent grâce au fichier temporaire, l'exécutable Aroma laisse des fichiers temporaires dans /tmp/aroma-data/ ces fichier temporaires ont une extension « .prop » et contient des propriété du genre
Code:
S'il vous plaît,
Connexion
ou
S'inscrire
to view codes content!
Ces fichiers peuvent êtres récupérés par l'exécutable recovery en utilisant la commande
Code:
S'il vous plaît,
Connexion
ou
S'inscrire
to view codes content!
Voici un schéma qui explique tout :
Comment l'intégrer ?
1/ Télécharger la dernière version
S'il vous plaît,
Connexion
ou
S'inscrire
pour voir le contenu ou les urls !
2/ décompresser le zip d'Aroma téléchargé vers un dossier nommé Aroma
4/ tout le travail va se passer dans le chemin « /META-INF/com/google/android/ » donc, à partir de maintenant, les chemins seront donnés comme si ce chemin était le root.
3/ Prenez le « update-binary » d'une ancienne rom destinée au modèle de votre téléphone et renommez la vers «update-binary-installer» puis copier la vers /META-INF/com/google/android dans le dossier d'Aroma et acceptez le remplacement
c'est tout. Maintenant il faut écrire aroma config et votre updater-script !!
I ) Les principe des différentes interfaces utilisateur de Aroma :
Aroma est fait pour afficher des interfaces utilisateur (UI). Elle en offre quatre types:
1/ Wizard UI
c'est l' « UI » principale de Aroma installer. Elle offre des « ui » comme ceux d'un installeur sous Windows, avec deux bouton « suivant » et « précédent ». elle même contient plusieurs type :
checkbox
un interface qui affiche plusieurs « checkbox » « cocher /décocher » !
usage :
Code:
S'il vous plaît,
Connexion
ou
S'inscrire
to view codes content!
Explication du Code :
Ce qui est écrit après le "#" est un commentaire et Aroma va l'ignorer !
*(1) ceci est le titre de votre fenêtre il sera affiché en haut. Vous pouvez écrire ce que vous voulez entre les "" .
*(2) ceci est la description du titre ou un sous titre. Il sera afficher juste au dessous du titre.
*(3) ceci est le nom de l'icone que vous voulez afficher. Elle dois êtres placée dans /aroma/icons/nom_de_l'icone.png
*(4) veux dire que Aroma va sauvegarder le choix de l'utilisateur dans le fichier /tmp/aroma-data/fichier.prop
*(5) ceci est le titre du groupe. Il faut mètre le numéro
*(6) c'est le premier élément. le numéro 1 à la fin veut dire que cet élément seras coché par défaut sera sauvgardé dans
*(7) c'est le deuxième élément. le numéro 0 à la fin veut dire que cet élément seras coché par défaut
*(8) c'est le troisième élément. le numéro 0 à la fin veut dire que cet élément seras coché par défaut
Remarquez que la dernière ligne fini toujours par "" et pas par ",".
Exemple de l'utilisation :
Vous voulez proposer aux utilisateurs qui vont installer votre ROM de choisir quel sont les applications à installer ou désinstaller !
Code Aroma à écrire dans "aroma-config"
Code:
S'il vous plaît,
Connexion
ou
S'inscrire
to view codes content!
Récupération du choix de l'utilisateur (code à écrire dans "updater-script")
Code:
S'il vous plaît,
Connexion
ou
S'inscrire
to view codes content!
une image qui représente une vu de "checkbox"
Selectebox
une interface qui offre une liste de plusieurs éléments avec des boutons radio (un seul élément peut être sélectionné) .
Usage :
Code:
S'il vous plaît,
Connexion
ou
S'inscrire
to view codes content!
Explication du code
*(1) le titre
*(2) sous-titre
*(3) l'icone
*(4) le fichier dans le quel les choix de l'utilisateur seront sauvegardés.
*(5) le premier élément le numéro 1. dans le troisième argument veut dire sélectionné par défaut
*(6) le deuxième élément le numéro 0. dans le troisième argument veut dire non sélectionné par défaut
*(7) l'élément X. vous pouvez ajouter un nombre infini d'élément si vous le voulez !
Exemple de l'utilisation :
Par exemple, vous voulez proposer d'installer plusieurs kernels au utilisateurs qui vont installer votre Rom, vous ne pouvez pas utiliser une "checkbox" par ce que l'utilisateur va choisir d'installer plusieurs kernels à la fois et ce n'est pas possible ,On flash seulement un seul kernel !! donc le meilleur choix c'est d'utilisé un "selectbox" !
Code aroma à écrire dans aroma-config:
Code:
S'il vous plaît,
Connexion
ou
S'inscrire
to view codes content!
Code à écrire dans "updater-script" pour récupérer les différents choix de l'utilisateur
Code:
S'il vous plaît,
Connexion
ou
S'inscrire
to view codes content!
une image exemple d'une "selectbox":
textbox
Une UI qui vous permet d'afficher simplement du texte utile
Code:
S'il vous plaît,
Connexion
ou
S'inscrire
to view codes content!
Explication du Code:
pour le titre ,le sous titre et l'icone les même règle qu'avant
*(1) /n veut dire retourner à la ligne !! et + à la fin veut dire que ce que vous écrivez après et dans le même argument
*(2) la fin de l'argument. remarquez qu'il n'y a pas de "+" à la fin !!
Image exemple :
viewbox
La même chose que "textbox" sauf quelle n'accepte pas le défilement vertical et affiche un nombre limité de caractère !
Donc pas la peine d'expliquer l'usage du code !!
agreebox
cette UI est comme une "textbox" mais avec une case à cocher utile pour afficher les conditions de l'utilisation, par ce que si la case n'est pas cochée, l'utilisateur ne pourra pas avancer !
Usage :
Code:
S'il vous plaît,
Connexion
ou
S'inscrire
to view codes content!
Explication du Code :
*(1) Va afficher le texte des condition du fichier "license.txt" qui se trouve dans le dossier /aroma/ vous devez écrire vos conditions dans ce fichier ,vous pouvez décorer le texte dans le fichier "license.txt" en utilisant les balises HTML (<b></b> pour Gras ,<u></u> pour souligner , <i></i> pour italic , <*></*> pour les liste .
*(2) le texte qui sera affiché à coté de la case d'agrément .
*(3) le texte qui sera affiché dans une boite de dialogue si l'utilisateur n'accepte pas les condition et veut continuer l'installation.
menubox
cette UI est la même que selectbox sauf qu'il n'y a pas de bouton "suivant" l'utilisateur sera dirigé vers la fenêtre suivante dès qu'il cliquera sur un élément du menu.
Usage code dans "aroma-config"
Code:
S'il vous plaît,
Connexion
ou
S'inscrire
to view codes content!
Explication du code :
*(1) chaque élément à trois arguments. Le premier, c'est le titre de l'élément. Le second, c'est la description. Et le troisième, c'est l'icone de l'élément qui doit être placée dans le chemin "/aroma/icons/"
2/ Dialog UI
cette UI affiche les fenêtres de dialogue et elle contient plusieurs types elle même:
alert
Cette UI affiche une popup avec un nombre limité de texte et seulement un bouton OK. Utile pour faire des avertissements à l'utilisateur!
Usage : code dans "aroma-config"
Code:
S'il vous plaît,
Connexion
ou
S'inscrire
to view codes content!
confirm
cette UI affiche une Boite de dialogue avec deux bouton "ok" et "annuler". Utile pour donner une deuxième chance aux utilisateurs pour qu'ils confirment leurs choix !
Usage : code dans "aroma-config"
Code:
S'il vous plaît,
Connexion
ou
S'inscrire
to view codes content!
textdialog
la même chose que "alert" mais avec un texte illimité et peut défiler verticalement ! Et un seul bouton "ok" utile pour afficher les nouveaux changements que propose votre ROM.
USAGE : code dans "aroma-config"
Code:
S'il vous plaît,
Connexion
ou
S'inscrire
to view codes content!
Explication :
*(1) le texte de la boite sera lu à partir du fichier "changelog.txt" qui doit être dans le chemin "/aroma/" de votre zip bien sur !
3/ Splash UI
Cette UI affichera une image. Peut être utile pour afficher le logo de votre ROM au lancement du zip par l'utilisateur
Usage : code dans "aroma-config" :
Code:
S'il vous plaît,
Connexion
ou
S'inscrire
to view codes content!
4/Installer UI
On appel cet UI que dans la fin de notre installeur, par ce que elle va exécuter le "updater-script" et l'afficher en même temps. Une fois lancée, l'utilisateur ne peut pas annuler, continuer ou revenir en arrière! Quand le "updater-script" sera fini, elle affichera automatiquement un bouton "terminé".
Usage : code dans "aroma-config":
Code:
S'il vous plaît,
Connexion
ou
S'inscrire
to view codes content!
II ) Les Fonctions principales de aroma:
theme
Pour définir le thème de l'interface
Exemple de l'utilisation :
Code:
S'il vous plaît,
Connexion
ou
S'inscrire
to view codes content!
setvar
cette fonction permet de définir une variable. Il y a un seul type de variable dans aroma, de type "string" par défaut, et on peut pas le changer u_u !!
Usage :
Code:
S'il vous plaît,
Connexion
ou
S'inscrire
to view codes content!
getvar
cette fonction permet de récupérer une variable déjà définie pour l'afficher à l'utilisateur !
Usage :
On veut récupérer la variable "var" que nous avont défini précédemment et l'afficher dans une alerte :
Code:
S'il vous plaît,
Connexion
ou
S'inscrire
to view codes content!
appendvar
pour ajouter un string à la valeur d'une variable
Usage :
Code:
S'il vous plaît,
Connexion
ou
S'inscrire
to view codes content!
prependvar
La même fonction que "appendvar", sauf que la nouvelle valeur sera ajoutée avant la première valeur et pas après.
Usage :
Code:
S'il vous plaît,
Connexion
ou
S'inscrire
to view codes content!
file_getprop
cette fonction vous permettra de récupérer une valeur d'un fichier .prop
Usage :
Code:
S'il vous plaît,
Connexion
ou
S'inscrire
to view codes content!
sysprop
presque la même fonction que "file_getprop", sauf qu'avec cette fonction on récupérera une valeur directement du "build.prop" du téléphone !
Usage :
Code:
S'il vous plaît,
Connexion
ou
S'inscrire
to view codes content!
writetmpfile
cette fonction permet d'écrire un ficher temporaire dans le chemin "/tmp/aroma-data/nom-du-fichier"
Usage
Code:
S'il vous plaît,
Connexion
ou
S'inscrire
to view codes content!
Explication :
argument 1 : le nom du fichier à sauvegarder (sera sauvegardé dans /tmp/aroma-data/fichier.txt )
argument 2 : le contenu du ficher text , "/n" = "entrer" nouvel ligne
run_program
cette fonction permet d’exécuter un programme .
Usage :
par exemple on veux faire une sauvegarde du dossier "/efs" du téléphone :
Code:
S'il vous plaît,
Connexion
ou
S'inscrire
to view codes content!
J'ai pas pu tout expliquer dans ce tuto u_u ... croyez moi c'est très difficile!
Mais en tout cas je serai la pour répondre à vos question et vos suggestions sont les bien venu !
PS : j'ai du mal à m’exprimer en français u_u ,donc si vous voyez des erreur "orthographique, grammatical, vocabulaire ou de conjugaison S.V.P reportez les pour que je les corrige.
Merci d'avoir pris le temps de lire se guide ,j’espère qu'il vous était utile
Pour Plus d'info sur aroma regardez dans le poste Original sur XDA
S'il vous plaît,
Connexion
ou
S'inscrire
pour voir le contenu ou les urls !