Files
lg_update_blocker/package.json
T
Rene KievitsandClaude Opus 5 80e2d7e5fa
Build / build (push) Successful in 48s
feat: stop the updater being launched at all
Closing the popup after the fact left it on screen for the 15-20 seconds
between the updater's version check and the Homebrew Channel running its
init.d hooks. That race cannot be won, so remove it.

/usr/sbin/update is launched on demand by ls-hubd via a manifest, and
ls-hubd.conf lists ManifestsVolatileDirectories under /var - writable,
persistent, and how webOS itself ships manifest updates. A manifest there
with the same id and a higher version replaces the read-only one, so drop
in a copy that keeps every role and permission file and only empties
serviceFiles. Nothing on the bus can start the updater after that: no
version check, no alert, nothing to dismiss. Callers get an immediate
"Service does not exist" rather than a hang, and deleting the file undoes it.

Verified on a CX (webOS 5, 04.60.65) across reboots: no update process,
/tmp/var/log/update.log never created, no alert. Previously that log was
55 kB with two server checks and an _gAlertWindowId per boot. Revert puts
the updater back on the bus.

The manifest, its D-Bus service file and the updater binary are all
discovered from ls-hubd.conf rather than hardcoded. The popup-closing
layer stays as a fallback for when this one is off.

Also tried and rejected, now documented in the README: update-related
settings, masking update.service (no writable unit directory), and
breaking its ping through /var/systemd/system/env/update.env - the ping
does fail, but something else on the bus activates the updater anyway.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-06 02:18:01 +02:00

21 lines
689 B
JSON

{
"name": "com.rkievits.lgupdateblocker",
"version": "1.2.0",
"title": "LG Update Blocker",
"description": "Blocks the recurring LG webOS firmware update popup on rooted TVs",
"private": true,
"scripts": {
"build": "node tools/build.js",
"package": "ares-package build/app build/service -n -o dist",
"manifest": "node tools/gen-manifest.js",
"dist": "npm run build && npm run package && npm run manifest",
"deploy": "ares-install dist/${npm_package_name}_${npm_package_version}_all.ipk",
"launch": "ares-launch ${npm_package_name}",
"clean": "rm -rf build dist"
},
"license": "MIT",
"devDependencies": {
"@webos-tools/cli": "^3.2.1"
}
}