Rooter FP2 (fairphone)

Fairphone dans son effort de donner le maximum de maîtrises pour l’utilisateur propose un ROM dédiée à installer soit même.
Dans certains cas, on souhaite profiter du système par défaut tout en conservant ses données et obtenir les pleins pouvoirs. Voici la procédure suivie, elle reprend et complète les informations présentes sur le forum de fairphone

Pré requis

De toute évidence, il nous faut un téléphone FP2. Toutes les opérations sont réalisées depuis un poste Linux sous Debian.
Le téléphone allumé est branché via USB à notre ordinateur.

Contexte

La solution retenue est de flasher (remplacer) une partie du système de base, la partie boot pour fournir les droits root au système global via l’apk superuser.

Pour faire cette modification, on utilise les applications dédiées adb et fastboot

Activer le mode développeur

Pour prendre la main sur son téléphone via adb il est nécessaire d’activer le mode développeur..
L’option est cachée et pour l’activer, ils s’agit depuis
Paramètres > À propos du téléphone > Numéro de build
de taper 7 fois sur le numéro de build.
Une alerte apparaîtra sur le téléphone indiquant que nous sommes devenus développeurs.

On note aussi la version du build, elle nous servira plus tard, dans mon cas, il s’agit de r4275.1_FP2_gms70_1.10.1

Détecter le Fairphone

Maintenant on autorise adb/fastboot à prendre la main via le port usb.

Pour commencer on détermine quel est le périphérique USB à associer.

km@:~# sudo lsusb

Bus 003 Device 002: ID 8087:8000 Intel Corp.
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
[...]
Bus 001 Device 039: ID 2ae5:904e  
[...]
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

La ligne qui nous intéresse est celle contenant 2ae5 : il s’agit du code fabricant associé à Fairphone.

On ajoute une règle udev permettant la prise en main via adb.
km@:~# sudo nano /etc/udev/rules.d/51-android.rules

km@:~# sudo /etc/init.d/udev restart

À partir de maintenant, nous répondons aux prérequis pour exécuter ADB depuis notre ordinateur.

Installer ADB

Debian fournit des paquets pour utiliser le SDK android et donc adb mais ceux ci ne sont pas compatibles avec la version 5.x d’android présent sur le FP2.
Nous ferons donc une installation manuelle. Pour commencer on télécharge les outils de base "tools" depuis le site officiel https://developer.android.com/studio/index.html#downloads qu’on désarchive dans un répertoire dédié.

km@:~/FP2# sudo apt install adb fastboot

Cette archive ne contient que le strict minimum et entre autre le binaire android qui permet d’obtenir des modules annexes dont les commandes adb.

Pour ceci on télécharge les éléments manquants via le sdkmanager. On prendra les paquets proposés par défaut, ni plus, ni moins.

km@:~/FP2# tools/android update sdk

tools/android update sdk
*************************************************************************
The "android" command is deprecated.
For manual SDK, AVD, and project management, please use Android Studio.
For command-line tools, use tools/bin/sdkmanager and tools/bin/avdmanager
*************************************************************************
"android" SDK commands can be translated to sdkmanager commands on a best-effort basis.
Continue? (This prompt can be suppressed with the --use-sdk-wrapper command-line argument
or by setting the USE_SDK_WRAPPER environment variable) [y/N]: y
Running /home/km/Desktop/FP2/android-sdk/tools/bin/sdkmanager --update

Lors de l’installation, vous verrez une demande apparaître sur votre téléphone. Cette demande permet d’appareiller votre téléphone avec l’instance adb de votre ordinateur, il vous accepter.

Une fois l’installation réalisées, on peut vérifier la bonne communication avec le téléphone :

km@:~/FP2# platform-tools/adb  devices
List of devices attached
fe6gf64b        device

Télécharger le boot.img

Sur la base du travail de phh retsifp fournit des images boot prêtes à l’emploi. Depuis https://fp2.retsifp.de/ on récupère l’image eng adapté à au build de notre FP2.

EDIT 2021  : Depuis juin 2020 retsifp n’utilisant plus de Fairphone celui ci a cessé de maintenir le service mais un contributeur a repris le flambeau, les images sont maintenant disponibles sur https://fp2.lrnz.org/.

On utilisera la version eng qui est la plus générique et offrant la meilleure compatibilité. Pour comprendre les différentes versions (saveurs), je vous renvoie sur l’article de fond

km@:~/FP2#  stat boot-fairphone-FP2_gms70_1.10.1-su-eng-r282.img

On est paré pour mettre à jour notre téléphone et profiter du mode root/superuser.

 Mettre à jour le boot

km@:~/FP2# cd platform-tools
km@:~/FP2# sudo ./adb reboot bootloader
km@:~/FP2# sudo ./fastboot devices

km@:~/FP2# sudo ./fastboot flash boot boot-fairphone-FP2_gms70_1.10.1-su-eng-r282.img
target reported max download size of 536870912 bytes
sending 'boot' (13975 KB)...
OKAY [  0.439s]
writing 'boot'...
OKAY [  0.191s]
finished. total time: 0.631s

km@:~/FP2# sudo ./fastboot reboot
rebooting...
finished. total time: 0.102s

 Installer un gestionnaire d’accès root

Une fois le téléphone flashé, on a besoin d’une application qui puisse prendre en charger l’autorisation du mode root. Pour ceci on utilise l’application Superuser de phhusson qui compléte le boot.img téléchargé au début.

 Et voilà

C’est fini. On peut tester le mode root en :

Messages

  • Bonjour,

    En suivant votre tuto et en m’aidant de celui d’origine en Anglais, j’ai réussit à comprendre la procédure, ce qui n’était pas facile, surtout que je suis sur mac (mais heureusement la version Anglaise explique comment faire sur mac). J’ai été jusqu’à l’étape "km@ : /FP2# sudo ./fastboot flash ../boot boot-fairphone-FP2_gms70_1.10.1-su-eng-r282.img" Mais une fois là, j’ai un détails de commandes possible à faire et j’ai eu beau tout lire pour essayer de trouver la bonne, j’ai peur de faire une bêtise. En effet, sur votre tuto, après cette ligne, le reste est très flou, je ne sais ce que je dois faire, et sur le tuto en Anglais, ce n’est pas beaucoup mieux. Si je vous fourni tout ce qui est écrit dans ma fenêtre de terminal, pensez vous que vous pouvez me dire quelle commande taper après ? En tous cas, voici ce que la fenêtre de mon terminal dit : http://hpics.li/4f118cf http://hpics.li/25142ec

    La dernière ligne c’est la ligne que j’ai eu l’idée d’écrire mais je n’en suis pas sûre que ce soit la bonne commande. Merci pour toute l’aide que vous pourriez m’apporter.

    • Bonjour

      Concernant la première capture d’écran je vois une faute de frappe, on devrait avoir ./fastboot  flash /User/... Il manque un espace entre flash et /User.

      Au vu de la capture fastboot considère la commande flash/User/... comme invalide. Ce qui est normal :)

  • Ah, bon, pour moi c’était bon vu qu’il proposait des option derrière, je croyais qu’il me suffisait d’en rentrer une de celles proposées. Je viens de faire avec un espace, et voici le message que j’ai
    "unknown partition ’/Users/audrey..../Downloads/boot-fairphone-FP2-gms-17.10.2-su-eng-r318.img’
    error : cannot determine image filename for ’/Users/audrey...../Downloads/boot-fairphone-FP2-gms-17.10.2-su-eng-r318.img’
    iMac-de-Audrey:platform-tools audrey....$"

    Alors qu’hier, sans l’espace, on me proposait un menu... Ça a l’air d’être pire comme ça, que puis-je faire maintenant ?

  • J’ai réussi !!! À force de test. Du coup, je met la commande qui a fonctionner, si des utilisateurs mac viennent ici et sont perdus, voici toutes les lignes à entrer les uns après les autres :

    Last login : Wed Nov 15 10:31:25 on ttys000
    iMac-de-Audrey : audrey*****$ cd /Users/audrey*****/Library/Android/sdk/platform-tools
    iMac-de-Audrey:platform-tools audrey*****$ ./adb devices
    List of devices attached
    * daemon not running. starting it now at tcp:5037 *
    * daemon started successfully *
    1ff6f61a device

    iMac-de-Audrey:platform-tools audrey*****$ ./adb reboot bootloader
    iMac-de-Audrey:platform-tools audrey*****$ ./fastboot devices
    1ff6f61a fastboot

    iMac-de-Audrey:platform-tools audrey*****$ ./fastboot flash boot /Users/audrey*****/Desktop/boot-fairphone-FP2-gms-17.10.2-su-eng-r318.img

    J’ai mis des étoiles à la place de mon nom, mais voilà en gros les entrée, (à adapter avec les fichiers de votre ordi)

  • Re, c’est encore moi... Bon, gros soucis, avec cette version du boot, la wifi ne fonctionne plus. En effet, je l’active, mais il me dis qu’aucun réseau n’est disponible... J’ai fait un test en ré-installant l’imagine "orig-boot.img", et le wifi est de retour. J’ai donc essayé la version FP2-gms-17.10.2/ dans le lien donné pour les images, car au départ j’avais pris la plus récente : celle dans le fichier FP2-gms-17.11.2/... Mais c’est pareil, toujours le beug de wifi ! Que faire ? Il y a un beug dans la image boot fournie ? D’autres ont-ils le même problème ? Merci de m’aider

    • Bonjour

      Pour ce point je ne pourrais être d’aucune utilité :/ J’ai juste rédigé cet aide mémoire car la documentation d’origine manquait d’élément.

      Pour avoir un support concernant les images il faut voir sur le forum officiel et/ou directement avec l’équipe qui s’occupe de ces images.

Un message, un commentaire ?

Qui êtes-vous ?
Votre message

Pour créer des paragraphes, laissez simplement des lignes vides.