[Guide] Intégrer aroma installeur dans vos ROM/Thème/Mods

  • Auteur de la discussion lord-ralf-adolf
  • Date de début
lord-ralf-adolf

lord-ralf-adolf

Membres VIP
Inscrit
15 Janvier 2012
Messages
1 244
Points
36
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

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 !
 
Sandroid

Sandroid

Membres VIP
Inscrit
15 Septembre 2012
Messages
1 681
Points
36
Re: [Guide] Intégrais aroma installeur dans vos ROM/Thème/Mods

Merci du partage, très utile !! Je te demande sur skype et tu fait un tuto :lol: :mrgreen: :mrgreen:
 
lord-ralf-adolf

lord-ralf-adolf

Membres VIP
Inscrit
15 Janvier 2012
Messages
1 244
Points
36
Re: [Guide] Intégrais aroma installeur dans vos ROM/Thème/Mods

An0nygo5s a dit:
Merci du partage, très utile !! Je te demande sur skype et tu fait un tuto :lol: :mrgreen: :mrgreen:
c'est pour ne pas répéter le cous ;)
 
22labecane

22labecane

Membres VIP
Inscrit
20 Octobre 2012
Messages
7 563
Points
38
Re: [Guide] Intégrais aroma installeur dans vos ROM/Thème/Mods

je suis ému :|

Merci pour tout Lord' ;)

Je l'utiliserai début juillet :grin:
 
lord-ralf-adolf

lord-ralf-adolf

Membres VIP
Inscrit
15 Janvier 2012
Messages
1 244
Points
36
Re: [Guide] Intégrais aroma installeur dans vos ROM/Thème/Mods

beracan12 a dit:
je suis ému :|

Merci pour tout Lord' ;)

Je l'utiliserai début juillet :grin:
Mais de rien :)
juillet ?! o_O
 
22labecane

22labecane

Membres VIP
Inscrit
20 Octobre 2012
Messages
7 563
Points
38
Début des grandes vacances :grin:
 
Emilien

Emilien

Membres VIP
Inscrit
16 Septembre 2012
Messages
4 199
Points
0
Merci pour le tuto, à conseillé ;) !
Emilien
 
Breck

Breck

Membres VIP
Inscrit
11 Avril 2012
Messages
3 479
Points
0
Wahou respect ! :shock:

Maintenant la même chose pour update-binary et updater-script :mrgreen:
 
yoanf26

yoanf26

Admin suppléant
Inscrit
7 Octobre 2011
Messages
46 049
Points
63
Merci pour le partage.

Il est vrai qu'avec les explications des deux fichiers à créer peut rendre le tuto plus complet.
 
D

Deraiz12

Membre
Inscrit
25 Août 2013
Messages
139
Points
18
Bonjour,
j'ai crée des script qui permette un nettoyage complet des bloatware et autres pour toute les ROM 4.1.2 et .4.3 (stock, custom et portage s4 et note 3) je le partage actuellement sur lien non autorisé je souhaite élargir en faisant aussi profiter phoneandroid mais pas dans l’état je m'explique .
actuellement il ne s’agit que de zip a flasher qui font le travail ce script est très apprécier mes les retour sont qu'il supprime trop de chose en effet mon idée de base était de faire un script qui supprime tout ce qui est inutile ( tout des plus bas fichier type traçage mobile au plus simple Svoice Gmail etc...) est d'expliquer la manière de procéder pour en enlever ou en rajouter mes les gens mon dis que c'était trop compliquer de ce fait j'ai fait mon script en trois exemplaire allant de celui qui supprime tout a celui qui supprime un peut moins ! la il y a un utilisateur de mon script qui ma demander de le réaliser par AROMA je trouve que c'est une bonne idée je me suis donc orienter vers ce tuto (merci au réalisateur) la j'ai juste essayer de démarrer le script aroma en partant de ce qui est mis sur le tuto et il me mets une erreur de syntax juste ici :
"Liste des application" "" 2,
Le problème a priori ce trouve sur les "" en fais ce que je veut c'est le démarrer pour être sur que la base va et ensuite comprendre pour le modifier petit a petit pour arriver a mon résultat final expliquer ci dessus .

Ps: je suis un total novice avec AROMA


Merci d'avance
 
jhowlett468

jhowlett468

Membre
Inscrit
1 Novembre 2011
Messages
67
Points
6
'soir

Dommage que ce tuto ne déchaine pas les foules... Aroma est un outil TRES puissant qd il est correctement utilisé !! La technicité d'Aroma doit en effrayer beaucoup...
 
yoanf26

yoanf26

Admin suppléant
Inscrit
7 Octobre 2011
Messages
46 049
Points
63
Bonjour,

Aroma est compliqué à mettre en place. Il existe même des applications pour les créer, mais tout aussi difficile. Personnellement, je suis en train d'en monter un, mais je n'ai toujours pas testé car toujours pas fini.
 
jhowlett468

jhowlett468

Membre
Inscrit
1 Novembre 2011
Messages
67
Points
6
Re: Re : [Guide] Intégrer aroma installeur dans vos ROM/Thème/Mods

yoanf26 a dit:
Bonjour,

Aroma est compliqué à mettre en place. Il existe même des applications pour les créer, mais tout aussi difficile. Personnellement, je suis en train d'en monter un, mais je n'ai toujours pas testé car toujours pas fini.
Les apps permettant de créer des zips aroma sont foireuses... C'est plus fastidieux, mais autant le faire à la main.
 
22labecane

22labecane

Membres VIP
Inscrit
20 Octobre 2012
Messages
7 563
Points
38
et c'est beaucoup plus fun manuellement :)
 
yoanf26

yoanf26

Admin suppléant
Inscrit
7 Octobre 2011
Messages
46 049
Points
63
Re: Re : [Guide] Intégrer aroma installeur dans vos ROM/Thème/Mods

jhowlett468 a dit:
yoanf26 a dit:
Bonjour,

Aroma est compliqué à mettre en place. Il existe même des applications pour les créer, mais tout aussi difficile. Personnellement, je suis en train d'en monter un, mais je n'ai toujours pas testé car toujours pas fini.
Les apps permettant de créer des zips aroma sont foireuses... C'est plus fastidieux, mais autant le faire à la main.
Perso, pas de souci avec les apps, car même si pas fini, j'ai testé et cela fonctionne. Mais certes, j'effectue une révision avant de le tester.
 
jhowlett468

jhowlett468

Membre
Inscrit
1 Novembre 2011
Messages
67
Points
6
Re: Re : [Guide] Intégrer aroma installeur dans vos ROM/Thème/Mods

22labecane a dit:
et c'est beaucoup plus fun manuellement :)
Oui :mrgreen: ... Qd tout marche loool
 

Haut Bas