Aller au contenu

Faîtes votre propre ROM !


Recommended Posts

Bonsoir à tous ! :)

Tout d'abord, je veux vous dire que je ne suis absolument pas un pro de la création de ROM, je ne suis pas plus développeur, même si avec cet outil, j'ai réussi à modder une ROM pour tester. Je ne fais que compiler ici le tutoriel de dsixda et de N00BY0815 qui fait un gros boulot sur le forum LG P970 de XDA.

Toute aide pour la correction, rectification et amélioration de ce post sera bien entendu acceptée avec plaisir !

Cet outil que je vais vous présenter est Android Kitchen de dsixda.

Lien XDA : http://forum.xda-dev...d.php?t=1227549

Github : https://github.com/d...Android-Kitchen

Android Kitchen permet à n'importe qui de se lancer dans le moddage ou même création de ROM de manière facile. Bien entendu, tout étant subjectif, la difficulté est à apprécier différemment selon chacun. :) Entre autres, il fournit beaucoup de scripts, qui permettront d'appliquer des améliorations/modifications, sans avoir à le faire manuellement.

/!\ Ceci est un tutoriel technique, si vous l'utilisez, ce sera à vos dépens, et personne ici ne sera responsable de votre utilisation et des possibles problèmes qui en découleront. /!\

Pour commencer, il nous faut cet outil, il y a trois méthodes pour l'installer en ce qui concerne Windows. Je ne parlerais pas pour les autres OS, ne m'y connaissant pas, mais sachez que les indications sont dispos ici et je ne parlerais pas non plus des deux autres méthodes (également disponibles sur le lien précédent) puisque la première est la plus facile.

1ère méthode (la plus simple) : Méthode Cygwin.

- Installez Cygwin, qui est un environnement Unix pour Windows. Vous pouvez installer un custom Cygwin qui a déjà tous les packages nécessaires pour faire tourner le kitchen :

Vous avez ici un guide visuel pour vous aider à l'installation méthode Cygwin.

1. Téléchargez et installer le Java JDK pour Windows 32-bit ici, ici ou directement sur Java.

ATTENTION : N'installez pas Cywin avant le JDK ! Si vous l'avez déjà installé alors regardez la note 2 en dessous.

2. Télécharger le fichier dsixda_cygwin_install.zip ici ou , dézippez le et suivez les instructions dans le fichier "kitchen_readme.txt"pour installer une version customisée de Cygwin.

C'est bon.

Note : Si vous avez déjà une vieille installation de Cygwin sur votre PC, il pourrait ne pas fonctionner avec le kitchen, à cause des packages manquants. Ouvrez le cygwin_required.txt pour voir quels packages vous avez besoin d'installer.

Note 2 : Si vous avez installez Java après cygwin, le kitchen pourrait avoir des problèmes à trouver le fichier exécutable de Java, qui pourrait demandé une modification du fichier .bash_profile. Regardez ici.

Note 3 : Si vous avez des problèmes avec la commande 'clear' qui n'est pas trouvée "not being found" en lançant le kitchen, lisez la FAQ partie 2 pour de l'aide.

Après avoir suivi l'installation du kitchen, comment l'utilisez ?

Cliquez ici pour une vidéo tutorielle

1. Télécharger le kitchen (http://github.com/ds...archives/master). A priori, la N7 n'est pas supportée par le kitchen qui n'est plus supporté par son créateur.

Voici la méthode pour ajouter un nouveau matériel :
1. Créer un fichier dans le dossier de kitchen /tools/edify_defs, avec le nom de la valeur du ro.product.device de la Nexus 7 (que vous pouvez trouvé dans /system/build.prop).
2. Regardez le fichier template dans ce dossier pour voir comment configurer les "mount points" dans le fichier que vous avez créé. Regardez les autres fichiers du dossier pour avoir un exemple de comment le faire. [u]Note[/u] : cela peut ne pas fonctionner tout le temps.

Puis extrayez le fichier .zip dans un dossier 'kitchen' à placer dans le répertoire home. Dans Cygwin , ce dossier devrait dépendre de là où est installé votre dossier Cygwin, exemple : C:\cygwin\home\John\kitchen.

Note : si vous dossier utilisateur contient des espaces (par exemple C:\cygwin\home\John Smith\kitchen), le kitchen ne fonctionnera pas correctement. Copiez le dossier pour avoir ceci : C:\cygwin\home\kitchen.

2. Pour le lancer, ouvrez une invite de commande (ou cliquez sur le raccourci Cygwin sur votre bureau).

3. Tapez la commande pour aller vers le dossier contenant le kitchen :

- Exemple : si votre kitchen est comme ceci : C:\cygwin\home\John\kitchen, tapez cd kitchen

- Exemple : si votre kitchen est comme ceci : C:\cygwin\home\kitchen, vous avez besoin de monter d'un niveau de dossier, tapez cd ../kitchen

- Exemple : si votre kitchen est comme ceci : c:\cygwin\home\John\blabla\truc\android, tapez cd blabla/truc/android

- Si vous n'avez pas écouté les consignes (vilains !) et copié le kitchen dans c:\un_autre_dossier, vous avez besoin de faire : cd /cygdrive/c/un_autre_dossier.

4. Une fois dans le dossier correct, lancer le kitchen : ./menu

Note 1 : Si vous avez une erreur 'permission denied', vous devez taper chmod +x menu et lancer ./menu de nouveau.

Note 2 : Si vous un message d'erreur à propos d'un fichier non trouvé, cela veut dire que vous n'avez pas bien redirigé vers le dossier contenant le kitchen.

Note 3 : Si vous avez un message d'erreur à propos de 'missing binaries" comme 'clear' lisez la partie 2 de la FAQ pour des solutions.

5. Sélectionnez Option 1 pour configurer votre dossier de travail (le fichier où votre ROM sera crée). Pour importer une ROM dans le kitchen, suivez les informations dans la section en dessous nommée "Comment importer une ROM dans le kitchen ?".

6. Appuyez sur entrer, si vous avez déjà ajouté les fichiers nécessaires dans le dossier de travail.

7. Sélectionnez "1" de nouveau. Ou si vous avez déjà plusieurs ROMs dans le dossier, choissez celle que vous désirez. Entrer.

8. Appuyez sur "y" et donnez un nom au dossier, que vous reconnaîtrez, exemple : JRO03D si vous travaillez une rom JRO03D. Entrer.

9. Rafraîchissez-vous ;)

9.1. Ne convertissez pas, JE REPETE, ne convertissez pas updater-script en update-script ! Dans ce cas-là, votre ROM ne démarrera pas ! Tapez donc 2 et puis Entrer.

10. Appuyez sur Entrer.

11. Maintenant, vous pouvez entrer dans votre dossier de travail (dans .../kitchen/Nom_du_dossier_de_travail) et par exemple, modifiez des fichiers, supprimez des applications.

12. Sélectionnez "99" pour compiler votre nouvelle ROM flashable.

13. Sélectionnez "1", à moins de savoir ce que vous faisez et ce que vous faîtes.

14. Vous pouvez déjà zipalignée les fichiers apk, mais si vous voulez modder encore un peu après, tapez "n" dans le but de sauver du temps.

15. Appuyez sur "y".

16. Signez votre ROM en appuyant sur "y".

17. Renommez-le, dans le but de pouvoir l'identifier encore, si vous travaillez sur plusieurs ROMs parallèlement, donc appuyez sur "y". Puis entrez l'épique nom de votre ROM ;).

18. Trouvez votre ROM dans C:\cygwin\home\NOM_D_UTILISATEUR_kitchen\OUTPUT_ZIP ou l'endroid où vous avez mis votre dossier.

Pour modifier, supprimer des applications : vous devez simplement extraire le fichier .zip obtenu, vous obtiendrez les dossiers suivants :

-META-INF

-system

-boot.img

Remarque : ne touchez jamais à META-INF à moins de savoir ce que vous faites.

Dans le dossier system, vous pourrez trouver le dossier app, où vous pourrez supprimez les applications.

Flash de la ROM :

Quand vous voudrez essayer de flasher votre ROM, vous devrez le packer d'abord, puis le signer ensuite. Sélectionnez le dossier system, META-INF et le boot.img et cliquez droit dessus et ajoutez à "exemple.zip" avec 7zip, ou winrar.

Vous avez donc un fichier .zip flashable, mais pour le flasher, vous avez aussi à le signer. Voici la méthode la plus facile. Configurez juste, comme c'est dit dans le sujet. Puis cliquez droit sur votre .zip ROM et cliquez sur "sign this file". Attendez qu'un popup s'affiche pour vous dire que le fichier a bien été signé et trouvez le nouveau dossier. Ce dossier s'appelle "Signed files" et là vous trouverez la version de votre ROM. Ici, une deuxième version pour le faire.

Maintenant vous pouvez flasher votre custom ROM. Si votre tablette est en bootloop ou est brickée, alors vous devez l'unbricker. Il y a des tutos pour faire cela ici.

Comment importer une ROM dans le kitchen ? (pour l'utiliser comme base de travail)

Depuis une stock ROM :

Trois formats différents possibles :

Si la ROM est au format .zip, copiez le simplement dans le dossier de kitchen 'original_update'.

Si la ROM consiste en system.img et boot.img, copiez les deux fichier dans le dossier kitchen 'original_update'. Si la ROM inclut un lib.img, copiez le aussi !

Si la ROM est un .exe alors :

1. Dans Windows, lancez l'exe de la ROM jusqu'au premier fenêtre. Arrêtez vous là mais ne fermez pas la fenêtre.

2. Allez dans Démarrer (si vous n'êtes pas passé sur W8 :P), "exécuter", et tapez : %TEMP%

3. Quand le dossier s'ouvre, cherchez pour le .zip de la ROM.

4. Copiez le .zip dans le dossier dans kitchen 'original_update'.

Depuis une custom ROM :

Copiez la ROM dans le dossier dans kitchen 'original_update'.

Depuis un Nandroid backup (pas recommandée pour les backups de ROMs non stocks) :

Copiez le system.img et le boot.img dans le dossier dans kitchen 'original_update'.

NOTE : Le nandroid-backup n'est pas la meilleure méthode, parce que le kitchen peut ne pas fonctionner correctement pour plusieurs raisons de configuration. Mais il fonctionne bien pour l'ajout/modif de fonctionnalités basiques.

C'est bon vous êtes parés ! :)

J'ajouterais la FAQ dès que j'aurais mangé, reposé mes doigts et qui sait, testé Dishonored en écoutant Catch Me !

Crédits :

- dsixda : pour l'outil.

- N00BY : pour le travail sur la méthode.

- Les autres participants pour les vidéos et tutos divers.

Modifié par Moutarde
  • Like 4
Lien vers le commentaire
Partager sur d’autres sites

  • 3 months later...
  • 6 months later...

Coucou,

 

Je me lance enfin dans l'aventure et j'aurai besoin de vos lumières.

 

Sur Windows 7 64

-Installation de Java (jre 7)

-Installation de Cygwin 64

J'ai bien installé tous les packages recommandés :

gcc
perl
cpio
util-linux

ncurses
zip
unzip
wget (il n'était pas présent)

 

Lorsque j’exécute Cygwin64 Terminal et je tape Java, j'ai bien le descriptif

Daveheart@Daveheart-PC ~
$ java
Syntaxe : java [-options] class [args...]
           (pour l'ex▒cution d'une classe)
   ou  java [-options] -jar jarfile [args...]
           (pour l'ex▒cution d'un fichier JAR)
o▒ les options comprennent :
    -d32          utilisez le mod▒le de donn▒es 32 bits s'il est disponible
    -d64          utilisez le mod▒le de donn▒es 64 bits s'il est disponible
    -server       pour s▒lectionner la machine virtuelle "server"
    -hotspot      est un synonyme pour la machine virtuelle "server"  [en phase d'abandon]
                  La machine virtuelle par d▒faut est server.

    -cp <class search path of directories and zip/jar files>
    -classpath <class search path of directories and zip/jar files>
                  Liste de r▒pertoires, d'archives JAR et
                   d'archives ZIP s▒par▒s par des ;, dans laquelle rechercher les fichiers de classe.
    -D<name>=<value>
                  d▒finition d'une propri▒t▒ syst▒me
    -verbose[:class|gc|jni]
                  activation de la sortie en mode verbose
    -version      impression de la version du produit et fin de l'op▒ration
    -version:<value>
                  ex▒cution de la version sp▒cifi▒e obligatoire
    -showversion  impression de la version du produit et poursuite de l'op▒ration
    -jre-restrict-search | -no-jre-restrict-search
                  inclusion/exclusion des environnements JRE priv▒s de l'utilisateur dans la recherche de version
    -? -help      impression du message d'aide
    -X            impression de l'aide sur les options non standard
    -ea[:<packagename>...|:<classname>]
    -enableassertions[:<packagename>...|:<classname>]
                  activation des assertions avec la granularit▒ sp▒cifi▒e
    -da[:<packagename>...|:<classname>]
    -disableassertions[:<packagename>...|:<classname>]
                  d▒sactivation des assertions avec la granularit▒ sp▒cifi▒e
    -esa | -enablesystemassertions
                  activation des assertions syst▒me
    -dsa | -disablesystemassertions
                  d▒sactivation des assertions syst▒me
    -agentlib:<libname>[=<options>]
                  chargement de la biblioth▒que d'agent natif <libname>, par exemple -agentlib:hprof
                  voir ▒galement, -agentlib:jdwp=help et -agentlib:hprof=help
    -agentpath:<pathname>[=<options>]
                  chargement de la biblioth▒que d'agent natif via le chemin d'acc▒s complet
    -javaagent:<jarpath>[=<options>]
                  chargement de l'agent du langage de programmation Java, voir java.lang.instrument
    -splash:<imagepath>
                  affichage de l'▒cran d'accueil avec l'image sp▒cifi▒e
Voir http://www.oracle.com/technetwork/java/javase/documentation/index.html pour plus de d▒tails.

J'imagine que je peux attaquer directement avec la cuisine ??(J'ai quand même fait un backup du profile bash et fait les manips manuellement).

 

J'ai donc télécharger la cuisine mais le soucis est que lorsque je lance la commande ./menu en me plaçant dans le bon dossier, j'ai un message de ce type :

Daveheart@Daveheart-PC /cygdrive/c/cygwin64/home/daveheart/kitchen
$ ./menu
scripts/check_binaries: line 22: clear : commande introuvable




Welcome to dsixda's Android Kitchen

Please wait .

Error:  The application 'clear' is not installed - the kitchen
        will not function properly without it.  Ensure you did
        not miss a step during installation!  Refer to the
        Android Kitchen FAQ at xda-developers.com for further
        assistance.

        ** PLEASE READ THE FAQ BEFORE ASKING QUESTIONS!! **

        YES, THIS ERROR IS ALREADY COVERED IN THE FAQ.  DO NOT
        WASTE YOUR TIME MESSAGING ME. JUST READ IT, PLEASE. ;)

et lorsque que je lance cette même commande, mais cette fois en passant par bash.exe (cygwin64/bin), l'erreur est annoncée comme cela :

Daveheart@Daveheart-PC /cygdrive/c/cygwin64/home/daveheart/kitch
$ ./menu
./menu: line 46: chmod: command not found
scripts/check_install_dir: line 13: grep: command not found
scripts/init_kitchen: line 12: chmod: command not found
scripts/init_kitchen: line 13: chmod: command not found
scripts/init_kitchen: line 14: chmod: command not found
scripts/init_kitchen: line 15: chmod: command not found
scripts/init_kitchen: line 16: chmod: command not found
scripts/init_kitchen: line 17: chmod: command not found
scripts/init_kitchen: line 18: chmod: command not found
scripts/init_kitchen: line 19: rm: command not found
scripts/init_kitchen: line 20: rm: command not found
scripts/init_kitchen: line 21: rm: command not found
scripts/init_kitchen: line 22: rm: command not found
scripts/init_kitchen: line 23: rm: command not found
scripts/init_kitchen: line 24: rm: command not found
scripts/init_kitchen: line 25: rm: command not found
scripts/init_kitchen: line 26: rm: command not found
scripts/init_kitchen: line 27: rm: command not found
scripts/init_kitchen: line 28: rm: command not found
scripts/check_binaries: line 22: clear: command not found




Welcome to dsixda's Android Kitchen

Please wait .

Error:  The application 'clear' is not installed - the kitchen
        will not function properly without it.  Ensure you did
        not miss a step during installation!  Refer to the
        Android Kitchen FAQ at xda-developers.com for further
        assistance.

        ** PLEASE READ THE FAQ BEFORE ASKING QUESTIONS!! **

        YES, THIS ERROR IS ALREADY COVERED IN THE FAQ.  DO NOT
        WASTE YOUR TIME MESSAGING ME. JUST READ IT, PLEASE. ;)

J'ai également essayé les manips en placant java.exe dans cygwin64/bin. Toujours la même erreurs et cela même avec windows 7 32.

 

Si vous avez des idées, je suis preneur.

 

Pour info, j'ai déjà le fichier edify_defs pour la Nexus 7.

 

 

Merci d'avance pour votre aide.

Lien vers le commentaire
Partager sur d’autres sites

Salut Moutarde,

 

Voici un petit retour pour l'utilisation de la cuisine avec la Nexus 7. Celle-ci fonctionne bien en automatique à partir des fichiers boot.img et system.img (importation rom dans Kitchen) pour la création du zip.

 

Tout d'abord, pour mon problème de démarrage de la cuisine, j'ai seulement installe Cygwin 32 bit à la place de la version 64, avec seulement les packages recommandées et la cuisine a bien démarrée.

 

Ensuite, création du fichier edify_defs :

 

Créer un fichier Grouper dans le dossier Kitchen/edify_defs avec ces données :

# Google Nexus 7 by ASUS (Wi-Fi Only)

change_mnt=yes

param1=ext4
param2=EMMC

param1_sdcard=vfat
param2_sdcard=

sys_mnt=\/dev\/block\/platform\/sdhci-tegra.3\/by-name\/APP
cache_mnt=\/dev\/block\/platform\/sdhci-tegra.3\/by-name\/CAC
boot_mnt=\/dev\/block\/platform\/sdhci-tegra.3\/by-name\/LNX
data_mnt=\/dev\/block\/platform\/sdhci-tegra.3\/by-name\/UDA
sdcard_mnt=\/dev\/block\/sda1

A la fin de la compilation (option 99), le zip seras installable seulement en Multiboot.

Pour qu'il fonctionne comme système principal, il faut modifier le fichier updater.script (META-INF/com/google/android) avec NotePad++ et remplacer ces lignes :

assert(package_extract_file("boot.img", "/tmp/boot.img"),
       write_raw_image("/tmp/boot.img", "boot"),
       delete("/tmp/boot.img"));

Par cette ligne :

package_extract_file("boot.img", "/dev/block/platform/sdhci-tegra.3/by-name/LNX");

Enfin, pour finaliser la rom, il faut mettre à jour le fichier update-binary (META-INF/com/google/android)

 

 

Merci encore pour le tuto.

Lien vers le commentaire
Partager sur d’autres sites

  • 2 months later...

Oui, donc tu es dans le même cas de figure que moi. Tu peux essayer avec Cygwin 64 bits mais si la commande ./menu de la cuisine ne se lance pas, désinstalle le et prend la version 32 bits.

 

Tu as juste à suivre le tuto, si tu bloque quelque part, n'hésite pas mais pour le moment je ne peux pas t'aider plus que cela.

Par contre je ne connais pas [Mention interdite par l&#39;administrateur], c'est déjà un custom?

 

Sinon pour la cuisine, ton s4 est, peut-être, pris en charge, donc pas de création de fichier edify_defs pour toi :

Samsung Galaxy S4
- NOTE: Kitchen only supports creating ROMs from stock firmware 
  or importing ROMs made only with kitchen!
- Supported for:
-- AT&T variant (SGH-I337)
-- Bell/Telus/Rogers variant (SGH-I337M)
-- T-Mobile variant (SGH-M919)
-- Wind/Mobilicity variants (SGH-M919V) - untested
-- International non-LTE variant (GT-I9500) - untested
-- International LTE variant (GT-I9505) - untested
-- Other American variants (SCH-R970, SPH-L720, SCH-I545) - untested

Bon courage, tiens nous au jus.

Modifié par daveheart
Lien vers le commentaire
Partager sur d’autres sites

Salut,merci d'avoir répondu :) je bloque à"./menu"...

Tu ne connais pas la [Mention interdite par l&#39;administrateur] ? Ni [Mention interdite par l&#39;administrateur] ? Je t'invite à jeter un coup d'oeil a notre fofo,La [Mention interdite par l&#39;administrateur] est une rom tres tres connue dans les device samsung :) la dernière sur s4 c'est la 4.2.2 :) jette un oeil^^

Lien vers le commentaire
Partager sur d’autres sites

Ok, Java est bien installé? regarde le post 6, tu doit avoir la même chose.

Et avec Cygwin 32 bits tu as essayé et ses packages (indiqué aussi)?


Cygwin instructions for dsixda's Android Kitchen
-------------------------------------------------

1) Run the Cygwin setup.exe and select the defaults for the installation paths, such as:
- install from internet
- install to C:\cygwin
- Install for: All Users or Just Me (pick one that suits you)
- Local Package Directory: use the default
- Internet Connection: Direct Connection internet (unless you have a proxy)
- Download Site: select any

2) At the 'Select Packages' screen, go to the 'Search' box to look for the following package:

* gcc (found under 'Devel')
  - Click on the '+' symbol at the section it's found under
  - Then find this single package (only the one with this exact name, not multiple similarly-named ones!) and click 'Skip' once so that it changes to show a version number

Do not click the 'Next' button!!
Go back to the Search box and repeat the above steps for the rest of the packages:

* perl (found under 'Interpreters')
* cpio (found under 'Utils')
* util-linux (found under 'Utils')
* ncurses (found under 'Utils')
* zip (found under 'Archive')
* unzip (found under 'Archive')
* wget (found under 'Web')


3) Press Next to proceed installing these packages.

4) When installation has been completed, click on your new Cygwin desktop shortcut. This will open a terminal session that will run some initialization.

5) With the Cygwin terminal still open, we need to configure the path to the Java application so that it can be executed within Cygwin.

In the terminal, type the command 'java' (without quotes).  If it says 'command not found', then read the below.  Otherwise, skip this section.


First, make a backup of your .bash_profile file in case you make a mistake later in this procedure.
Enter the following in the terminal:

  cp .bash_profile .bash_profile.backup



Next, find out where your java.exe file is and run the appropriate command to add it to your Cygwin path.  
For example, my java.exe is found under C:\Program Files\Java\jre7\bin, so I had to type:

  echo "PATH=/cygdrive/c/Program\ Files/Java/jre7/bin:\${PATH}" >> .bash_profile

Modify the command above so that it matches the actual path to your installed Java. 
Remember to add a "\" character before any spaces in your path, as shown above.



Type the following so that the file gets loaded (you only need to do this once):

  source .bash_profile

There should not be any errors displayed if successful.  

(Otherwise, if you made an error in the .bash_profile file, restore your backup by typing: cp .bash_profile.backup .bash_profile, and then try the procedure again)



If done correctly, then when you type 'java' it should display some help information.


6) Your Cygwin is now ready for the kitchen!  Download the kitchen if you have not already done so.

Et non, desolé je ne connais pas [Mention interdite par l&#39;administrateur], pourtant je suis pas mal l'actu Android en général mais pas celle de Samsung :-p

Modifié par daveheart
Lien vers le commentaire
Partager sur d’autres sites

Rejoignez la conversation

Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.

Invité
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...