Blocage de libwidevinecdm.dylib par Gatekeeper sous macOS Catalina

J'ai upgrade mon MacBook Air de 2018 vers OS X 10.15 Catalina dès que celui-ci était disponible. Si je n'ai pas eu de casse particulière à part le fameux bug de setup post-installation, je me suis aperçu que certains sites de streaming ne fonctionnaient plus correctement sous Safari : en effet, sur myCanal ou Amazon Prime Video par exemple, le son est bien diffusé mais pas la vidéo, ce qui est plutôt contraignant.

En passant par Firefox, je suis confronté à un message d'erreur m'indiquant que la librairie libwidevinecdm.dylib est bloquée car elle ne provient pas d'un développeur identifié par Apple (comprendre qu'elle ne provient pas du Mac App Store et que son développeur n'a pas payé sa taxe à Apple, le parallèle peut être fait avec les drivers pour Windows qui ne sont pas signés).

Pourtant, sur mon installation précédente de Mojave (je n'ai pas procédé à une clean install), j'avais réduit la sécurité de Gatekeeper afin qu'il soit un peu plus lâche concernant la sécurité des applications tierces. En me rendant dans les préférences systèmes et les options de Gatekeeper, celui-ci n'a pas changé.

Il semblerait qu'avec Catalina, Apple ait renforcé Gatekeeper car du coup il bloque la librairie en question. Si pour un exécutable, il est possible de forcer Gatekeeper à accepter le lancement de ce dernier en restant appuyé sur la touche majuscule au moment du double clic (si ma mémoire est bonne !), pour une librairie ou autre composant téléchargé via une application cela n'est pas possible. Il est donc nécessaire de l'autoriser dans les préférences systèmes. Ensuite, de retour sur la vidéo, je peux confirmer l'exécution de ladite librairie.

La vidéo apparaît ensuite correctement et je peux enfin profiter des plateformes de streaming sur le Mac.

Il ne reste plus qu'à espérer qu'un correctif pour Safari arrive prochainement car cette solution ne fonctionne que pour Firefox et les navigateurs utilisant cette librairie (par exemple, Chromium).

Installation de TrueCrypt 7.1 sur OS X 10.10 et suivants

J'utilise TrueCrypt comme solution de cryptage de données depuis quelques années. Outil gratuit et indépendant de tout OS (fonctionne sur Windows, OS X et GNU/Linux), je le trouve léger, fonctionnel et fiable, malgré les rumeurs qui ont conduit les développeurs à abandonner le projet. VeraCrypt semble être le fork reprenant TrueCrypt cependant par habitude j'utilise toujours TrueCrypt.

Cependant, comme TrueCrypt est assez vieux et qu'il n'a pas été mis à jour depuis 2014, son installation sur un système OS X récent est problématique. En effet, le package refusera de s'installer car il considère que la version d'OS X est trop vieille. En cause, dans le code d'initialisation du paquet, un contrôle caduc de la version d'OS X, en se basant sur la chaîne elle-même de la version de l'OS et non la valeur décimale. Ce qui signifie qu'en s'exécutant sur un OS X 10.10, 10.11 ou 10.12, l'application jugera que votre version est plus vieille que 10.4, car par ordre alphabétique, 10.10 est avant 10.4.

Afin de pouvoir installer l'application, il va donc falloir modifier ce bout de code afin de supprimer le contrôle.

Tout d'abord, il faut monter l'image disque, puis copier le fichier d'installation .mpkg. Dans cet exemple, je le copierai sur le bureau.

 

En "affichant le contenu du paquet", on va dérouler le répertoire Contents et modifier le fichier distribution.dist grâce à TextEdit ou n'importe quel autre éditeur de texte. Au début de fichier, la fonction pm_install_check est celle qui pose problème.

 

En supprimant la partie du code écrite en rouge, l'installateur ne fera plus de vérification de la version d'OS X. Il suffit d'enregistrer le fichier (si vous avez bien copié le fichier .mpkg dans un répertoire pour lequel vous avez les autorisations d'écrire, cela ne devrait pas poser de problèmes, c'est pourquoi il faut le sortir du fichier .dmg monté) et de relancer le fichier .mpkg afin que l'installation s'exécute sans anicroche.

function pm_install_check() {
  if(!(system.version.ProductVersion >= '10.4.0')) {
    my.result.title = 'Error';
    my.result.message = 'TrueCrypt requires Mac OS X 10.4 or later.';
    my.result.type = 'Fatal';
    return false;
  }
  return true;
}

Si vous voulez télécharger TrueCrypt dans sa dernière révision avant la version modifiée par les développeurs afin qu'elle ne gère plus l'écriture, je vous renvoie vers ce lien. Si vous ne souhaitez pas réaliser la modification du code vous-même, je mets à disposition sur mon miroir à la fois le fichier .dist modifié (il ne reste plus qu'à le copier-coller dans le .mpkg) ou alors le fichier .mpkg qu'il ne vous restera plus qu'à exécuter pour installer l'application.