I have a LG OLED 65C1, now rooted with RootMyTV v2. I have been hacking around exploring all the possibilities, and this gist is thus a personal cheatsheet.
If ever your TV goes into servicing at LG for whatever reason, it would be better to have every chances to your sides by not allowing them seeing you made some "not covered" stuff to the TV.
A reboot command can be detected, so there's an alternative. But it has to be confirmed yet if it's really stealth or not.
Please however note the following from @Informatic. But we don't know if LG can do something about it:
LG Content Store is periodically queried for software updates of all installed applications (including homebrew/developer and system apps, app ids and versions are transmitted)
luna-send -a webosbrew -f -n 1 luna://com.webos.service.sleep/shutdown/machineReboot '{"reason":"remoteKey"}'
๐ธ Make a screenshot (from here)
luna-send -n 1 -f 'luna://com.webos.service.capture/executeOneShot' '{"path":"/tmp/capture.png", "method": "DISPLAY", "format": "PNG"}'
- Supported formats: BMP, JPG, PNG, RGB, RGBA, YUV422
- Supported methods: SCREEN/DISPLAY (alias?), SCREEN_WITH_SOURCE_VIDEO, VIDEO, GRAPHIC, SOURCE/SCALER (alias?)
- Defaults to 960x540, but you can provide
widthandheightparameters:"height": 2160, "width": 3840 - Note:
com.webos.service.capturecan also becom.webos.service.tv.captureon some devices, call signature is the same. - Note 2: this is also available over SSAP as: ssap://tv/executeOneShot - returns imageUri attribute with HTTP link)
With current date:
luna-send -n 1 -f 'luna://com.webos.service.capture/executeOneShot' "{\"path\":\"/home/root/capture_`date "+%d-%m-%y_%H-%M-%S"`.png\",\"method\":\"DISPLAY\",\"format\":\"PNG\",\"height\":2160,\"width\":3840}"
Replace hyperion-webos by the app you want to read the logs
$ luna-send -n 1 -f luna://com.webos.service.config/setConfigs '{"configs": {"system.collectDevLogs": true}}'
$ PmLogCtl set hyperion-webos debug
$ tail -F /var/log/messages | grep hyperion-webos
## After that start capture using PicCap and let it run for a few secounds. After that copy content from terminal in somewhere, or redirect directly using
$ tail -F /var/log/messages | grep hyperion-webos > /tmp/hyperion-webos.log
Add:
luna-send-pub -n 1 'luna://com.webos.service.eim/addDevice' '{"appId":"app-id", "pigImage":""}'
Remove:
luna-send-pub -n 1 'luna://com.webos.service.eim/deleteDevice' '{"appId":"app-id", "pigImage":""}'
The app needs to have "supportGIP":true to its appinfo.json. If added later, you need to reboot the TV.
- Launch in half mode
luna-send -n 1 -f luna://com.webos.service.applicationmanager/launch '{"id": "com.webos.app.home", "params":{"activateType": "powerOn"}}'
- Go to http://webosapp.club/instart/ with the webOS browser and proceed. Code is
0413
With a soundbar or similar that only has optical or AUX as input, there's no way to power on or off the device other than with sending an IR command. That command works only when the remote has been configured so it can power on the device with its IR, and when the remote is pointing at the device obviously.
luna-send -n 1 -f luna://com.webos.service.irdbmanager/sendIrCommand '{ "buttonState": "single", "deviceType": "audio", "keyCode": "IR_KEY_POWER" }'
Credits & references:
- Ircama/LgMagicRemoteKeys.md
- Informatic/README.md
- RootMyTV repository
- webosbrew commands cheatsheet
- https://github.com/KenMacD/webos-shell/blob/e814958abec353fe64f4ba0428ba151c39a44d41/webos_shell/luna.py
/mnt/lg/cmn_data/sdp/sdx/server_addr_version.conf