Modification du fichier build.prop d’un appareil sous android

Posted on 28 septembre 2014 par - ANDROID, Tablette, Téléphone, Tweaks

http://shark-geekworld.com/site/modification-du-fichier-build-prop-dun-appareil-sous-android/

Dans ce tuto , nous allons voir comment modifier le fichier build.prop de votre appareil afin d’y apporter quelques améliorations.

Pour ceux qui ne le savent pas , le build.prop est un petit fichier texte qui se charge au premier démarrage de votre appareil. C’est ce fichier qui va définir certains paramètres par défaut de votre appareil , tel que la langue , sonnerie par défaut, le nom du réseau wifi etc…

Ce qui est intéressant, c’est que ce fichier peut être modifier afin d’apporter de multiples améliorations. Meilleures performances graphiques , meilleures autonomie , améliorer le réseau etc…

Pré-requis:

Le SDK android installé sur le pc (https://developer.android.com/sdk/index.html)

appareil rooté (http://shark-geekworld.com/forum/viewtopic.php?f=41&t=382)

débogage usb activé

notepad++ (http://notepad-plus-plus.org/fr/)

 

Ce tuto va ce dérouler en trois partie:

1: Modification du build.prop

2: Débriquer votre appareil suite à une mauvaise manipulation du build.prop

3: Mise à jour OTA de votre appareil suite à une modification du build.prop

1: Modification du build.prop

Nous allons premièrement récupérer le fichier build.prop de votre appareil vers l’ordinateur. ( il est possible de modifier le build.prop directement sur votre appareil , mais pas très pratique et risqué)

Nous allons donc connecter le téléphone allumé au PC et utiliser des commandes ADB (Android Debug Bridge). Ce qui veut dire que vous allez devoir ouvrir une fenêtre de commande qui vous donnera accès à la console du téléphone.

Pour ce faire :

– rendez vous dans le répertoire android-sdk-windows

– chercher le répertoire platform-tools (ne pas l’ouvrir)

– maintenez la touche shift de votre clavier appuyé + clic droit souris

– cliquez sur « ouvrir une fenêtre de commandes ici »

platform-tool

Maintenant nous allons tapez les commandes qui vont copier le fichier build.prop sur votre PC. Vous pouvez faire un copier-coller des commandes en rouge.

adb devices (sert à vérifier que votre téléphone est reconnut)

cela doit vous retourner :

* daemon not running. starting it now *
* daemon started successfully *
List of devices attached
381XXXXXXXX device

adb pull /system/build.prop (cette commande copie le fichier vers votre PC)

Maintenant vous pouvez fermer la fenêtre de commande.

Dans la seconde phase , nous allons modifier le fichier build.prop.

– Rendez vous dans le répertoire platform-tools de android-sdk (e fichier build.prop doit s’y trouver).

– Faites en une copie à un autre emplacement sur votre PC (il est important d’avoir une sauvegarde pour la suite du tuto).

– Ouvrez le fichier build.prop (qui se trouve dans platform-tools) avec notepad++

Pour faciliter la compréhension de ce fichier , je vais le diviser en deux parties :

La première partie concerne surtout l’identité de votre appareil (le nom du téléphone , version android ,numero de la mise à jour etc…). , mais aussi la langue au premier démarrage , etc… Je ne vais pas m’attarder sur cette partie , ce n’est pas ce qui nous interesse :

# begin build properties

# autogenerated by buildinfo.sh

ro.build.id=JLS36C
ro.build.display.id=JLS36C
ro.build.version.incremental=eng.develop.20140801.161550
ro.build.version.sdk=18
ro.build.version.codename=REL
ro.build.version.release=4.3
ro.build.date=Fri Aug  1 16:19:35 CST 2014
ro.build.date.utc=1406881175
ro.build.type=user
ro.build.user=develop
ro.build.host=laiyan
ro.build.tags=dev-keys
ro.product.model=WAX
ro.product.brand=WIKO
ro.product.name=s8515_wiko
ro.product.device=s8515
ro.product.board=
ro.product.cpu.abi=armeabi-v7a
ro.product.cpu.abi2=armeabi
ro.product.manufacturer=Enspert
ro.product.locale.language=fr
ro.product.locale.region=FR
ro.wifi.channels=
ro.board.platform=tegra
# ro.build.product is obsolete; use ro.product.device
ro.build.product=s8515
# Do not try to parse ro.build.description or .fingerprint
ro.build.description=s8515_wiko-user 4.3 JLS36C eng.develop.20140801.161550 dev-keys
ro.build.fingerprint=WIKO/s8515_wiko/s8515:4.3/JLS36C/eng.develop.20140801.161550:user/dev-keys
ro.build.characteristics=default
# end build properties
ro.opengles.version = 131072
wifi.interface=wlan0
persist.tegra.nvmmlite = 1
ro.sf.override_null_lcd_density = 1

#libril-icera lib path define
rild.libpath=/system/lib/libril-icera.so

keyguard.no_require_sim=true

#NFC
debug.nfc.fw_download=true
debug.nfc.se=true

# use glcomposer as the default compositor
persist.tegra.compositor=glcomposer

#support dynamic resolution change property
ro.streaming.video.drs=true

#disable Miracast game mode support
nvwfd.gamemode = 0

#max resolution supported for Miracast is 720p, represented interms of macroblocks
nvwfd.maxresolution_macroblocks = 3600
ro.callvibrate.enable=0
ro.custom.build.version=WIKO WAX Version 8
ro.custom.build.updateversion=WIKO WAX Version 24
ro.tinno.build.version=S8515_PR4_05_24
persist.sys.timezone=Europe/Paris
media.httplive.max-bw = 360000

La deuxième partie , située après la ligne # ADDITIONAL_BUILD_PROPERTIES…… est beaucoup plus intéressante. C’est ici que nous allons pouvoir améliorer certains comportement en modifiant ou ajoutant quelques tweaks.
Vous en trouverez de nombreux sur les forums spécialisés tels que XDA. Mais je vais vous donnez ceux que j’utilisent pour mes ROM. Vou pouvez faire un copier coller de ce qui vous interesse , puis sauvegarder et fermer notepad++:
# ADDITIONAL_BUILD_PROPERTIES
#

#Dalvik Virtual Machine tweaks.
dalvik.vm.checkjni=false
dalvik.vm.dexopt-data-only=1
dalvik.vm.heapstartsize=5m
dalvik.vm.heapgrowthlimit=48m
dalvik.vm.heapsize=64m
dalvik.vm.heapminfree=512k
dalvik.vm.heapmaxfree=8m
dalvik.vm.verify-bytecode=false
dalvik.vm.execution-mode=int:jit
dalvik.vm.lockprof.threshold=250
dalvik.vm.dexopt-flags=m=v,o=y
dalvik.vm.stack-trace-file=/data/anr/traces.txt
dalvik.vm.jmiopts=forcecopy

#Locks default launcher app in memory
ro.HOME_APP_ADJ=1

#Grpahics & performances tweaks
debug.sf.hw = 1
debug.composition.type = c2d
debug.enabletr = true
debug.qctwa.preservebuf = 1
ro.sf.compbypass.enable=1
video.accelerate.hw=1
ro.media.enc.hprof.vid.fps=75
debug.egl.hw=1
persist.sys.use_16bpp_alpha=1
debug.performance.tuning=1

#Battery improvements
pm.sleep_mode=1
ro.ril.disable.power.collapse=0
persist.sys.shutdown.mode=hibernate
wifi.supplicant_scan_interval=180
ro.mot.eri.losalert.delay=1000 could brake tethering.
ro.ril.power_collapse=1
ro.mot.eri.losalert.delay=1000

#Media quality improvements
media.stagefright.enable-player=true
media.stagefright.enable-meta=true
media.stagefright.enable-scan=true
media.stagefright.enable-http=true
media.stagefright.enable-record=false
ro.media.enc.jpeg.quality=100
ro.media.dec.jpeg.memcap=8000000
ro.media.enc.hprof.vid.bps=8000000
ro.media.capture.maxres=8m
ro.media.panorama.defres=3264×1840
ro.media.panorama.frameres=1280×720
ro.camcorder.videoModes=true
ro.media.enc.hprof.vid.fps=65

#Disables built in error reporting.
profiler.force_disable_err_rpt=1
profiler.force_disable_ulog=1

#Better net speeds.
net.tcp.buffersize.default=4096,87380,256960,4096, 16384,256960
net.tcp.buffersize.wifi=4096,87380,256960,4096,163 84,256960
net.tcp.buffersize.umts=4096,87380,256960,4096,163 84,256960
net.tcp.buffersize.gprs=4096,87380,256960,4096,163 84,256960
net.tcp.buffersize.edge=4096,87380,256960,4096,163 84,256960

#3G tweaks.
ro.ril.hep=0
ro.ril.hsxpa=3
ro.ril.gprsclass=12
ro.ril.enable.dtm=1
ro.ril.hsdpa.category=8
ro.ril.enable.a53=1
ro.ril.enable.3g.prefix=1
ro.ril.htcmaskw1.bitmask=4294967295
ro.ril.htcmaskw1=14449
ro.ril.hsupa.category=6

#Disables logcat
logcat.live=disable

#Screen recognizes only two fingers.
ro.product.multi_touch_enabled=true
ro.product.max_num_touch=2

#Support for ipv4 and ipv6.
persist.telephony.support.ipv6=1
persist.telephony.support.ipv4=1

#Phone rings immediately.
ro.telephony.call_ring.delay=0
ring.delay=0

#Better scrolling.
windowsmgr.max_events_per_sec=150
ro.min_pointer_dur=8
ro.max.fling_velocity=12000
ro.min.fling_velocity=8000

#Better signal.
persist.cust.tel.eons=1
ro.config.hw_fast_dormancy=1

#Faster boot.
ro.config.hw_quickpoweron=true

#Disables error checking.
ro.kernel.android.checkjni=0
ro.kernel.checkjni=0

#Disables sending of usage data.
ro.config.nocheckin=1

#Better image quality, lower performance.
persist.sys.use_dithering=1

#Disable strict mode checking.
persist.android.strictmode=0

#More volume steps in call.
ro.config.vc_call_steps=20

#Google DNS Tweak
net.rmnet0.dns1=8.8.8.8
net.rmnet0.dns2=8.8.4.4
net.dns1=8.8.8.8
net.dns2=8.8.4.4

debug.kill_allocating_task=0
persist.sys.ui.hw=1
ro.debuggable=1
ro.config.disable.hw_accel=false
persist.sys.purgeable_assets=1

Le fichier build.prop est maintenant prêt , reste plus qu’à le renvoyer dans votre appareil.Nous allons donc ouvrir une nouvelle fenêtre de commande telle qu’indiqué plus haut puis entrez ces commandes :

adb devices
adb push build.prop /storage/sdcard1 (envoi du fichier vers votre carte SD)
adb shell (ouvre une console vers votre appareil)
la console retourne shell@android:/ $ (si vous avez un # à la place de $ la commande su suivante n’est pas nesséssaire)
su (donne les droits root)
la console retourne root@android:/ #
mount -o rw,remount /dev/block/mmcblk0p1 /system (monte le système android en écriture)
cd storage/sdcard1 
cp build.prop /system (copie le fichier build.prop de la carte SD vers le répertoire system de votre appareil)
chmod 0644 /system/build.prop (ajout des permissions du fichier build.prop)
reboot

Voilà , c’est terminé , votre appareil va redémarrer. Pour être sur que les modifications soient prises en compte , passez en mode recovery et faites un wipe cache puis redémarrez votre appareil.

2: Débriquer votre appareil suite à une mauvaise manipulation du build.prop

Vous avez modifié le build.prop de votre appareil , et malheureusement , celui ci ne démarre plus.

Pourquoi ? :

– Vous n’avez pas rétablit les bonnes permissions ( chmod 0644 /system/build.prop)

– Vous avez entrez une ligne incorrect dans votre fichier

Votre appareil est briqué , ou plutôt semi-briqué , car il existe une solution très simple pour corriger ce problème.

Nous allons tout simplement réinjecter le build.prop d’origine (que vous avez bien sur pris soin de sauvegardé).

– Placez le fichier build.prop d’origine dans le répertoire Platform-tools du SDK

– Démarrez votre appareil en mode factory puis connectez le au PC

– Ouvrez une fenêtre de commande (pour rappel : shift + clic droit sur le répertoire platform-tools)

Maintenant , il suffit de rentrez une à une les commandes déjà vu plus haut :

adb devices
adb push build.prop /storage/sdcard1 (envoi du fichier vers votre carte SD)
adb shell (ouvre une console vers votre appareil)
la console retourne shell@android:/ $ (si vous avez un # à la place de $ la commande su suivante n’est pas nesséssaire)
su (donne les droits root)
la console retourne root@android:/ #
mount -o rw,remount /dev/block/mmcblk0p1 /system (monte le système android en écriture)
cd storage/sdcard1 
cp build.prop /system (copie le fichier build.prop de la carte SD vers le répertoire system de votre appareil)
chmod 0644 /system/build.prop (ajout des permissions du fichier build.prop)
reboot

Votre appareil est de nouveau opérationnel.

3: Mise à jour OTA de votre appareil suite à une modification du build.prop

Après la modification du build.prop , il est fort probable que votre appareil refuse d’appliquer une mise à jour OTA. La solution  là aussi est très simple: réinjectez le fichier build.prop d’origine. Vous pouvez le faire téléphone allumé comme dans l’étape 1. Les commandes sont les mêmes que précédentes , donc maintenant vous savez le faire 😉

Après le redémarrage , votre appareil effectuera la mise à jour OTA. Libre à vous ensuite de re-modifier le nouveau build.prop en suivant l’étape 1 du tuto.

Il est très important de modifier le build.prop de la mise à jour OTA (et non une sauvegarde d’un ancien fichier déjà modifié) , car le numéro de mise à jour se trouvant dans le build.prop, si vous injectez un ancien fichier , votre appareil vous proposera à nouveau la mise à jour déjà effectué.

Ce tuto à été testé sur deux appareils différents : le wiko wax ( nvidia) et le wiko peax ( médiatek) sans aucun soucis. Je compte sur vous pour agrandir cette liste 😉

14 Responses to “Modification du fichier build.prop d’un appareil sous android”

      • Pascal on

        Bonsoir. Je travaille a changer le .prop de mon Wiko Wax. Rudy, je peux te communiquer le .prop original de ce model.

        Maintenant, ce qui est difficile pour moi c’est de choisir les modification @ apporter. @ sauf faire un copier colle des instructions d’ici (ce thread) ou d’ailleurs.. Et pourquoi Wiko ne propose -t-il pas un optimisation ? Parce que c’est claire que ce model rame un petit peu.. avec la rom originale..

        Pascal.

        Répondre
        • Harlock on

          Bonjour Pascal , j’ai eu un wiko wax. Très déçu de ce modèle, je l’ai vite abandonner. J’attendais beaucoup de ce modèle avec proc Nvdia , mais ça a été clairement un échec. Le pire de ce modèle en plus des nombreux lags et freeze , c’est la batterie qui se vide à vitesse grand V. tu peux utiliser sans soucis les optimisations que je propose ici. Je les ai testé sur le mien. Mais ne t’attend pas à un miracle pour ce modèle :/

          Répondre
  1. Pascal on

    Bonjour Harlock,
    J’ai le pb. suivant. J’ai suivi les instructions. Après plusieurs essaies, ou clairement le ficher n’était pas transféré (le tel. démarait sand pb. mais / le ficher original) je pense que le transfert est maintenant opéré… MAIS, le te. bloque. DONC j’ai essaye le démarrage factory. Le tel est détecté, je peux passer en mode adb shell MAIS pas en su. y a-t-il une solution ?
    Pascal.

    Répondre
  2. Pascal on

    Bonsoir,
    Fait quelques testes et recherches..
    1-le fichier propf est effectivement le modifié. les droits sont -rw-rw-r– (comande ls -a -a-l). Est-ce que ce sont les bons ?
    2-esseye d’executer des commandes adb shell en utlisant su -c. Mais je ne pense pas que cela marche non plus..
    3-Lorsque j’ai effectivement utlisé adb shell on SU hier; le tel m’a demande la permission.. aurais-je donne que les droits temporaire à adb shell d’utliser su ? Et maintenant je ne peux plus ?
    4-Quid des optons de recovery ? wipde data/factory reset ?

    Merci,

    Pascal.

    Répondre
    • Harlock on

      Bonjour Pascal , apparemment et sauf erreur de ma part , les permissions ne sont pas bonnes. Théoriquement avec chmod 644 tu devrais avoir rw-r-r. logique étant donné que tu as 6(rw) et 4(r) 4 (r). N’aurais tu pas fais chmod 0664 au lieu de 0644 ?
      Si le téléphone bloque après modification du build.prop , c’est soit il y a une erreur de permission , soit des erreurs d’écriture dans le fichier. Au pire pour redémarrer le ton wiko , réinjecte le build.prop d’origine avec les bonnes permissions. Ensuite vérifie ton build.prop modifié et recommence ;-) Si tu veux tu peux également me l’envoyer que je jette un oeil. Les options recovery ne te seront d’aucun secours , par contre , je ne sais pas si tu as un recovery modifié genre cwmr ou twrp ?

      Répondre
      • Pascal on

        Bonjour,

        En fait j’ai résolu le problème.. c’était effectivement les droits ! J’ai récupéré le # (je n’arrivais pas à repasser adb shell en #) en faisant un wipe… (factory reset et données..).
        Donc, maintenant le tel fonctionne avec le ficher modifie et j’attends le feedback de ma fille.. si elle trouve que c’est moins pénible.

        Merci du tutoriel.. Ce qui est difficile dans les commandes c’est que l’on a pas de trace après un commande.. genre modification prise en compte, ou OK or fail est-ce possible d’avoir ce genre d’écho ?
        DONC, grand merci… même si j’ai été un peu stressé lors de la manipulation je trouve cela fun…
        Pascal.

        Répondre
  3. louisdefunes on

    bonjour a tous , est ce que c’est possible de modifier son numero de serie dans android svp ?

    j’ai un autoradio android , et tomtom ne veut pas fonctionner parce que

    mon numero de serie est trop long ! au moin 20 caracteres et il doit en faire 12 pour que tomtom fonctionne

    Merci a vous …

    Répondre

Laisser une réponse

  • (will not be published)

hein? rougir c'est pas ma faute :-) :-( :-D ;-) Plus de smileys »