Bagaimana cara menonaktifkan proses Game Center (gamed) di OS X 10.11 El Capitan?

10

Sepertinya saya tidak dapat mengedit file plist dari LaunchAgents - bahkan jika saya sudo, saya dicegah dari penghapusan / perubahan. Apakah saya harus menonaktifkan SIP untuk melakukan ini?

jrgd
sumber
Apakah Anda mencobanya & melihat apa yang terjadi?
Tetsujin

Jawaban:

16

Nonaktifkan LaunchAgent (bukan LaunchDaemons) dan reboot mesin Anda ( tanpa sudo):

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

Jika Anda ingin mengaktifkannya lagi di satu titik:

$ launchctl load /System/Library/LaunchAgents/com.apple.gamed.plist
frdmn
sumber
1
dikatakan: /System/Library/LaunchAgents/com.apple.gamed.plist: Tidak dapat menemukan layanan yang ditentukan Saya sedang di 10.11.2; Terima kasih untuk sarannya!
jrgd
Saya baru saja mencobanya di mesin saya dan itu bekerja dengan baik. OS yang sama (10.11.2). Apakah Anda menyalin dan menempelkan perintah dari jawaban saya? Sunting: pastikan untuk tidak menggunakansudo
frdmn
ya saya lakukan; periksa juga di dalam direktori dan file plist ada di sana ... apakah Anda menghapus SIP / tidak menentu secara kebetulan?
jrgd
Tidak, saya belum: paste.frd.mn/loyon - Apakah Anda melihat layanan ini launchctl list?
frdmn
1
Sama-sama!
frdmn
9

Menurut utas ini, Anda dapat melakukan:

defaults write com.apple.gamed Disabled -bool true

Dan untuk memeriksa kondisi daemon saat ini, gunakan:

defaults read com.apple.gamed Disabled
ccpizza
sumber
2

Salah satu solusinya adalah membuat skrip bash untuk menghentikan layanan gamed setelah Anda masuk. Gunakan Automator di OS X untuk membuat skrip bash kemudian tambahkan sebagai Item Masuk ke akun OS X Anda. Lain kali Anda masuk, Anda akan menerima konfirmasi untuk menjalankan skrip. Biasanya saya menunggu sampai saya melihat peringatan dari Little Snitch bahwa gamed menelepon ke rumah lalu saya klik 'Lanjutkan' untuk menjalankan skrip. Ini belum disempurnakan dan Anda mungkin mengalami masalah jika Anda menjalankannya segera setelah Anda masuk ke OS X. Saya lebih suka tinggal jauh dari solusi yang menonaktifkan layanan karena mereka memerlukan menonaktifkan / mengganti SIP yang saya sarankan tidak disarankan.

Inilah skrip bash yang saya gunakan. Setiap saran untuk memperbaikinya dipersilakan.

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

Masalahnya adalah bahwa jawaban yang diterima diberikan di atas:

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

tidak lagi berfungsi. Saya juga melihatnya menggunakan -wbendera. Bagaimanapun, dalam pembaruan terbaru, saya memikirkan El Capitan atau Yosemite, Anda malah mendapatkan pesan

Operasi tidak diizinkan saat Perlindungan Integritas Sistem digunakan

System Integrity Protection juga dikenal dengan singkatan SIP. Untuk menonaktifkannya, Anda harus boot ke OS Pemulihan dan menjalankan csrutil disable.

Saya telah melakukan urutan ini dalam rilis sebelumnya dan itu menyebabkan saya dapat menonaktifkan gamed melalui launchctlperintah.

Saya kira setelah gamed dinonaktifkan, seseorang dapat mengaktifkan kembali SIP. Mungkin itu akan menjadi yang terbaik dari kedua dunia, meskipun ini adalah proses yang membosankan.

Jeffrey Simon
sumber
0

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

PEM8000
sumber
/ System / Library / Launch Daemons / com.apple.gamed.plist: Tidak ada file atau direktori seperti itu --- Saya ada di 10.11.2 (terima kasih atas sarannya)
jrgd
sayangnya, ini adalah LaunchAgent: sudo launchctl unload / System / Library / Launch \ Agents / com.apple.gamed.plist
PEM8000
Terima kasih; direktori tersebut adalah LaunchAgents di komputer saya; setelah menggunakan jalan yang benar saya mendapat "Tidak dapat menemukan layanan yang ditentukan" yang membuat saya sedih
jrgd
0

pada OS Sierra pergi ke Pengaturan Sistem, Akun Internet dan hapus (dengan minus) Game Center pada daftar (sisi kiri).

Marlon Shanhai
sumber
Ini hanya menghapus akun Game Center dan tidak menonaktifkan proses gamed. Juga, pertanyaan ini adalah tentang El Capitan dan bukan Sierra. Silakan lihat Bagaimana Menjawab untuk tips tentang bagaimana memberikan jawaban yang baik untuk pertanyaan. - Dari Ulasan
fsb
0

Ini membuat sedikit atau tidak ada perbedaan dari sudut pandang keamanan karena hanya mengembalikan sistem kembali ke tepatnya bekerja sebelum SIP, dan persis bagaimana hampir semua sistem Unix masih bekerja. Nilai SIP bisa diperdebatkan. Ini menjawab pertanyaan karena satu-satunya cara untuk menggunakan perintah Launchctl untuk membongkar file plist gamed adalah dengan pertama-tama menonaktifkan SIP, boot, unload file plist, dan kemudian, jika diinginkan, SIP yang dapat diaktifkan kembali.

Mark Choi
sumber
0

Opsi lain yang berfungsi pada 10.11.6 adalah variasi pada metode yang disarankan oleh @ Le-Sci. Buat skrip shell yang menonaktifkan proses gamed:

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

Perintah sleep di sini memberitahu script untuk menunggu 30 detik sebelum memulai proses berhenti gamed, untuk memberi sistem cukup waktu untuk memuat gamed sebelum mencoba menghentikannya; Anda dapat menyesuaikan jumlah waktu untuk menunggu seperlunya. Perintah "kill -9" memaksa keluar dari proses yang Anda minta, tetapi hanya menerima nomor proses id, bukan nama proses, jadi "pgrep" digunakan untuk mencari proses id. Catat di mana Anda menyimpan skrip (untuk contoh ini, saya akan menyimpannya sebagai "forceQuitGamed" di / Users / myaccountname /).

Berikan izin eksekusi skrip:

sudo chmod +x ~/forceQuitGamed

Buat file daftar agen peluncuran yang akan berjalan setiap kali Anda masuk ke akun Anda. Jika Anda belum pernah membuat file plist sebelumnya, salah satu cara Anda dapat melakukannya adalah dengan TextEdit. File skrip harus disimpan dalam teks biasa, jadi jika preferensi default Anda untuk panggilan TextEdit untuk pemformatan Teks Kaya, lakukan perintah Format> Make Plain Text untuk mengkonversi ke teks biasa sebelum mencoba menggunakan file plist agen peluncuran baru.

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

String dalam array di bawah "ProgramArguments" adalah path / ke / your / script shell. Simpan file ke ~ / Library / LaunchAgents /. Dalam contoh ini, saya menamai file plist com.myaccountname.forceQuitGamed.plist, jadi itu ditemukan di

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

Sekarang setiap kali Anda masuk ke akun Anda, gamed harus dihentikan secara paksa hanya beberapa detik setelah itu dimuat. (Jika Anda perlu dihentikan sesegera mungkin setelah dimuat, lihat metode @ Le-Sci.) Pendekatan ini berfungsi tanpa harus menonaktifkan Perlindungan Integritas Sistem.

Cam U
sumber
-4

Anda harus terlebih dahulu masuk csrutil disabledi Terminal ketika dalam Mode Pemulihan, kemudian mulai ulang melakukan perubahan, mulai lagi dalam Mode Pemulihan dan lakukan csrutil enable, mulai ulang.

Tapi saya tidak tahu proses mana yang diubah akan membahayakan boot di El Capitan

pengguna169708
sumber
Ini memungkinkan login root. Apa hubungannya dengan gamed?
Unnamed_1
Ini adalah ide yang sangat sangat buruk dari sudut pandang keamanan, dan itu tidak menjawab pertanyaan.
ruief