Vous êtes ici : Accueil Members gma Samsung Galaxy S2 (i9100) Flasher, rooter avec linux (ou mac OS) : exemple avec le firmware KH3
Actions sur le document

Samsung Galaxy S2 (i9100) Flasher, rooter avec linux (ou mac OS) : exemple avec le firmware KH3

Par gma Dernière modification 16/01/2014 16:24

Flasher un Samsung Galaxy S2 avec Linux. Ce tutoriel peut servir de base pour flasher un Samsung Galaxy S2 sur un Apple. Heimdall peut être téléchargé en https://github.com/Benjamin-Dobell/Heimdall/downloads

Avertissement : Cette opération comporte des risques. J'ai initialement rédigé ce tutoriel pour le diffuser sur Phonandroid .

Un petit tuto pour tous les possesseurs de Linux :
- qui souhaitent flasher la dernière version du firmware en date du 28 août 2010 pour votre Galaxy S II,
- ou qui souhaitent le rooter avec cette même version,
- ou qui souhaitent disposer d'un exemple pour flasher ou rooter :)

Pré-requis :

  1. Un Galaxy S II en état de marche.
  2. La librairie USB, sinon pour Debian ou Ubuntu faire en root :
    Code: Tout sélectionner
    # apt-get install libusb-1.0-0
  3. La librairie USB doit être supérieure à 2:1.0.8 pour utiliser la version 1.3.0 d'heimdall
    À vérifier par la commande:
    Code: Tout sélectionner
    # dpkg -l libusb-1.0-0
    Souhait=inconnU/Installé/suppRimé/Purgé/H=à garder
    | État=Non/Installé/fichier-Config/dépaqUeté/échec-conFig/H=semi-installé/W=attend-traitement-déclenchements
    |/ Err?=(aucune)/besoin Réinstallation (État,Err: majuscule=mauvais)
    ||/ Nom                               Version                           Description
    +++-=================================-=================================-==================================================================================
    ii  libusb-1.0-0                      2:1.0.8-2                         userspace USB programming library

    Sinon il faudra VRAIMENT mettre le système à jour.

  4. Heimdall 1.3.0 :
    • Quel est votre processeur ?
      Code: Tout sélectionner
      $ uname -m
      i686
      $ uname -a
      Linux gaga.elleest.com 2.6.38-11-generic-pae #48-Ubuntu SMP Fri Jul 29 20:51:21 UTC 2011 i686 athlon i386 GNU/Linux

    • Version Debian/Ubuntu ix86 :
      Code: Tout sélectionner
      $ wget https://github.com/downloads/Benjamin-Dobell/Heimdall/heimdall_1.3.0_i386.deb
      $ wget https://github.com/downloads/Benjamin-Dobell/Heimdall/heimdall-frontend_1.3.0_i386.deb
      $ sudo dpkg -i heimdall_1.1.1-1_i386.deb heimdall-frontend_1.1.1-1_i386.deb

    • Version Debian/Ubuntu AMD/Intel 64
      Code: Tout sélectionner
      $ wget https://github.com/downloads/Benjamin-Dobell/Heimdall/heimdall_1.3.0_amd64.deb
      $ wget https://github.com/downloads/Benjamin-Dobell/Heimdall/heimdall-frontend_1.3.0_amd64.deb
      $ sudo dpkg -i heimdall_1.1.1-1_amd64.deb heimdall-frontend_1.1.1-1_amd64.deb

    • Version à compiler http://www.glassechidna.com.au/products/heimdall/
    • Pour mémoire : mon premier post sur l'installation d'Heimdall pour le Galaxy S se trouve ICI
  5. Un backup de votre mobile (Titanium Backup disponible sur le Market fera l'affaire).
  6. Une bouteille de Rhum (un Rhum blanc fera l'affaire). :)
  7. La ROM XXKH3 que vous trouverez ICI.

Golem maintient ICI un super article pour obtenir les ROMS officielles (dont les XXKF2, KF3, KG1, KG2, KG3, KG6, KH1, KH3) qui permettent de flasher une ROM officielle sur un Samsung Galaxy S2.
Veuillez le consulter.

BlackHeart666 maintient ICI un super article pour obtenir les CF-ROOT (XXKE2, KE7, KE8, KF1, KF2, KF3, KF4, KG1, KG2, KG3, KG5, KG6, KH1, KH3) qui permettent de rooter un Samsung Galaxy S2.
Veuillez le consulter.



Disposer d'un appareil détecté par Linux


Sous Linux en console

  1. Si votre appareil n'apparait pas, il manque peut-être des paramètres udev:
    J'ai réalise quelques tests: en modifiant le mode de connexion USB (debug, kies, fichier,...), j'ai obtenu 4 signatures usb différentes...
    Attention : il faut passer en root (ou utiliser sudo).

    Voici l'une des quatre signatures.
    Code: Tout sélectionner
    $ su
    # lsusb | grep Samsung
    Bus 001 Device 015: ID 04e8:685d Samsung Electronics Co., Ltd


  2. Vous pouvez vérifier votre configuration udev.
    Code: Tout sélectionner
    $ cat /etc/udev/rules.d/* | grep 04e8

    04e8 correspond à l'idvendor de Samsung
    Si vous n'obtenez rien, il faut sans doute rajouter la configuration qui va bien

  3. Ajout de la configuration udev pour le Galaxy S2
    Attention : il faut passer en root (ou utiliser sudo).
    Code: Tout sélectionner
    $ su
    # echo '
    # galaxy S2
    #Bus 001 Device 005: ID 04e8:685b Samsung Electronics Co., Ltd
    SUBSYSTEM=="usb", SYSFS{idVendor}=="04e8", SYSFS{idProduct}=="6860", MODE="0666"
    SUBSYSTEM=="usb", SYSFS{idVendor}=="04e8", SYSFS{idProduct}=="685d", MODE="0666"
    SUBSYSTEM=="usb", SYSFS{idVendor}=="04e8", SYSFS{idProduct}=="685e", MODE="0666"
    SUBSYSTEM=="usb", SYSFS{idVendor}=="04e8", SYSFS{idProduct}=="685b", MODE="0666"
    ' >> /etc/udev/rules.d/51-android.rules



  4. Ajout de la configuration udev pour le Galaxy S (POUR MÉMOIRE)
    Attention : il faut passer en root (ou utiliser sudo).
    Code: Tout sélectionner
    $ su
    # echo '
    # galaxy S
    #Bus 001 Device 005: ID 04e8:681d Samsung Electronics Co., Ltd
    SUBSYSTEM=="usb", SYSFS{idVendor}=="04e8", SYSFS{idProduct}=="6877", MODE="0666"
    SUBSYSTEM=="usb", SYSFS{idVendor}=="04e8", SYSFS{idProduct}=="681d", MODE="0666"
    SUBSYSTEM=="usb", SYSFS{idVendor}=="04e8", SYSFS{idProduct}=="681c", MODE="0666"
    SUBSYSTEM=="usb", SYSFS{idVendor}=="04e8", SYSFS{idProduct}=="68a9", MODE="0666"
    ' >> /etc/udev/rules.d/51-android.rules


  5. On relance udev
    Attention : il faut passer en root (ou utiliser sudo).

    Code: Tout sélectionner
    # /etc/init.d/udev restart



    Gérer le fichier de la ROM

    Sous Linux en console
    Sous Apple (si vous ne l'avez pas passé sous linux comme moi - j'ai tenu 4h avant de le passer sous linux...)

    On passe en console pour gérer ce fichier.

    1. On créé un répertoire pour la mise à jour :
      Code: Tout sélectionner
      $ mkdir -p ~/data/android/samsung_galaxy_s2/MAJ04/

    2. On déplace le fichier dans ce répertoire :
      Code: Tout sélectionner
      $ mv "Firmware Officiel KH3 - BlackHeart666.rar" ~/data/android/samsung_galaxy_s2/MAJ04/

    3. On entre dans ce répertoire :
      Code: Tout sélectionner
      $ cd ~/data/android/samsung_galaxy_s2/MAJ04/

    4. On décompresse :
      Code: Tout sélectionner
      $ unrar x "Firmware Officiel KH3 - BlackHeart666.rar"

    5. On liste ces fichiers :
      Code: Tout sélectionner
      $ ls -l *
      drwxr-xr-x 2 gaga gaga      4096 2011-08-23 21:32 Firmware Officiel KH3 - BlackHeart666
      -rw-r--r-- 1 gaga gaga 345035843 2011-08-23 20:38 Firmware Officiel KH3 - BlackHeart666.rar


    6. On voit un sous répertoire : rentrons dans ce répertoire pour l'explorer :
      Code: Tout sélectionner
      $ cd "Firmware Officiel KH3 - BlackHeart666"

    7. On liste :
      Code: Tout sélectionner
      $ ls -l
      -rw-r--r-- 1 gaga gaga 556748883 2011-08-12 02:37 CODE_I9100XXKH3_CL479037_REV02_user_low_ship.tar.md5
      -rw-r--r-- 1 gaga gaga   4577362 2011-08-12 02:37 EFS_I9100XXKH3_CL479037_REV02_user_low_ship.tar.md5
      -rw-r--r-- 1 gaga gaga  15933509 2011-08-12 02:38 GT-I9100-CSC-HOME-MULTI-OXAKH3.tar.md5
      -rw-r--r-- 1 gaga gaga  15933504 2011-08-12 02:38 GT-I9100-CSC-MULTI-OXAKH3.tar.md5
      -rw-r--r-- 1 gaga gaga   8396885 2011-08-12 02:37 KERNEL_I9100XXKH3_CL479037_REV02_user_low_ship.tar.md5
      -rw-r--r-- 1 gaga gaga  12585032 2011-08-12 00:06 MODEM_I9100XXKH3_REV_02_CL1050544.tar.md5
      -rw-r--r-- 1 gaga gaga      2008 2011-04-26 11:15 u1_02_20110310_emmc_EXT4.pit

    8. Des fichiers tar avec l'extension .tar.md5 au lieu de l'extension .tar : surprenant...
      Un fichier .pit
      Code: Tout sélectionner
      $ file *
      CODE_I9100XXKH3_CL479037_REV02_user_low_ship.tar.md5:   POSIX tar archive (GNU)
      EFS_I9100XXKH3_CL479037_REV02_user_low_ship.tar.md5:    POSIX tar archive (GNU)
      GT-I9100-CSC-HOME-MULTI-OXAKH3.tar.md5:                 POSIX tar archive (GNU)
      GT-I9100-CSC-MULTI-OXAKH3.tar.md5:                      POSIX tar archive (GNU)
      KERNEL_I9100XXKH3_CL479037_REV02_user_low_ship.tar.md5: POSIX tar archive (GNU)
      MODEM_I9100XXKH3_REV_02_CL1050544.tar.md5:              POSIX tar archive (GNU)
      u1_02_20110310_emmc_EXT4.pit:                           data


    9. On décompresse les fichiers tar - nommés bizarrement .tar.md5 -, chacun dans un répertoire et on les liste:
      Code: Tout sélectionner
      $ for i in *.tar.md5 ; do echo ; echo ============== $i ========== ; mkdir $i.dir; tar -xvf $i -C $i.dir >/dev/null; ls -l $i.dir ;done

      ============== CODE_I9100XXKH3_CL479037_REV02_user_low_ship.tar.md5 ==========
      -rw-r--r-- 1 gaga gaga    131072 2011-08-12 04:37 boot.bin
      -rw-r--r-- 1 gaga gaga   5886088 2011-08-12 04:37 cache.img
      -rw-r--r-- 1 gaga gaga  36364976 2011-08-12 04:37 data.img
      -rw-r--r-- 1 gaga gaga 481425212 2011-08-12 04:37 factoryfs.img
      -rw-r--r-- 1 gaga gaga  22272712 2011-08-12 04:37 hidden.img
      -rwxr-xr-x 1 gaga gaga    958464 2011-08-12 04:37 param.lfs
      -rw-r--r-- 1 gaga gaga   1310720 2011-08-12 04:37 Sbl.bin
      -rwxr-xr-x 1 gaga gaga   8387840 2011-08-12 04:37 zImage

      ============== EFS_I9100XXKH3_CL479037_REV02_user_low_ship.tar.md5 ==========
      -rw-r--r-- 1 gaga gaga 4575368 2011-08-12 04:37 efs.img

      ============== GT-I9100-CSC-HOME-MULTI-OXAKH3.tar.md5 ==========
      -rw-r--r-- 1 gaga gaga 15929564 2011-08-12 04:38 cache.img

      ============== GT-I9100-CSC-MULTI-OXAKH3.tar.md5 ==========
      -rw-r--r-- 1 gaga gaga 15929564 2011-08-12 04:38 cache.img

      ============== KERNEL_I9100XXKH3_CL479037_REV02_user_low_ship.tar.md5 ==========
      -rwxr-xr-x 1 gaga gaga 8387840 2011-08-12 04:37 zImage

      ============== MODEM_I9100XXKH3_REV_02_CL1050544.tar.md5 ==========
      -rwxr-x--- 1 gaga gaga 12583168 2011-08-12 02:06 modem.bin

    10. On a des doublons... :(
      Code: Tout sélectionner
      $ for i in $( for i in *.pit *.dir/* ; do basename $i ; done | sort | uniq ) ; do echo ; echo =========== $i ===========; find -name $i -exec ls -l {} \; ; done

      =========== boot.bin ===========
      -rw-r--r-- 1 gaga gaga 131072 2011-08-12 04:37 ./CODE_I9100XXKH3_CL479037_REV02_user_low_ship.tar.md5.dir/boot.bin

      =========== cache.img ===========
      -rw-r--r-- 1 gaga gaga 5886088 2011-08-12 04:37 ./CODE_I9100XXKH3_CL479037_REV02_user_low_ship.tar.md5.dir/cache.img
      -rw-r--r-- 1 gaga gaga 15929564 2011-08-12 04:38 ./GT-I9100-CSC-MULTI-OXAKH3.tar.md5.dir/cache.img
      -rw-r--r-- 1 gaga gaga 15929564 2011-08-12 04:38 ./GT-I9100-CSC-HOME-MULTI-OXAKH3.tar.md5.dir/cache.img

      =========== data.img ===========
      -rw-r--r-- 1 gaga gaga 36364976 2011-08-12 04:37 ./CODE_I9100XXKH3_CL479037_REV02_user_low_ship.tar.md5.dir/data.img

      =========== efs.img ===========
      -rw-r--r-- 1 gaga gaga 4575368 2011-08-12 04:37 ./EFS_I9100XXKH3_CL479037_REV02_user_low_ship.tar.md5.dir/efs.img

      =========== factoryfs.img ===========
      -rw-r--r-- 1 gaga gaga 481425212 2011-08-12 04:37 ./CODE_I9100XXKH3_CL479037_REV02_user_low_ship.tar.md5.dir/factoryfs.img

      =========== hidden.img ===========
      -rw-r--r-- 1 gaga gaga 22272712 2011-08-12 04:37 ./CODE_I9100XXKH3_CL479037_REV02_user_low_ship.tar.md5.dir/hidden.img

      =========== modem.bin ===========
      -rwxr-x--- 1 gaga gaga 12583168 2011-08-12 02:06 ./MODEM_I9100XXKH3_REV_02_CL1050544.tar.md5.dir/modem.bin

      =========== param.lfs ===========
      -rwxr-xr-x 1 gaga gaga 958464 2011-08-12 04:37 ./CODE_I9100XXKH3_CL479037_REV02_user_low_ship.tar.md5.dir/param.lfs

      =========== Sbl.bin ===========
      -rw-r--r-- 1 gaga gaga 1310720 2011-08-12 04:37 ./CODE_I9100XXKH3_CL479037_REV02_user_low_ship.tar.md5.dir/Sbl.bin

      =========== u1_02_20110310_emmc_EXT4.pit ===========
      -rw-r--r-- 1 gaga gaga 2008 2011-04-26 11:15 ./u1_02_20110310_emmc_EXT4.pit

      =========== zImage ===========
      -rwxr-xr-x 1 gaga gaga 8387840 2011-08-12 04:37 ./CODE_I9100XXKH3_CL479037_REV02_user_low_ship.tar.md5.dir/zImage
      -rwxr-xr-x 1 gaga gaga 8387840 2011-08-12 04:37 ./KERNEL_I9100XXKH3_CL479037_REV02_user_low_ship.tar.md5.dir/zImage

    11. Que peut-on flasher ?

      Code: Tout sélectionner
      $ heimdall
      Usage: heimdall <action> <action arguments> <common arguments>

      Common Arguments:
          [--verbose] [--no-reboot] [--stdout-errors] [--delay <ms>]

      Action: flash
      Arguments:
          --repartition --pit <filename> [--factoryfs <filename>]
          [--cache <filename>] [--dbdata <filename>] [--primary-boot <filename>]
          [--secondary-boot <filename>] [--param <filename>] [--kernel <filename>]
          [--modem <filename>] [--normal-boot <filename>] [--system <filename>]
          [--user-data <filename>] [--fota <filename>] [--hidden <filename>]
          [--movinand <filename>] [--data <filename>] [--ums <filename>]
          [--emmc <filename>] [--<partition identifier> <filename>]
        or:
          [--factoryfs <filename>] [--cache <filename>] [--dbdata <filename>]
          [--primary-boot <filename>] [--secondary-boot <filename>]
          [--secondary-boot-backup <filename>] [--param <filename>]
          [--kernel <filename>] [--recovery <filename>] [--efs <filename>]
          [--modem <filename>] [--normal-boot <filename>] [--system <filename>]
          [--user-data <filename>] [--fota <filename>] [--hidden <filename>]
          [--movinand <filename>] [--data <filename>] [--ums <filename>]
          [--emmc <filename>] [--<partition identifier> <filename>]
      Description: Flashes firmware files to your phone.
      WARNING: If you're repartitioning it's strongly recommended you specify
               all files at your disposal, including bootloaders.


    12. On observe onze fichiers, je serai tenté de passer la commande suivante avec 10 des 11 fichiers fournis...
      les 2 dernières lignes sont en italiques  car je ne connais pas leur utilité...

      NE PAS PASSER CETTE COMMANDE
      $ heimdall flash \
      --pit ./u1_02_20110310_emmc_EXT4.pit \
      --factoryfs ./CODE_I9100XXKH3_CL479037_REV02_user_low_ship.tar.md5.dir/factoryfs.img \
      --cache ./GT-I9100-CSC-MULTI-OXAKH3.tar.md5.dir/cache.img \
      --primary-boot ./CODE_I9100XXKH3_CL479037_REV02_user_low_ship.tar.md5.dir/boot.bin \
      --secondary-boot ./CODE_I9100XXKH3_CL479037_REV02_user_low_ship.tar.md5.dir/Sbl.bin \
      --param ./CODE_I9100XXKH3_CL479037_REV02_user_low_ship.tar.md5.dir/param.lfs \
      --kernel ./CODE_I9100XXKH3_CL479037_REV02_user_low_ship.tar.md5.dir/zImage \
      --modem ./MODEM_I9100XXKH3_REV_02_CL1050544.tar.md5.dir/modem.bin \
      --hidden ./CODE_I9100XXKH3_CL479037_REV02_user_low_ship.tar.md5.dir/hidden.img \
      --data ./CODE_I9100XXKH3_CL479037_REV02_user_low_ship.tar.md5.dir/data.img

    Première question: a quoi correspond le fichier efs.img (le onzième fichier)?



    Opération d'investigation sur le fichier efs.img

    Ne devrait pas vous servir

    Sous Linux en console
    Avec un Galaxy S2 rooté...

    1. Mais quel est ce onzième fichier?
      Le fichier efs.img semble contenir des éléments comme le code imei de votre téléphone.
      Du coup, cela fait craindre qu'il ne faut pas le flasher sous peine de détruire son code imei...

    2. Passer en mode "debug" ( Paramètres / Applications / Développement / Débogage USB : Activer! ), puis brancher le téléphone...

    3. Si vous ne disposez pas de l'utilitaire adb,
      il faut installer "Android SDK Platform-tools, revision 6" par le système android.

      Si votre processeur est 64 bits il faut sans doute installer si ce n'est déjà fait la librairie ia32-libs
      Code: Tout sélectionner
      $ sudo aptitude install  ia32-libs



      Le code suivant fonctionne pour un processeur x86, ou amd64 avec la librairie ia32-libs - pas sur un processeur ppc par exemple.
      Code: Tout sélectionner
      $ mkdir ~/android
      $ cd ~/android
      $ wget http://dl.google.com/android/android-sdk_r12-linux_x86.tgz
      $ tar -xzvf android-sdk_r12-linux_x86.tgz

      $ echo "Je lance android"

      $ cd ~/android/android-sdk-linux_x86/tools/
      $ ./android

      $ echo 'Je télécharge "Android SDK Platform-tools, revision 6"... Pour pouvoir utiliser l'utilitaire "adb"... '

      $ echo "Pour tester en obenant son numéro de série, je lance:"
      $ cd ~/android/android-sdk-linux_x86/platform-tools/
      $ ./adb get-serialno


    4. On peut créer le lien vers cet adb dans le répertoire /usr/local/bin pour pouvoir lancer adb dans n'importe quelle console.
      On cherche adb
      Code: Tout sélectionner
      $ find -name adb
      ~/android/android-sdk-linux_x86/platform-tools/adb

      On créée le lien symbolique vers /usr/local/bin en root
      Code: Tout sélectionner
      $ su
      # ln -s ~/android/android-sdk-linux_x86/platform-tools/adb /usr/local/bin


    5. On se connecte au shell de son appareil via android-sdk qui vous aura permis de télécharger le toolkit:
      Code: Tout sélectionner
      $ adb shell


    6. On passe en super utilisateur sur le samsung galaxy S 2:
      Code: Tout sélectionner
      $ su
      #

    7. On liste:
      Code: Tout sélectionner
      # ls -l /efs
      -rw-rw-rw-    1 system   system           6 Jan  1  2000 calibration_data
      -rw-r--r--    1 system   system           9 Dec 31  2010 cryptprop_applied_result
      -rw-r--r--    1 system   system           5 Jul 31 05:37 cryptprop_lock_pattern_autolock
      -rw-r--r--    1 system   system           5 Jul 30 21:57 cryptprop_lock_pattern_tactile_feedback_enabled
      -rw-r--r--    1 system   system           5 Jan  1  2000 cryptprop_lock_pattern_visible_pattern
      -rw-r--r--    1 system   system           6 Jul 31 05:36 cryptprop_lockscreen.lockedoutpermanently
      -rw-r--r--    1 system   system          10 Aug 11 20:44 cryptprop_lockscreen.lockoutattemptdeadline
      -rw-r--r--    1 system   system           6 Jul 31 05:37 cryptprop_lockscreen.password_type
      -rw-r--r--    1 system   system           5 Jul 31 05:37 cryptprop_lockscreen.patterneverchosen
      -rw-r--r--    1 root     root             5 Aug 23 19:07 cryptprop_onetimeboot
      -rw-r--r--    1 system   system          13 Aug 23 18:42 cryptprop_persist.sys.timezone
      -rw-r--r--    1 root     root             1 Dec 31  2010 cryptprop_rebootMode
      -rw-r--r--    1 root     root             3 Aug 23 19:07 cryptprop_securewipedata
      drwx------    3 system   system        4096 Dec 31  2010 dmp
      -rw-rw-rw-    1 system   system         256 Dec 31  2010 edk_d
      -rw-rw-rw-    1 system   system         256 Dec 31  2010 edk_p
      drwxrwxr-x    2 radio    radio         4096 Jul  2 03:02 imei
      -rw-rw-rw-    1 radio    radio         1254 Aug 23 18:39 nv.log
      -rwx------    1 radio    radio      2097152 Aug 23 19:08 nv_data.bin
      -rwx------    1 radio    radio           32 Aug 23 19:08 nv_data.bin.md5
      -rwxrwxr--    1 radio    radio          880 Dec 31  2010 redata.bin

    8. On liste /efs/imei
      Code: Tout sélectionner
      # ls -l /efs/imei
      -rw-rw-rw-    1 radio    radio           23 Jul  2 03:02 bt.txt
      -rw-rw-r--    1 radio    radio            2 Jul  2 03:02 keystr
      -rw-rw-rw-    1 radio    radio            3 Dec 31  2010 mps_code.dat

    9. On fait un backup du répertoire /efs
      Code: Tout sélectionner
      # tar -cvf /sdcard/external_sd/efs.tar /efs
      tar: removing leading '/' from member names
      efs/
      efs/cryptprop_rebootMode
      efs/cryptprop_onetimeboot
      efs/cryptprop_securewipedata
      efs/.files/
      efs/.files/.dx1/
      efs/.files/.dm33/
      efs/.files/.mp301/
      efs/nv_data.bin
      efs/nv.log
      efs/nv_data.bin.md5
      efs/dmp/
      efs/dmp/sett/
      efs/dmp/sett/system/
      efs/dmp/sett/system/volume_ring_last_audible
      efs/dmp/sett/system/vibrate_on
      efs/dmp/sett/system/time_12_24
      efs/dmp/sett/system/volume_ring
      efs/dmp/sett/system/screen_brightness_mode
      efs/dmp/sett/system/mode_ringer
      efs/dmp/sett/system/volume_system
      efs/dmp/sett/system/volume_system_last_audible
      efs/dmp/sett/system/volume_notification
      efs/dmp/sett/system/volume_notification_last_audible
      efs/dmp/sett/system/haptic_feedback_enabled
      efs/dmp/sett/system/sound_effects_enabled
      efs/dmp/sett/system/dtmf_tone
      efs/dmp/sett/system/screen_off_timeout
      efs/dmp/sett/system/airplane_mode_on
      efs/dmp/sett/secure/
      efs/dmp/sett/secure/mobile_data
      efs/cryptprop_applied_result
      efs/imei/
      efs/imei/mps_code.dat
      efs/imei/bt.txt
      efs/imei/keystr
      efs/calibration_data
      efs/.nv_core.bak
      efs/.nv_core.bak.md5
      efs/.nv_data.bak
      efs/.nv_data.bak.md5
      efs/.nv_state
      efs/cryptprop_persist.sys.timezone
      efs/redata.bin
      efs/edk_p
      efs/edk_d
      efs/cryptprop_lockscreen.patterneverchosen
      efs/cryptprop_lockscreen.password_type
      efs/cryptprop_lock_pattern_autolock
      efs/cryptprop_lock_pattern_visible_pattern
      efs/cryptprop_lock_pattern_tactile_feedback_enabled
      efs/cryptprop_lockscreen.lockoutattemptdeadline
      efs/cryptprop_lockscreen.lockedoutpermanently

    10. On vérifie la présence du tar
      Code: Tout sélectionner
      # ls -l /sdcard/external_sd/efs.tar
      -rwxrwxr-x    1 system   sdcard_r   5293056 Aug 24 00:10 /sdcard/external_sd/efs.tar

      Parfait!
      C'est copié sur la carte externe de l'android.
      Si vous ne disposez pas de carte externe, vous pouvez remplacer /sdcard/external_sd/efs.tar par/sdcard/efs.tar :)


    Le flashage :


    Sous Linux en console



    1. Passer en mode "debug" ( Paramètres / Applications / Développement / Débogage USB : Activer! ), puis brancher le téléphone...


      On passe en mode download par adb :
      Si vous ne disposez pas de l'utilitaire adb, il faut installer "Android SDK Platform-tools, revision 6" par le système android : cf le point C.

      Code: Tout sélectionner
      $ adb reboot download


      NB: On peut passer en mode download en appuyant simultanément les touches Volume Bas + Power + Home

    2. Par rapport à la commande proposée en XII., j'ai supprimé les 2 lignes soulignées - car je n'ai pas encore testé et je ne connais pas le contenu de ces fichiers...
      Mais je serai heureux de lire les conseils d'une personne éclairée sur la composition exacte de ces fichiers...

      On passe la commande sur la console:
      Code: Tout sélectionner
      $ heimdall flash \
      --pit ./u1_02_20110310_emmc_EXT4.pit \
      --factoryfs ./CODE_I9100XXKH3_CL479037_REV02_user_low_ship.tar.md5.dir/factoryfs.img \
      --cache ./GT-I9100-CSC-MULTI-OXAKH3.tar.md5.dir/cache.img \
      --primary-boot ./CODE_I9100XXKH3_CL479037_REV02_user_low_ship.tar.md5.dir/boot.bin \
      --secondary-boot ./CODE_I9100XXKH3_CL479037_REV02_user_low_ship.tar.md5.dir/Sbl.bin \
      --param ./CODE_I9100XXKH3_CL479037_REV02_user_low_ship.tar.md5.dir/param.lfs \
      --kernel ./CODE_I9100XXKH3_CL479037_REV02_user_low_ship.tar.md5.dir/zImage \
      --modem ./MODEM_I9100XXKH3_REV_02_CL1050544.tar.md5.dir/modem.bin

      Heimdall v1.3.0, Copyright (c) 2010-2011, Benjamin Dobell, Glass Echidna
      http://www.glassechidna.com.au

      This software is provided free of charge. Copying and redistribution is
      encouraged.

      If you appreciate this software and you would like to support future
      development please consider donating:
      http://www.glassechidna.com.au/donate/

      Initialising connection...
      Detecting device...
      Claiming interface...
      Attempt failed. Detaching driver...
      Claiming interface again...
      Setting up interface...

      Beginning session...
      Handshaking with Loke...

      Downloading device's PIT file...
      PIT file download sucessful

      Uploading KERNEL
      100%
      KERNEL upload successful
      Uploading CACHE
      100%
      CACHE upload successful
      Uploading MODEM
      100%
      MODEM upload successful
      Uploading FACTORYFS
      100%
      FACTORYFS upload successful
      Uploading PARAM
      100%
      PARAM upload successful
      Ending session...
      Rebooting device...
      Re-attaching kernel driver...


    3. Cela a pris 3 minutes et 2 secondes!
      Le reboot automatique a pris une minute.

      On dispose maintenant de la dernière version officielle KH3...

      Pour ma part, mon galaxy était rooté mais il ne l'est plus...

      On va corriger cela :)



    Le rooter en KH3! :

    héhé!

    Sous Linux en console


    1. Télécharger le kernel KH3
      BlackHeart666 nous fournit ICI le kernel KH3 CF-root pour rooter son Galaxy S2.


      On obtient le fichier "CF-Root KH3 v4.1 - BlackHeart666.tar"

    2. On décompresse ce fichier tar:
      Code: Tout sélectionner
      $ tar -xvf "CF-Root KH3 v4.1 - BlackHeart666.tar"

    3. On obtient le fichier "zImage"
      Code: Tout sélectionner
      $ ls -l zImage
      -rw-r--r-- 1 gaga gaga 8387840 2011-08-17 19:21 zImage


    4. On passe en mode download par adb
      NB: On peut passer en mode download en appuyant simultanément les touches Volume Bas + Power + Home

      Code: Tout sélectionner
      $ adb reboot download

    5. On flashe l'image
      Code: Tout sélectionner
      $ heimdall flash --kernel zImage


      Cela prend 4 secondes...
      Le reboot est aussi quasi immédiat!

    6. Le Samsung Galaxy S2 est rooté sur une ROM KH3...
      Code: Tout sélectionner
      $ adb shell
      $ su
      #


      Bravo! coool

    7. On restaure toutes les applications - avec leur configuration - grâce à Titanium Backup...

    8. On ouvre la bouteille de Rhum et on se verse un bon verre de ROM blanc : c'est mérité!
      :mrgreen:

Ce site respecte les normes suivantes :