¿Cómo deshabilitar el proceso de Game Center (gamed) en OS X 10.11 El Capitan?

10

Parece que no puedo editar el archivo plist desde LaunchAgents, incluso si sudo, no puedo eliminarlo / modificarlo. ¿Tengo que desactivar necesariamente SIP para hacer esto?

jrgd
fuente
¿Lo probaste y viste lo que sucede?
Tetsujin

Respuestas:

16

Deshabilite el LaunchAgent (no LaunchDaemons) y reinicie su máquina ( sin sudo):

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

En caso de que desee habilitarlo nuevamente en un punto:

$ launchctl load /System/Library/LaunchAgents/com.apple.gamed.plist
frdmn
fuente
1
dice: /System/Library/LaunchAgents/com.apple.gamed.plist: No se pudo encontrar el servicio especificado. Estoy en 10.11.2; ¡Gracias por la sugerencia!
jrgd
Lo probé en mi máquina y funcionó bien. Mismo sistema operativo (10.11.2). ¿Copiaste y pegaste el comando de mi respuesta? Editar: asegúrese de no usarsudo
frdmn
sí lo hice; compruebe también dentro del directorio y el archivo plist está allí ... ¿eliminó SIP / rootless por casualidad en el pasado?
jrgd
No, no lo he hecho: paste.frd.mn/loyon - ¿Ves el servicio en launchctl list?
frdmn
1
¡Eres muy bienvenido!
frdmn
9

De acuerdo con este hilo puedes hacer:

defaults write com.apple.gamed Disabled -bool true

Y para verificar el estado actual del uso del demonio:

defaults read com.apple.gamed Disabled
ccpizza
fuente
2

Una solución es crear un script bash para detener el servicio gamed después de iniciar sesión. Use Automator en OS X para crear un script bash y luego agréguelo como elemento de inicio de sesión a su cuenta de OS X. La próxima vez que inicie sesión, debería recibir un mensaje para ejecutar el script. Normalmente espero hasta ver una alerta de Little Snitch que dice que el juego está llamando a casa y luego hago clic en "Continuar" para ejecutar el script. Esto no se ha perfeccionado y puede encontrar problemas si lo ejecuta inmediatamente después de iniciar sesión en OS X. Prefiero mantenerme alejado de las soluciones que deshabilitan el servicio, ya que requieren deshabilitar / anular SIP, lo que desaconsejo.

Aquí está el script bash que uso. Cualquier sugerencia para mejorarla es bienvenida.

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

El problema es que la respuesta aceptada dada anteriormente:

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

Ya no funciona. También lo he visto usando la -wbandera. En cualquier caso, en actualizaciones recientes, pienso en El Capitán o Yosemite, en su lugar recibes un mensaje

Operación no permitida mientras la Protección de integridad del sistema está activada

La protección de integridad del sistema también se conoce por el acrónimo SIP. Para deshabilitarlo, debe iniciar el sistema operativo de recuperación y ejecutarlo csrutil disable.

He hecho esta secuencia en versiones anteriores y condujo a poder deshabilitar gamed a través del launchctlcomando.

Supongo que después de deshabilitar gamed, uno podría volver a habilitar SIP. Tal vez eso sería lo mejor de ambos mundos, aunque es un proceso tedioso en general.

Jeffrey Simon
fuente
0

¿qué pasa sudo launchctl unload /System/Library/Launch\ Daemons/com.apple.gamed.plist?

PEM8000
fuente
/ System / Library / Launch Daemons / com.apple.gamed.plist: No existe tal archivo o directorio --- Estoy en 10.11.2 (gracias por la sugerencia)
jrgd
mi mal, es un LaunchAgent: sudo launchctl unload / System / Library / Launch \ Agents / com.apple.gamed.plist
PEM8000
Gracias; el directorio es LaunchAgents en mi máquina; en el uso de la ruta de la derecha me dieron un "No se pudo encontrar especificada servicio" que me hace triste
jrgd
0

en OS Sierra, vaya a Configuración del sistema, Cuentas de Internet y elimine (con el signo menos) el Game Center en la lista (lado izquierdo).

Marlon Shanhai
fuente
Esto simplemente elimina la cuenta de Game Center y no deshabilita el proceso de juego. Además, esta pregunta es sobre El Capitán y no Sierra. Consulte Cómo responder para obtener consejos sobre cómo proporcionar buenas respuestas a las preguntas. - De la opinión
fsb
0

Esto hace poca o ninguna diferencia desde el punto de vista de la seguridad, ya que simplemente revierte un sistema a su funcionamiento anterior al SIP, y exactamente cómo funcionan casi todos los sistemas Unix. El valor de SIP es, en el mejor de los casos, discutible. Aborda la pregunta porque la única forma de usar el comando Launchctl para descargar el archivo plist gamed es deshabilitar primero SIP, arrancar, descargar el archivo plist y luego, si lo desea, volver a habilitar SIP.

Mark Choi
fuente
0

Otra opción que funciona en 10.11.6 es una variación del método sugerido por @ Le-Sci. Cree un script de shell que deshabilite el proceso de juego:

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

El comando de suspensión aquí le dice al script que espere 30 segundos antes de comenzar el proceso de salir de Gamed, para darle al sistema el tiempo suficiente para cargar Gamed antes de intentar terminarlo; Puede ajustar la cantidad de tiempo de espera según sea necesario. El comando "kill -9" fuerza el cierre del proceso que solicita, pero solo acepta un número de identificación del proceso, no un nombre de proceso, por lo que se utiliza "pgrep" para buscar la identificación del proceso. Anote dónde guarda el script (para este ejemplo, lo guardaré como "forceQuitGamed" en / Users / myaccountname /).

Otorgue permiso de ejecución al script:

sudo chmod +x ~/forceQuitGamed

Cree un archivo plist del agente de lanzamiento que se ejecutará cada vez que inicie sesión en su cuenta. Si no ha creado un archivo plist antes, una forma de hacerlo es con TextEdit. El archivo de secuencia de comandos debe guardarse en texto sin formato, por lo que si sus preferencias predeterminadas para TextEdit requieren el formato de texto enriquecido, realice un comando Formato> Crear texto sin formato para convertirlo en texto sin formato antes de intentar usar el nuevo archivo plist del agente de inicio.

<?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 cadena en la matriz bajo "ProgramArguments" es la ruta / a / your / shell script. Guarde el archivo en ~ / Library / LaunchAgents /. En este ejemplo, llamé al archivo plist com.myaccountname.forceQuitGamed.plist, por lo que se encuentra en

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

Ahora, cada vez que inicie sesión en su cuenta, se debe cerrar forzosamente el juego solo unos segundos después de que se haya cargado. (Si necesita que finalice lo antes posible después de cargarlo, consulte el método de @ Le-Sci.) Este enfoque funciona sin necesidad de deshabilitar la Protección de integridad del sistema.

Cam U
fuente
-4

Primero debe ingresar csrutil disableen la Terminal cuando esté en Modo de recuperación, luego reiniciar, hacer cambios, reiniciar nuevamente en Modo de recuperación y hacer csrutil enable, reiniciar.

Pero no sé qué procesos cuando modificados comprometerán el arranque en El Capitan

usuario169708
fuente
Esto habilita el inicio de sesión raíz. ¿Qué tiene que ver con gamed?
nombre_1
Esta es una muy, muy mala idea desde el punto de vista de la seguridad, y no aborda la cuestión.
Ruief