Prérequis
- un iPhone jailbreaké ;
- un accès ssh à l’iPhone (il faut installer le package OpenSsh dans Cydia, disposer d’un client ssh sur votre machine de bureau et connecter les deux sur le même réseau) ;
- un éditeur de fichiers textes sur l’iPhone (vim, disponible sur Cydia par exemple) ou un logiciel de transfert de fichiers sftp (pour éditer les fichiers sur votre PC avant de les télécharger sur le téléphone).
Installation
- Commencer par installer le logiciel "ntpdate" disponible sur Cydia (source BigBoss). Il s’agit d’un logiciel graphique permettant de régler manuellement l’horloge de l’iPhone mais qui installe aussi l’utilitaire "ntpdate" (commande en ligne) ;
- Connectez vous à votre iPhone sous root via ssh (mot de passe par défaut : alpine) et créez le fichier /var/root/ReglageHorloge contenant :
#!/bin/sh
DIR=/private/var/stash/Applications/NTPdate.app/bin
$DIR/ntpdate ntp1.jussieu.fr- Si vous voulez conserver une trace des mises à jour, vous pouvez utiliser la version suivante qui conservera l’historique des ajustements de l’horloge dans le fichier /var/root/ntpdate.log :
#!/bin/sh
DIR=/private/var/stash/Applications/NTPdate.app/bin
$DIR/ntpdate ntp1.jussieu.fr >> /var/root/ntpdate.log 2>&1
- Rendez ce script exécutable via la commande :
chmod a+x /var/root/ReglageHorloge
- A ce stade, vous pouvez en tester le fonctionnement en tapant en ligne de commande :
/var/root/ReglageHorloge - Créez le fichier /Library/LaunchDaemons/paul.courbis.horloge.plist contenant :
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>paul.courbis.horloge</string>
<key>ProgramArguments</key>
<array>
<string>/var/root/ReglageHorloge</string>
</array>
<key>StartCalendarInterval</key>
<dict>
<key>Minute</key>
<integer>0</integer>
</dict>
</dict>
</plist>
ATTENTION : il semble que certains navigateurs (comme Chrome) affichent parfois incorrectement le code ci-dessus en omettant d’afficher certaines balises. Le texte "paul.courbis.horloge" doir être encadré par des balises ouvrantes et fermantes de type "string" soit <string>paul.courbis.horloge</string>.
- Activez cette tâche planifiée par la commande (en une seule ligne)
launchctl load /Library/LaunchDaemons/paul.courbis.horloge.plist
Dorénavant votre iPhone se connectera toutes les heures (à l’heure pile) pour synchroniser l’horloge avec le serveur ntp de Jussieu....
Vous pouvez changer la fréquence de cette mise à jour en modifiant le bloc :
<dict>
<key>Minute</key>
<integer>0</integer>
</dict>Par exemple en le remplaçant par
<dict>
<key>Hour</key>
<integer>7</integer>
<key>Minute</key>
<integer>30</integer>
</dict>Pour une connexion tous les matins à 7 heures 30 minutes.
Ou par
<array>
<dict>
<key>Hour</key>
<integer>7</integer>
<key>Minute</key>
<integer>30</integer>
</dict>
<dict>
<key>Hour</key>
<integer>19</integer>
<key>Minute</key>
<integer>30</integer>
</dict>
</array>Pour une synchronisation le matin à 7 heures 30 et le soir à 19 heures 30...
Remarques :
- en cas de modification du fichier plist, lancer la commande :
launchctl unload <p>/Library/LaunchDaemons/paul.courbis.horloge.plist
avant de recharger le job par :
launchctl load /Library/LaunchDaemons/paul.courbis.horloge.plist
- selon les versions d’iOS, le chemin d’accès à la commande
ntpdatepeut varier. Le plus simple est d’installer la commandelocate(dans le paquet "Find utilities"), de mettre à jour sa base de données à l’aide de la commandeupdatedbpuis de trouver la commandentpdateen tapantlocate ntpdate.
Suivre ce site :