Skip to content

Instantly share code, notes, and snippets.

@zerkz
Last active January 2, 2026 06:44
Show Gist options
  • Select an option

  • Save zerkz/fb333d8a97a9d9f641e5730c6385a395 to your computer and use it in GitHub Desktop.

Select an option

Save zerkz/fb333d8a97a9d9f641e5730c6385a395 to your computer and use it in GitHub Desktop.
Fixing Stuck "Update Failed" Prompts on Rooted LG webOS TVs

If your rooted LG webOS TV keeps prompting you to retry a failed system update (especially after powering off during an update), this guide explains how to clear that state.

Prerequisites

  • Rooted LG webOS TV (tested on webOS 5.6.0)
  • SSH access to the TV (default root password is typically alpine, with sshd from Homebrew Channel enabled)

Wait, I need root?

Yes. And chances are, if you have been letting your TV auto-update, you are out of luck.

But turn it off now, and eventually an exploit will be found.

Diagnosis

SSH into your TV:

ssh root@<TV_IP_ADDRESS>

Check for stuck update state:

cat /mnt/lg/cmn_data/swupdate/Image_Update_Info.xml

If you see <PHASE>downloading</PHASE>, the TV thinks an update is in progress and will keep prompting you.

The Fix

Warning: These commands modify system files. Proceed at your own risk.

Option 1: Delete the update state files (recommended)

This clears all pending update state. The TV will recreate these files fresh when it next checks for updates.

rm /mnt/lg/cmn_data/swupdate/Image_Update_Info.xml
rm /mnt/lg/cmn_data/swupdate/Image_Update_Info.xml.backup
rm /mnt/lg/cmn_data/swupdate/Package_Update_Info.xml
rm /mnt/lg/cmn_data/swupdate/Package_Update_Info.xml.backup
rm /mnt/lg/cmn_data/update/.deltaFailureMode

reboot

Option 2: Edit the phase (minimal change)

If you prefer to preserve the files:

vi /mnt/lg/cmn_data/swupdate/Image_Update_Info.xml
# Change: <PHASE>downloading</PHASE>
# To:     <PHASE>idle</PHASE>

reboot

Preventing Future Updates

To block app updates, see the webosbrew App Update Blocker. System updates might be able to be blocked via DNS blocklists at router level/etc, but its whackamole.

Tested On

  • LG webOS TV 5.6.0
  • Kernel: Linux 4.4.84 (aarch64)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment