[Tuto] Introduction à Aroma installer

Toutes les ressources pour les développeurs et moddeurs.
#1

[Tuto] Introduction à Aroma installer

Messagepar jhowlett468 » 17 Juin 2014, 22:09

Bonsoir !!

Le but de ce topic est de comprendre le fonctionnement d'Aroma installer ( Amarullz Android ROM MAnifestation ), un programme lançable via recovery en flashant un zip, développé par un membre de XDA, @Amarullz.

Pré-requis pour comprendre ce topic :

Image

Photo du choix du recovery à installer sur un téléphone via un zip Aroma

Image originelle ( s4miniarchive.com ) ICI

Image

Cliquez sur l'image au-dessus pour aller sur le site d'Amarullz ;)

Mon but n'est pas de faire un tuto détaillé ( trop dense et trop pointu pour moi, comme je l'ai déjà dit, mes connaissances sont surtout empiriques ) mais de faire une présentation d'Aroma et de ses possibilités.

Pour aller plus loin avec Aroma, je vous conseille ces 2 topics :

Mais qu'est-ce qu'Aroma et à quoi çà sert ?

Amarullz a écrit:When you install Linux, Windows, Mac or applications on the PC
You can always customize your installation as you want.

WHY CAN'T WE DO THE SAME INSTALLING AN ANDROID ROM?

NOW AROMA Installer
GIVES YOU THIS POSSIBILITY!


En français :
"Quand vous installez Linux, WIndows, Mac OS ou des programmes sur votre ordinateur, vous pouvez personnaliser l'installation.
Pourquoi ne serait-il pas possible de faire de même en installant une ROM sous Android ?
Grâce à Aroma installer, celà est maintenant possible !!"

Les spécificités d'Aroma ? L'install est customisable ( pour chaque paramètre, on peut faire le choix que l'on veut, pour peu que le dev l'ait programmé ), l'interface est tactile ( pas besoin de bourriner les touches volume et power ;) ) et le zip est personnalisable ( pour peu que l'on ait compris son fonctionnement ). Quelques exemples de mods Aroma : les dernières versions de la ROM The Galaxy Project pour I9305 ( la ROM qui tourne sur mon tél ), la ROM Tomcat de @Kris92 ou les mods pour ROM Cyano de la GSTeam ( plus trop active malheureusement :( )

CE TOPIC EST ASSEZ LONG... ET DENSE. AVANT DE FAIRE UNE QUELCONQUE MANIP BASEE SUR CELUI-CI, MERCI DE LE LIRE EN ENTIER, AINSI QUE DANS LA MESURE DU POSSIBLE LES TOPICS CONNEXES.

NI MOI, NI AUCUN MEMBRE DU SITE NE POURRAIT ETRE TENU POUR RESPONSABLE DES DOMMAGES QUE VOUS POURRIEZ OCCASIONNER A VOTRE TELEPHONE EN CAS DE MAUVAISE MANIP' .


Exemple de screens sous Aroma ( crédit images XDA - topic d'origine des images ICI - ces images illustrent juste la partie "graphique", pour la partie prog, j'utiliserai un zip à moi) :

Image
Image

Screenshots et scripts extraits de mon mod Aroma pour ROM The Galaxy Project pour I9305 ( c'est moi qui l'ai fait :mrgreen: ).

Un zip Aroma se présente un peu comme un zip "normal" :

Image

Image

Cependant, en allant plus loin, on trouve quelques différences :

Image

Image

On trouve donc, contrairement à un zip "classique", dans le dossier \META-INF\com\google\android les éléments suivants :
  • un dossier aroma ( contenant diverses ressources comme des icônes comme celles qui s'affichent sur les screens au-dessus, des polices, un éventuel bootanim du zip, des images de démo des fichiers installables... )
  • un script "update-binary-installer" ( indispensable au fonctionnement de la partie tactile du mod... Et du mod tout court, notamment de l'extraction des fichiers vers leurs cibles )
  • un script "aroma-config" ( qui gère l'interface graphique et tactile du mod )

Explications d'origine ( en anglais ) ICI sur le site d'Amarullz.

Les scripts aroma-config et updater-script travaillent de concert via un système de fichiers temporaires pour faire fonctionner le mod, en effet, ils ne fonctionnent pas dans les mêmes processus, cf ces schémas :

Image

Image

Le script aroma-config écrit des fichiers dans un dossier temporaire puis l'updater-script lit ces fichiers et les compare aux règles qui sont écrites dans celui-ci.

Si l'un des deux est mal programmé ou que des ressources manquent dans le zip ( dans le dossier aroma ou dans le reste du zip ), le zip risque de bloquer avec un message d'erreur à un certain moment ou l'install ne se fera simplement pas.

Bien, maintenant, décortiquons ces deux fameux scripts afin de comprendre leur fonctionnement. Dans ce post, je me contenterai de mettre des "bouts" de script, les scripts entiers se trouvant dans le 2ème post ( si celà intéresse certains de les récupérer à des fins d'analyse ). J'utilise pour mon exemple mon mod pour ROM TGP dispo ICI

  1. Code : Tout sélectionner
    ### LICENSE:
    #
    # Copyright (C) 2011 Ahmad Amarullah ( http://amarullz.com/ )
    #
    # Licensed under the Apache License, Version 2.0 (the "License");
    # you may not use this file except in compliance with the License.
    # You may obtain a copy of the License at
    #
    #      http://www.apache.org/licenses/LICENSE-2.0
    #
    # Unless required by applicable law or agreed to in writing, software
    # distributed under the License is distributed on an "AS IS" BASIS,
    # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    # See the License for the specific language governing permissions and
    # limitations under the License.
    #
    ### FILE INFO:
    #
    # AROMA Installer 2.51 - AROMA Installer Test Script Configuration
    #       (c) 2011-2012 by Ahmad Amarullah
    #           amarullz - xda-developers
    #           http://www.amarullz.com/
    #
    #       Binary Version  : 2.56
    #       Binary Codename : Edelweis
    #
    ### INFO:
    #
    # * AROMA Resource Dir  = META-INF/com/google/android/aroma
    #
    # * AROMA Temporary Dir = /tmp/aroma/
    #
    # * About Icon          = @alert - show <AROMA Resource Dir>/icons/alert.png
    #                         or if theme used it will find <themedir>/icon.alert.png
    #                         you can still access it via "icons/alert"
    #
    # * dp                  = Device Pixelate. WVGA/QHD = 3, HVGA = 2.
    #                         dp calculated with = round(min(width,height) / 160)
    #
    ###

    ##
    # Fix Colorspace Issue
    #
    # For device which have a problem with color ( not display the correct color )
    # try to set "force_colorspace" with ini_set. It may caused by wrong framebuffer
    # information that passed by kernel into framebuffer device.
    #
    # You can use one of following values:
    #   "rgba", "abgr", "argb", "bgra"
    #
    # NOTE: It must be in top most script, or you will got the color flicker
    #
    # ini_set("force_colorspace","rgba");
    #

    ##
    # Forcing Device Pixelate Size
    #  defaut: floor( min( width, height ) / 160 )
    #
    # Usefull for tablet device, if interface was too big, you can
    # force dp size for smaller UI size.
    #
    #-------- Uncomment one of this to use custom dp size:
    #
    # ini_set("dp","1"); #-- LDPI ( 240x320 / QVGA )
    # ini_set("dp","2"); #-- MDPI ( 340x480 / HVGA )
    # ini_set("dp","3"); #-- HDPI ( 480x800 / WVGA )
    # ini_set("dp","4");
    # ini_set("dp","5");
    #

    #### NOTE >> THIS VERSION DOESN'T NEED ANY CALIBRATION DATA :)

    ##[ DEPRECATED - WONT DO ANYTHING FOR THIS VERSION ]
    # Calibrate Touchscreen - MATRIX METHOD
    #
    # For other device, run the installer, then press "menu"
    # and select Calibrating Tools. Follow Instructions, and make
    # sure the touch screen has been valid in the testing step.
    #
    # In the end, there will be alert dialog with calibration data
    # ( green ), replace this calibrate_matrix() function with that data.
    #
    #-------- Change the value with your device calibration data:
    #
    # Current calibration was for HTC Sensation/XE/4G Devices:
    #
    #calibrate_matrix(
    #  "63052.50",  "840.00",     "-903390.00", "-1680.00",
    #  "125895.00", "-371670.00", "120021.25",  "0"
    #);

    ##[ DEPRECATED ]
    # Calibrate Touchscreen
    #  defaut: HTC Desire Touch Screen Calibrate Data [7.90,20,7.90,20]
    #
    # In the end, there will be alert dialog with calibration data
    # ( green ), replace this calibrate() function with that data.
    #
    #-------- Uncomment This to insert calibrating data:
    # calibrate("7.90","20","7.90","20");
    #


    ##
    # Custom Key Code - Usefull For Some Device which not used
    #                   Standard key code for up/down/select/back/menu
    #
    # You can capture the keycode in
    # recovery using "aroma-keycapture-flashable.zip" Available in
    # AROMA Installer Thread.
    #
    # Press some key when it run, it will return key code,
    # that key can override up/down/select/back/menu actions in
    # AROMA Installer, you can even set your home key for up, or
    # volume down for select item
    #
    #-------- Uncomment & Modify this Code:
    #
    # ini_set("customkeycode_up",     "115");
    # ini_set("customkeycode_down",   "114");
    # ini_set("customkeycode_select", "116");
    # ini_set("customkeycode_menu",   "229");
    # ini_set("customkeycode_back",   "158");
    #


    aroma-config : la-bla légal, changelog partiel et quelques lignes de config.

    Code : Tout sélectionner
    run_program("/sbin/mount", "/cache");
    ui_print("");
    ui_print("********************************");
    ui_print("Merci a tous les membres de la GSTeam et de XDA qui ont rendu ce mod possible");
    ui_print("********************************");
    ui_print("");
    ui_print("");
    ui_print("");
    ui_print("");
    set_progress(0.1);
    unmount("/system");

    mount("ext4", "EMMC", "/dev/block/mmcblk0p12", "/cache");
    mount("ext4", "EMMC", "/dev/block/mmcblk0p13", "/system");
    mount("ext4", "EMMC", "/dev/block/mmcblk0p16", "/data");
    set_progress(0.3);


    updater-script : démarrage du mod et montage des partitions - rien de particulier par rapport à un mod classique
  2. Code : Tout sélectionner
    # Initializing Rom Information
    #
    ini_set("rom_name",             "Mod Aroma Jhowlett I9305");
    ini_set("rom_version",          "Mod V8 for TGP V11.30");
    ini_set("rom_author",           "Jhowlett");
    ini_set("rom_device",           "Galaxy S3 4G I9305");
    ini_set("rom_date",             "15-12-13");


    aroma-config : affichage des infos du mod ( ou de la ROM ) dans l'interface graphique
  3. Code : Tout sélectionner
    ##
    anisplash(
        1,
       "splash/cwm05", 500,
       "splash/cwm", 750,
       "splash/cwm04", 500,
       "splash/cwm", 750,
       "splash/cwm03", 500,
       "splash/cwm", 750,
       "splash/cwm02", 500,
       "splash/cwm", 750,
       "splash/cwm01", 500,
       "splash/cwm", 750,
       "splash/cwm00", 500,
       "splash/cwm", 750,
       "splash/cwmml", 500,
       "splash/cwm", 750,
       "splash/cwmml", 500,
       "splash/cwm", 750,
       "splash/cwmml", 500,
       "splash/cwm", 750,
       "splash/cwmml", 500,
       "splash/cwm", 750
    );

    theme("ics");

    loadlang("langs/fr.lang");
    fontresload( "0", "ttf/Roboto-Regular.ttf", "12" );
    fontresload( "1", "ttf/Roboto-Regular.ttf", "18" );

    ini_set("text_next", "Suivant >");
    ini_set("text_back", "< Retour");


    aroma-config : lancement d'un splashscreen au démarrage du mod ( utilise les png présents dans le dossier \META-INF\com\google\android\aroma\splash reconnu dans le code par le seul code "splash" ), chargment du thème ( présent dans le dossier \META-INF\com\google\android\aroma\themes reconnu dans le code par le seul code "theme" ), chargement du fichier langue ( présent dans le dossier \META-INF\com\google\android\aroma\langs reconnu dans le code par le seul code "langs" ), de la police ( présent dans le dossier \META-INF\com\google\android\aroma\fonts ) et attribution des textes aux touches retour et suivant de l'interface graphique.
  4. Code : Tout sélectionner
    viewbox(
        "Bienvenue",
        "Vous allez installer le <b>"+
         ini_get("rom_name")+
       "</b> pour <b>"+ini_get("rom_device")+"</b>.\n\n"+
       "Informations sur le Mod:\n\n"+
          "  VERSION\t: <b><#selectbg_g>"+ini_get("rom_version")+"</#></b>\n"+
          "  UPDATED\t: <b><#selectbg_g>"+ini_get("rom_date")+"</#></b>\n\n\n"+
        "",
        "@welcome"
    );


    aroma-config : notes de version
  5. Code : Tout sélectionner
    textbox(
      "Changelog",
      "<b>"+ini_get("rom_name")+"</b> changelog:",
      "@info",
      readfile_aroma("changelog.txt")
    );


    aroma-config : affichage du changelog ( fichier txt présent à la racine du dossier \META-INF\com\google\android\aroma )
  6. ( et là çà se complique :mrgreen: )
    Code : Tout sélectionner
       selectbox(
             "Bootanimation",
             "Selectionnez la bootanimation",
             "@personalize",
             "anim.prop",

             "Aucun Changement","...",1,
             "Stock CM10","...",0,
             "GSTeam","...",0,
            "Mbokeh","...",0,
            "Rock Numbers","...",0,
            "Speedo","...",0,
            "Tauri","...",0
          );
     
     if prop("anim.prop","selected.0")=="2" then
       splash(4000, "stockcm10");
        if
         confirm(
              "Bootanimation",
              "Voulez vous garder cette Bootanimation ?",
              "@info"
          )=="no"
        then
          back("1");
        endif;
     endif;
     
      if prop("anim.prop","selected.0")=="3" then
       splash(4000, "gsteam");
        if
         confirm(
              "Bootanimation",
              "Voulez vous garder cette Bootanimation ?",
              "@info"
          )=="no"
        then
          back("1");
        endif;
     endif;

      if prop("anim.prop","selected.0")=="4" then
       splash(4000, "mbokeh");
        if
         confirm(
              "Bootanimation",
              "Voulez vous garder cette Bootanimation ?",
              "@info"
          )=="no"
        then
          back("1");
        endif;
     endif;

     if prop("anim.prop","selected.0")=="5" then
       splash(4000, "rocknumbers");
        if
         confirm(
              "Bootanimation",
              "Voulez vous garder cette Bootanimation ?",
              "@info"
          )=="no"
        then
          back("1");
        endif;
     endif;

     if prop("anim.prop","selected.0")=="6" then
       splash(4000, "speedo");
        if
         confirm(
              "Bootanimation",
              "Voulez vous garder cette Bootanimation ?",
              "@info"
          )=="no"
        then
          back("1");
        endif;
     endif;

     if prop("anim.prop","selected.0")=="7" then
       splash(4000, "tauri");
        if
         confirm(
              "Bootanimation",
              "Voulez vous garder cette Bootanimation ?",
              "@info"
          )=="no"
        then
          back("1");
        endif;
     endif;


    aroma-config : affichage d'une boîte de dialogue demandant de sélectionner la bootanim à installer ( bloc jusqu'au ";" ), les blocs à la suite donne le comportement en fonction du choix effectué : si on fait le 7ème choix ( l'anim "tauri" ), on a un splash de présentation du bootanim ( png à la base du dossier aroma ) et on a la phrase "Voulez vous garder cette Bootanimation ?" avec les choix "oui" ou "non". La ligne "anim.prop", sert à attacher ce menu au code correspondant dans l'updater-script ( et vice-versa ? ). Par défaut je choisis comme nom pour "x.prop" un nom proche du paramètre concerné ( anim.prop par exemple pour les bootanims )

    /!\ /!\ /!\

    Code : Tout sélectionner
     selectbox(
             "Bootanimation",
             "Selectionnez la bootanimation",
             "@personalize",
             "anim.prop",

             "Aucun Changement","...",1,
             "Stock CM10","...",0,
             "GSTeam","...",0,
            "Mbokeh","...",0,
            "Rock Numbers","...",0,
            "Speedo","...",0,
            "Tauri","...",0


    'tite précision sur les "selectbox" ( les boîtes QCM où on fait ses choix comme celle en photo au tout début du topic ) : chaque ligne de choix ( style < "Aucun Changement","...",1, > ) se finit par une virgule SAUF la dernière où ne met rien après le zéro, ni virgule ni espace. La moindre erreur de syntaxe sur cette dernière ligne et votre mod bloquera.


    Code : Tout sélectionner
    # Bootanimation
       if
        file_getprop("/tmp/aroma/anim.prop","selected.0") == "2"
       then
       ui_print("@  Installation Bootanimation CM10");
       package_extract_dir("update_files/bootanims/CM10", "/system/media");
       endif;
       if
        file_getprop("/tmp/aroma/anim.prop","selected.0") == "3"
       then
       ui_print("@  Installation Bootanimation GSTeam");
       package_extract_dir("update_files/bootanims/GSTeam", "/system/media");
       endif;
       if
        file_getprop("/tmp/aroma/anim.prop","selected.0") == "4"
       then
       ui_print("@  Installation Bootanimation Mbokeh");
       package_extract_dir("update_files/bootanims/Mbokeh", "/system/media");
       endif;
       if
        file_getprop("/tmp/aroma/anim.prop","selected.0") == "5"
       then
       ui_print("@  Installation Bootanimation RockNumbers");
       package_extract_dir("update_files/bootanims/RockNumbers", "/system/media");
       endif;
       if
        file_getprop("/tmp/aroma/anim.prop","selected.0") == "6"
       then
       ui_print("@  Installation Bootanimation Speedo");
       package_extract_dir("update_files/bootanims/Speedo", "/system/media");
       endif;
       if
        file_getprop("/tmp/aroma/anim.prop","selected.0") == "7"
       then
       ui_print("@  Installation Bootanimation Tauri");
       package_extract_dir("update_files/bootanims/Tauri", "/system/media");
       endif;


    updater-script : chaque possibilité de choix ( confirmée par oui ) dans l'interface graphique va déclencher l'action correspondante dans l'updater script. Si la bootanim tauri est sélectionnée, alors anim.prop=7 donc celà va déclencher l'extraction des fichiers contenus dans le dossier update_files/bootanims/Tauri vers /system/media ( cf diagramme explicatif d'Aroma au-dessus ou ICI et ICI).

Les mêmes schémas se répètent pour tous les paramètres sujets à des choix. La config "particulière" d'Aroma n'empêche pas l'exécution de commandes plus simples à l'intérieur de l'updater-script du style :

Code : Tout sélectionner
package_extract_dir("/system", "/system");


Vu la config "multi-choix" du mod, impossible de respecter l'arborescence exacte de l'appareil-cible. Mon mod est rangé comme çà pour les bootanims par exemple :

Image

Image

Image

On ne conservera des arborescences identiques que pour des fichiers ne dépendant pas de choix. Cependant, pour des fichiers en batch, on peut respecter cette arborescence en jouant sur un rangement en sous-dossiers.

Petite précision sur la structure de mon zip :

Image

Image

Ces deux dossiers sont des dossiers permettant une install via vrtheme ( le 1er contient les scripts et pour des raisons techniques, j'ai créé un autre dossier, le 2ème, avec les ressources ).
Correctement programmé, Aroma est donc parfaitement compatible avec vrtheme, ce qui permet de flasher des fichiers directement DANS un apk, ce qui permet d'alléger le mod et d'éviter d'extraire et de modder des apk.

3 points sur lesquels je n'ai peut-être pas assez insisté ( merci à @Kris92fr ;) ) :
  • Aroma peut être utilisé pour customiser totalement l'install d'une ROM ( kernel, modem, thème, fichier build.prop... ). En ses temps où la personnalisation atteint des sommets, pourquoi ne pas avoir sa ROM "à soi" ?
  • malgré des variations par rapport à un update.zip "classique", un zip Aroma reste un zip flashable "lambda". Les ressources d'un zip Aroma sont donc aisément manipulables : les fichiers peuvent être ajoutés au zip ou extraits via n'importe quel logiciel de compression / décompression et les scripts sont éditables via par exemple Notepad++.
  • autre point TRES important, car source d'erreur ( merci encore à @Kris92fr, cf ce post, que je vais citer après quelques modifs à la suite ).

Voici donc une grosse source d'erreur à l'écriture ou la modification des scripts :

kris92fr a écrit:Au niveau des box (Select ou Check), il faut prendre en compte que le codage se fait sur 2 fichiers updater-script et aroma-config.


Comme je l'ai déjà dit, effectivement, bien qu'opérant dans des processus différents, ces 2 scripts interagissent entre eux.

kris92fr a écrit:Image

On voit sur l'image ci-dessus dans la partie aroma-config les deux lignes suivantes :

"Clavier Silver","Installer Clavier Silver",1, #-- selected.1 = 1
"Clavier Stock","Installer Clavier Stock",0 #-- selected.1 = 2

titre qui sera affiché dans la fenêtre Aroma
sous titre qui sera affiché dans la fenêtre Aroma
1 signifie que c'est coché 0 la case n'est pas coché par défaut
selected.1 = 1 est la référence qui sera renvoyé si la case est cochée

Dans l'image ci dessus on voit que le clavier Silver à la référence 1 et le clavier Stock la 2. Il faut que ceci soit identique dans le fichier updater-script.

En cas d'inversion dans les références, si la case du clavier Silver est cochée dans ce cas ce serait le clavier stock qui serait installé.

En revanche si les 2 ligne ont la même référence - 1 par exemple alors quelque soit le choix fait dans l'Aroma seul le clavier silver sera installé.
Scripts cités en exemple provenant de la ROM Tomcat de @Kris92 ( merci à lui pour ces précisions )


En conclusion zip Aroma n'est donc pas une version "mystique" ( de part sa structure légèrement différente ) et fermée ( il reste autant modifiable ) d'un update.zip classique : c'est juste une variante certes plus complexe mais tellement plus souple et pratique.

Les images sont pour la plupart des liens cliquables ouvrant le lien vers le site associé OU l'image source.
Crédits image : s4miniarchive.com, Amarullz.com, XDA et captures d'écran PC faites par moi-même.
Dernière édition par jhowlett468 le 24 Juin 2014, 10:33, édité 9 fois.
Image
Image
|| Galaxy S5 SM-G900FImage|| Gear Fit ( SM-R350 )
ROM xXx No Limits 6.1 base CQAVImageROM BOA2
Modem CQAW / CSC XEFImage
Kernel stock / recovery TWRP 3.0.2.2
Knox 0x1, garantie finie
Charte du forum
Liens importantsNouveau ?Drivers Samsung 1.5.51 -> Install
Vérifiez votre modèleEn ULTIME recours ? ---> ICI
Rédac' chef du Blog
Téléphone qui bootloope ?
Image
Avatar de l’utilisateur
jhowlett468
Modérateur
Modérateur
 
Message(s) : 9259
Inscription : 16 Août 2011, 20:28
Localisation : Xavier's Intitute for Gifted Youngers, 1407 Graymalkin Lane, Westchester County, NY /// La DZ

#2

Re: [Tuto] Introduction à Aroma installer

Messagepar jhowlett468 » 17 Juin 2014, 22:09

Scripts extraits de mon mod Aroma pour ROM The Galaxy Project pour I9305 ( c'est moi qui l'ai fait :mrgreen: ).
Je les partage pour ceux que çà intéresseraient d'avoir le code complet à des fins d'analyse ;)

Codes source des scripts décortiqués dans le post précédent :

  • updater-script

    Code : Tout sélectionner
    run_program("/sbin/mount", "/cache");
    ui_print("");
    ui_print("********************************");
    ui_print("Merci a tous les membres de la GSTeam et de XDA qui ont rendu ce mod possible");
    ui_print("********************************");
    ui_print("");
    ui_print("");
    ui_print("");
    ui_print("");
    set_progress(0.1);
    unmount("/system");

    mount("ext4", "EMMC", "/dev/block/mmcblk0p12", "/cache");
    mount("ext4", "EMMC", "/dev/block/mmcblk0p13", "/system");
    mount("ext4", "EMMC", "/dev/block/mmcblk0p16", "/data");
    set_progress(0.3);

    # Bootanimation
       if
        file_getprop("/tmp/aroma/anim.prop","selected.0") == "2"
       then
       ui_print("@  Installation Bootanimation CM10");
       package_extract_dir("update_files/bootanims/CM10", "/system/media");
       endif;
       if
        file_getprop("/tmp/aroma/anim.prop","selected.0") == "3"
       then
       ui_print("@  Installation Bootanimation GSTeam");
       package_extract_dir("update_files/bootanims/GSTeam", "/system/media");
       endif;
       if
        file_getprop("/tmp/aroma/anim.prop","selected.0") == "4"
       then
       ui_print("@  Installation Bootanimation Mbokeh");
       package_extract_dir("update_files/bootanims/Mbokeh", "/system/media");
       endif;
       if
        file_getprop("/tmp/aroma/anim.prop","selected.0") == "5"
       then
       ui_print("@  Installation Bootanimation RockNumbers");
       package_extract_dir("update_files/bootanims/RockNumbers", "/system/media");
       endif;
       if
        file_getprop("/tmp/aroma/anim.prop","selected.0") == "6"
       then
       ui_print("@  Installation Bootanimation Speedo");
       package_extract_dir("update_files/bootanims/Speedo", "/system/media");
       endif;
       if
        file_getprop("/tmp/aroma/anim.prop","selected.0") == "7"
       then
       ui_print("@  Installation Bootanimation Tauri");
       package_extract_dir("update_files/bootanims/Tauri", "/system/media");
       endif;

    # Dossier bootanimations
       if
        file_getprop("/tmp/aroma/folderanim.prop","selected.0") == "2"
       then
       ui_print("@  Creation dossier bootanimations");
       run_program("mkdir", "/system/media/bootanims");
       package_extract_dir("update_files/bootanims", "/system/media/bootanims");
       endif;
       if
        file_getprop("/tmp/aroma/folderanim.prop","selected.0") == "3"
       then
       ui_print("@  Extraction bootanimations");
       delete_recursive("/system/media/bootanims");
       package_extract_dir("update_files/bootanims", "/system/media/bootanims");
       endif;
       if
        file_getprop("/tmp/aroma/folderanim.prop","selected.0") == "4"
       then
       ui_print("@  Vidage dossier bootanimations");
       delete_recursive("/system/media/bootanims");
       endif;

    # ModemRIL
       if
        file_getprop("/tmp/aroma/modem.prop","selected.0") == "2"
       then
       ui_print("@  Installation modemRIL SFR AEBMB1");
       package_extract_dir("update_files/modems/scripts", "/tmp");
       show_progress(0.200000, 0);
       set_perm(0, 0, 0777, "/tmp/busybox");
       show_progress(0.400000, 0);
       mount("ext4", "EMMC", "/dev/block/mmcblk0p13", "/system");
       assert(package_extract_file("update_files/modems/i9305aebmb1_SFR/modem.bin", "/tmp/modem.bin"),
           write_raw_image("/tmp/modem.bin", "/dev/block/mmcblk0p10"),
           delete("/tmp/modem.bin"));
       package_extract_dir("updates_files/modems/i9305aebmb1_SFR/system", "/system");
       endif;
       if
        file_getprop("/tmp/aroma/modem.prop","selected.0") == "3"
       then
       ui_print("@  Installation modemRIL SFR AEBMH1");
       package_extract_dir("update_files/modems/scripts", "/tmp");
       show_progress(0.200000, 0);
       set_perm(0, 0, 0777, "/tmp/busybox");
       show_progress(0.400000, 0);
       mount("ext4", "EMMC", "/dev/block/mmcblk0p13", "/system");
       assert(package_extract_file("update_files/modems/i9305aebmh1_SFR/modem.bin", "/tmp/modem.bin"),
           write_raw_image("/tmp/modem.bin", "/dev/block/mmcblk0p10"),
           delete("/tmp/modem.bin"));
       package_extract_dir("updates_files/modems/i9305aebmh1_SFR/system", "/system");
       endif;
       if
        file_getprop("/tmp/aroma/modem.prop","selected.0") == "4"
       then
       ui_print("@  Installation modemRIL Orange BVBLL3");
       package_extract_dir("update_files/modems/scripts", "/tmp");
       show_progress(0.200000, 0);
       set_perm(0, 0, 0777, "/tmp/busybox");
       show_progress(0.400000, 0);
       mount("ext4", "EMMC", "/dev/block/mmcblk0p13", "/system");
       assert(package_extract_file("update_files/modems/i9305bvbll3_Orange/modem.bin", "/tmp/modem.bin"),
           write_raw_image("/tmp/modem.bin", "/dev/block/mmcblk0p10"),
           delete("/tmp/modem.bin"));
       package_extract_dir("updates_files/modems/i9305bvbll3_Orange/system", "/system");
       endif;
       if
        file_getprop("/tmp/aroma/modem.prop","selected.0") == "5"
       then
       ui_print("@  Installation modemRIL Bouygues ou stock XXBMA2");
       package_extract_dir("update_files/modems/scripts", "/tmp");
       show_progress(0.200000, 0);
       set_perm(0, 0, 0777, "/tmp/busybox");
       show_progress(0.400000, 0);
       mount("ext4", "EMMC", "/dev/block/mmcblk0p13", "/system");
       assert(package_extract_file("update_files/modems/i9305xxbma2/modem.bin", "/tmp/modem.bin"),
           write_raw_image("/tmp/modem.bin", "/dev/block/mmcblk0p10"),
           delete("/tmp/modem.bin"));
       package_extract_dir("updates_files/modems/i9305xxbma2/system", "/system");
       endif;

    # Theme
       if
        file_getprop("/tmp/aroma/theme.prop","selected.0") == "2"
       then
       ui_print("@  Installation theme stock");
       package_extract_dir("vrtheme", "/data/media/vrtheme");
       package_extract_dir("vrtheme_resources/stock", "/data/media/vrtheme");
       set_perm_recursive(0, 0, 0777, 0777, "/data/media/vrtheme");
       set_perm_recursive(0, 0, 0777, 0777, "/tmp/vrtheme");
       run_program("/data/media/vrtheme/installtheme.sh");
       run_program("/data/media/vrtheme/cleanup.sh");
       set_perm_recursive(0, 0, 0755, 0644, "/system/app");
       set_perm_recursive(0, 0, 0755, 0644, "/system/framework");
       delete_recursive("/tmp/vrtheme");
       endif;
       if
        file_getprop("/tmp/aroma/theme.prop","selected.0") == "3"
       then
       ui_print("@  Installation theme Jhowlett");
       package_extract_dir("vrtheme", "/data/media/vrtheme");
       package_extract_dir("vrtheme_resources/jhowlett", "/data/media/vrtheme");
       package_extract_dir("tmp", "/tmp");
       set_perm_recursive(0, 0, 0777, 0777, "/data/media/vrtheme");
       set_perm_recursive(0, 0, 0777, 0777, "/tmp/vrtheme");
       run_program("/tmp/vrtheme/fw_check.sh");
       run_program("/data/media/vrtheme/installtheme.sh");
       run_program("/data/media/vrtheme/cleanup.sh");
       set_perm_recursive(0, 0, 0755, 0644, "/system/app");
       set_perm_recursive(0, 0, 0755, 0644, "/system/framework");
       delete_recursive("/tmp/vrtheme");
       endif;

    # Wipe Dalvik cache
       if
        file_getprop("/tmp/aroma/dalvik.prop","selected.0") == "2"
       then
       ui_print("@  Wipe Dalvik cache");
       delete_recursive("/data/dalvik-cache");
       endif;

    # Wipe cache partition
       if
        file_getprop("/tmp/aroma/cache.prop","selected.0") == "2"
       then
       ui_print("@  Wipe cache partition");
       delete_recursive("/cache");
       endif;

    unmount("/data");
    unmount("/system");
    unmount("/cache");
    set_progress(1.0);
    ui_print(" ");
    ui_print("Merci d utiliser mon mod, veuillez rebooter");

  • aroma-config

    Code : Tout sélectionner
    ### LICENSE:
    #
    # Copyright (C) 2011 Ahmad Amarullah ( http://amarullz.com/ )
    #
    # Licensed under the Apache License, Version 2.0 (the "License");
    # you may not use this file except in compliance with the License.
    # You may obtain a copy of the License at
    #
    #      http://www.apache.org/licenses/LICENSE-2.0
    #
    # Unless required by applicable law or agreed to in writing, software
    # distributed under the License is distributed on an "AS IS" BASIS,
    # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    # See the License for the specific language governing permissions and
    # limitations under the License.
    #
    ### FILE INFO:
    #
    # AROMA Installer 2.51 - AROMA Installer Test Script Configuration
    #       (c) 2011-2012 by Ahmad Amarullah
    #           amarullz - xda-developers
    #           http://www.amarullz.com/
    #
    #       Binary Version  : 2.56
    #       Binary Codename : Edelweis
    #
    ### INFO:
    #
    # * AROMA Resource Dir  = META-INF/com/google/android/aroma
    #
    # * AROMA Temporary Dir = /tmp/aroma/
    #
    # * About Icon          = @alert - show <AROMA Resource Dir>/icons/alert.png
    #                         or if theme used it will find <themedir>/icon.alert.png
    #                         you can still access it via "icons/alert"
    #
    # * dp                  = Device Pixelate. WVGA/QHD = 3, HVGA = 2.
    #                         dp calculated with = round(min(width,height) / 160)
    #
    ###

    ##
    # Fix Colorspace Issue
    #
    # For device which have a problem with color ( not display the correct color )
    # try to set "force_colorspace" with ini_set. It may caused by wrong framebuffer
    # information that passed by kernel into framebuffer device.
    #
    # You can use one of following values:
    #   "rgba", "abgr", "argb", "bgra"
    #
    # NOTE: It must be in top most script, or you will got the color flicker
    #
    # ini_set("force_colorspace","rgba");
    #

    ##
    # Forcing Device Pixelate Size
    #  defaut: floor( min( width, height ) / 160 )
    #
    # Usefull for tablet device, if interface was too big, you can
    # force dp size for smaller UI size.
    #
    #-------- Uncomment one of this to use custom dp size:
    #
    # ini_set("dp","1"); #-- LDPI ( 240x320 / QVGA )
    # ini_set("dp","2"); #-- MDPI ( 340x480 / HVGA )
    # ini_set("dp","3"); #-- HDPI ( 480x800 / WVGA )
    # ini_set("dp","4");
    # ini_set("dp","5");
    #

    #### NOTE >> THIS VERSION DOESN'T NEED ANY CALIBRATION DATA :)

    ##[ DEPRECATED - WONT DO ANYTHING FOR THIS VERSION ]
    # Calibrate Touchscreen - MATRIX METHOD
    #
    # For other device, run the installer, then press "menu"
    # and select Calibrating Tools. Follow Instructions, and make
    # sure the touch screen has been valid in the testing step.
    #
    # In the end, there will be alert dialog with calibration data
    # ( green ), replace this calibrate_matrix() function with that data.
    #
    #-------- Change the value with your device calibration data:
    #
    # Current calibration was for HTC Sensation/XE/4G Devices:
    #
    #calibrate_matrix(
    #  "63052.50",  "840.00",     "-903390.00", "-1680.00",
    #  "125895.00", "-371670.00", "120021.25",  "0"
    #);

    ##[ DEPRECATED ]
    # Calibrate Touchscreen
    #  defaut: HTC Desire Touch Screen Calibrate Data [7.90,20,7.90,20]
    #
    # In the end, there will be alert dialog with calibration data
    # ( green ), replace this calibrate() function with that data.
    #
    #-------- Uncomment This to insert calibrating data:
    # calibrate("7.90","20","7.90","20");
    #


    ##
    # Custom Key Code - Usefull For Some Device which not used
    #                   Standard key code for up/down/select/back/menu
    #
    # You can capture the keycode in
    # recovery using "aroma-keycapture-flashable.zip" Available in
    # AROMA Installer Thread.
    #
    # Press some key when it run, it will return key code,
    # that key can override up/down/select/back/menu actions in
    # AROMA Installer, you can even set your home key for up, or
    # volume down for select item
    #
    #-------- Uncomment & Modify this Code:
    #
    # ini_set("customkeycode_up",     "115");
    # ini_set("customkeycode_down",   "114");
    # ini_set("customkeycode_select", "116");
    # ini_set("customkeycode_menu",   "229");
    # ini_set("customkeycode_back",   "158");
    #

    ##
    # Initializing Rom Information
    #
    ini_set("rom_name",             "Mod Aroma Jhowlett I9305");
    ini_set("rom_version",          "Mod V8 for TGP V11.30");
    ini_set("rom_author",           "Jhowlett");
    ini_set("rom_device",           "Galaxy S3 4G I9305");
    ini_set("rom_date",             "15-12-13");


    ##
    anisplash(
        1,
       "splash/cwm05", 500,
       "splash/cwm", 750,
       "splash/cwm04", 500,
       "splash/cwm", 750,
       "splash/cwm03", 500,
       "splash/cwm", 750,
       "splash/cwm02", 500,
       "splash/cwm", 750,
       "splash/cwm01", 500,
       "splash/cwm", 750,
       "splash/cwm00", 500,
       "splash/cwm", 750,
       "splash/cwmml", 500,
       "splash/cwm", 750,
       "splash/cwmml", 500,
       "splash/cwm", 750,
       "splash/cwmml", 500,
       "splash/cwm", 750,
       "splash/cwmml", 500,
       "splash/cwm", 750
    );

    theme("ics");

    loadlang("langs/fr.lang");
    fontresload( "0", "ttf/Roboto-Regular.ttf", "12" );
    fontresload( "1", "ttf/Roboto-Regular.ttf", "18" );

    ini_set("text_next", "Suivant >");
    ini_set("text_back", "< Retour");

    viewbox(
        "Bienvenue",
        "Vous allez installer le <b>"+
         ini_get("rom_name")+
       "</b> pour <b>"+ini_get("rom_device")+"</b>.\n\n"+
       "Informations sur le Mod:\n\n"+
          "  VERSION\t: <b><#selectbg_g>"+ini_get("rom_version")+"</#></b>\n"+
          "  UPDATED\t: <b><#selectbg_g>"+ini_get("rom_date")+"</#></b>\n\n\n"+
        "",
        "@welcome"
    );

    textbox(
      "Changelog",
      "<b>"+ini_get("rom_name")+"</b> changelog:",
      "@info",
      readfile_aroma("changelog.txt")
    );

    ###################################################################################################################
    #                                                                                                                 #
    #                                            Mod Aroma Jhowlett I9305                                             #
    #                                                                                                                 #
    #                                            The Galaxy Project V11.20                                            #
    #                                                                                                                 #
    ###################################################################################################################


       selectbox(
             "Bootanimation",
             "Selectionnez la bootanimation",
             "@personalize",
             "anim.prop",

             "Aucun Changement","...",1,
             "Stock CM10","...",0,
             "GSTeam","...",0,
            "Mbokeh","...",0,
            "Rock Numbers","...",0,
            "Speedo","...",0,
            "Tauri","...",0
          );
     
     if prop("anim.prop","selected.0")=="2" then
       splash(4000, "stockcm10");
        if
         confirm(
              "Bootanimation",
              "Voulez vous garder cette Bootanimation ?",
              "@info"
          )=="no"
        then
          back("1");
        endif;
     endif;
     
      if prop("anim.prop","selected.0")=="3" then
       splash(4000, "gsteam");
        if
         confirm(
              "Bootanimation",
              "Voulez vous garder cette Bootanimation ?",
              "@info"
          )=="no"
        then
          back("1");
        endif;
     endif;

      if prop("anim.prop","selected.0")=="4" then
       splash(4000, "mbokeh");
        if
         confirm(
              "Bootanimation",
              "Voulez vous garder cette Bootanimation ?",
              "@info"
          )=="no"
        then
          back("1");
        endif;
     endif;

     if prop("anim.prop","selected.0")=="5" then
       splash(4000, "rocknumbers");
        if
         confirm(
              "Bootanimation",
              "Voulez vous garder cette Bootanimation ?",
              "@info"
          )=="no"
        then
          back("1");
        endif;
     endif;

     if prop("anim.prop","selected.0")=="6" then
       splash(4000, "speedo");
        if
         confirm(
              "Bootanimation",
              "Voulez vous garder cette Bootanimation ?",
              "@info"
          )=="no"
        then
          back("1");
        endif;
     endif;

     if prop("anim.prop","selected.0")=="7" then
       splash(4000, "tauri");
        if
         confirm(
              "Bootanimation",
              "Voulez vous garder cette Bootanimation ?",
              "@info"
          )=="no"
        then
          back("1");
        endif;
     endif;

       selectbox(
             "Dossier bootanimations",
             "Faites votre choix",
             "@personalize",
             "folderanim.prop",

             "Aucun changement","...",1,
             "Creation du dossier","Dossier non existant",0,
             "Extraction du dossier","Dossier deja existant",0,
            "Suppresion du dossier","Vide le dossier sans le supprimer",0
          );
     
     if prop("folderanim.prop","selected.0")=="2" then
        if
         confirm(
              "Creation du dossier et extraction ?",
              "Voulez vous effectuer cette action ?",
              "@info"
          )=="no"
        then
          back("1");
        endif;
     endif;

     if prop("folderanim.prop","selected.0")=="3" then
        if
         confirm(
              "Vidage du dossier et extraction",
              "Voulez vous effectuer cette action ?",
              "@info"
          )=="no"
        then
          back("1");
        endif;
     endif;

     if prop("folderanim.prop","selected.0")=="4" then
        if
         confirm(
              "Vidage du dossier",
              "Voulez vous effectuer cette action ?",
              "@info"
          )=="no"
        then
          back("1");
        endif;
     endif;

       selectbox(
             "ModemsRIL",
             "Faites votre choix",
             "@personalize",
             "modem.prop",

             "Aucun changement","...",1,
             "ModemRIL SFR AEBMB1","SFR",0,
             "ModemRIL SFR AEBMH1","SFR",0,
            "ModemRIL BVBLL3","Orange",0,
            "ModemRIL XXBMA2","Bouygues ou stock",0
          );
     
     if prop("modem.prop","selected.0")=="2" then
        if
         confirm(
              "ModemRIL SFR AEBMB1",
              "Installer ce modemRIL ?",
              "@info"
          )=="no"
        then
          back("1");
        endif;
     endif;

     if prop("modem.prop","selected.0")=="3" then
        if
         confirm(
              "ModemRIL SFR AEBMH1",
              "Installer ce modemRIL ?",
              "@info"
          )=="no"
        then
          back("1");
        endif;
     endif;

     if prop("modem.prop","selected.0")=="4" then
        if
         confirm(
              "ModemRIL Orange BVBLL3",
              "Installer ce modemRIL ?",
              "@info"
          )=="no"
        then
          back("1");
        endif;
     endif;

     if prop("modem.prop","selected.0")=="5" then
        if
         confirm(
              "ModemRIL BT ou stock XXBMA2",
              "Installer ce modemRIL ?",
              "@info"
          )=="no"
        then
          back("1");
        endif;
     endif;

       selectbox(
             "Theme",
             "Faites votre choix",
             "@personalize",
             "theme.prop",

             "Aucun changement","...",1,
             "Theme stock","...",0,
            "Theme Jhowlett","...",0
          );
     
     if prop("theme.prop","selected.0")=="2" then
        if
         confirm(
              "Theme stock",
              "Installer ce theme ?",
              "@info"
          )=="no"
        then
          back("1");
        endif;
     endif;

     if prop("theme.prop","selected.0")=="3" then
        if
         confirm(
              "Theme Jhowlett",
              "Installer ce theme ?",
              "@info"
          )=="no"
        then
          back("1");
        endif;
     endif;

       selectbox(
             "Wipe Dalvik cache",
             "Nettoyage ou pas",
             "@personalize",
             "dalvik.prop",
             "Non","Redemarrage normal",1,
             "Oui","<#d00><b>Redemarrage plus long</b></#>",0
          );
     
     if prop("dalvik.prop","selected.0")=="2" then
        if
         confirm(
              "Nettoyage Dalvik cache",
              "Voulez vous effectuer cette action ?",
              "@info"
          )=="no"
        then
          back("1");
        endif;
     endif;

       selectbox(
             "Wipe cache partition",
             "Nettoyage ou pas",
             "@personalize",
             "cache.prop",
             "Non","...",1,
             "Oui","...",0
          );
     
     if prop("clean.prop","selected.0")=="2" then
        if
         confirm(
              "Nettoyage cache partition",
              "Voulez vous effectuer cette action ?",
              "@info"
          )=="no"
        then
          back("1");
        endif;
     endif;
     
    setvar("retstatus",
      install(
       #-- Title
          "Installing",
       
       #-- Installation Process message
         "<b>"+ini_get("rom_name")+"</b> are being installed.\n\n"+
          "Please wait while installation wizard installs <b>"+ini_get("rom_name")+
         "</b>. This may take several minutes.",
       
       #-- Installation Icon
          "@install",
       
       #-- Installation Finish Message
          "The installation wizard has successfully installed <b>"+ini_get("rom_name")+
         "</b>. Press Next to continue."
      )
    );

    ##
    #
    # Next Button is "Finish"
    #
    ini_set("text_next", "Finish");


    ###################################################################################################################
    #
    # FINISH MESSAGE, Add Checkbox to Reboot or No. Save in "reboot_it" variable
    #
    # You can use return value or "reboot_it" variable to retrive checkbox value
    # Example:
    # if (checkviewbox(....)=="1" then
    #    ... checked ...
    # endif;
    #
    checkviewbox(
      #-- Title
        "Installation Completed",
     
      #-- Text
        "<#selectbg_g><b>Congratulation...</b></#>\n\n"+
        "<b>"+ini_get("rom_name")+"</b> has been installed into your device.\n\n"+
        "Installer Status: "+getvar("retstatus")+"\n\n",
       
      #-- Icon
        "@welcome",

      #-- Checkbox Text
        "Reboot your device now.",

      #-- Initial Checkbox value ( 0=unchecked, 1=checked ) -  (Optional, default:0)
        "1",

      #-- Save checked value in variable "reboot_it" (Optional)
        "reboot_it"
    );

    ###
    #
    # Check if reboot checkbox was checked
    if
      getvar("reboot_it")=="1"
    then
      #
      # reboot("onfinish");   - Reboot if anything finished
      # reboot("now");        - Reboot Directly
      # reboot("disable");    - If you set reboot("onfinish") before, use this command to revert it.
      #
      reboot("onfinish");
    endif;

    #---- FINISH
Dernière édition par jhowlett468 le 18 Juin 2014, 16:22, édité 5 fois.
Image
Image
|| Galaxy S5 SM-G900FImage|| Gear Fit ( SM-R350 )
ROM xXx No Limits 6.1 base CQAVImageROM BOA2
Modem CQAW / CSC XEFImage
Kernel stock / recovery TWRP 3.0.2.2
Knox 0x1, garantie finie
Charte du forum
Liens importantsNouveau ?Drivers Samsung 1.5.51 -> Install
Vérifiez votre modèleEn ULTIME recours ? ---> ICI
Rédac' chef du Blog
Téléphone qui bootloope ?
Image
Avatar de l’utilisateur
jhowlett468
Modérateur
Modérateur
 
Message(s) : 9259
Inscription : 16 Août 2011, 20:28
Localisation : Xavier's Intitute for Gifted Youngers, 1407 Graymalkin Lane, Westchester County, NY /// La DZ

#3

Re: [Tuto] Introduction à Aroma installer

Messagepar jhowlett468 » 17 Juin 2014, 22:10

Précision sur un point sur lequel j'ai déjà buté... Je fais mes zips Aroma à partir de zips pré-existants et il m'est déjà arrivé que l'extraction de fichiers vers le téléphone ne fonctionne pas ou sur ma GTab 2 que l'interface tactile du mod ne marche pas.

Le moyen d'y remédier ? Attention, çà ne marche que si vous êtes sous ROM custom, qui donc est flashable via un zip :
  • récupérer le fichier update-binary dans le dossier /META-INF/com/google/android sur votre ordinateurImage
  • renommez-le ( sans rien faire d'autre ) en "update-binary-installer" ( sans les guillemets hein )
  • écraser le fichier le update-binary-installer du zip Aroma avec celui que vous venez de créer ( dans le dossier /META-INF/com/google/android )Image

Plus de soucis d'extraction ni de tactile !!
En tout cas, et je ne sais pas pourquoi, je n'ai jamais pu faire marcher un zip Aroma sur une ROM stock, fût-elle rootée et busyboxée...
Dernière édition par jhowlett468 le 28 Juin 2014, 13:48, édité 1 fois.
Image
Image
|| Galaxy S5 SM-G900FImage|| Gear Fit ( SM-R350 )
ROM xXx No Limits 6.1 base CQAVImageROM BOA2
Modem CQAW / CSC XEFImage
Kernel stock / recovery TWRP 3.0.2.2
Knox 0x1, garantie finie
Charte du forum
Liens importantsNouveau ?Drivers Samsung 1.5.51 -> Install
Vérifiez votre modèleEn ULTIME recours ? ---> ICI
Rédac' chef du Blog
Téléphone qui bootloope ?
Image
Avatar de l’utilisateur
jhowlett468
Modérateur
Modérateur
 
Message(s) : 9259
Inscription : 16 Août 2011, 20:28
Localisation : Xavier's Intitute for Gifted Youngers, 1407 Graymalkin Lane, Westchester County, NY /// La DZ

#4

Re: [Tuto] Introduction à Aroma installer

Messagepar jhowlett468 » 17 Juin 2014, 22:10

Réservé
Dernière édition par jhowlett468 le 28 Juin 2014, 13:48, édité 2 fois.
Image
Image
|| Galaxy S5 SM-G900FImage|| Gear Fit ( SM-R350 )
ROM xXx No Limits 6.1 base CQAVImageROM BOA2
Modem CQAW / CSC XEFImage
Kernel stock / recovery TWRP 3.0.2.2
Knox 0x1, garantie finie
Charte du forum
Liens importantsNouveau ?Drivers Samsung 1.5.51 -> Install
Vérifiez votre modèleEn ULTIME recours ? ---> ICI
Rédac' chef du Blog
Téléphone qui bootloope ?
Image
Avatar de l’utilisateur
jhowlett468
Modérateur
Modérateur
 
Message(s) : 9259
Inscription : 16 Août 2011, 20:28
Localisation : Xavier's Intitute for Gifted Youngers, 1407 Graymalkin Lane, Westchester County, NY /// La DZ

#5

Re: [Tuto] Introduction à Aroma installer

Messagepar DuD » 17 Juin 2014, 22:17

Waouh là tu t'es lâché ;-) , je dis cela avec beaucoup de respect pour présenter "l' Aroma"....
Très bonne initiative et sujet plus que complet puis très détaillé. ...
Merci encore
;-)

Envoyé depuis mon Atari 520 ST
Galaxy Note EDGE ;-)
SM-N915FY
ANDROID 5.1.1 LOLLIPOP
N915FXXU1COI1
Version Kernel 3.10.40-5674927
KNOX : 0X0
-------------------------
-------------------------
-------------------------
Avatar de l’utilisateur
DuD
Ancien du Staff
Ancien du Staff
 
Message(s) : 1647
Inscription : 04 Oct 2013, 11:40

#6

Re: [Tuto] Introduction à Aroma installer

Messagepar kris92fr » 17 Juin 2014, 22:25

Bravo pour ce tuto détaillé
Je pense que ce doit etre le plus détaillé qui existe sur les forum Francophone

Excellent

Merci pour le petit clin d'oeil ;)
encore Bravo
Kris

Samsung Galaxy S6 EDGE SM-G925F - Firmware : 5.0.2 - Rom: Firmware officiel G925FXXU1AOD9 - Opérateur : Orange - Root : PingPongRoot
Avatar de l’utilisateur
kris92fr
Andro-bavard
 
Message(s) : 591
Inscription : 13 Déc 2012, 15:21

#7

Re: [Tuto] Introduction à Aroma installer

Messagepar jhowlett468 » 17 Juin 2014, 22:36

DuD a écrit:Waouh là tu t'es lâché ;-) , je dis cela avec beaucoup de respect pour présenter "l' Aroma"....
Très bonne initiative et sujet plus que complet puis très détaillé. ...
Merci encore
;-)


kris92fr a écrit:Bravo pour ce tuto détaillé
Je pense que ce doit etre le plus détaillé qui existe sur les forum Francophone

Excellent

Merci pour le petit clin d'oeil ;)
encore Bravo


Merci les gars ;)

@Kris, de rien pour la pub :)
J'ai déjà vu des topics en français sur le sujet mais peu détaillés et plus soutenus... Une bombe comme Aroma méritait mieux et après des mois d'hésitation, bin je m'y suis mis !!
Image
Image
|| Galaxy S5 SM-G900FImage|| Gear Fit ( SM-R350 )
ROM xXx No Limits 6.1 base CQAVImageROM BOA2
Modem CQAW / CSC XEFImage
Kernel stock / recovery TWRP 3.0.2.2
Knox 0x1, garantie finie
Charte du forum
Liens importantsNouveau ?Drivers Samsung 1.5.51 -> Install
Vérifiez votre modèleEn ULTIME recours ? ---> ICI
Rédac' chef du Blog
Téléphone qui bootloope ?
Image
Avatar de l’utilisateur
jhowlett468
Modérateur
Modérateur
 
Message(s) : 9259
Inscription : 16 Août 2011, 20:28
Localisation : Xavier's Intitute for Gifted Youngers, 1407 Graymalkin Lane, Westchester County, NY /// La DZ

#8

Re: [Tuto] Introduction à Aroma installer

Messagepar Spirit.of.Resistance » 17 Juin 2014, 22:45

Tu n'as pas un lien de parenté avec gabs. .:grin::grin:
Merci pour le partage. ;)

envoyé depuis mon S5 Alliance Rom
Image
INFO:Pour bien débuter sur le forum-ici-
Avatar de l’utilisateur
Spirit.of.Resistance
Ancien du Staff
Ancien du Staff
 
Message(s) : 5565
Inscription : 14 Sep 2011, 14:53

#9

Re: [Tuto] Introduction à Aroma installer

Messagepar jhowlett468 » 17 Juin 2014, 22:54

Spirit.of.Resistance a écrit:Tu n'as pas un lien de parenté avec gabs. .:grin::grin:


Non pourquoi ? lol
Image
Image
|| Galaxy S5 SM-G900FImage|| Gear Fit ( SM-R350 )
ROM xXx No Limits 6.1 base CQAVImageROM BOA2
Modem CQAW / CSC XEFImage
Kernel stock / recovery TWRP 3.0.2.2
Knox 0x1, garantie finie
Charte du forum
Liens importantsNouveau ?Drivers Samsung 1.5.51 -> Install
Vérifiez votre modèleEn ULTIME recours ? ---> ICI
Rédac' chef du Blog
Téléphone qui bootloope ?
Image
Avatar de l’utilisateur
jhowlett468
Modérateur
Modérateur
 
Message(s) : 9259
Inscription : 16 Août 2011, 20:28
Localisation : Xavier's Intitute for Gifted Youngers, 1407 Graymalkin Lane, Westchester County, NY /// La DZ

#10

Re: [Tuto] Introduction à Aroma installer

Messagepar Spirit.of.Resistance » 17 Juin 2014, 22:55

Car le dernier pavé autant détaillé que j'ai vu venais de lui..;)

envoyé depuis mon S5 Alliance Rom
Image
INFO:Pour bien débuter sur le forum-ici-
Avatar de l’utilisateur
Spirit.of.Resistance
Ancien du Staff
Ancien du Staff
 
Message(s) : 5565
Inscription : 14 Sep 2011, 14:53

Suivant

Retour vers Développement : Tutoriels, Astuces, Méthodes et Outils

Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 2 invité(s)