8 votes

Comment empêcher l'application Photos de lancer cloudphotosd, photoanalysisd, etc.

Un certain nombre de services d'arrière-plan utilisés par l'application Photos remplissent des fonctions dont je ne souhaite pas bénéficier (et, dans certains cas, que je ne veux absolument pas). Il s'agit principalement des services suivants photoanalysisd y cloudphotosd . Je suis raisonnablement certain que le premier n'est pas strictement nécessaire au fonctionnement de l'application Photos (s'il est nécessaire pour certaines fonctionnalités) ; je suis légèrement moins certain du second, mais ce n'est pas précisément l'objet de la question. ( photolibraryd Je sais que l'application en a besoin pour fonctionner correctement, et je n'y touche donc pas).

Là où je suis bloqué, c'est que leur lancement ne semble pas respecter launchctl disable . En effet, launchctl print gui/$UID inclut les deux démons au sein de la disabled services avec l'indicateur défini sur true L'application Photos déclenchera toujours leur lancement dès qu'elle sera lancée. Il ne les active pas dans launchd Les drapeaux restent inchangés lorsque je vérifie après le test en lançant l'application Photos.

En considérant la possibilité que je les ai désactivés dans le mauvais sens. launchd j'ai ensuite essayé de les désactiver dans le domaine system mais en vain : le lancement de Photos démarre toujours ces deux services dès qu'il est lancé.

J'ai également essayé d'utiliser l'héritage launchctl unload -w sur le modèle correspondant .plist dans /System/Library/LaunchAgents/ mais a été informé par launchctl dans ce cas, que le service n'a pas pu être trouvé.

Au cas où un état volatile devait être purgé ou un rechargement effectué, j'ai arrêté et redémarré le système après m'être assuré que ces services étaient marqués comme désactivés. Ils reviennent toujours dès que l'application Photos est lancée.

launchctl blame gui/$UID/cloudphotosd simplement déclaré que le service a été lancé pour xpc (mach) ce qui ne me dit pas grand-chose (la communication interprocessus est probablement due au lancement du service par l'application photos).

Je me demande comment vraiment désactiver ces processus d'arrière-plan particuliers, afin qu'ils ne puissent pas être lancés par l'application Photos, sans les supprimer complètement du système ou effectuer d'autres modifications "destructives". En d'autres termes, alors que je pourrais probablement simplement trouver leurs exécutables réels et les déplacer quelque part pour les archiver, n'étant pas très familier avec le fonctionnement de l'application launchd Je suis curieux de savoir s'il existe un moyen, au sein de son système, d'interdire réellement le lancement de certains services. Je pensais que c'était launchctl disable ... mais il semble que non, car cela ne semble pas avoir d'effet dans ce cas.

EDIT : Je dois préciser qu'il s'agit de MacOS 10.14/Mojave.

3voto

lamas Points 2252

Essayez de courir chmod -x sur les binaires. Cela les empêchera de lancer du tout jusqu'à ce que vous les rendiez à nouveau exécutables.

Je ne sais pas comment le SIP va affecter cela, puisque vous modifiez des programmes intégrés. Vous devrez peut-être le désactiver.

1voto

Dak Points 103

Cela s'avère désagréable. Je suis désolé de dire qu'Apple a vraiment merdé sur ce point (et comme il est obsolète, il n'y aura pas de correction permanente). La bonne nouvelle est que, comme il est obsolète, la plupart des correctifs énumérés ici et ailleurs devraient continuer à fonctionner.

  1. Tout d'abord, si votre système est incroyablement lent parce que le photoanalysisd exécute des tâches sans arrêt, sans rien faire, vous pouvez simplement.. :

    sudo killall photoanalysisd

Cela vous permettra de respirer un peu et d'accéder à votre disque. Voilà, c'est mieux, n'est-ce pas ? Si ce n'est pas suffisant, vous pouvez toujours faire un while true do sudo killall photoanalysisd ; sleep 60 ; done

  1. Les corrections permanentes impliquent toutes la désactivation de la protection de l'intégrité du système (SIP), car le démon d'analyse des photos et sa configuration sont tous sous la protection de SIP. C'est possible qu'une mise à jour du système réinitialise les valeurs par défaut d'Apple, mais comme votre système est obsolète maintenant, c'est peu probable.

Donc, redémarrez dans la console de récupération (redémarrez, maintenez la touche R pendant le redémarrage, puis ouvrez le terminal.

    csrutil disable
    shutdown -r now

pour désactiver le SIP, puis redémarrer

Maintenant, tout ce que vous avez à faire est de déplacer le fichier de configuration qui indique à launchd de démarrer photoanalysisd.

    cd /System/Library/LaunchAgents/
    mkdir DISABLED
    sudo mv com.apple.photoanalysisd.plist DISABLED
    sync

puis redémarrez en mode récupération, toujours en maintenant R pendant le démarrage.

    shutdown -r now

maintenez la touche r ouvrir le terminal, et csrutil enable shutdown -r now

Et maintenant, photoanalysisd ne s'affiche pas.

Tristement,

  1. Notez que le plist pour photoanalysisd a des choses comme le délai, la répétition ou non, et ainsi de suite. Dans mon expérience, aucune d'entre elles n'est utilisée, car bien que launchd ait ces fonctionnalités, photoanalysisd semble avoir sa propre idée de redémarrage pour attendre le travail, et n'utilise pas les fonctionnalités de launchd. SIGH. Je soupçonne que c'est moins grave sur APFS, mais sur HFS+, il n'a pas les métadonnées pour faire cela efficacement, donc le photoanalysisd "pas de problème, testé et fonctionnant sur 'ma machine'" est en fait un monstre de bande passante et de processeur, ne faisant rien du tout après que la classification initiale soit faite.

J'adorerais connaître un moyen de lancer une photoanalyse uniquement à la demande, mais la combinaison de SIP et de l'absence de protocole de travail documenté rend la tâche difficile sans documentation. J'ai même cherché dans le binaire les chaînes de caractères qu'il pourrait rechercher dans les commandes, les propriétés de launchd, etc. mais il n'y a pas de documentation. Si je mets un jour mon iMac 2009 à niveau avec un SSD, je verrai. Cela dit, le matériel sera toujours SATA et non NVMe, donc le grand nombre de canaux de commande qui pourraient rendre l'interface du disque si rapide qu'elle s'en moque ne sera pas là. Si quelqu'un d'autre a des résultats, ce serait génial.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X