marshallbob Posté(e) 4 juillet 2012 Share Posté(e) 4 juillet 2012 (modifié) Bonjour tout le monde, je vais créer plusieurs tutos au fur et à mesure pour tous : Comment créer une ROM ? Comment porter une ROM ? Chaque chose en son temps, j'ai créer S3nsation (oui, j'ai stopper le développement parce qu'il y'a de meilleure ROM dispo mais je vais bientôt m'y remettre ;) ) pour commencer dans le développement, j'ai finalement réussi, puis y'en a plein qui aimerais savoir donc je fais ce petit tuto ;) _____________________________________________________________________________________ CHAPITRE 1 : Se baser sur un firmware officiel On peut aussi se baser sur une ROM déjà prête mais bon c'est pas intéressant ;) Premièrement, RDV sur SamFirmware, pour choisir un ... (le premier qui me dit ROM je lui paye un iFoufoune !) firmware biensur ... Pour la S3nsation, je me suis basé sur la dernière en date : S5830XWKTM 2.3.6 Mais vous pouvez prendre n'importe lequel Téléchargez le donc ... CHAPITRE 2 : Décompresser le firmware Décompresser le, vous allez vous retrouvez nez à nez avec un fichier .tar.md5 un truc comme ça pas de pitié, décompressez le aussi Dans votre dossier, vous devrez avoir des trucs chelous : boot.img, recovery.img ect ... Télécharger MagicISO pour pouvoir poursuivre ... Une fois que c'est fait (bravo, tu veux un gâteau ?!), ouvrez le et cliquez sur try it Vous naviguez dans le dossier où vous avez extrait le firmware, "type de fichier : tout les fichiers" On a besoin que de récupérer system.rfs, vous le sélectionnez, et la ... impression de déjà vu : app, framework, media, lib, ect ... mais biensur ! c'est /system ! Allez hop, pas de temps pour l'admiration, on a du pain du la planche (bande de branleur ...) On extrait tout dans un nouveau dossier qui sera alors le fichier de votre ROM (donc admettons que clad veuille créer une ROM, et qu'il veut la nommer CladROM, il va créer un dossier nommé CladROM : son environnement de travail, dans lequel il va recréer un fichier qui s'appellera CladROM_build, qui contiendra la ROM.) Et ensuite, revenez dans magicISO, et ouvrez cette fois ci CSC.rfs, puis recovery, puis sec.csc.zip Vous obtenez ... ouahou ! META-INF qui contient le script de flashage (donc pas touche manouche ! ), app (que vous pouvez supprimer car il ne sert à rien, sauf pour les ROMs opérateurs), lib (lui aussi vide donc ==> delete, CSC (celui là on garde) au même titre que T9DB, ansi que CSCVersion et SWconfig : mettez le dans votre fichier de la ROM. CHAPITRE 3 : DEODEXER LE FIRMWARE Dans 100% des cas (oui c'est injuste), vous avez dans votre /system/app, plein de petit fichiers en .odex, c'est normal, ces petits fichiers font en sorte d'accelerer le démarrage des applications et du telephone, mais on ne peut rien ajouter, ni modifier (c'est embêtant ... it's agacing... ;) ) donc on va devoir faire le sale travail ! IL VOUS FAUT : -xUltimate -ADB + SDK (alors j'espère que vous êtes en vacance car c'est long à installer...) -votre "ROM" -votre cerveau aussi (Ah bon ?! Oui.) Mr Clad veut déodexer sa ROM (on l'encourage tous, car c'est chiant quand il y'a un problème ...) dézipper xUltimate dans votre environnement de travail, créez un dossier "développements" et mettez le ici. Dans xUltimate, il faut couper les fichiers de votre "ROM" /system/app et /system/framework et les coller dans origi_app et origi_framework. Maintenant, concentration ... lancer main.exe, une console s'affiche, sélectionner l'option 3 et 4 patientez ... patientez ... Si tout ce passe bien, un fichier done_app et done_frame devraient apparaître, et à l'interieur, vos fichiers déodexer ... CEPENDANT, si il reste un fichier .odex, votre deodexage s'est mal passé, et il faut savoir ce qu'il s'est passé =) bon courage ... en général, c'est parce qu'il y'a un fichier qui gène, ou autre ... Vous n'êtes pas obliger de suivre ma méthode et d'en chercher une autre. CHAPITRE 4 : Les modifications maintenant ... Reprenons, vous avez maintenant la base de votre ROM (on reste sur l'exemple de la CladROM), c'est bien, c'est beau, mais ... pas assez personnel ! Vous avez déjà entendu parler des scripts, des tweaks et si ce n'est pas le cas, je vous demande de le savoir, y'en a plusieurs que je vous conseille en stock ROM : -Adrenaline Engine de imbawind -14toggles mod -Touch improvement et j'en passe ... Prenons le cas le plus simple : le 14 toggles mod ATTENTION : LE MOD DEPEND DE VOTRE FIRMWARE, Je m'explique, si vous télécharger le 14 toggles mods du DWKQ8 pour le mettre sur un firmware XWKTM, ça ne marchera pas =P (mouahahaha) donc faites attention à cela, au pire des cas, demandez sur XDA Pour l'intègrer, il faut donc ... extraire les fichiers de votre mod (/system/app; /system/lib;/system/framework;/system/ect/init.d...) dans la ROM, au bon emplacement, c'est à dire dans /system/app; /system/framework; ect ... Voilà =) Vous pouvez faire ça avec tout les mods, themes, du moment qu'ils sont compatible avec votre firmware (oui c'est la m****.) CHAPITRE 5 : METTRE UN KERNEL On va faire pareil que le chapitre 4, mais cette fois ci vous devez mettre le boot.img (dites moi si je me trompe) dans la racine de votre ROM, et si un /data se montre, vous l'ajouter à la racine de votre ROM =) CHAPITRE 6 : LE SCRIPT DE FLASHAGE Vous avez dans la racine de votre ROM /META-INF, mais à quoi sert-il ?! Y'en a au moins 1 qui l'a supprimer, j'en suis sur ... Il contient l'algorithme qui va donner les ordres pour le flash de la ROM, sans ça vous êtes dans la m****. Direction /META-INF/com/google/android il y'a update-binary et updater-script, d'après vous lequel on va modifier ?! ... Updater-script bien sur ;) Ouvrez le avec NotePad++ (téléchargez le si vous ne l'avez pas), paramètrez le en saut de ligne UNIX (dans edition => conversion saut de ligne ==> UNIX) Là il y'a les instructions pour le flash assert(getprop("ro.product.device") == "GT-S5570L" || getprop("ro.product.product") == "GT-S5570L"|| getprop("ro.product.device") == "GT-S5570B" || getprop("ro.build.product") == "GT-S5570B" || getprop("ro.product.device") == "GT-S5670L" || getprop("ro.product.product") == "GT-S5670L"|| getprop("ro.product.device") == "GT-S5670B" || getprop("ro.product.product") == "GT-S5670B"|| getprop("ro.product.device") == "GT-S5830L" || getprop("ro.build.product") == "GT-S5830L" || getprop("ro.product.device") == "GT-S5830B" || getprop("ro.build.product") == "GT-S5830B" || getprop("ro.product.device") == "GT-S5830T" || getprop("ro.build.product") == "GT-S5830T" || getprop("ro.product.device") == "GT-S5830" || getprop("ro.build.product") == "GT-S5830" || getprop("ro.product.device") == "GT-S5570" || getprop("ro.build.product") == "GT-S5570" || getprop("ro.product.device") == "GT-S5571" || getprop("ro.build.product") == "GT-S5571" || getprop("ro.product.device") == "GT-S5670" || getprop("ro.product.product") == "GT-S5670"|| getprop("ro.product.device") == "GT-B7510" || getprop("ro.product.product") == "GT-B7510" || getprop("ro.product.device") == "GT-I5510" || getprop("ro.build.product") == "GT-I5510" || getprop("ro.product.device") == "GT-S5660V" || getprop("ro.product.product") == "GT-S5660V" || getprop("ro.product.device") == "GT-S5660" || getprop("ro.build.product") == "GT-S5660" ); show_progress(0.100000, 0); show_progress(0.500000, 0); # format("MTD", "system"); # mount("MTD", "system", "/system"); package_extract_dir("system", "/system"); # unmount("/system"); vous devez avoir ceci, Pour afficher un message lors du flashage (Mr Clad qui veux remercier ses amis, et FrAndroid par exemple) il va devoir entrer ce code : ui_print("Merci à SweetPurple, AlexGeek, NeG, et ceux de FrAndroid"); Et BIEN FAIRE ATTENTION qu'à chaque fin de ligne, il y'a un point virgule ";" sinon, Installation aborted ... Voici un exemple du script de stocklite v7 assert(getprop("ro.product.device") == "GT-S5830L" || getprop("ro.product.board") == "GT-S5830L"|| getprop("ro.build.product") == "GT-S5830L"|| getprop("ro.product.device") == "GT-S5830B"|| getprop("ro.product.board") == "GT-S5830B"|| getprop("ro.build.product") == "GT-S5830B"|| getprop("ro.product.device") == "GT-S5830T"|| getprop("ro.product.board") == "GT-S5830T"|| getprop("ro.build.product") == "GT-S5830T"|| getprop("ro.product.device") == "GT-S5830"|| getprop("ro.product.board") == "GT-S5830"|| getprop("ro.build.product") == "GT-S5830"|| getprop("ro.product.model") == "GT-S5830"|| getprop("ro.product.device") == "cooper"|| getprop("ro.product.board") == "cooper"|| getprop("ro.build.product") == "cooper" ); show_progress(0.1, 0); ui_print("================================"); ui_print("================================"); ui_print("=== StockLite v7 by tj_droid =="); ui_print("================================"); ui_print("================================"); ui_print("Starting Installation"); package_extract_file("format.sh", "/tmp/format.sh"); package_extract_file("mkfs.ext4", "/tmp/mkfs.ext4"); set_perm(0, 0, 0755, "/tmp/format.sh"); set_perm(0, 0, 0755, "/tmp/mkfs.ext4"); run_program("/tmp/format.sh"); delete("/tmp/format.sh"); delete("/tmp/mkfs.ext4"); mount("ext4", "EMMC", "/dev/block/stl12", "/system"); mount("ext4", "EMMC", "/dev/block/stl13", "/data"); ui_print("Extracting files and settings"); package_extract_dir("data", "/data"); set_perm_recursive(1000, 1000, 0771, 0644, "/data/app"); set_perm(2000, 2000, 0771, "/data/local"); package_extract_dir("system", "/system"); symlink("toolbox", "/system/bin/cat"); symlink("toolbox", "/system/bin/chmod"); symlink("toolbox", "/system/bin/chown"); symlink("toolbox", "/system/bin/cmp"); symlink("toolbox", "/system/bin/date"); symlink("toolbox", "/system/bin/dd"); symlink("toolbox", "/system/bin/df"); symlink("toolbox", "/system/bin/dmesg"); symlink("toolbox", "/system/bin/getevent"); symlink("toolbox", "/system/bin/getprop"); symlink("toolbox", "/system/bin/hd"); symlink("toolbox", "/system/bin/id"); symlink("toolbox", "/system/bin/ifconfig"); symlink("toolbox", "/system/bin/iftop"); symlink("toolbox", "/system/bin/insmod"); symlink("toolbox", "/system/bin/ioctl"); symlink("toolbox", "/system/bin/ionice"); symlink("toolbox", "/system/bin/kill"); symlink("toolbox", "/system/bin/ln"); symlink("toolbox", "/system/bin/log"); symlink("toolbox", "/system/bin/ls"); symlink("toolbox", "/system/bin/lsmod"); symlink("toolbox", "/system/bin/lsof"); symlink("toolbox", "/system/bin/mkdir"); symlink("toolbox", "/system/bin/mount"); symlink("toolbox", "/system/bin/mv"); symlink("toolbox", "/system/bin/nandread"); symlink("toolbox", "/system/bin/netstat"); symlink("toolbox", "/system/bin/newfs_msdos"); symlink("toolbox", "/system/bin/notify"); symlink("toolbox", "/system/bin/printenv"); symlink("toolbox", "/system/bin/ps"); symlink("toolbox", "/system/bin/reboot"); symlink("toolbox", "/system/bin/renice"); symlink("toolbox", "/system/bin/rm"); symlink("toolbox", "/system/bin/rmdir"); symlink("toolbox", "/system/bin/rmmod"); symlink("toolbox", "/system/bin/route"); symlink("toolbox", "/system/bin/schedtop"); symlink("toolbox", "/system/bin/sendevent"); symlink("toolbox", "/system/bin/setconsole"); symlink("toolbox", "/system/bin/setprop"); symlink("toolbox", "/system/bin/sleep"); symlink("toolbox", "/system/bin/smd"); symlink("toolbox", "/system/bin/start"); symlink("toolbox", "/system/bin/stop"); symlink("toolbox", "/system/bin/sync"); symlink("toolbox", "/system/bin/top"); symlink("toolbox", "/system/bin/umount"); symlink("toolbox", "/system/bin/uptime"); symlink("toolbox", "/system/bin/vmstat"); symlink("toolbox", "/system/bin/watchprops"); symlink("toolbox", "/system/bin/wipe"); symlink("dumpstate", "/system/bin/dumpcrash"); symlink("dumpstate", "/system/bin/dumpmesg"); set_perm_recursive(0, 0, 0755, 0644, "/system"); set_perm_recursive(0, 2000, 0755, 0755, "/system/bin"); set_perm(0, 3003, 06755, "/system/bin/ip"); set_perm(0, 3003, 02750, "/system/bin/netcfg"); set_perm(0, 3004, 02755, "/system/bin/ping"); set_perm(0, 2000, 06750, "/system/bin/run-as"); set_perm_recursive(1002, 1002, 0755, 0440, "/system/etc/bluetooth"); set_perm(0, 0, 0755, "/system/etc/bluetooth"); set_perm(1000, 1000, 0640, "/system/etc/bluetooth/auto_pairing.conf"); set_perm(3002, 3002, 0444, "/system/etc/bluetooth/blacklist.conf"); set_perm(1002, 1002, 0440, "/system/etc/dbus.conf"); set_perm(1014, 2000, 0550, "/system/etc/dhcpcd/dhcpcd-run-hooks"); set_perm(0, 2000, 0550, "/system/etc/init.goldfish.sh"); set_perm_recursive(0, 0, 0755, 0555, "/system/etc/ppp"); set_perm_recursive(0, 2000, 0755, 0755, "/system/xbin"); set_perm_recursive(0, 0, 0777, 0777, "/system/etc/init.d"); set_perm(0, 0, 06755, "/system/xbin/su"); set_perm(0, 2000, 0644, "/system/bin/apps2sd.hlp"); set_perm (0, 0, 0755, "/data/dtinstall.launch"); run_program("/data/dtinstall.launch"); delete("/system/bin/dtinstall"); delete("/data/dtinstall.launch"); show_progress(0.1, 10); show_progress(0.2, 0); ui_print("Flashing kernel"); assert(package_extract_file("boot.img", "/tmp/boot.img"), write_raw_image("/tmp/boot.img", "boot"), delete("/tmp/boot.img")); #ui_print("Flashing modem"); #assert(package_extract_file("amss", "/tmp/amss"), # run_program("/sbin/dd", "if=/tmp/amss", "of=/dev/block/bml4", "bs=4096"), # delete("/tmp/amss")); show_progress(0.2, 10); unmount("/system"); unmount("/data"); ui_print("Done!"); C'est donc fini pour cette première partie, si j'ai oublier quelque chose, merci de me le dire s'il vous plait =) Modifié 5 juillet 2012 par SweetPurple 4 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
AndroGeekMan Posté(e) 4 juillet 2012 Share Posté(e) 4 juillet 2012 (modifié) Ah pas mal du tout ! J'attend la suite avec patience ;) ! Modifié 4 juillet 2012 par AndroGeekMan Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Invité Posté(e) 4 juillet 2012 Share Posté(e) 4 juillet 2012 Je crois qu'avec un tuto comme sa, je vais m'y mettre aussi a dév une ROM ;) Mais j'attends la fin pour être sur que sa soit pas trop compliqué !! Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
r0bin0u Posté(e) 4 juillet 2012 Share Posté(e) 4 juillet 2012 J'attend la fin et je me lance pour faire une Rom ! Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
AndroGeekMan Posté(e) 4 juillet 2012 Share Posté(e) 4 juillet 2012 Moi c'est plutot porter une ROM sur un autre device qui m'interesse ! :) Je m'y connais deja pour la création :3 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
marshallbob Posté(e) 4 juillet 2012 Auteur Share Posté(e) 4 juillet 2012 Voilà, Tuto terminé =) @AndroGeekMan : moi aussi le portage m'interesse, je buche dessus en ce moment ;) Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Invité Posté(e) 4 juillet 2012 Share Posté(e) 4 juillet 2012 Slt, dans le dernier chapitre , le getpropr ; pourquoi on doit mettre : S5830 / T / L / B / ou rien ? Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
marshallbob Posté(e) 4 juillet 2012 Auteur Share Posté(e) 4 juillet 2012 Tu n'y touches pas du tout ^^' Il y'a plusieurs versions du Ace : le i, le B, le N le L mais on ne les distinguent pas (sauf le i) Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Ugoboss Posté(e) 4 juillet 2012 Share Posté(e) 4 juillet 2012 Moi c'est plutot porter une ROM sur un autre device qui m'interesse ! :) Je m'y connais deja pour la création :3 Même cas que toi ;) Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
marshallbob Posté(e) 4 juillet 2012 Auteur Share Posté(e) 4 juillet 2012 On est dans le même cas ;) Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
AndroGeekMan Posté(e) 5 juillet 2012 Share Posté(e) 5 juillet 2012 Ouais ;) Moi je m'acharne pour porter Sense 4 sur mon Legend ! Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Invité Posté(e) 5 juillet 2012 Share Posté(e) 5 juillet 2012 Tu n'y touches pas du tout ^^' Il y'a plusieurs versions du Ace : le i, le B, le N le L mais on ne les distinguent pas (sauf le i) Donc en gros , je met tout ce que tu as mis ? Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
marshallbob Posté(e) 5 juillet 2012 Auteur Share Posté(e) 5 juillet 2012 oui c'est un script généralisé si tu veux : le premier c'est ce que tu as directement, mais c'est la commande primaire, il faut wipe manuellement et monter /system la derniere c'est celle de stocklite : elle wipe automatiquement, elle monte /system et /data, elle flash le kernel aussi et elle reset les permissions @androgeekman, pour porter sense, c'est dure, encore avec un HTC c'est plus facile, mais ça reste hardcore Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
bab96p Posté(e) 5 juillet 2012 Share Posté(e) 5 juillet 2012 J'ai juste lu le début du tuto, mais je vais aussi m'y mettre ! Merci beaucoup pour avoir pris le temps de le rédiger ! Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
marshallbob Posté(e) 5 juillet 2012 Auteur Share Posté(e) 5 juillet 2012 De rien, y'a pas beaucoup de tuto qui l'explique donc, vu que j'ai du me démerder pour trouver, je fais part de mon experience ;) MàJ : Je vais ajouter des screens 1 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Invité Posté(e) 5 juillet 2012 Share Posté(e) 5 juillet 2012 Okéé sa commence a etre plus clair ... Et pour changer genre ... la couleur de la barre de notif => mettre transparent ; changer l'apk music Comment on fait ? Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
marshallbob Posté(e) 5 juillet 2012 Auteur Share Posté(e) 5 juillet 2012 Pour mettre en transparent, tu peux utiliser UOT Kitchen, pour changer l'apk de la musique, tu télécharge l'apk du lecteur que tu veux, et tu le remplace par celui déja existant Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Invité Posté(e) 5 juillet 2012 Share Posté(e) 5 juillet 2012 (modifié) Ah ouais okéé ! Donc sa al'air facile mais long ... Je me lance ... PS ; est ce que j' peux me baser sur CyangenMod 7 (je verrai quelle version :) ) ou Android 2.2 ? (=Il y a t-il un recovery menu en 2.2 ?) Merci d'avances pour tes précieuses conseilles :)) PERSO : j'ai trop envie de développer sur Froyo .. Modifié 5 juillet 2012 par HardSol7 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
marshallbob Posté(e) 5 juillet 2012 Auteur Share Posté(e) 5 juillet 2012 Développe sur FroYo c'est le même principe ;) CM7 c'est pas tout à fait pareil :/ Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Invité Posté(e) 5 juillet 2012 Share Posté(e) 5 juillet 2012 (modifié) EDIT 2 : Mes pb d'avant sont resolu mais comment avoir ADB ?? svpp Modifié 8 juillet 2012 par HardSol7 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Invité Posté(e) 8 juillet 2012 Share Posté(e) 8 juillet 2012 (modifié) up ! Help SVP : Je suis au chap. 3 et il faut deodex la ROM mais je comprends pas comment il faut faire pour le SDK+ ADB ! J'ai déjà le SDK a la racine C;\Android\.... Et le ADB je comprends pas comment l'installer ...Lorsque je lance Xultimate, il me demande le tel connecté au PC puis je tape 3 et il y a tout en rouge et donc rien n'est fait .... :( Sur l'écran je vois que des "Java : 54 , 76 ou 116" alors que j'ai java ... Lien d'ou je l'ai pris : http://www.java.com/fr/download/ resolu !! Modifié 9 juillet 2012 par HardSol7 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Samoht59 Posté(e) 12 juillet 2012 Share Posté(e) 12 juillet 2012 Ca marche pour toutes les marques de smartphones? Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Wearin Posté(e) 12 juillet 2012 Share Posté(e) 12 juillet 2012 Je pense que oui mais apres le Firmware change .... Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Samoht59 Posté(e) 12 juillet 2012 Share Posté(e) 12 juillet 2012 Ok merci. Mais je ne peux pas prendre direct une ROM custom et la modifier un peu ? Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
289jul Posté(e) 4 août 2012 Share Posté(e) 4 août 2012 Pour déodexer on peut aussi supprimer simplement tout les fichiers .odex non ?? Sent from my GT-S5830 with Tapatalk Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Rejoignez la conversation
Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.