Génération mobiles - Forum smartphones & tablettes
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.

Génération mobiles - Forum smartphones & tablettesConnexion

Forum Android pour smartphones & tablettes Asus, HTC, Huawei, Honor, LG, Nokia, OnePlus, Samsung, Sony, Xiaomi... Retrouvez applications, astuces, aide, jeux, tutos,...

description[GUIDE][4.0+] Ajouter des options et changer le layout (disposition) du fichier Settings.apk [03/07/2013] Empty[GUIDE][4.0+] Ajouter des options et changer le layout (disposition) du fichier Settings.apk [03/07/2013]

more_horiz
Ajouter des options dans Settings.apk et changer le layout

Préambule


Ce guide vous permet d'ajouter des options et de changer le layout du fichier Settings.apk de votre ROM.
Chaque partie dispose d'un niveau de difficulté ; 5 étoiles étant le plus complexe.

Pré-requis



  • ApkTool et Java
  • Un éditeur de texte performant comme Notepad++ pour Windows et Geany pour Linux.
  • Zipsigner sur votre appareil Android


Note ADB : si vous êtes sous Linux, lancez à CHAQUE FOIS votre programme (ApkTool et Notepadd++ avec ROOT/SUDO)

Décompilation de Settings.apk

Difficulté : ★★☆☆☆

1/ Ouvrez une invite de commandes dans le répertoire où apktool.jar est stocké.
2/ Récupérez le fichier apk depuis votre appareil. Soit vous transférez le fichier via AirDroid ou en USB classique soit vous passez par une commande ADB :

Code:

adb pull /system/app/Settings.apk


3/ Idem pour le framework et installez-les :

Code:

adb pull /system/framework/framework-res.apk

Puis :

Code:

java -jar apktool.jar if framework-res.apk


4/ Décompilez le fichier Settings.apk :

Code:

java -jar apktool.jar d -s Settings.apk


Editez les "Strings" de votre Settings.apk

Difficulté : ★★☆☆☆

1/ Avec votre gestionnaire de fichiers PC, allez dans le répertoire où Settings.apk a été décompilé.
2/ Recherchez et ouvez le fichier suivant via Notepad++ : res/xml/settings_headers.xml
3/ Maintenant, vous trouvez l'ent-ête que vous voulez éditer. Par exemple, on va changer le "Options de développement/Developer Settings" en "Déconseillé aux noobs".
Pour cela, il faut modifier cette référence string dans ce code :

Code:

<header android:icon="@drawable/ic_settings_development" android:id="@id/development_settings" android:title="@string/development_settings_title" android:fragment="com.android.settings.DevelopmentSettings" />

Le android:title correspond à ce qu'on veut modifier donc ouvrez votre fichier Strings.xml (toujours avec Notepad++ les .xml) pour le Français. Si vous le trouvez pas, ouvrez celui par défaut.
Faites un CTRL+F en recherchant development_settings_title

Code:

<string name="development_settings_title">Developer options</string>

Entre les > et < faites vos modifications. Mettez "Déconseillé aux noobs" comme on avait dit par exemple, mais vous pouvez laisser libre court à votre imagination Very Happy

Code:

<string name="development_settings_title">Déconseillé au noobs</string>


4/ Sauvegardez et recompilez le fichier Settings.apk.


Editez les icônes des options de Paramètres

Difficulté : ★★★☆☆
1/ Allez dans le dossier où vous avez décompiler le Settings.apk
2/ Ouvrez le fichier res/xml/settings_headers.xml avec Notepad++
3/ Ici, on va modifier le "Options de développement/Development Settings" pour avoir l'icône "ic_settings_advanced" (inclus dans les ROMs basés CyanogenMod uniquement)
4/ Recherchez le header que vous voulez éditer, soit celui-ci :

Code:

<header android:icon="@drawable/ic_settings_development"  android:id="@id/development_settings"  android:title="@string/development_settings_title"  android:fragment="com.android.settings.DevelopmentSettings" />


5/ Editez l'emplacement de android:icon vers l'icône que vous voulez. Les icônes se trouvent dans différentes dossiers drawable comme le hdpi, mdi, ldpi, xhdpi, etc...
Dans notre exemplen on veut mettre l'icône de "ic_settings_advanced" donc voici ce qu'on doit mettre :

Code:

<header android:icon="@drawable/ic_settings_advanced" android:id="@id/development_settings" android:title="@string/development_settings_title" android:fragment="com.android.settings.DevelopmentSettings" />


6/ Si vous ne voulez pas ajouter d'icônes, il faut maintenant sauvegarder puis recompiler.

7/ Pour ajouter des icônes :
Pour avoir des icônes qui conviennent bien en terme de dimensions, regardez ce fichier de Google : Android_Design_Icons_20120814
a/ Recherchez l'icône que vous voulez ajouter. Assurez-vous que cela colle avec la résolution d'icône de votre écran (regardez les icônes "ic_settings" actuels de l'apk utilisé)
b/ Copiez-le dans le bon dossier (hdpi, xhdpi, ldpi....)
c/ Nommez-le de cette manière : "ic_settings_nom_voulu".
d/ Modifiez la référence le fichier xml pour pointer sur votre icône : @drawable/ic_settings_nom_voulu
e/ Recompilez


Ajouter des options dans les en-têtes des paramètres

Difficulté : ★★★★☆
Note : le fait d'ajouter des paramères permet par exemple d'ouvrir Goomanager pour des recherches de mises à jour et facilement depuis le menu "A propos de l'appareil" et "Options de développement".

1/ Ouvrez le fichier settings_headers.xml
2/ Localisez l'endroit où vous voulez ajouter une option puis ajoutez une nouvelle ligne :

Code:

<header android:icon="@drawable/ic_settings_name" android:id="@id/id" android:title="@string/title">
        <intent android:targetPackage="pkgName" android:action="android.intent.action.MAIN" android:targetClass="pkgName.Activity" />
    </header>


3/ Quoi modifier :

  • Modifiez le android:icon pour l'icône de votre choix (cf partie ci-dessus)
  • Changez le android:targetPackage pour le nom de package de l'application que vous voulez ouvrir. Ceci se trouve dans le fichier AndroidManifest.xml de l'application en question. (1ère ligne)
  • Changez le android:targetClass pour le nom de package, suivi de l'activité que vous voulez ouvrir. Idem, regardez dans le AndroidManifest de l'application souhaité.
  • Changez le android:id pour un id que vous pouvez ajouter dans values/ids.xml (ou supprimez si vous voulez).

4/ Recompilez


Ajouter des séparateurs dans les Paramètres

Difficulté : ★★★☆☆
Ajoutez sur l'écran principal des paramètres :
1/ Ouvrez votre settings_headers.xml
2/ Localisez l'endroit où vous voulez ajouter votre séparateur.
3/ Ajoutez cette ligne :

Code:

<header android:id="@id/id" android:title="@string/title" />


Ce qu'il faut modifier :

  • Le android:id par celui que vous avez mis dans values/ids.xml (ou supprimez si vous l'aviez supprimé précédemment)
  • Le android:title pour le titre de votre Strings.xml

4/ Si c'est tout ce que vous voulez faire, vous pouvez recompiler.

Pour ajouter ces sous-menus :
1/ Ouvrez le sous-menu que vous voulez pour éditer les xml (il est assez simple de repérer lequel est-ce)
2/ Localisez l'endroit où vous voulez ajouter un séparateur.
3/ Ajoutez le code suivant : (au début de l'endroit où vous voulez avoir le séparateur)

Code:

<PreferenceScreen android:title="@string/title" android:key="key">


Juste avant le séparateur :

Code:

</PreferenceScreen>


A changer :

  • Le android:title pour le titre de votre Strings.xml
  • Changez la "key" par ce que vous voulez.

4/ Recompilez.


Réordonner les Paramètres

Difficulté : ★★☆☆☆
1/ Ouvrez soit le settings_headers.xml soit un sous-menu, le principe étant le même.
2/ Coupez/Collez les différentes options dans l'ordre de votre choix.
3/ Recompilez.


Ajoutez des options dans les sous-menus

Difficulté : ★★★☆☆
Vous voulez ajouter un menu "Crédits" dans le menu "A propos de l'appareil" ? Voilà ce qu'il faut faire :

1/ Ouvrez votre sous-menu xml (device_info_settings.xml c'est celui pour "A propos de l'appareil" pour info)
2/ Recherchez l'endroit voulu pour votre nouvelle option et ajoutez une nouvelle ligne.
3/ Copiez/collez ce code :

Code:

<Preference android:title="@string/title" android:key="key" android:summary="@string/summary" style="?android:preferenceInformationStyle" />


A changer :

  • Le android:title pour le titre que vous aviez ajouter dans values/strings.xml
  • Le android:key pour ce que vous voulez
  • Le android:summary pour le texte souhaité le plus long que vous avez ajouté dans values/strings.xml

4/ Recompilez.


Bonus : Forcer le menu "Options de développement" affiché par défaut sous JB 4.2

Difficulté : ★★☆☆☆
1/ Ouvrez le settings_headers.xml
2/ Recherchez ce code :

Code:

<header android:icon="@drawable/ic_settings_development" android:id="@id/development_settings" android:title="@string/development_settings_title" android:fragment="com.android.settings.DevelopmentSettings" />

3/ Changez le id de "development_settings" en "development_settings_force" :

Code:

<header android:icon="@drawable/ic_settings_development"  android:id="@id/development_settings_force"  android:title="@string/development_settings_title"  android:fragment="com.android.settings.DevelopmentSettings" />

4/ Ouvrez le fichier values/ids.xml
5/ Ajoutez la ligne suivante :

Code:

<item type="id" name="development_settings_force">false</item>

6/ Recompilez.



Dernière étape : Recompiler

Difficulté : ★★☆☆☆
1/ Ouvrez une invite de commande toujours dans le répertoire où il y a apktool.jar
2/ Tapez cette commande :

Code:

java -jar apktool.jar b Settings

3/ Placez le nouveau fichier Settings.apk (mais non signé) dans votre appareil :

Code:

adb push Settings/dist/Settings.apk /sdcard/

4/ Sur votre appareil Android, ouvrez l'application Zipsigner et sélectionnez le fichier Settings.apk via le bouton in/out.


5/ Sélectionnez "platform" dans le menu déroulant.
6/ Appuyez sur "Sign" pour signer l'apk
7/ Une fois fait, lancez les codes suivants dans l'invite de commandes de votre PC (certaines personnes devront peut-être lancer "adb root" au préalable).

Code:

adb remount

Code:

adb shell cp /system/app/Settings.apk /system/app/Settings.bak

Code:

adb shell cp /sdcard/Settings-signed.apk /system/app/Settings.apk


8/ Redémarrez le téléphone.
9/ Dernière étape ultra important : Enjoy ! Very Happy


Autres infos


Source




Dernière édition par primokorn le Mer 24 Juil 2013 - 10:23, édité 1 fois

description[GUIDE][4.0+] Ajouter des options et changer le layout (disposition) du fichier Settings.apk [03/07/2013] EmptyRe: [GUIDE][4.0+] Ajouter des options et changer le layout (disposition) du fichier Settings.apk [03/07/2013]

more_horiz
:merci: 

Voilà qui occupera mes vacances entre 2 flashs Wink

description[GUIDE][4.0+] Ajouter des options et changer le layout (disposition) du fichier Settings.apk [03/07/2013] EmptyRe: [GUIDE][4.0+] Ajouter des options et changer le layout (disposition) du fichier Settings.apk [03/07/2013]

more_horiz
Bon boulot,
Interressant
Merci

description[GUIDE][4.0+] Ajouter des options et changer le layout (disposition) du fichier Settings.apk [03/07/2013] EmptyRe: [GUIDE][4.0+] Ajouter des options et changer le layout (disposition) du fichier Settings.apk [03/07/2013]

more_horiz

Sujet déplacé dans Logiciels et tutoriels nécessaires au développement

:merci: cher primokorn pour ce super tuto

description[GUIDE][4.0+] Ajouter des options et changer le layout (disposition) du fichier Settings.apk [03/07/2013] EmptyRe: [GUIDE][4.0+] Ajouter des options et changer le layout (disposition) du fichier Settings.apk [03/07/2013]

more_horiz
Merciiiiiiiiiiiiiiiiiiiiiiiii,grâce à ce topic,j'ai pu virer les options inutiles sur ma Ripper ROM Wink

description[GUIDE][4.0+] Ajouter des options et changer le layout (disposition) du fichier Settings.apk [03/07/2013] EmptyRe: [GUIDE][4.0+] Ajouter des options et changer le layout (disposition) du fichier Settings.apk [03/07/2013]

more_horiz
[GUIDE][4.0+] Ajouter des options et changer le layout (disposition) du fichier Settings.apk [03/07/2013] 2325459160 Bravo et merci pour ce beau tuto cheers 

description[GUIDE][4.0+] Ajouter des options et changer le layout (disposition) du fichier Settings.apk [03/07/2013] EmptyRe: [GUIDE][4.0+] Ajouter des options et changer le layout (disposition) du fichier Settings.apk [03/07/2013]

more_horiz
@PrimoKorn : t'es au top toi,

encore une fois : merci !!
privacy_tip Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
power_settings_newSe connecter pour répondre