Aller au contenu

[Tuto]Vous aussi, vous aimez les thèmes pour les différentes rom ?


Dagda-Esus

Recommended Posts

Vous aussi vous êtes impressionné par les jolies thèmes des roms de cyano, vous aussi vous tournez sur une rom android sans rosy/sense... mais vous ne savez pas comment vous y prendre? Alors, je vais vous expliquer ;)

Tout d'abord, sachez que je suis étudiant et que j'apprécit les bières :$

Suivez le guide :p

Pour commencé, je vais décomposé le tuto en deux parties... la partie simple (qui vous permettra de faire 80% du thème si vous faites un thème foncé (mais 100% des thèmes claires :p) :

Il s'agit de la modification des images du thème

Puis en second, je vais vous parlé du plus dur :

la modification des couleurs des textes :p

Pensez bien a bien lire le tuto avant de commencé a faire n'importe quoi :p

Le Grand 1 facile :

Pensez a gardez un milieu de travail PROPRE !!!

Non je ne vous parle pas de nettoyé votre bureau, de faire les poussière et de viré la bouteille de coca ou le vieux paquet de tuc a moitié entamé mais bien de pensé a travaillé proprement, se faire un dossier "source" a part, où vous stockerez vos images et un dossier "ThemeMOD" (par exemple) où vous modifierez vos apk et quand vous aurez finit, vous virerez l'inutile pour le transformé en update.zip.

Ne pas travaillé directement dans la pour laquelle vous faites le thème. Et gardé votre dossier source organisé, avec une arborescence identique a celle d'une rom (c'est le plus simple même si ça oblige a faire pleins de clics)

Changer des images dans un fichier APK :

Extraire le fichier APK :

Il faut déjà savoir qu'un fichier APK n est rien d autre qu'un simple fichier ZIP. Pour winrar, il suffit de l'ouvrir puis de l'extraire... Pour les autres, j'avoue que je ne sais pas comment ça se passe mais dans tous les cas, simplement renommé le fichier en .zip au lieu du .apk permet d'extraire le fichier avec n'importe quel logiciel de décompression.

Pensez a extraire l'apk dans un dossier a son nom.

Importer les images dans le dossier extrait :

Voici l'étape fondamentale pour faire un thème : le remplacement des images (qui bien-sur ne peut pas se faire directement, d'où l'étape d'avant et l'étape suivante ;) )

Alors là c'est encore aussi simple... il suffit de faire un copier coller des images préalablement choisit dans le dossier de l'apk extraite.

si vous voulez modifié des images, c'est possible aussi, il suffit de sortir gimp et de modifié les images avec, et hop le tour est jouer (je ne vais pas vous apprendre a vous servir d'un logiciel de retouche d'images, je ne sais déjà pas m'en servir moi-même)

Refaire le fichier apk a partir du dossier modifié

Alors là c'est le plus dur :p

Vous reprenez un logiciel telque 7zip, et vous compressez le dossier en .zip (bien-sur la méthode de compression optimale est la meilleure puisque la place est limitée sur le téléphone ^^) et renommez le .zip en .apk

Puis vous le signez avec ceci

pour cela :

-->vous extrayez le zip que je vien de vous faire téléchargé à la racine de votre dossier de travail

-->vous lancez un cmd (sous linux, il faudra faire des recherches, je tourne sous windows désolé...)

-->vous tapez :

java -jar signapk.jar testkey.x509.pem testkey.pk8 '''nom_de_votre_zip_sans_espace'''.zip '''nom_de_votre_apk_maintenant_signee'''.zip

et hop maintenant vous avez votre bel apk modifié... mais a quoi cela sert-il? qu'estce qu'on en fait maintenant ? et d'ailleurs c'est bien beau tout ça mais qu'est ce que je modifit moi? c'est trop abstrait ça !

Pas de paniques, je vais vous parlé plus concrètement de se que vous pouvez modifié

bien-sur, je ne vais pas vous faire une liste exostive de tout les fichiers et qu'estce qu'ils font, ça serait trop long et vous ne liriez pas tout...

mais pour simplifié, il y a deux composants principaux dans une rom (du point de vu thème !) :

-->le framework-res.apk

-->le launcher.apk

Voici a peu près les fichiers que j'ai identifié là dedans

Dans le framework :

->Dans \framework-res\res\drawable\ :

->la barre de notification : statusbar_background.png

->la barre qu'on fait glissé pour voir les notifications : status_bar_close_on.9.png

->le wallpaper par défaut : default_wallpaper.jpg

->divers boutons : tout se qui commence par "btn_" (les miniatures suffisent à trouvé lequel c'est

->les emoticones : tout se qui commence par "emo_im"

->les icones dans les barres de menu : "ic_menu_"

->le fond des pop up (donc pour modifié le lockscreen et toutes les autres fenêtres d'information) :

->popup_full_dark.9.png

->popup_top_dark.9.png

->popup_center_dark.9.png

->popup_bottom_dark.9.png

->les icones dans la barre de notification : tout se qui commence par : "stat_"

->les icones en général : "ic_" (là c'est vague mais vous trouverez pas mal de truck trop divers, c'est pour ça que c'est a la fin de la liste ^^)

Dans le launcher :

->\launcher\res\drawable ->les wallpaper : "wallpaper_"

->les miniature des wallpaper : "wallpaper_[...]_small.jpg"

->le fond du launcher : "pattern_carbon_fiber_dark.png"

->le reste c'est divers icones non modifié

->\launcher\res\drawable-port\ et .\drawable-land ->l'icone du launcher a l'état normal : tray_handle_normal.png

->l'icone du launcher quand il est sélectionné (avec le trackpad en général) : tray_handle_selected.png

->l'icone du launcher quand vos mettez votre doigt dessus ou que vous appuyé sur le trackpad après l'avoir sélectionné : tray_handle_pressed.png

->la barre du launcher quand vous supprimé une icone du bureau, que vous la déplacé ou que vous y mettiez une : delete_handle.png et delete_handle_normal.png

->l'image sur la barre du launcher : "ic_" (en fonction des situations)

->le fond du widget de recherche (il me semble) : "search_bg.9.png"

Attention aux images .9.png :

En effet pour pouvoir remplacer une de ces images il vous faut parfois les passer dans eclipse (j'en ai eu besion qu'une fois mais il faut verifié quand même quand vous les modifié ^^), un tuto est disponible sur XDA

Avec ça, vous pouvez obtenir des truks comme ça :

device8.pngdevice1.pngalienaqua2of2.png

On aime ou on n'aime pas... là n'est pas la question mais là on voit que l'on peut modifié vraiment déjà tout android, on a plu de limites :p

Bien-sur, là les widget ont été modifié, et les icônes aussi mais ça, ça se passe dans les dossiers apk des applications pour les icônes (je ne peux pas vous dire quel sera le nom du fichier de l'icône... mais suffit d'affiché les miniature sur votre OS pour voir laquelle est celle a modifié... et pour les Widgets inclut de base, ça se passe dans settings et music.

Reconstruire notre Rom

Pour reconstruire votre ROM, il suffit simplement de la compresser au format ZIP , puis de signer le fichier obtenu

- Voyons tout d abord une structure simple pour mettre a jour les fichiers que vous avez modifié

Pour créer un fichier update.zip, nous devons avoir deux répertoires en racine :

Un répertoire "system"

Et un ensemble de répertoire sous-répertoire : "META-INF\com\google\android"

Dans le répertoire "system" créer deux répertoire, un répertoire "app», contenant les applications APK que vous avez modifiez, et un répertoire "framework", contenant le fichier "framework-res.apk" et le fichier "services.jar" que vous avez créé.

Dans le répertoire "android" (situé dans "META-INF\com\google\»), créer un fichier "update-script" (SANS EXTENSION), et ajoutez y ceci :

copy_dir PACKAGE:system SYSTEM:

Cette commande est se que va faire votre téléphone lorsque vous lui direz "apply update.zip", votre téléphone va simplement copier le contenu du répertoire system de votre fichier update.zip que vous avez créer et le placé dans la partition system du téléphone.

Compressez les répertoires "META-INF" et "system" dans un fichier zip nommer update.zip

Vous reprenez un logiciel telque 7zip, et vous compressez le dossier en .zip (bien-sur la méthode de compression optimale est la meilleure puisque la place est limitée sur le téléphone ^^)

Puis vous le signez avec ceci

pour cela :

-->vous extrayez le zip que je vien de vous faire téléchargé à la racine de votre dossier de travail

-->vous lancez un cmd (sous linux, il faudra faire des recherches, je tourne sous windows désolé...)

-->vous tapez :

java -jar signapk.jar testkey.x509.pem testkey.pk8 '''update'''.zip '''update_signee'''.zip

Et maintenant la partie dure !

Je ne l'ai jamais faite personnellement alors je fait un copier coller du tuto du forum smartphonefrance fait par zakari (que je remercie parce qu'il m'a transmit son savoir généreusement :p)

Pour cela, il vous faut :

Avoir installé le le SDK et Eclipse,

Avoir la machine Java d installé sur son système,

Notepad++

Un éditeur hexadecimal

Smali et BakSmali

Editer un fichier XML :

Il est impossible de lire un fichier XML contenu dans les APK Android, pour cela il faut l ouvrir avec un éditeur hexadécimal.

Un tuto sur XDA est disponible pour "décrypter" ce fichier :

forum XDA

Pour ce qui nous intéresse ce sont juste de trouver les couleurs.

La seul que je modifie pour le moment (et dont je sois sur), c'est pour la couleur des notifications.

Pour la changer, éditer le fichier "/framework/framework-res.apk/res/layout/status_bar.xml" avec un éditeur hexadécimal, rechercher la valeur hexadécimal "00 00 1C" remplacer les 6 caractères suivant par une valeur de couleur en hexadécimal ( Dispo ICI )

Editer un fichier .dex :

C est ici que les choses ce compliques

Pour changer la couleur de l horloge et de la date dans la barre de notifications il faut éditer le fichier "/framework/services.jar" .

Pour cela, ouvrir le fichier services.jar avec votre outil de décompression (ATTENTION L OUVRIRE PAS LE DECOMPRESSER).

Extraire le fichier Class.dex dans un répertoire contenant les fichiers Smali.jar et BakSmali.jar (il est conseiller de le faire dans le répertoire Tools du SDK).

Ouvrir une invite de commande MS-DOS depuis ce répertoire (touche Shift+clic droit pour avoir l invite de commande ouverte dans le répertoire courant).

Taper la commande suivant :

java -jar baksmali.jar -o classout/ classes.dex

Un nouveau répertoire va être créé, "classout", aller dans : "classout/com/android/server/status".

Pour éditer la couleur de l horloge:

Avec Notepad++ éditer le fichier "StatusBarIcon.smali".

Recherchez "setTextColor", vous trouverez à peu prés ca :

    .line 46 
   const/high16 v6, -0x100 

   invoke-virtual {v4, v6}, Landroid/widget/TextView;->setTextColor(I)V

La ligne "const/high16 v6, -0x100" correspond a la couleur noir, pour l avoir en blanc, remplacez la par "const v6, -0x1"

Enregistrer la modification et quitter l éditeur

Pour éditer la couleur de la date dans la barre de notification:

Avec Notepad++, éditer le fichier "StatusBarService.smali"

Recherchez "mDateView:Lcom/Android/server/status/DateView", vous devez trouvez ceux ci :

    iput-object v7, p0, Lcom/android/server/status/StatusBarService;->mDateView:Lcom/android/server/status/DateView; 

   .line 275 

Remplacer le par :

    iput-object v7, p0, Lcom/android/server/status/StatusBarService;->mDateView:Lcom/android/server/status/DateView; 
   const v8, 0xffffffff 

   invoke-virtual {v7, v8}, Landroid/widget/TextView;->setTextColor(I)V 

   .line 275

Voila nous avons fini d éditer les fichiers contenus dans le fichier class.dex :D

Rendons lui ca vrai forme

Toujours dans notre fenêtre de commandes MS-DOS (situer dans le répertoire ou est le fichier Baksmali.jar et le répertoire classout)

Taper la commande suivante :

java -Xmx512M -jar smali.jar classout/ -o new-classes.dex

Vous obtenez un fichier new-class.dex .

Renommez le en class.dex (prenez soin de supprimer ce lui qui vous a permis d extraire le répertoire classout précédemment)

Dans vous utilitaire de décompression (toujours ouvert depuis le début de cette modification sur le fichier services.jar) supprimer le fichier class.dex et ajouter le nouveau class.dex, fermer votre utilitaire de décompression.

Voila nous avons modifié la couleur de l horloge et de la date dans la barre de notification

Modifié par Dagda-Esus
Lien vers le commentaire
Partager sur d’autres sites

  • Réponses 78
  • Créé
  • Dernière réponse

Top forumeurs sur ce sujet

Alors là : petit post où je vais vous mettre a disposition mon fichier source et le fichier source de zaraki (de smartphonefrance, qui a fait un thème pour un widget de koxx) :

sources du thème black

sources du thème blanc (a noté que sur le thème blanc le clavier android est blanc)

Hop je rajoute un rapide résumé des actions a effectuer :

->décompresser le zip de la rom

->décompresser les apk

->remplacer les images voulut

->resigné les apk modifié (principalement launcher.apk et framework-res.apk pour modifié android en général, puis chercher dans les autres apk pour modifié les widget et les icones des applications)

->supprimé les apk et fichiers inutile

->pensé a vérifié que le script d'update est le bon :)

->resigné le tout

->l'installé comme une rom sur le tel :)

Et puis un petit script sous windows qui automatise la création du thème (a adapté !!!!!!!! ne pas me demandé pourquoi ça marche pas si vous n'avez pas jetté un coups d'oeil au script avant :p)

IL NE FAIT QUE LE THEME, IL FAUT DONC FLASHER LA ROM PUIS AVEC L'UPDATE.ZIP QUE VOUS OBTIENDREZ LA POUR AVOIR LE THEME !!!!

alors pour l'utilisé :

->téléchargé le Build theme(sans déconné? o_o j'y aurai pas pensé :p)

->téléchargé les sources du thème voulut ou les faire a partir d'un thème

->téléchargé une rom sans sense (je sais pas se que ça ferai avec sense)

->décompressé Build theme.zip (le fichier que vous vennez de télécharger

->placé les sources dedans (en veillant a se que les sources soient nommé sources.zip ou en adaptant les premières lignes du script)

-> placé la rom voulut dans le même dossier et renommé la Luo.zip (ou adapté les lignes voulut du script (toujour dans les premières lignes)

->remplacé services.jar par celui de la rom (ou votre services.jar modifié) dans ./Dest/system/framework/

->lancé Build Theme FULL.bat

->laissez le faire

->après vous savez vous servir d'un update.zip

IL NE FAIT QUE LE THEME, IL FAUT DONC FLASHER LA ROM PUIS AVEC L'UPDATE.ZIP QUE VOUS OBTIENDREZ LA POUR AVOIR LE THEME !!!!

ps : peut être qu'un jour je l'adapterai pour qu'il modifit la rom directement... mais là, j'ai pas envie, et ça ne me sert pas

ps2 : biensur adaptez le script si vous le voulez, redistribuer le a volonté, j'ai mis des lignes de commentaire pour en comprendre le fonctionnement (et aussi parce qu'en enlevant les PAUSE, je m'y perdai xD)

Modifié par Dagda-Esus
Lien vers le commentaire
Partager sur d’autres sites

Bon mon gars je pense que tu vas voir les commandes de Thème fleurir. Enfin si les gens sont trop cons pour utiliser ton magnifique tuto ;p

Moi je commence tout juste a me bricoler un Thème. Facon rouge et noir. Basé sur GalaxoPlastic

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

...c'est l'époque des gastros. certainement un problème de compression, je t'ai répondu .

ça marche sans problème sur un système fraîchement installé et wipé. après, sur un système flashé et reflashé à foison je peux pas te dire, ça vient peut-être de là. option 'fix permissions' dans le recovery juste avant de flasher le .zip

Lien vers le commentaire
Partager sur d’autres sites

Merci pour le tuto par contre je bloque dès le début, j'ai mon application archiver avec winrar en .zip mais la commande "java -jar signapk.jar testkey.x509.pem testkey.pk8 '''overclock.apk'''.zip '''overclock.apk'''.zip" ne marche pas, la commande n'est pas reconnu :|

Lien vers le commentaire
Partager sur d’autres sites

@Dragonn :

faut rajouté C:\Program Files (x86)\Java\jre1.6.0_17\bin dans tes variables d'environnement

et bien sur avoir les fichiers signapk et testkey dans le dossier où tu execute la commande

@Dizwix :

dans le tuto, il y a la méthode pour te le faire toi même, c'est pas trop compliqué ^^

sinon le service.jar est dépendant de chaques versions de chaques rom... a chaque recompilation il est regénéré... et il est donc possible qu'il soit incompatible.

si tu connait un thème noir a jour pour ta rom, utilise le services.jar de ce thème... sinon tu n'as plus qu'a le faire toi même...

@malgon :

c'est pas une question de temps mais j'ai pas trouvé où créé une page :$

je t'envoi en mp le tuto formatté en wiki si tu veut ;)

Lien vers le commentaire
Partager sur d’autres sites

oui il n'y a pas d'extension, j'ai fais le test prenant un theme existant en le dezippant / rezippant et le signant et j'ai le message can't find update script, là j'ai trouvé, c'est que je zippé le repertoire complet au lieu de juste zippé les rep app et framework mais ensuite j'ai un autre message que j'ai inscrit ici https://www.frandroid.com/forum/viewtopic.php?id=5411&p=2

voici le message : no digest for META-INF /com/google/android/update-script

Lien vers le commentaire
Partager sur d’autres sites

  • 2 weeks later...

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...