Archive for Guillaume

Oublier un package d’installation pour pouvoir le réinstaller

Problème curieux rencontré il y a quelques jours : impossible de réinstaller un package sur le poste d’un client. Sur les autres postes, aucun souci, mais pas sur le sien. Il s’agissait d’un package Cisco AnyConnect customisé pour installer uniquement la partie VPN. Quand on veut le réinstaller via le Self Service de Jamf, l’installation semble se passer… mais rien n’apparaît sur le Mac. Idem si on essaye avec la commande installer. Et quand on veut l’installer par l’interface graphique… rien à faire, car le logiciel d’installation bloque au moment de choisir les options disponibles pour l’installation.

Solution :

  • Lancer le Terminal ;
  • Taper :
pkgutil --pkgs

Ce qui vous donnera déjà le Package ID de tous les packages installés. Dans cette liste, cherchez le package qui correspond au logiciel installé. Dans mon cas, c’était com.cisco.AnyConnect.

  • Tapez maintenant :
sudo pkgutil --forget Package ID

En remplaçant le Package ID par celui trouvé précédemment, donc par exemple :

sudo pkgutil --forget com.cisco.AnyConnect

Tapez votre mot de passe d’administrateur, et validez. La présence du package est désormais oubliée par le système, et le package devrait être installé correctement.

Comment restaurer BridgeOS sur un Mac T2 ?

J’ai rencontré il y a quelques mois un problème sur un MacBook Air 2018, qui d’un seul coup redémarrait dès qu’il avait affaire à un élément d’interface lié à Touch ID (l’Assistant réglages, préférence système…). Systématique, avec une erreur liée à BridgeOS, la partie qui gère la Touch Bar et la sécurité Touch ID du Mac. Réinstallation de système, pareil, formatage du disque, idem, j’y ai passé pas mal de temps. À la fin, j’ai quand même découvert qu’il était possible d’utiliser la procédure DFU… comme sur iOS, pour restaurer BridgeOS sur le Mac, à l’aide d’Apple Configurator (je connaissais déjà la procédure avec l’iMac Pro, mais je n’avais pas vu qu’Apple avait mis à jour la documentation pour les Mac plus récents).

Cet article du site Mr Macintosh récapitule en anglais toutes les informations liées à la restauration de BridgeOS, et en particulier comment mettre le Mac en mode DFU. Et croyez-moi, c’est bien moins facile qu’il y paraît, entre le bon modèle de câble à utiliser et le timing qui est moins évident que ce qu’Apple indique… 

Et pour mon MacBook Air ? J’ai réussi à le passer en DFU et à restaurer BridgeOS… Et ça n’a rien changé. Zou, retour atelier, non mais !

(PS : merci à Darkomen pour le rappel ^^)

Utiliser les anciennes versions des apps Adobe sur un Mac récent

Souci récemment chez un client : après migration vers macOS 10.14, les apps Adobe de la Creative Suite 3 ou 4 râlent au lancement car il manque un moteur Java (le fameux JRE). Et en installant le vieux JRE Apple, ben ça ne marche pas mieux (et côté sécurité, on repassera). 

AdobeJava

 

Alors je sais : on parle d’apps très vieilles, qui ne passeront de toute façon pas sous macOS 10.15 parce qu’elles sont 32-bit, mais :

  1. On n’a pas tous besoin de la dernière version en date de Photoshop ;
  2. Les abonnements pour faire des retouches super light dans Photoshop, ça picote toujours un peu ;
  3. Oui, y’a Pixelmator ou Affinity Photos qui sont très bien, mais c’est pas la question, merci bien hein (et il faut s’adapter un peu à l’interface, même si elles sont très bien) ;
  4. Et la beauté du sport, bordel ?

Donc solution (trouvée par ici, je ne suis que le messager, et j’ai juste adapté un peu) :

  • Installer une version du JRE compatible. On va éviter les versions Oracle (désormais payantes dans le cadre d’un usage commercial), et on va essayer par exemple, Amazon Java Corretto. Téléchargez et installez la version JDK (elle inclut le JRE).
  • Avez l’éditeur de texte de votre choix, en root, ouvrez le fichier /Library/Java/JavaVirtualMachines/amazon-corretto-8.jdk/Contents/Info.plist
  • Cherchez la chaine de caractères suivants :

    <string>CommandLine</string>

    Et remplacez-la par : 

    <string>JNI</string>
    <string>BundledApp</string>
    <string>CommandLine</string>

    (Et oui, ça revient bien à rajouter deux lignes au dessus de la ligne <string>CommandLine</string>

  • Enregistrez le fichier (rappel : vous devez être admin, donc sudo obligatoire en ligne de commande).
  • Lancez Photoshop.
  • Enjoy.

Attention : vous devrez sûrement refaire la manipulation à chaque mise à jour de votre version de Java ! Est-ce que le jeu en vaut la chandelle, à vous de voir…

Command-iT 2019 : toutes les conférences sont en ligne !

JLogo Command iTe n’avais pas pris le temps de l’annoncer officiellement, mais toutes les conférences de Command-iT 2019 sont visibles en ligne sur la chaine YouTube de Command-iT !

Encore merci à tous les intervenants d’avoir joué le jeu en donnant de leur personne pour aborder tous ces sujets variés et passionnants, avec parfois des points de vue très marqués ^^

De mon côté, j’ai pris plaisir à animer ma conférence sur le DEP (enfin, Apple Business) ainsi que le workshop sur les packages (une première pour moi). Encore merci à tous les participants pour leurs commentaires, leur enthousiasme, et tous les échanges qui ont enrichi ces deux journées. 

Et si vous souhaitez voir un peu les coulisses de Command-iT, n’hésitez pas à regarder l’émission spéciale d’iWeek consacrée à Command-iT, avec Benjamin Vincent et une bonne partie de l’équipe habituelle ! Merci à Ouatch.tv de nous avoir suivis !

Quand à nous (enfin, les équipes de Gete.Net Consulting et Maxerviciz), nous prenons un peu de repos avant de préparer la troisième édition l’année prochaine… Car oui, Command-iT reviendra en 2020 !


L’affaire Zoom : quand la simplicité prévaut (trop) sur la sécurité

Zoom us SelfServiceIcon 512x512

Hier, l’affaire Zoom a éclaté au grand jour, avec la révélation de l’installation d’un serveur web tournant en loucedé sur tous les Mac sur lesquels cette application populaire de gestion de visioconférence est installée (et elle n’est à priori pas la seule à agir ainsi).

Tout ça pour quoi ? Pour éviter un clic de plus par l’utilisateur dans Safari quand ce dernier ouvre une conférence, car la page en question veut demander à ouvrir une autre application, ce que Safari n’aime pas vraiment (en fait c’est Apple qui n’aime pas ça, mais du coup Safari non plus).

Répétez cela avec moi :

Pour contourner une fonction de sécurité de macOS, un éditeur installe un serveur web local sur un Mac.

Alors, je veux bien que parfois, les alertes de macOS soient un peu pénibles (et ça ne va pas aller en s’arrangeant), mais personnellement, je trouve le comportement du développer absolument extraordinaire de désinvolture en disant « c’est pas si grave ». Ben si, un peu quand même…

Mais il n’y a pas que ça. J’ai du coup profité de l’occasion pour installer Zoom sur une machine de test, avec le package fourni par défaut sur le site de Zoom. Et là… surprises. En pagaille.

Le package se lance sans alerte particulière, puis on a une fenêtre d’alerte comme quoi le package veut lancer un script de vérification, ce qui peut sembler logique.

Sauf que.

Si vous cliquez sur Continuer, le logiciel d’installation… quitte. Directement. Pas de dialogue supplémentaire, rien.

Zoom Installer

L’application Zoom est déjà dans votre dossier /Applications. Vous n’avez pas accepté de licence, rien. Pas vu de Lisez-moi. Rien. Pas d’acceptation de licence, que dalle. Même pas besoin de taper votre mot de passe administrateur. Le logiciel s’installe et se lance tout seul. J’ai répété plusieurs fois le processus, sur différents Mac, même résultat.

Et effectivement, le package d’installation, au lieu de faire ce qu’il devrait faire, à savoir vous inviter à faire quelques clics, est juste tué sans condition, car le script de pré-installation…est devenu un script d’installation en force.

Ah, et au passage, il va aussi télécharger un fichier MacRetinaRes.zip qu’il va coller… quelque part. Aucune info.

Et comme l’application d’installation a été tuée direct… pas de trace de l’installation dans les reçus d’installation du système. C’est juste complètement n’importe quoi.

Bref, le logiciel d’installation de Zoom fait pas mal de trucs assez dégueulasses d’un point de vue déploiement. Alors qu’il aurait été tout aussi simple de proposer d’installer l’application à partir d’un DMG téléchargé, le mettre dans /Applications à la main et zou.

Mais il y a encore mieux (ou pire, c’est selon).

Zoom propose un package pour les administrateurs. C’est sur leur site, en haut à droite. Et le package d’installation IT est… tout à fait standard. Il installe proprement, il ne tue rien, bref… c’est presque propre.

Mais pourquoi gérer deux packages différents, dans ce cas, bon sang ? Pourquoi se compliquer ainsi la vie ?

La réponse pour Zoom semble finalement assez simple à comprendre :

Pour éviter toute friction entre la visioconférence et l’utilisateur.

D’un point de vue technique, ce que fait Zoom (et ils le disent), c’est vouloir limiter le nombre de clics entre le moment où une conférence est mise en route et un lancement de l’application est effectué, avec un téléchargement allégé. Ce qui ne part pas d’une mauvaise intention : les employés dans les entreprises perdent souvent beaucoup de temps à lancer une conférence, c’est souvent un moment de stress. Zoom essaye de limiter au maximum la friction1 pour éviter ce stress.

Malheureusement, à partir du moment où on contourne des sécurités fondamentales d’un système d’exploitation pour supprimer des clics, le développeur fait à mon goût une grave erreur. On ne peut pas dire « je vais faire sauter la serrure de votre porte, car le jour où un livreur doit déposer un colis chez vous, ça pourrait être gênant si la porte est fermée ».

La sécurité informatique n’est pas une option de nos jours, et qu’une société comme Zoom se permette de contourner ces sécurités est dangereux. Mieux vaut éduquer les utilisateurs que faire n’importe quoi sur un ordinateur, au risque de perdre la confiance de ses clients, actuels ou potentiels.

Zoom est revenu en arrière, a fait amende honorable (après avoir dit quand même au départ « ouais, OSEF »), mais les dégâts sont déjà faits en terme d’image, et ils mettront du temps à s’estomper.

  1. coucou Mourad !

Corriger des lenteurs de macOS Mojave… en désactivant Siri ?

J’avoue : mon passage à macOS Mojave ne s’est pas fait sans heurt. En particulier, je rencontrai des ralentissements hyper agaçants, voire des gels complets d’interface durant plusieurs secondes, sans aucune raison logique, depuis plusieurs semaines. Et rien dans les historiques du Mac.

J’ai aussi constaté que lors de la connexion sur une page web demandant une authentification, le Mac avait tendance à afficher l’arc-en-ciel de la mort, comme s’il rencontrait des difficultés majeures lors de l’accès au trousseau. Ce qui ne serait pas étonnant… Imaginez un compte d’utilisateur qui a migré depuis environ 15 ans d’un Mac à un autre, d’un système à un autre, tout en conservant les mêmes données dans son trousseau… Forcément, ce dernier est un peu rempli, et contient sûrement beaucoup de données obsolètes : réseaux Wi-Fi plus utilisés, informations de serveurs  d’anciens clients, sites web fermés depuis des années…

Hier, les nerfs m’ont pris. J’ai donc commencé à essayer de supprimer des anciennes données du trousseau, mais un bug a commencé à me faire froncer les sourcils. En effet, il était très difficile de sélectionner plusieurs éléments avec la touche Maj. À chaque fois que je cliquais, la sélection « sautait ». Très étrange… Et j’avais l’impression que le trousseau tentait de rafraichir régulièrement une information.

Du coup, j’ai essayé de comprendre, en triant les informations du trousseau par date, du plus récent au plus ancien.

Trousseau bug 1

Et là, très curieusement, j’ai trouvé cet entrée « com.apple.assistant ». Sauf que l’Assistant de démarrage de macOS, ça fait longtemps que je ne l’ai pas lancé. Et surtout, cette entrée semblait se mettre à jour en permanence. Genre, le rafraichissement sautait toutes les cinq secondes… Hmmmmmm.

En cliquant dessus, on découvre une information intéressante : le compte associé à cet élément du trousseau.

Trousseau bug 2

C’est une information importante, car elle nous donne une idée du service qui pourrait être coupable. Ici, l’entrée en question s’appelle :

Siri Global - com.apple.assistant.music.fusetoken

Et donc, le coupable s’appellerait…

SIRI !

Good Grief It s You

Ni une, ni deux, je fonce sur les préférences Système > Siri…

Pref Siri 1

Et vu que je n’utilise jamais Siri sur mon Mac, je décide juste de le / la désactiver en décochant Activer Demander à Siri.

Pref Siri 2

J’ai ensuite profité de l’occasion pour continuer le nettoyage du trousseau. Et croyez-le ou non, mais le changement est radical. Je travaille depuis ce matin sur mon Mac sans ressentir le moindre ralentissement, tout va beaucoup plus vite, et l’accès aux pages web authentifiées se fait désormais à la vitesse de l’éclair. En fait, depuis ce matin, je n’ai plus vu une seule roue multicolore, et ça, ça fait bien plaisir.

Donc, conseil du jour : si vous rencontrez des lenteurs inexpliquées sur Mojave, commencez par désactiver Siri, et regardez aussi si y’a pas des trucs chelou dans le trousseau. On ne sait jamais.

Attention à la suppression des données Touch ID sur Mac T2 !

Mise à jour : ajout du résultat des tests avec Mac à coprocesseur T1, et modification du titre sur à ces tests).

Je suis tombé récemment sur un souci intéressant : j’utilise beaucoup ces derniers temps un MacBook Air équipé de Touch ID, que je dois reformater après mes tests. Et j’avais pris l’habitude de le tester en activant TouchID dessus. Sauf qu’à un moment, Touch ID a dit « Niet, je n’enregistre plus tes empreintes : y’en a trop ! ». Non pas que j’ai utilisé mes dix doigts plus mes dix doigts de pied, mais parce que Touch ID dispose pour chaque doigt enregistré d’un emplacement spécifique dans la Secure Enclave. Et ce nombre est limité ! Du coup, si on enregistre trop de doigts… ça coince !

Renommer un doigt avec Touch ID dans la préférence Système Touch ID

Le sachiez-tu ? On peut renommer une empreinte dans la préférence Système Touch ID.

Pas de souci, cherchons donc comment supprimer les empreintes en trop. Ça tombe bien, Pierre Dandumont de l’exceeeeeeellent Journal du lapin a publié un article exactement sur ce sujet. En gros, on redémarre sur la partition Recovery et on tape la commande :

xartutil --erase-all

Ce qui efface immédiatement les empreintes stockées sur le Mac.

SAUF QUE.

Ce qui n’est pas indiqué dans les différents articles donnant cette astuce1, supprimer toutes les empreintes empêche également de déverrouiller la partition FileVault si une empreinte était stockée en relation avec un compte d’utilisateur ! Et il est impossible de réinitialiser le mot de passe du compte en démarrant sur la partition Recovery : c’est une réinstallation obligatoire à la clé ! Notez que ce n’est pas le cas si votre Mac est équipé d’un processeur T1 (Mac équipé de Touch Bar mais sans processeur de chiffrement matériel, donc Macbook Pro modèle fin 2016 ou 2017).

Donc, attention avec cette commande ! Utilisez-la uniquement si vous avez effectivement pour but de revendre un Mac comme conseillé dans l’article de Pierre. Ne l’utilisez pas sur un Mac T2 en production sans disposer d’une sauvegarde, car vous risqueriez de verrouiller définitivement le Mac et d’empêcher l’accès à toutes ses données.

  1. Et à juste titre, comme le souligne Yoann Gini, car ils ont été écrits pour la plupart avant l’arrivée des processeurs T2), c’est que si votre Mac est chiffré et équipé d’un processeur de sécurité T2 [1.À la date de cet article, cela implique les modèles suivants : iMac Pro, Mac mini 2018, MacBook Pro 2018 ou MacBook Air 2018

Plaidoyer pour un Bureau libre !

Je vois parfois sur les Mac de mes clients, des utilisateurs de la famille ou autres un bureau d’une parfaite clarté.

Et surtout j’entends parfois dire :

« Votre Mac est lent, c’est parce qu’il y a trop de trucs sur le bureau ! »

Alors : non.

Meme si vous disposez de plusieurs dizaines d’icônes sur le bureau, il y a très peu de chances que ça soit la cause de problèmes notoires sur votre Mac. Vraiment. Il faudrait vraiment beaucoup d’icônes pour que l’effet d’un quelconque ralentissement se fasse sentir. Genre plusieurs milliers.

Mais surtout, je lis ou j’entends parfois que le Bureau d’un Mac est une zone temporaire de stockage sur laquelle il vaut mieux éviter de stocker des éléments trop longtemps. Pourquoi ? Parce que.

Alors techniquement, c’est une aberration. Le Bureau est un dossier comme un autre. Rien ne vous empêche d’y empiler les données que vous voulez. Que ça soit dans le dossier Documents ou ailleurs, le niveau de sécurité de vos donnees sur le disque est le même.

Je pense quand même que le bureau d’un Mac n’a pas à être un dépotoir permanent. Quand vos icônes atteignent le bord gauche de l’ecran, c’est probablement la limite maximum. Quand elles se superposent à droite, c’est vraiment le moment de ranger.

Pour les gens qui aiment automatiser le classement, tournez-vous vers les actions de dossier d’Automator (cf l’excellent bouquin de Sylvain Gamel) ou vers le non moins excellent Hazel.

Transférer un fichier avec AirDrop via Glisser-déposer

Il y a quelques jours, j’ai fait une manipulation avec AirDrop qui a fait s’écarquiller en grand les yeux de mon Lolo préféré. Si lui ne

connaissait pas cette astuce, alors autant dire que vous êtes nombreux à ne pas la connaître. Il faut dire qu’elle n’a rien d’évident.

Quand vous transférez un fichier avec AirDrop, si l’utilisateur cible a la fenêtre AirDrop ouverte (celle qui s’affiche via le menu Aller > AirDrop, ou via la barre latérale), un petit pop-up surgit pour vous inviter à accepter le téléchargement. Là, trois possibilités :

AirDrop Fenetre Standard

Mais le truc qui n’est pas visible du tout, c’est que vous pouvez glisser l’icône de l’élément qui s’affiche dans le pop-up pour le placer sur le Bureau ou dans le dossier de votre choix, ce qui revient d’ailleurs à accepter le téléchargement (forcément).

C’est plus facile à comprendre en vidéo :

Notez que l’application-cible doit être le Finder. Forcément, vu que le document n’existe pas encore sur votre Mac.

Ça paraît idiot, mais dès qu’on a pris goût à cette astuce, difficile de revenir en arrière… Et l’astuce fonctionne depuis pas mal de temps (je dirais au moins OS X 10.9).

Comment notarier une application développée en AppleScript ?

C’est une des grosses nouveautés à venir de macOS 10.14.5 : les extensions de noyau devront être notariées pour fonctionner. Le contrôle de la notarisation des apps va d’ailleurs être activée par défaut dans macOS 10.15.

Mais au fait, c’est quoi cette histoire d’applications notariées ?

Et bien, j’ai la flemme de vous expliquer et MacG l’a déjà très bien fait, donc suivez cet hyperlien pour en savoir plus.

Maintenant, comme vous le savez peut-être, j’ai écrit il y a quelques temps déjà DiskMaker X, une application pour créer une clé USB d’installation de macOS. Et cette application est développée en AppleScript, un langage qu’Apple soutient propose encore dans macOS. Et théoriquement, chaque app devant être notariée, ça devrait aussi être le cas de DiskMaker X.

Sauf qu’Apple n’a pas expliqué du tout dans ses documentations comment effectuer cette notarisation pour les apps développées en AppleScript. C’est Alex Narvey qui a donné la solution sur Slack : pour que l’application soit notariée, il ne faut pas la notarier elle-même mais il faut notarier l’image-disque au format DMG qui la contient ! 

Et en pratique, donc, selon le code d’Alex (encore non testé), ça donnerait quelque chose comme ça (en anglais parce que de toute façon, si vous faites de l’AppleScript vous parlez anglais) :

0. Get a one time password for your App from your Develper Apple ID account.
1. Export your Script to an unsigned app in a folder on the Desktop:
/Users/precursor/Desktop/MyAppleScript Folder/MyAppleScript.app
2. Clear any extended attributes:

sudo xattr -rc “/Users/precursor/Desktop/MyAppleScript Folder/MyAppleScript.app”
3. CodeSign the script using the hardening option:

codesign --force --options runtime --deep --sign "Developer ID Application: Precursor.ca, Inc. (SERIAL#)" "/Users/precursor/Desktop/MyAppleScript Folder/MyAppleScript.app"
4. Verify the Signature:

codesign -dv --verbose=4 "/Users/precursor/Desktop/MyAppleScript Folder/MyAppleScript.app"
5. with your onetime signature ready, create a DMG from the app’s enclosing folder.

/usr/bin/hdiutil create -imagekey zlib-level=9 -srcfolder "/Users/precursor/Desktop/MyAppleScript Folder" -fs HFS+ -volname Test /Users/precursor/Desktop/MyAppleScript.dmg

(my enclosing folder also has a ReadMe file in it)
6. Upload the dmg to Apple for notarization with your one-time password:
xcrun altool --notarize-app --primary-bundle-id "com.apple.ScriptEditor.id.MyAppleScript" --username "email_address" --password "one-time-pass-word" --file "/Users/precursor/Desktop/MyAppleScript.dmg"
7. Record successful RequestUUID:

ce0af42942-cfec-5580-ad8f-80625ec2d7
8. Validate the Notarization:

xcrun altool --notarization-info ce0af42942-cfec-5580-ad8f-80625ec2d7 --username "email_address" --password "one-time-pass-word"
9. Staple the notarization to the dmg:

xcrun stapler staple "/Users/precursor/Desktop/MyAppleScript.dmg"

Donc, en résumé :

– On crée un mot de passe à usage unique sur le portail développeur d’Apple ;

– On exporte le script comme script non signé ;

– On supprime ses attributs étendus ;

– On le signe et on vérifie la signature ;

– On crée une image-disque DMG depuis le dossier de l’application ;

– On envoie le DMG chez Apple avec son mot de passe unique ;

– On valide la notarisation ;

– On attache la notarisation au fichier DMG. Et on met ce dernier en téléchargement évidemment.

Et c’est tout (et c’est déjà pas mal). 

 

Vous êtes administrateur Apple, Consultant, revendeur Apple ? Inscrivez-vous à Command-iT, la grande conférence des spécialistes Apple, les 15 et 16 mai au Grand Rex à Paris ! J’y animerai une conférence ainsi qu’un workshop ! Plus d’informations sur https://www.command-it.fr.