Activer Sidecar sur un vieux Mac n’est pas une bonne idée

A la sortie de Catalina, j’avais parlé de Sidecar et de la possibilité de l’activer sur un ancien Mac, incompatible. J’ai (re)testé… et j’ai compris pourquoi Apple ne le permettait pas.

Petit résumé : Sidecar permet d’utiliser un iPad compatible comme écran, sur un Mac compatible. Je mets deux fois compatible parce que la limite est double. Il faut un Mac capable d’encoder en HEVC (en gros, tout ce qui est sorti après 2016), et un iPad capable de décoder du HEVC (donc un appareil en A9 au minimum, c’est-à-dire 2015). Au lancement de Catalina, quelques lignes de commande permettaient d’activer Sidecar sur les anciens Mac, mais avec 10.15.7 (et probablement nettement avant), ça ne fonctionne plus. La solution s’appelle SidecarPatcher (en ligne de commande) ou Free Sidecar, qui mélange une interface et un peu de ligne de commande.

Avant de montrer que ça fonctionne, il faut parler de plusieurs choses. Premièrement, ça nécessite de modifier des fichiers systèmes de macOS, ce qui n’est pas anodin : on doit désactiver des sécurités de l’OS. Deuxièmement, ça ne fonctionne que sous Catalina, pas sous Big Sur (probablement à cause des sécurités en question, d’ailleurs). Ensuite, si le programme permet en théorie d’activer Sidecar pour pas mal d’iPad, il y a des cas ou ça ne fonctionne pas. J’ai essayé sur un ipad mini 2, resté sous iOS 12, et ça ne fonctionne pas. Même en activant explicitement Sidecar, rien, probablement parce que Sidecar nécessite iOS 13. C’est un peu bizarre de proposer de l’activer alors que ça ne fonctionne pas, du coup. Enfin, et je vais expliquer le titre, c’est une mauvaise idée.

Sidecar encode en HEVC pour envoyer l’image à l’iPad. Le HEVC (H.265) est un codec efficace, mais quand on active Sidecar sur un Mac qui ne le supporte pas nativement (matériellement), on passe sur un encodage logiciel. Ca implique deux soucis vraiment gênants. Premièrement, l’image sur l’iPad est affreuse. Ca fourmille, c’est flou dès que ça bouge, ce n’est vraiment pas propre, ni même réellement utilisable. Sur le coup, techniquement ça fonctionne, mais en pratique c’est vraiment inutilisable à mon sens tellement l’image est dégradée. j’ai essayé de filmer avec l’iPhone pour le montrer, et la partie avec le curseur montre bien le problème (et ce n’est pas la compression YouTube).

Enfin, et c’est un problème lié, l’encodage en temps réel et par le processeur est assez lourd. Sur un MacBook Air de 2012 (Core i7), l’encodeur prend entre 30 et 50 % du CPU en permanence, et la machine souffle pas mal.

Une occupation CPU assez élevée

L’installation

Si vous voulez quand même essayer, voici la marche à suivre.

Premièrement, aller télécharger la dernière version, et lancer le programme avec un clic droit -> ouvrir.

Sauvegarder le fichier qui va être modifié.

cp /System/Library/PrivateFrameworks/SidecarCore.framework/Versions/A/SidecarCore ~/Downloads/SidecarCore.bak

Copier le fichier qui va être modifié.

cp /System/Library/PrivateFrameworks/SidecarCore.framework/Versions/A/SidecarCore ~/Downloads

Dans le programme, sélectionner le fichier SidecarCore qui est dans le dossier Téléchargement.

Maintenant, il faut activer les iPad et les Mac. Pour trouver le type d’iPad, je vous conseille MacTracker. Si vous avez un iPad Air 2, par exemple, c’est un iPad5,3. Il faut cocher l’iPad que vous avez. S’il est supporté officiellement par Sidecar, pas besoin de le chercher évidemment.

Pour le Mac, faites  -> A propos de ce Mac -> Rapport système. Dans Matériel, vous aurez le modèle du Mac. Sinon, Mactracker aussi. Mon MacBook Air de test (11 pouces, 2021) est un MacBookAir5,1.

L’étape suivante, c’est désactiver le SIP. Il faut redémarrer le Mac en pressant command + R, lancer le Terminal, taper csrutil disable et redémarrer.

Maintenant, ce n’est pas fini. Il faut lancer le Terminal et taper les commandes suivantes.

sudo mount -uw /
sudo cp ~/Downloads/SidecarCore /System/Library/PrivateFrameworks/SidecarCore.framework/Versions/A/SidecarCore
sudo codesign -f -s - /System/Library/PrivateFrameworks/SidecarCore.framework/Versions/A/SidecarCore

Avec un macOS Catalina à jour (après 10.15.4), il faut aussi taper la commande suivante.

sudo nvram boot-args="amfi_get_out_of_my_way=0x1"

Maintenant, il faut (encore) redémarrer et ça devrait fonctionner. L’icône va apparaître dans les Préférences système, et l’iPad devrait être détecté. Mais comme expliqué plus haut, c’est vraiment très très moche, et la limitation aux Mac dotés d’un encodeur matériel (et efficace) est logique.

L’icône est là


Ca marche

Normalement, pour revenir à la version originale, il faut simplement taper cette commande.

sudo cp ~/Downloads/SidecarCore.bak /System/Library/PrivateFrameworks/SidecarCore.framework/Versions/A/SidecarCore

Ensuite, si vous avez un Catalina à jour, celle-ci.

sudo nvram -d boot-args