This tutorial is intended for advanced users only, some technical knowledge and understanding is required.
If you don't know how to use Linux shells, this thread is not for you. Beginner questions, e.g. how to establish a SSH connection or how to handle shells, please ask in other, more suitable forums - such questions are off topic and will be deleted in this thread.
If you have a problem with your TV, you should always contact LG's support first and make use of your warranty options.
Firmware downgrades should be considered as the last possible option for severe problems that are not fixed by LG.
Don't use this option to just play around with the TV's firmware.
This method has been successfully tested with 2019 and 2020 models, it does not work with 2021 models.
Update April 2022:
As already described in the original post, what was to be expected occurred:
LG has fixed the underlying issues of the 2019 models with firmware v05.20.15. As of this version, the method described here no longer works.
Warnings:
Instructions:
If you already are a member of the LG Developer site, directly go to step 2.
If you have already set up your SSH access to your TV, go to step 3.
1. Become a member of the LG Developer site
Follow the instructions on this website.
2. Setting up developer access to the TV
Follow the instructions on this website.
First install the webOS TV SDK for the webOS TV CLI on your computer as described in the prerequisites.
You then need to perform the steps "Installing Developer Mode App", "Turning Developer Mode On" and "Connecting with CLI". You do not need to perform the other steps described on the website.
At the end, you should have the webOS Developer App installed on your TV and be logged in with your LG Developer account.
3. Prepare a USB storage device with the desired firmware version
4. Establish a SSH connection to the TV
The RSA key for the connection is located in your SSH user directory, the passphrase for the key is displayed in the Developer Mode app.
5. Start the Software Update App
Launch the software update program on the TV with the following command from the shell opened via the established SSH connection
If successful, the app will open and you will see something like the following screen.
6. Start the Update Process
Press the Update button and wait until the update is complete.
Restart the TV when prompted to do so.
One last note: there is no guarantee that this method will still work in the future. I even assume that LG will block this method at some point.
If you don't know how to use Linux shells, this thread is not for you. Beginner questions, e.g. how to establish a SSH connection or how to handle shells, please ask in other, more suitable forums - such questions are off topic and will be deleted in this thread.
If you have a problem with your TV, you should always contact LG's support first and make use of your warranty options.
Firmware downgrades should be considered as the last possible option for severe problems that are not fixed by LG.
Don't use this option to just play around with the TV's firmware.
This method has been successfully tested with 2019 and 2020 models, it does not work with 2021 models.
Update April 2022:
As already described in the original post, what was to be expected occurred:
LG has fixed the underlying issues of the 2019 models with firmware v05.20.15. As of this version, the method described here no longer works.
Warnings:
- Firmware downgrades are not officially supported by LG. If you downgrade the firmware of your LG TV, you will lose the warranty in case of problems. I.e. if problems occur during the downgrade, you are on your own, cannot expect any support from LG and in the worst case have an expensive paperweight.
- The complete firmware history is stored on the TVs and can neither be deleted by a user factory reset nor by the IN-STOP command. LG can always track when which version of the firmware was on the TV in case of service and thus naturally also detect downgrades.
- Older firmware versions can sometimes contain critical security vulnerabilities. Not too long ago, almost all models up to (including) those from 2020 were affected by such a vulnerability. Anyone who installs a vulnerable version on their TV should be aware of the considerable danger this poses.
- Downgrading, of course, means that features and bug fixes added by later updates from LG will be lost.
LG unfortunately hardly ever lists details in the official firmware release notes, so it is not always immediately obvious with which version a feature was added or a bug was fixed.
- After a downgrade, the system may be in an inconsistent state, as not all components of the system may be downgraded during the process.
In particular, all separate chips / modules (WiFi, HDMI 2.1 on the 2019 models, etc.) may be affected.
- There are websites that use the technical possibilities described here to downgrade the firmware of your LG TV.
I can only strongly advise against opening any of these websites on an LG TV, they may contain bugs and malware.
Instructions:
If you already are a member of the LG Developer site, directly go to step 2.
If you have already set up your SSH access to your TV, go to step 3.
1. Become a member of the LG Developer site
Follow the instructions on this website.
2. Setting up developer access to the TV
Follow the instructions on this website.
First install the webOS TV SDK for the webOS TV CLI on your computer as described in the prerequisites.
You then need to perform the steps "Installing Developer Mode App", "Turning Developer Mode On" and "Connecting with CLI". You do not need to perform the other steps described on the website.
At the end, you should have the webOS Developer App installed on your TV and be logged in with your LG Developer account.
3. Prepare a USB storage device with the desired firmware version
- Create a folder with the name LG_DTV in the root folder of your USB storage device.
The device may use NTFS or FAT32, other file systems are not supported. - Copy the desired firmware file with the epk file extension into the LG_DTV folder, there must be no other firmware file in the folder.
The file has to be a USB firmware version for your model, not a NSU (Network Software Update) version.
If it is a model from 2020 or earlier, it is also necessary to ensure that the correct variant (ATSC or DVB) of the firmware is used. - Make sure that there are no other USB storage devices connected to the TV.
4. Establish a SSH connection to the TV
The RSA key for the connection is located in your SSH user directory, the passphrase for the key is displayed in the Developer Mode app.
Bash:
ssh -p 9922 -i ~/.ssh/tv_webos prisoner@xxx.xxx.xxx.xxx bash -i
5. Start the Software Update App
Launch the software update program on the TV with the following command from the shell opened via the established SSH connection
Bash:
luna-send-pub -d -n 1 -f "luna://com.webos.applicationManager/launch" '{ "id": "com.webos.app.softwareupdate", "params": { "mode": "user", "flagUpdate": true } }'
6. Start the Update Process
Press the Update button and wait until the update is complete.
Restart the TV when prompted to do so.
One last note: there is no guarantee that this method will still work in the future. I even assume that LG will block this method at some point.