Comment désactiver le processus Game Center (gamed) sur OS X 10.11 El Capitan?

10

Il semble que je ne puisse pas modifier le fichier plist de LaunchAgents - même si je suis sudo, je suis empêché de toute suppression / altération. Dois-je nécessairement désactiver SIP pour ce faire?

jrgd
la source
L'avez-vous essayé et vu ce qui se passe?
Tetsujin

Réponses:

16

Désactivez le LaunchAgent (pas LaunchDaemons) et redémarrez votre machine ( sans sudo):

$ launchctl unload /System/Library/LaunchAgents/com.apple.gamed.plist

Si vous souhaitez le réactiver à un moment donné:

$ launchctl load /System/Library/LaunchAgents/com.apple.gamed.plist
frdmn
la source
1
il dit: /System/Library/LaunchAgents/com.apple.gamed.plist: Impossible de trouver le service spécifié Je suis sur 10.11.2; Merci pour la suggestion!
jrgd
Je viens de l'essayer sur ma machine et cela a bien fonctionné. Même système d'exploitation (10.11.2). Avez-vous copié et collé la commande de ma réponse? Edit: assurez-vous de ne pas utilisersudo
frdmn
oui je l'ai fait; vérifiez également à l'intérieur du répertoire et le fichier plist est là… avez-vous supprimé SIP / rootless par hasard dans le passé?
jrgd
Non, je n'ai pas: paste.frd.mn/loyon - Voyez-vous le service en launchctl list?
frdmn
1
Vous êtes les bienvenus!
frdmn
9

Selon ce fil, vous pouvez faire:

defaults write com.apple.gamed Disabled -bool true

Et pour vérifier l'état actuel de l'utilisation du démon:

defaults read com.apple.gamed Disabled
ccpizza
la source
2

Une solution consiste à créer un script bash pour arrêter le service de jeu après votre connexion. Utilisez Automator sous OS X pour créer un script bash, puis ajoutez-le comme élément de connexion à votre compte OS X. La prochaine fois que vous vous connectez, vous devriez recevoir une invite pour exécuter le script. Normalement, j'attends jusqu'à ce que je vois une alerte de Little Snitch qui a joué au téléphone, puis je clique sur «Continuer» pour exécuter le script. Cela n'a pas été perfectionné et vous pouvez rencontrer des problèmes si vous l'exécutez immédiatement après vous être connecté à OS X. Je préfère rester à l'écart des solutions qui désactivent le service car celles-ci nécessitent la désactivation / la substitution de SIP, ce que je déconseille.

Voici le script bash que j'utilise. Toutes suggestions pour l'améliorer sont les bienvenues.

    #!/bin/bash
        chkService=gamed
        chkCount=10
        chkStatus=$(ps ax | grep "$chkService" | grep -v grep | grep " T " | wc -l)
        while [ $chkStatus -ne 1 ]; do
            chkProcess=$(ps ax | grep -v grep | grep "$chkService" | wc -l)
            if [ $chkProcess -ne 0 ];
            then
                KILLALL -STOP "$chkService"
                chkCount=0
                chkStatus=$(ps ax | grep gamed | grep -v grep | grep " T " | wc -l)
            else
                SLEEP=1
                chkCount=$((chkCount-1))
            fi
        done
Le Sci
la source
2

Le problème est que la réponse acceptée donnée ci-dessus:

launchctl unload /System/Library/LaunchAgents/com.apple.gamed.plist

ne fonctionne plus. Je l'ai également vu utiliser le -wdrapeau. En tout cas, dans les dernières mises à jour, je pense autour d'El Capitan ou de Yosemite, vous obtenez plutôt un message

Fonctionnement non autorisé lorsque la protection de l'intégrité du système est activée

La protection de l'intégrité du système est également connue sous l'acronyme SIP. Pour le désactiver, vous devez démarrer dans le système d'exploitation de récupération et exécuter csrutil disable.

J'ai fait cette séquence dans les versions précédentes et cela a permis de désactiver le jeu via la launchctlcommande.

Je suppose qu'après avoir désactivé le jeu, on pourrait réactiver SIP. Ce serait peut-être le meilleur des deux mondes, bien que ce soit un processus fastidieux dans l'ensemble.

Jeffrey Simon
la source
0

qu'en est-il sudo launchctl unload /System/Library/Launch\ Daemons/com.apple.gamed.plist?

PEM8000
la source
/ System / Library / Launch Daemons / com.apple.gamed.plist: Aucun fichier ou répertoire de ce type --- Je suis le 10.11.2 (merci pour la suggestion)
jrgd
ma mauvaise, c'est un LaunchAgent: sudo launchctl décharger / System / Library / Launch \ Agents / com.apple.gamed.plist
PEM8000
Merci; le répertoire est LaunchAgents sur ma machine; en utilisant le bon chemin, j'ai obtenu un "service introuvable" qui me rend triste
jrgd
0

sur OS Sierra, allez dans Paramètres système, Comptes Internet et supprimez (avec le moins) le Game Center dans la liste (côté gauche).

Marlon Shanhai
la source
Cela supprime simplement le compte Game Center et ne désactive pas le processus de jeu. De plus, cette question concerne El Capitan et non Sierra. Veuillez consulter Comment répondre pour obtenir des conseils sur la manière de répondre correctement aux questions. - De l'avis
fsb
0

Cela fait peu ou pas de différence du point de vue de la sécurité car il rétablit simplement un système exactement comme il fonctionnait avant SIP, et exactement comment presque tous les systèmes Unix fonctionnent toujours. La valeur de SIP est au mieux discutable. Il répond à la question car le seul moyen d'utiliser la commande Launchctl pour décharger le fichier plist gamed est de désactiver d'abord SIP, de démarrer, de décharger le fichier plist, puis, si vous le souhaitez, de réactiver SIP.

Mark Choi
la source
0

Une autre option qui fonctionne sur 10.11.6 est une variation de la méthode suggérée par @ Le-Sci. Créez un script shell qui désactive le processus joué:

#!/bin/bash
sleep 30 && kill -9 "$(pgrep gamed)"

La commande sleep indique ici au script d'attendre 30 secondes avant de démarrer le processus de sortie de gamed, pour donner au système suffisamment de temps pour avoir chargé gamed avant d'essayer de le terminer; vous pouvez ajuster le temps d'attente si nécessaire. La commande "kill -9" force à quitter le processus que vous demandez, mais elle n'accepte qu'un numéro d'ID de processus, pas un nom de processus, donc "pgrep" est utilisé pour rechercher l'ID de processus. Prenez note de l'endroit où vous enregistrez le script (pour cet exemple, je l'enregistrerai comme "forceQuitGamed" dans / Users / myaccountname /).

Accordez au script la permission d'exécution:

sudo chmod +x ~/forceQuitGamed

Créez un fichier plist d'agent de lancement qui s'exécutera à chaque connexion à votre compte. Si vous n'avez pas créé de fichier plist auparavant, vous pouvez le faire avec TextEdit. Le fichier de script doit être enregistré en texte brut.Par conséquent, si vos préférences par défaut pour TextEdit appellent au formatage RTF, exécutez une commande Format> Créer du texte brut pour convertir en texte brut avant d'essayer d'utiliser le nouveau fichier plist de l'agent de lancement.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.myaccountname.loginscript</string>
    <key>ProgramArguments</key>
    <array>
        <string>/Users/myaccountname/forceQuitGamed</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
</dict>
</plist>

La chaîne dans le tableau sous "ProgramArguments" est le script path / to / your / shell. Enregistrez le fichier dans ~ / Library / LaunchAgents /. Dans cet exemple, j'ai nommé le fichier plist com.myaccountname.forceQuitGamed.plist, donc il se trouve à l'adresse

/Users/myaccountname/Library/LaunchAgents/com.myaccountname.forceQuitGamed.plist

Maintenant, chaque fois que vous vous connectez à votre compte, le jeu doit être forcé à quitter quelques secondes après son chargement. (Si vous avez besoin qu'il soit interrompu dès que possible après son chargement, consultez la méthode de @ Le-Sci.) Cette approche fonctionne sans avoir à désactiver la protection de l'intégrité du système.

Cam U
la source
-4

Vous devez d'abord entrer csrutil disabledans le terminal en mode de récupération, puis redémarrer apporter des modifications, redémarrer à nouveau en mode de récupération et csrutil enableredémarrer.

Mais je ne sais pas quels processus, une fois modifiés, compromettront le démarrage dans El Capitan

user169708
la source
Cela permet la connexion root. Qu'est-ce que cela a à voir avec le jeu?
Unnamed_1
C'est une très mauvaise idée du point de vue de la sécurité, et elle ne répond pas à la question.
ruief