Come disabilitare il processo di Game Center (con gioco) su OS X 10.11 El Capitan?


10

Sembra che non riesca a modificare il file plist da LaunchAgents - anche se sudo, mi viene impedito qualsiasi eliminazione / alterazione. Devo necessariamente disabilitare SIP per farlo?


Hai provato e visto cosa succede?
Tetsujin,

Risposte:


16

Disabilita LaunchAgent (non LaunchDaemons) e riavvia il computer ( senza sudo):

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

Nel caso in cui si desideri riattivarlo ad un certo punto:

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

1
dice: /System/Library/LaunchAgents/com.apple.gamed.plist: Impossibile trovare il servizio specificato Sono su 10.11.2; grazie per il suggerimento!
jrgd,

L'ho appena provato sulla mia macchina e ha funzionato bene. Stesso sistema operativo (10.11.2). Hai copiato e incollato il comando dalla mia risposta? Modifica: assicurati di non usaresudo
frdmn

sì, l'ho fatto; controlla anche all'interno della directory e il file plist è lì ... hai rimosso SIP / rootless per caso in passato?
jrgd,

No, non ho: paste.frd.mn/loyon - Vedi il servizio in launchctl list?
dal

1
Di niente!
dal

9

Secondo questa discussione puoi fare:

defaults write com.apple.gamed Disabled -bool true

E per controllare lo stato corrente del demone usare:

defaults read com.apple.gamed Disabled

2

Una soluzione è quella di creare uno script bash per interrompere il servizio di gioco dopo aver effettuato l'accesso. Utilizza Automator in OS X per creare uno script bash, quindi aggiungilo come elemento di accesso al tuo account OS X. Al prossimo accesso dovresti ricevere un prompt per eseguire lo script. Normalmente aspetto fino a quando non vedo un avviso da Little Snitch che Gaming sta telefonando a casa, quindi faccio clic su "Continua" per eseguire lo script. Questo non è stato perfezionato e potresti riscontrare problemi se lo esegui immediatamente dopo aver effettuato l'accesso a OS X. Preferisco stare lontano dalle soluzioni che disabilitano il servizio in quanto richiedono disabilitazione / sostituzione di SIP che sconsiglio.

Ecco lo script bash che uso. Qualsiasi suggerimento su come migliorarlo è il benvenuto.

    #!/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

2

Il problema è che la risposta accettata fornita sopra:

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

non lavora più. L'ho visto anche usando la -wbandiera. In ogni caso, negli ultimi aggiornamenti, penso a El Capitan o Yosemite, invece ricevi un messaggio

Operazione non consentita mentre è attiva la Protezione integrità del sistema

System Integrity Protection è anche noto con l'acronimo SIP. Per disabilitarlo è necessario avviare il sistema operativo di ripristino ed eseguire csrutil disable.

Ho eseguito questa sequenza nelle versioni precedenti e mi ha permesso di disabilitare il gioco tramite il launchctlcomando.

Suppongo che dopo che il gioco sia disabilitato, si potrebbe riattivare SIP. Forse sarebbe il migliore dei due mondi, sebbene sia un processo noioso tutto sommato.


0

che dire sudo launchctl unload /System/Library/Launch\ Daemons/com.apple.gamed.plist?


/ System / Library / Launch Daemons / com.apple.gamed.plist: nessun file o directory del genere --- sono il 10.11.2 (grazie per il suggerimento)
jrgd

mio male, è un LaunchAgent: sudo launchctl unload / System / Library / Launch \ Agents / com.apple.gamed.plist
PEM8000

Grazie; la directory è LaunchAgents sulla mia macchina; dopo aver usato la strada giusta ho ricevuto un "Impossibile trovare il servizio specificato" che mi rende triste
jrgd

0

su OS Sierra vai su Impostazioni di sistema, Account Internet ed elimina (con il meno) il Game Center nell'elenco (lato sinistro).


Questo elimina semplicemente l'account Game Center e non disabilita il processo di gioco. Inoltre, questa domanda riguarda El Capitan e non Sierra. Consulta Come rispondere per suggerimenti su come fornire risposte valide alle domande. - Dalla recensione
fsb,

0

Ciò fa poca o nessuna differenza dal punto di vista della sicurezza in quanto ripristina semplicemente un sistema esattamente come funzionava prima di SIP, ed esattamente come funzionano ancora quasi tutti i sistemi Unix. Il valore di SIP è discutibile nella migliore delle ipotesi. Risolve la domanda perché l'unico modo per utilizzare il comando Launchctl per scaricare il file plist di gioco è prima disabilitare SIP, avviare, scaricare il file plist e quindi, se lo si desidera, riabilitare SIP.


0

Un'altra opzione che funziona su 10.11.6 è una variazione del metodo suggerito da @ Le-Sci. Crea uno script shell che disabilita il processo di gioco:

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

Il comando sleep qui dice allo script di attendere 30 secondi prima di iniziare il processo di chiusura di Gaming, per dare al sistema abbastanza tempo per aver caricato Gaming prima di provare a terminarlo; puoi regolare il tempo di attesa se necessario. Il comando "kill -9" chiude forzatamente il processo richiesto, ma accetta solo un numero ID processo, non un nome processo, quindi "pgrep" viene utilizzato per cercare l'id processo. Prendi nota di dove salvi lo script (per questo esempio, lo salverò come "forceQuitGamed" in / Users / mioaccountname /).

Autorizza l'esecuzione dello script:

sudo chmod +x ~/forceQuitGamed

Crea un file plist dell'agente di avvio che verrà eseguito ogni volta che accedi al tuo account. Se prima non hai creato un file plist, un modo per farlo è con TextEdit. Il file di script deve essere salvato in testo normale, quindi se le preferenze predefinite per TextEdit richiedono la formattazione Rich Text, eseguire un comando Formato> Crea testo normale per convertire in testo semplice prima di provare a utilizzare il nuovo file plist dell'agente di avvio.

<?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 stringa nella matrice in "ProgramArguments" è lo script path / to / your / shell. Salvare il file in ~ / Library / LaunchAgents /. In questo esempio, ho chiamato il file plist com.myaccountname.forceQuitGamed.plist, quindi è disponibile all'indirizzo

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

Ora ogni volta che accedi al tuo account, il gioco dovrebbe essere forzatamente chiuso solo pochi secondi dopo che è stato caricato. (Se è necessario che venga terminato il più presto possibile dopo il caricamento, consultare il metodo @ Le-Sci.) Questo approccio funziona senza la necessità di disabilitare la protezione dell'integrità del sistema.


-4

Devi prima entrare csrutil disablein Terminale quando sei in Modalità di recupero, quindi riavviare apportare modifiche, riavviare di nuovo in Modalità di ripristino ed eseguire csrutil enable, riavviare.

Ma non so quali processi una volta modificati comprometteranno l'avvio in El Capitan


Questo abilita l'accesso root. Cosa ha a che fare con il gioco?
Senza nome_1

Questa è davvero una pessima idea dal punto di vista della sicurezza e non affronta la questione.
ruief
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.