Skip to content

Bug: webOS 24 (2024 C4/G4) — native Cobalt YouTube blocks same-ID install (dead green button / ads); fix = repackage under a distinct app ID #149

Description

@zsoltnyiri

YTAF information

  • YTAF version: 0.8.0 (the webOS22+ build from Releases)
  • Also reproduced identically with 0.5.3 and 0.3.4 from webosbrew/youtube-webos — same symptoms, so this is not fork-specific.

TV information

  • webOS version: 24 (2024 model)
  • core_os_release: 10.3.1-3006
  • Firmware version (webos_manufacturing_version): 33.31.68
  • OTAID: HE_DTV_W24G_AFABATAA
  • SoC: o22n2
  • Model: OLED77C41LA.DEUQLJP (LG OLED C4, 77")
  • Install method: webOS Dev Mode (Developer Mode app), sideloaded via ares-install / Device Manager. TV is not rooted (no Homebrew Channel).

Issue description

This is the same symptom as many existing reports (green button does nothing, ads still play), but I dug into the root cause and found a fix that works in Dev Mode without root — sharing in case it helps other 2024+ owners and for a possible README note / alternate build.

Symptom

After a clean install, YouTube plays with ads and the green button does nothing (no options panel appears). None of the usual remedies helped: uninstalling stock YouTube first, full clean reinstalls, rebuilding from source, launching directly, and full power cycles (unplug). Identical behaviour across YTAF 0.8.0 (this fork) and webosbrew 0.5.3 / 0.3.4.

Root cause (confirmed via SSH + Chrome DevTools/CDP)

On this 2024 (webOS 24) TV, the built-in YouTube is a native Cobalt system app that owns the app ID youtube.leanback.v4. In Dev Mode (no root), a sideloaded app installed under that same ID does not override the native app — so YTAF's web app (and therefore its userscript) never actually runs. Evidence:

  • After launching youtube.leanback.v4, the running process is the native Cobalt binary, not a web app:
    /media/cryptofs/apps/usr/palm/applications/youtube.leanback.v4/cobalt {"@system_native_app":true,"reason":"preload",...}
    
  • There is no WebAppMgr renderer with --app-id=youtube.leanback.v4, and the remote-debug port 9998 exposes no page.
  • luna://com.webos.applicationManager/dev/listApps{"apps":[]} and dev/running{"running":[]}, even though the installed files are present in /media/developer/apps/usr/palm/applications/youtube.leanback.v4/. SAM never registers the dev app.
  • ares-launch --close youtube.leanback.v4Only Dev app should be closed using /dev category_API — i.e. SAM treats the running instance as a system app, not the dev install.

So the historical mechanism (a same-ID dev app shadows the stock web app) no longer works on 2024+ TVs, because stock YouTube is now a protected native Cobalt app. Removing/replacing it would need root, which isn't currently available on C4/G4.

Workaround that fully fixes it (Dev Mode, no root)

Repackage YTAF under a distinct app ID so it doesn't collide with the protected native app. It then installs as its own tile ("YTAF AdFree") and runs correctly as a web app. Using the 0.8.0 webOS22+ .ipk:

# 1. extract the ipk
ar x youtube.leanback.v4_0.8.0_all_webOS22+.ipk
mkdir data && tar xzf data.tar.gz -C data

# 2. take the app dir and change the id/title
cp -r data/usr/palm/applications/youtube.leanback.v4 ./appdir
#   edit appdir/appinfo.json:
#     "id":    "youtube.leanback.v4.ytaf"
#     "title": "YTAF AdFree"

# 3. repackage (skip re-minify — the bundle is already built) and install
ares-package appdir --no-minify -o .
ares-install --device <tv> youtube.leanback.v4.ytaf_0.8.0_all.ipk
ares-launch  --device <tv> youtube.leanback.v4.ytaf

Verified working after the rename (same TV, via CDP on 9998)

  • Runs as a web app (appType:web) loading https://www.youtube.com/tv; 9998 now exposes the page.
  • Userscript is live: window.ytaf_showOptionsPanel and window.__ytaf_sb_init are present, and JSON.parse is patched (the ad-block hook) rather than native.
  • Green button opens the options panel, ads are blocked, playback works, SponsorBlock initialized. Confirmed on-screen.

Suggestion

For 2024+ (webOS 24/25) non-rooted Dev Mode users, running YTAF under an alternate app ID seems to be the only path. It might be worth either (a) noting this in the README for W24/W25 owners, or (b) offering an alternate-ID sideload build in Releases. Rooted users can instead remove the native app and keep the original ID.

Happy to provide any additional logs (full ps, dev/listApps output, CDP dumps, device_info.json / os_info.json) — just let me know what would be useful.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions