Apple emploie une technique pas très catholique, mais efficace, pour libérer de la mémoire vive sur iOS. D'après les recherches de Pwn20wnd, un des hackers responsables du jailbreak unc0ver, une partie d'iOS est redémarrée certaines nuits, quand l'iPhone n'est pas utilisé.
Cette pratique est passée inaperçue aux yeux de tous, à l'exception des adeptes du jailbreak. En redémarrant l'userspace, la partie du système qui comprend notamment les processus et applications de l'utilisateur, iOS mettait à l'arrêt un composant essentiel du jailbreak (Substrate), avec comme conséquence d'avorter le jailbreak dans son ensemble.
Pwn20wnd a réussi à identifier la commande responsable du redémarrage de l'userspace (elle se situe dans le processus launchd
, qui gère les démons système) et à la modifier pour qu'elle n'affecte plus le jailbreak. Ce correctif d'unc0ver remonte en fait au mois de mars, mais il a été remis en lumière récemment par un autre hacker.
Selon Pwn20wnd, ce redémarrage de l'userspace n'est pas un bug d'iOS, mais une routine intentionnelle, qui remonte au moins à iOS 9. Celle-ci est normalement transparente pour l'utilisateur : elle se déroule uniquement quand l'iPhone n'est pas en activité et il ne s'agit pas d'un redémarrage complet (le noyau n'est pas redémarré). Seul l'espace utilisateur est redémarré, sans que cela n'affecte le bon fonctionnement des apps, a priori, y compris celles qui tournent en tâche de fond toute la nuit (la routine est peut-être ajournée quand le cas se présente).
Sur Twitter, un ingénieur d'Apple a confirmé en creux cette pratique en indiquant qu'elle ne devait pas avoir lieu toutes les nuits. Dans le cas inverse, si vous remarquez un redémarrage partiel quotidien (un internaute dit être concerné), il s'agit d'un bug à signaler à Apple.