Como desativar o processo do Game Center (incluído) no OS X 10.11 El Capitan?

10

Parece que não consigo editar o arquivo plist no LaunchAgents - mesmo que eu sudo, sou impedido de excluir / alterar. Preciso necessariamente desativar o SIP para fazer isso?

jrgd
fonte
Você experimentou e viu o que acontece?
Tetsujin

Respostas:

16

Desative o LaunchAgent (não o LaunchDaemons) e reinicie sua máquina ( sem o sudo):

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

Caso deseje ativá-lo novamente em um ponto:

$ launchctl load /System/Library/LaunchAgents/com.apple.gamed.plist
frdmn
fonte
11
ele diz: /System/Library/LaunchAgents/com.apple.gamed.plist: Não foi possível encontrar o serviço especificado. Estou no 10.11.2; Obrigado pela sugestão!
Jrgd
Eu apenas tentei na minha máquina e funcionou bem. Mesmo SO (10.11.2). Você copiou e colou o comando da minha resposta? Edit: certifique-se de não usarsudo
frdmn
sim eu fiz; verifique também dentro do diretório e o arquivo plist está lá ... você removeu o SIP / rootless por acaso no passado?
Jrgd
Não, não tenho: paste.frd.mn/loyon - Você vê o serviço launchctl list?
frdmn
11
Você é muito bem-vindo!
frdmn
9

De acordo com este tópico, você pode fazer:

defaults write com.apple.gamed Disabled -bool true

E para verificar o estado atual do daemon, use:

defaults read com.apple.gamed Disabled
ccpizza
fonte
2

Uma solução é criar um script bash para interromper o serviço de jogo após o login. Use o Automator no OS X para criar um script bash e adicione-o como um Item de logon à sua conta do OS X. Na próxima vez que você fizer login, você receberá uma solicitação para executar o script. Normalmente, espero até ver um alerta do Little Snitch que jogou telefonando para casa e clico em 'Continuar' para executar o script. Isso não foi aperfeiçoado e você poderá encontrar problemas se executá-lo imediatamente após o login no OS X. Prefiro ficar longe das soluções que desabilitam o serviço, pois exigem desabilitar / substituir o SIP que eu aconselho.

Aqui está o script bash que eu uso. Todas as sugestões para melhorá-lo são bem-vindas.

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

O problema é que a resposta aceita dada acima:

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

não funciona mais. Eu também vi isso usando a -wbandeira. De qualquer forma, nas atualizações recentes, penso em El Capitan ou Yosemite, você recebe uma mensagem

Operação não permitida enquanto o System Integrity Protection está ativado

A proteção de integridade do sistema também é conhecida pelo acrônimo SIP. Para desativá-lo, você precisa inicializar no Recovery OS e executar csrutil disable.

Eu fiz essa sequência em versões anteriores e isso levou a conseguir desativar o gamed por meio do launchctlcomando.

Suponho que, depois que o gamed seja desativado, é possível reativar o SIP. Talvez esse seja o melhor dos dois mundos, embora seja um processo tedioso, no geral.

Jeffrey Simon
fonte
0

que tal sudo launchctl unload /System/Library/Launch\ Daemons/com.apple.gamed.plist?

PEM8000
fonte
/ System / Library / Lançamento Daemons / com.apple.gamed.plist: Nenhum tal lima ou diretório --- Eu estou em 10.11.2 (obrigado pela sugestão)
jrgd
meu mau, é um LaunchAgent: sudo launchctl descarregar / Library Lançamento \ Agents / / System / com.apple.gamed.plist
PEM8000
obrigado; o diretório é LaunchAgents na minha máquina; em cima de usar o caminho certo eu tenho um "serviço não foi possível encontrar especificada" que me deixa triste
jrgd
0

no OS Sierra, vá para Configurações do sistema, Contas da Internet e exclua (com menos) o Game Center na lista (lado esquerdo).

Marlon Shanhai
fonte
Isso apenas exclui a conta do Game Center e não desativa o processo de jogo. Além disso, esta pergunta é sobre El Capitan e não sobre Sierra. Consulte Como responder para obter dicas sobre como fornecer boas respostas para perguntas. - Do comentário
fsb
0

Isso faz pouca ou nenhuma diferença do ponto de vista de segurança, uma vez que simplesmente reverte um sistema exatamente como ele trabalhou antes do SIP, e exatamente como quase todos os sistemas Unix ainda funcionam. O valor do SIP é, na melhor das hipóteses, discutível. Ele aborda a questão porque a única maneira de usar o comando Launchctl para descarregar o arquivo gamed plist é primeiro desativar o SIP, inicializar, descarregar o arquivo plist e, se desejado, reativar o SIP.

Mark Choi
fonte
0

Outra opção que funciona no 10.11.6 é uma variação do método sugerido pelo @ Le-Sci. Crie um script de shell que desative o processo em escala:

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

O comando sleep aqui diz ao script para aguardar 30 segundos antes de iniciar o processo de saída de gamed, para dar ao sistema tempo suficiente para carregar o gamed antes de tentar finalizá-lo; você pode ajustar a quantidade de tempo para esperar, conforme necessário. O comando "kill -9" encerra o processo que você solicita, mas aceita apenas um número de identificação do processo, não um nome do processo, portanto "pgrep" é usado para procurar a identificação do processo. Anote onde você salvou o script (neste exemplo, eu o salvarei como "forceQuitGamed" em / Users / myaccountname /).

Conceda permissão de execução do script:

sudo chmod +x ~/forceQuitGamed

Crie um arquivo plist do agente de inicialização que será executado sempre que você fizer login na sua conta. Se você não criou um arquivo plist antes, uma maneira de fazer isso é com o TextEdit. O arquivo de script deve ser salvo em texto sem formatação; portanto, se suas preferências padrão para o TextEdit exigirem formatação Rich Text, execute um comando Formatar> Criar texto sem formatação para converter em texto sem formatação antes de tentar usar o novo arquivo plist do agente de ativação.

<?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>

A cadeia de caracteres na matriz em "ProgramArguments" é o caminho / para / seu / script de shell. Salve o arquivo em ~ / Library / LaunchAgents /. Neste exemplo, nomeei o arquivo plist com.myaccountname.forceQuitGamed.plist, para que ele seja encontrado em

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

Agora, toda vez que você fizer login na sua conta, o jogo deve ser encerrado à força apenas alguns segundos após o carregamento. (Se você precisar finalizar o mais rápido possível após o carregamento, consulte o método do @ Le-Sci.) Essa abordagem funciona sem a necessidade de desativar a Proteção de Integridade do Sistema.

Cam U
fonte
-4

Você precisa primeiro entrar csrutil disableno Terminal quando estiver no Modo de Recuperação, depois reiniciar, fazer alterações, reiniciar novamente no Modo de Recuperação e csrutil enablereiniciar.

Mas não sei quais processos, quando modificados, comprometem a inicialização no El Capitan

user169708
fonte
Isso permite o login raiz. O que isso tem a ver com gamed?
Unnamed_1 23/06
Essa é realmente uma péssima idéia do ponto de vista de segurança e não aborda a questão.
ruief 11/09/16