← blog

Mac yang menerima login Anda lalu tidak menampilkan apa-apa

20 September 2026 · 7 menit baca

Seorang pelanggan membuka Mac-nya di browser. Koneksinya berhasil. Username dan password diterima. Lalu layarnya hitam. Bukan error, bukan putus koneksi. Hitam, dengan kursor mouse yang bisa bergerak.

Setiap log bilang mesinnya baik-baik saja. Layanan Screen Sharing berjalan. Akunnya berhasil diautentikasi. Sesinya tidak terkunci. Disk, CPU dan memori normal. Tidak ada satu pun yang melaporkan masalah.

Ini menghabiskan beberapa hari kami. Berikut penyebab sebenarnya, dan kenapa cara mengujinya yang terlihat jelas malah lebih buruk daripada tidak berguna.

Semua tersangka yang jelas ternyata salah

Mac headless dengan layar hitam punya daftar tersangka yang sudah dikenal. Kami memeriksa semuanya.

  • Tidak ada layar terpasang. Saran yang biasa adalah dummy plug HDMI. Kami membelinya. Tidak ada perubahan.
  • Resolusi. Mac headless bisa menyala dengan ukuran yang tidak disukai sebagian klien. Bukan itu.
  • Kunci layar. Sesi yang terkunci bisa menampilkan hitam. Sesinya tidak terkunci.
  • Layarnya sendiri. Kami memasang monitor sungguhan ke Mac mini sungguhan. Layar fisiknya juga hitam.

Yang terakhir itulah yang mengubah arah pencarian. Mesinnya bukan gagal mengirim gambar ke klien jarak jauh. Memang tidak ada gambar.

Berjalan tidak sama dengan diizinkan

Script provisioning kami menyalakan Screen Sharing dengan satu-satunya cara yang bisa jalan tanpa ada orang di depan mesin:

launchctl enable system/com.apple.screensharing
launchctl bootstrap system   /System/Library/LaunchDaemons/com.apple.screensharing.plist

Itu menjalankan layanannya. Sejak macOS 14, kickstart -activate milik Apple sendiri menolak berjalan headless. Jadi hanya cara ini yang tersisa.

Tapi menjalankan layanan tidak sama dengan memberinya izin merekam layar. Perekaman layar adalah hak TCC. macOS memberikannya hanya dengan dua cara. Seseorang menyalakan Screen Sharing di System Settings dan melakukan autentikasi. Atau MDM mengirim profil PPPC.

Tanpa izin itu, layanannya tetap berjalan. Ia tetap mendengarkan di port 5900. Ia tetap menerima password Anda. Hanya saja, tidak ada yang boleh ia tampilkan kepada Anda.

macOS akan mengatakannya, jika Anda mengajukan pertanyaan yang tepat:

$ sudo .../ARDAgent.app/Contents/Resources/kickstart     -configure -access -on -users runner -privs -all

Screen recording might be disabled. Screen Sharing or Remote
Management must be enabled from System Settings or via MDM.

Kenapa kami tidak menemukannya lebih cepat

Bagian inilah yang layak dibagikan. Masalahnya bukan jawabannya tersembunyi. Masalahnya, setiap cara murah untuk mengecek bilang semuanya baik-baik saja.

screencapture lewat SSH selalu gagal. Jalankan di sesi SSH dan TCC akan menolaknya, entah hak itu sudah diberikan atau belum. Ia tidak bisa membedakan mesin yang rusak dari yang berfungsi. Jadi setiap hasilnya bagi kami hanya noise.

Probe kickstart lulus saat ia tidak punya hak. Tanpa hak yang cukup, ia tidak mencetak apa pun. Kode yang menganggap output kosong berarti tidak ada peringatan akan membacanya sebagai sukses. Kode kami begitu.

Kedua cek itu punya satu sifat yang sama: output saat gagal identik dengan output saat berhasil. Cek seperti itu bukan bukti yang lemah. Itu sama sekali bukan bukti, hanya berpakaian rasa aman.

Ukur gambarnya

Satu-satunya tes yang bisa dipercaya adalah hal yang dilihat pelanggan. Kami terhubung sebagai klien VNC sungguhan, mengambil satu persegi framebuffer, lalu mengukurnya. Desktop hitam hanya punya dua warna dengan kecerahan hampir nol. Desktop yang berfungsi tidak begitu.

desktop        : Mac mini  1920x1080  32bpp depth24
sampled        : 273768 pixels from 1 rect(s)
mean brightness: 36.31%
distinct colours: 93828
RESULT: REAL PICTURE

Sembilan puluh tiga ribu warna berbeda berarti desktop. Dua warna berarti gagal. Tidak perlu tafsiran, dan tidak ada exit code yang bisa salah dibaca. Kini tes ini berjalan di setiap mesin sebelum pelanggan boleh mendekatinya.

Perbaikannya, dan biayanya

Di satu mesin, perbaikannya hanya sepuluh detik. Buka System Settings, General, Sharing. Matikan Screen Sharing. Nyalakan lagi. Ia meminta password administrator, dan autentikasi itulah intinya. Sakelarnya biasanya sudah terlihat menyala, karena script sudah menjalankan layanannya. Mematikan lalu menyalakannya tetap diperlukan untuk memberi hak tersebut.

Izin itu di level sistem, jadi tetap ada setelah mesin dihapus antar pelanggan. Kami memastikannya dengan menghapus satu unit lalu mengecek lagi.

Biaya sebenarnya, ini butuh orang di depan mesin, sekali saja. Itu satu-satunya langkah manual di proses yang selebihnya memakai script. Untuk skala armada, jawabannya adalah profil konfigurasi MDM yang memberi hak itu sejak awal. Itulah perbaikan yang benar. Dan itulah satu hal yang tidak bisa diakali dengan script di Mac yang belum Anda daftarkan.

Jika Anda mengotomatiskan Mac

Ada dua hal yang layak dibawa pulang, dan hanya satu yang soal perekaman layar.

Pertama, macOS punya kategori state yang tidak bisa dijangkau script. Hak TCC sengaja dikunci di balik orang di depan keyboard atau profil MDM. Jika otomasi Anda menganggap ia bisa mengatur semuanya, cepat atau lambat ia akan menghasilkan mesin yang terlihat siap, padahal tidak.

Kedua lebih umum. Sebelum menulis cek, tanyakan apa yang ia cetak saat sesuatunya rusak. Jika sama dengan yang ia cetak saat semuanya berfungsi, cek itu tidak berguna. Ia akan menghabiskan lebih banyak waktu Anda daripada tidak punya cek sama sekali. Kami punya dua cek seperti itu. Karena keduanya, masalah ini makan waktu berhari-hari, bukan satu sore.

Hitung angka Anda sendiri dengan kalkulator atau sewa runner.