Niat Ganti Launcher TV TCL, Malah Ribut Sama Tombol Home

Catatan ngoprek CleanFrame TV di TCL: LauncherX yang balik lagi, fork sendiri bareng Codex, sampai wallpaper Unsplash buat Home.

Jadi gini. Gue nemu launcher Android TV yang tampilannya enak banget dilihat. Namanya CleanFrame TV. Aplikasi yang gue pakai, wallpaper, jam. Udah. Gue lihat, terus mikir: ini kayaknya cocok buat TV TCL gue.

Rencananya sederhana: download APK, install lewat ADB, jadiin default launcher. Beres, lanjut nonton.

Yang terjadi: gue malah bolak-balik terminal, ngecek log, bikin fork, build APK sendiri, terus debat sama satu tombol di remote.

Tombol Home.

Wkwk. Setelah router Xiaomi gue oprek, sekarang giliran TV yang nggak bisa gue biarin hidup tenang.

Ketemu CleanFrame TV

CleanFrame TV ini port Android dari CleanFrame buatan Nathan Clark, yang awalnya buat Samsung The Frame. Port Android-nya dikerjain mdrzn. Jadi fondasi tampilan yang cakep ini kerjaan mereka; gue datang belakangan buat ngoprek supaya cocok di TV gue.

Di dokumentasi yang gue baca, perangkat referensinya Xiaomi Mi TV Q1. Sementara punya gue TCL Smart TV Pro, Android 11.

Sama-sama Android TV, tapi ternyata urusan tombol Home nggak sesederhana install aplikasi biasa.

Gue ngerjain ini bareng Codex. Gue nyobain di TV, ngasih hasil terminal, bilang kalau macet. Codex bantu baca source, nyusun perubahan, build, dan ngecek hasilnya. Ada fase gue cuma bisa bilang, “lah, balik lagi.”

Kalimat itu lumayan sering keluar.

Terminal Bilang Success, TV Bilang Nggak Dulu

Awalnya koneksi ADB aja sempat nggak ketemu. Sempat juga dapat Connection refused. Setelah koneksinya beres, APK bisa dipasang dan CleanFrame bisa dibuka.

Nah, bagian ngeselinnya mulai pas gue set jadi Home.

adb shell cmd package set-home-activity io.github.mdrzn.cleanframetv/.HomeActivity

Terminal jawab:

Success

Gue pencet Home. Balik ke launcher bawaan Google TV.

Gue cek lagi aplikasi yang dipilih Android buat nangani Home:

adb shell cmd package resolve-activity --brief \
  -a android.intent.action.MAIN \
  -c android.intent.category.HOME

Yang keluar masih:

com.google.android.apps.tv.launcherx/.home.VanillaModeHomeActivity

Jadi perintahnya diterima, tapi hasil yang gue mau belum kejadian. CleanFrame bisa jalan; tombol Home tetap ngajak pulang ke rumah yang lama.

Di salah satu percobaan, layarnya bahkan sempat stuck. Launcher bawaan dibuka lagi, baru TV bisa dipakai lagi. Di situ gue mulai sadar: ini mesti dicek pelan-pelan, jangan cuma percaya tulisan Success.

Bikin Jalan Memutar Dulu

Akhirnya kita bikin versi fork dengan penyesuaian buat TCL. Salah satu yang ketemu: jalur buat buka pengaturan Accessibility di TV ini beda. Intent standar yang dicoba malah nyangkut ke komponen placeholder; jalur OEM TCL baru membuka halaman pengaturan yang bener.

Solusi awalnya pakai accessibility service buat mengarahkan balik ke CleanFrame ketika launcher Google TV muncul. Setelah service-nya aktif dan tersambung, tombol Home mulai terasa enak dipakai.

Tapi ada detail kecil: kalau dari Settings terus pencet Home, launcher bawaan kadang masih kelihatan sebentar sebelum pindah.

Jadi waktu itu LauncherX masih hidup. Kita baru berhasil mengarahkan tampilan balik ke CleanFrame. Pantesan gue sempat nanya, “berarti ini belum disable ya?”

Gue Sempat Curiga Bootloader

Terus kita coba disable LauncherX. Sempat jalan, tapi habis reboot dia aktif lagi.

Mulai deh otak gue cari tersangka: bootloader masih locked? Watchdog sistem? TCL Guard?

Kita juga baca TCL Guard Manager, utility buat ngatur izin startup dan pengelolaan proses oleh TGuard. Tapi dari log yang kita punya, belum ketahuan proses mana yang mengaktifkan LauncherX lagi. Gue nggak punya bukti buat bilang watchdog pelakunya, apalagi langsung menyalahkan bootloader.

Ada detail lain dari pemeriksaan Home: selain LauncherX, ada activity recovery Google yang juga terdaftar buat menangani Home. Jadi waktu satu launcher dimatiin, bukan otomatis CleanFrame yang dipilih.

Gue akhirnya nggak unlock bootloader. Buat hasil yang sekarang jalan, itu nggak diperlukan.

Yang Akhirnya Jalan di TV Gue

Setelah CleanFrame versi TCL bisa dibuka dan dipakai, gue disable dua package ini:

adb shell pm disable-user --user 0 com.google.android.apps.tv.launcherx
adb shell pm disable-user --user 0 com.google.android.tungsten.setupwraith

Setelah itu, pemeriksaan Home menunjuk langsung ke versi TCL kita:

io.github.mdrzn.cleanframetv.tcl/io.github.mdrzn.cleanframetv.HomeActivity

Gue tes reboot, dan kali ini tetap bertahan. Pengecekan ADB setelahnya juga menunjukkan dua package tadi masih disabled. Dari Settings, pencet Home balik ke CleanFrame.

Akhirnya.

Catatan buat yang mau ngikutin: ini hasil di TV dan firmware gue, bukan jaminan semua TCL bakal sama. setupwraith juga bagian dari UI setup/recovery Google. Jadi gue pastiin launcher pengganti sudah jalan dan ADB masih bisa diakses sebelum mengubahnya. Ini disable buat user 0; package-nya masih terpasang.

Kalau perlu balikin, dua package itu bisa diaktifkan lagi:

adb shell pm enable --user 0 com.google.android.tungsten.setupwraith
adb shell pm enable --user 0 com.google.android.apps.tv.launcherx

Kalau service pengalih Home tadi masih aktif, matikan juga supaya nggak terus diarahkan balik. Langkah setup dan pemulihan lengkap gue taruh di panduan TCL dalam fork.

Gue seneng hasilnya bertahan setelah reboot. Tapi itu tetap belum membuktikan siapa yang sebelumnya mengaktifkan LauncherX. Yang bisa gue bilang: kombinasi terakhir ini bekerja di setup gue.

Sudah Jalan, Malah Nambah Wallpaper

Harusnya selesai di situ.

Tentu saja nggak. Gue malah nanya: “wallpaper-nya bisa custom? Unsplash? Gambar anime 4K?”

Dari satu masalah tombol Home, berkembang jadi fitur pencarian foto. Scope proyek rumahan emang suka kurang ajar.

Di build lokal, kita tambahin picker Unsplash. Alurnya:

  1. Buka Settings → Background → Unsplash → Find photos.
  2. Cari gambar, misalnya anime landscape.
  3. Pilih hasil buat lihat preview.
  4. Tekan Use on Home buat memakai sekaligus menyimpannya ke koleksi.

Ada filter 4K sources only, jadi hasil yang ditampilkan punya ukuran asli minimal 3840 × 2160. Nama fotografer dan Unsplash tetap tampil. Access key disimpan di penyimpanan privat aplikasi di TV; nggak dimasukkan ke source atau APK.

Pas dites, pencarian di TV berhasil, preview kebuka, dan gambar yang dipakai Home terverifikasi berukuran 3840 × 2160. Ini ukuran gambarnya ya, bukan berarti kita mengubah UI compositor TCL jadi native 4K.

Home CleanFrame di TCL dengan wallpaper bangunan dan pepohonan merah dari Unsplash, daftar YouTube, Netflix, TV, serta jam dan kontrol Home

Hasil di TV gue. Wallpaper oleh Wolfgang Hasselmann di Unsplash.

Hasil pencarian anime landscape juga tergantung koleksi Unsplash. Jangan bayangin semua yang muncul pasti ilustrasi anime. Gue pilih gambar yang cocok di mata aja.

Yang lucu, setelah dipasang gue masih nanya: “kok cuma download satu foto?”

Ternyata memang cuma foto yang gue pilih lewat Use on Home yang disimpan. Hasil search itu pilihan, belum jadi koleksi. Kalau mau wallpaper bergantian, gue pilih dan simpan beberapa dulu, baru nyalain Rotation.

Oh. Iya juga. Wkwk.

Bagian yang Bikin Gue Tenang

Kita nggak berhenti di APK berhasil di-build. Fitur Unsplash ini lolos 518 pemeriksaan browser dan 34 unit test Android. Di TV juga dicoba pencarian beneran, preview, pemilihan lewat input tombol remote, dan balik ke Home. Setelah launcher di-reload, pilihannya tetap tersimpan.

Ada salinan lokal yang sudah diproses buat fallback kalau gambar online gagal dimuat; jalur offline-nya diuji di browser. Gue belum nyabut internet TV buat mengetes skenario itu langsung, jadi nggak mau ngaku sudah.

Buat gue, bagian paling kepake dari kerja bareng Codex justru proses ngecek ini. Gue bisa fokus lihat TV dan bilang apa yang terasa aneh, lalu kita cocokkan sama log dan perilaku aplikasinya. Tebakan soal bootloader nggak perlu berubah jadi tindakan besar kalau buktinya belum ada.

Sekarang TV-nya Bisa Dipakai Nonton Lagi

Fork TCL-nya ada di GitHub gue. Fitur Unsplash masih eksperimen lokal dan terpasang di TV gue; belum gue push. Jadi kalau lo buka repository itu dan belum nemu menu Unsplash, memang belum ada di versi publiknya.

Yang gue suka dari hasil akhirnya sederhana: pencet Home, aplikasi yang gue pakai kelihatan, wallpaper sesuai selera gue. TV-nya terasa lebih enak dipakai.

Niat awal cuma install APK. Ujungnya belajar soal Home resolver, accessibility, package state, dan kenapa tulisan Success di terminal perlu dibuktikan di layar.

Sekarang tinggal satu pekerjaan yang dari tadi ketunda: beneran nonton.

Cheers (dan semoga tombol Home nggak ngajak ribut lagi), Agung Sukariman

#Celotehan #Tech #Android TV #TCL #Open Source #AI