Jailbreak de mon iPod Touch
Posted by Daniel on 05 mar 2008 at 01:45 | Tagged as: ios
Suite à la mise à jour du firmware de l'iPod Touch (et de l'iPhone, mais ça, je n'en ai pas) en version 1.1.4, j'ai décidé de tester le "jailbreak", c'est-à-dire de débloquer l'accès complet à l'ipod.
Ce petit baladeur tourne en effet sur une version allégée de MacOS X, autrement dit, il s'agit d'un système appartenant à la famille BSD des systèmes unix (unix au sens large, je doute que la version installée sur mon ipod ait fait l'objet d'une certification auprès de l'Open Group). On peut donc y installer tout un ensemble de logiciels très intéressants ... à condition de l'avoir débloqué.
Pour ce faire, j'ai utilisé ZiPhone, en version 2.5c (disponible pour MacOS et Windows), qui fait tout ça tout seul, comme un grand : il suffit de brancher lancer ZiPhone, brancher l'ipod, et cliquer sur "jailbreak". L'opération fait défiler pas mal de texte sur l'écran de l'ipod, mais pas de souci, même si ça y ressemble, ce n'est pas un kernel panic. En moins d'une minute, l'appareil aura redémarré et vous proposera une nouvelle application : Installer.
Cet installer est un gestionnaire de paquets, qui vous permettra de télécharger et d'installer automatiquement de nombreuses applications, directement via la connexion wifi. Attention toutefois, le système est installé sur une minuscule partition de 300 Mo, déjà quasiment pleine. Il est donc recommandé de déplacer le répertoire contenant les applications sur la partition utilisée pour le contenu multimédia.
- via l'installer, dans l'onglet install, aller dans la catégorie Sources et ajouter "Community Sources" et "Bigboss's Recommended"
- dans la catégorie System, installer le "BSD Subsystem"
- dans la catégorie System, installer "OpenSSH"
- Se Connecter sur l'ipod via ssh, avec le compte root et le mot de passe alpine - la première connexion sera longue, le temps que l'ipod génère sa paire clé publique/clé privée
- Déplacer le répertoire /Applications dans la partition /private et créer le lien symbolique adéquat (ou, si vous êtes feignants, utilisez directement l'application BossTool qui peut faire ce déplacement pour vous) :
# mv /Applications /private/var # ln -s /private/var/Applications /Applications
A partir de là, vous utilisez l'espace libre du baladeur comme espace de stockage pour vos applications, ce qui laisse tout de suite plus de marge.
Suite à ce déplacement, j'ai rencontré un problème avec l'Installer, qui générait l'erreur Main script execution failed à chaque tentative d'installation d'un package. Ce problème s'est résolu en lui ajoutant le bit setuid :
# chmod u+s /private/var/Applications/Installer.app/Installer
Voici également quelques applications intéressantes :
-
SummerBoard : gestionnaire de thèmes
-
Term-vt100 : terminal (voir ci-dessous pour un problème courant avec ce package)
-
BossPrefs : outil modulaire permettant de gérer les préférences de multiples packages, dont notamment l'activation ou non du serveur ssh
-
PDFViewer : visionneuse de documents PDF (lit les documents dans /private/var/Media/PDF)
-
Stumbler : découverte de réseaux wifi
-
VNsea : client VNC
-
gawk-ja : GNU awk
-
perl : ben ... perl
Un problème courant avec le package Term-vt100 est la non-reconnaissance du mot de passe root lors d'une tentative de login. Pour le résoudre, il faut se connecter en ssh sur la machine et entrer les commandes suivantes :
# mkdir -p /usr/local/arm-apple-darwin/lib # ln -s /usr/lib/libgcc_s.1.dylib /usr/local/arm-apple-darwin/lib
Vous pouvez également utiliser le correctif disponible directement via l'Installer, dans la rubrique Tweaks. Et voilà, un petit terminal BSD mobile!
EDIT : ça y est, j'ai fait la bêtise à ne pas faire, j'ai utilisé la commande passwd pour changer le mot de passe root. C'est à proscrire si vous utilisez le gestionnaire de thèmes SummerBoard, il part en boucle et la seule solution est de restaurer le firmware et de repartir de zéro. D'un autre côté, maintenant, je maîtrise le processus!



Flux RSS 2.0
passwd est buggué sur iP(od|hone).
À la place :
perl -pi.bak -e ‘s{^(root|mobile):.+?:}{« $1: ».crypt(shift, »/s »)}e’ /etc/master.passwd
Vu que root et mobile ont le même mot de passe.
Voir là : http://www.overridersworld.com/?p=74
Il y a également le package Cydia (front-end pour APT) qui installe sa propre version de passwd (je crois que c’est dans le package Core Utilities), qui elle, est censée fonctionner. Il faudra que je teste un de ces jours.
C’est préférable de changer le mdp, notamment lorsqu’on a un iPhone et que l’on se connecte sur des AP en wifi : ssh + « alpine », c’est connu, et c’est trivial de récupérer les bases (SQLite) du carnet d’adresse, des SMS, des photos…
D’autant plus que ziphone pose les BSD Tools (et donc ssh) lors du jail-breaking, et que sshd est lancé au démarrage de l’engin.
Mais bon, moi je dis ça, hein.
C’est clair, laisser le mot de passe par défaut, c’est une invitation au viol. Personnellement, j’utilise BossPrefs pour désactiver le sshd, et je ne l’active que ponctuellement si j’ai besoin à la maison.
De mémoire, un A/R du téléphone annule la désactivation du sshd.
« Laisser le mot de passe par défaut, c’est une invitation au viol » : d’aucuns se demanderont combien de « power-users » auront jailbreaké-parce-que-c’est-possible leur iPhone, sans pour autant avoir sécurisé leur jouet.
ÀMHA : beaucoup
Il y a une option dans BossPrefs qui s’appelle « SSH on boot always ». Sur mon ipod, quand elle est désactivée, le sshd ne redémarre pas au reboot.
Et bon, pour ma part, je plaide coupable, depuis que j’ai planté le SpringBoard en changeant le mdp la première fois, je ne l’ai pas remodifié