There is a vulnerability/backdoor in webOS 5+ that allows you to easily run arbitrary commands as root during the boot process. The easiest way to exploit it simply involves putting a file on a USB drive and having it connected to your TV while it boots. There are two other methods that are more complex and require additional exploits.
#!/usr/bin/env -S bash -xeuo pipefail | |
set -xeuo pipefail | |
pkg install pacman patchelf \ | |
which time ldd tree | |
echo | |
echo |
import os | |
from mpvclient import mpv | |
from pathlib import Path | |
did_pause_at_minimize = False | |
@mpv.observe_property("window-minimized", mpv.MPV_FORMAT_NODE) | |
def on_window_minimized(value): | |
pause = mpv.get_property_bool("pause") |
I'm not going to be maintaining this document anymore. I'm leaving it as-is since much of the FAQ section is still accurate and has yet to be incorporated into other resources.
Use CanI.RootMy.TV to find an exploit for your TV.
What you do with this information is your own responsibility. If you brick your TV trying this, it's not my fault. You should probably have some electronics experience if you want to attempt this.
This is going to involve opening your TV and attaching wires to the pins of an integrated circuit. If you're not comfortable with that, this is not for you.
This document is a work in progress.
LG TVs since at least the era of NetCast and "Global Platform" (webOS predecessors) have had the notion of a debug level, generally called "debugstatus". There are three modes: DEBUG
, EVENT
, and RELEASE
. TVs normally operate in RELEASE
mode. DEBUG
mode enables a variety of logging and other debugging features in webOS, including access to the bootloader console and debug menus via serial. EVENT
is similar to DEBUG
, although it may not enable as much logging and has other relatively minor differences.
import os | |
from typing import BinaryIO | |
from pyrogram import Client, filters | |
from pyrogram.types import Message | |
bot = Client( | |
"stream", | |
api_id=int(os.getenv("API_ID")), | |
api_hash=os.getenv("API_HASH"), |
#!/bin/sh | |
# This was tested and ran on Mint 21.2 but any modern ubuntu (or derivative) should work. | |
# This may or may not become outdated at any point in time, so I recommend double checking the original guide at https://github.com/xbmc/xbmc/blob/master/docs/README.Android.md | |
# The only command responsible for making Hi10 work is the sed command | |
# System Dependencies | |
cd $HOME | |
sudo apt install -y wget autoconf bison build-essential curl openjdk-17-jdk flex gawk git gperf lib32stdc++6 lib32z1 lib32z1-dev libcurl4-openssl-dev unzip zip zlib1g-dev |
""" | |
I do not provide support for this unless its an actual error in the code and not related to your setup. | |
This script was originally written on VS R53 with Python 3.9 & has been tested on VS R63 with Python 3.11. | |
You'll need: | |
- Vapoursynth | |
- "pip install pathlib anitopy pyperclip requests requests_toolbelt natsort vstools rich colorama" in terminal (without quotes) | |
- "vsrepo install imwri lsmas sub" in terminal (without quotes) or the following installed to your usual Vapoursynth plugins folder: | |
- https://github.com/AkarinVS/L-SMASH-Works/releases/latest | |
- https://github.com/vapoursynth/subtext/releases/latest |
All packages, except for Tini have been added to termux-root. To install them, simply pkg install root-repo && pkg install docker
. This will install the whole docker suite, left only Tini to be compiled manually.