Troubleshooting
After an initial reboot an unauthenticated telnet service (port 23) is exposed.
In case of any issues it can be used for debugging. Additionally, if an error
occurs during Homebrew Channel install, the bootstrap shell script is removed,
and the TV should return to original state after a reboot. Then, rooting may be
reattempted.
Exploit fails on stage 1 (system browser)
- Check if LG Connect Apps is enabled (webOS 3.x devices)
- Verify if http://localhost:3000 works in webOS system browser
Exploit fails on stage 2 (full screen app)
-
If the message says «Service does not exist:
com.webos.service.downloadmanager» — your TV is running webOS TV version older
than 3.4, and thus the service we use a vulnerability in is not present.
RootMyTV will not work on your TV, and there’s no way of upgrading to a
vulnerable version. You may try using some older exploits like
GetMeIn. -
If the message says «Denied method call», there’s a chance LG already patched
your TV firmware. In certain cases (when only a system app update has been
released, not a full firmware update) you may try:- unplugging the TV from the network
- doing a «Reset to initial settings», going through the first time wizard
- running https://rootmy.tv immediately after reconnecting the network
-
If the message says «This likely means your TV is not vulnerable to LunaDownloadMgr
exploit.» and your TV is running webOS TV version between 3.0.0 and 3.4.0 you
may try checking if there’s a system update available. A vulnerability
in LunaDownloadMgr we use has been introduced in webOS 3.4.0 which got
released on some TV models.NOTE: «webOS TV Version» (core system version, formatted
1.2.3-123456 (some-codename)
) is a different thing to
«Software Version» (per-model firmware version, formatted01.23.45
).
TV reboots but Homebrew Channel is missing
Your TV is already patched. Wait for another root exploit release.
Homebrew Channel shows up/telnet works but everything disappears after a reboot
This may be caused by some leftover files from RootMyTV v1. You can either:
- Connect over telnet and run:
rm /media/cryptofs/apps/usr/palm/services/com.palmdts.devmode.service/start-devmode.sh
- or just run «Reset to Initial Settings» option in webOS settings
Afterwards you will need to run https://rootmy.tv again.
Реклама показывается только незарегистрированным пользователям. Вход или Регистрация
- Ответить с цитатой
Re: Как получить Root права на webOS 1.0-6.0
Добрый день!
Решил начать со Способа №2, где указано изменить в настройках ТВ дату назад до и не позже чем 30 Сентября, 2021 г.
Ставлю дату например — 19 Cентября 2021 года. Сохраняю. Запускаю бразуер ТВ и в адресной строке пишу:
http://rootmy.tv
В результате всплывает синее окошко со следующей ошибкой: «На телевизоре установлено время», отличающееся от текущего. Перейти к настройкам времени? «.
Тупик?! Подскажите пожалуйста что я делаю не так?
Фото ошибки прилагается.
Спасибо!
-
1.JPG (572.41 КБ) Просмотров: 2344
- Ошибка с датой
- akozubay
- Сообщения: 11
- Зарегистрирован: 06 дек 2021, 12:31
- Благодарил (а): 1 раз.
- Поблагодарили: 0 раз.
- Телевизор: 32LM6370PLA
- Звук: Штатная акустика
- Спонсор
- Сообщения: 100
- Зарегистрирован: 15 июл 2014, 18:43
- Благодарил (а): 0 раз.
- Поблагодарили: 0 раз.
- AMETKO
- Сообщения: 3258
- Зарегистрирован: 18 июн 2017, 22:32
- Благодарил (а): 358 раз.
- Поблагодарили: 469 раз.
- Телевизор: LG 43UH603V
- Ответить с цитатой
Re: Как получить Root права на webOS 1.0-6.0
Dystopian » 21 дек 2021, 00:05
Немного моих исследований рутованного ТВ.
Модификация приложения «Фото и видео». Изменено:
- в плеере кнопки «Субтитры» и «Аудиодорожка» вынесены на главную панель
- в плеере интервал перемотки уменьшен с 15с до 5с
- в разделе «Образцы фото» лежат свои картинки
Подключение неподдерживаемых устройств по Bluetooth
Картины для приложения «Галерея»
Последний раз редактировалось Dystopian 24 дек 2021, 06:54, всего редактировалось 2 раз(а).
- За это сообщение автора Dystopian поблагодарили: 3
- andrewttrb (21 дек 2021, 00:44), Архивариус (11 июн 2022, 12:32), JackSparrow (21 дек 2021, 06:24)
- Dystopian
- Сообщения: 3
- Зарегистрирован: 12 дек 2021, 02:56
- Благодарил (а): 1 раз.
- Поблагодарили: 5 раз.
- Телевизор: LG 65NANO866NA
- JackSparrow
- Сообщения: 8106
- Зарегистрирован: 10 июн 2018, 17:48
- Благодарил (а): 1078 раз.
- Поблагодарили: 1409 раз.
- Телевизор: LG OLED 55C9
- Ответить с цитатой
Re: Как получить Root права на webOS 1.0-6.0
akozubay » 22 дек 2021, 10:58
Всем добрый день!
Следуя Способу №2 в результате рут успешно получен! Ура!
Дату на ТВ не менял, просто запустил браузер, ввел в адресной строке
http://rootmy.tv
и далее по описанной процедуре. Всем спасибо за оказанную помощь.
Подскажите пожалуйста после того как Рут получен, в инструкции я пропускаю Шаг №1 и Шаг №2 и делаю по инструкции согласно Шага №3?
- akozubay
- Сообщения: 11
- Зарегистрирован: 06 дек 2021, 12:31
- Благодарил (а): 1 раз.
- Поблагодарили: 0 раз.
- Телевизор: 32LM6370PLA
- Звук: Штатная акустика
- Ответить с цитатой
Подключение геймпадов по Bluetooth
Dystopian » 24 дек 2021, 00:10
Подключение геймпадов по Bluetooth (требуется root)
Алгоритм проверял на китайских джойстиках EXEQ и GameSir. Геймпад отлично видится в RetroArch, играет прекрасно.
Некоторые команды не завершаются сами и бесконечно ждут чего-то, в таких случаях нажимаем Ctrl-C после получения результата выполнения.
- заходим на тв по телнету или ssh
- проверяем статус адаптера
- Код: Выделить всё
luna-send -i -f luna://com.webos.service.bluetooth2/adapter/getStatus '{}'
- смотрим доступные профили
- Код: Выделить всё
luna-send -i -f luna://com.webos.service.bluetooth2/adapter/queryAvailable '{}'
Ключевой момент здесь — доступен профиль HID-host. Думаю, без него геймпад не прицепить.
- запускаем discovery
- Код: Выделить всё
luna-send -n 1 -f luna://com.webos.service.bluetooth2/adapter/startDiscovery '{ }'
на геймпаде активируем синхронизацию, чтобы телевизор нашел его
- смотрим список подключенных и найденных устройств, ищем в нем нужный нам геймпад
- Код: Выделить всё
luna-send -i -f luna://com.webos.service.bluetooth2/device/getStatus '{}'
В списке наверняка будет и пульт, у которого «name»: «LGE MR20», «paired»: true, «typeOfDevice»: «ble». У геймпада может быть пустое имя, но «paired» должен быть false. Копируем MAC-адрес (address) геймпада.
Повторяем этот и предыдущий пункт, пока геймпад не появится. - делаем сопряжение, в команде подставляем адрес своего геймпада. Команду до появления результата (1-20 сек) не прерываем!
- Код: Выделить всё
luna-send -i -f luna://com.webos.service.bluetooth2/adapter/pair '{ "address": "00:13:87:65:ce:12", "subscribe":true }'
Повторяем, пока в ответе returnValue не станет true.
- присоединяемся к сопряженному геймпаду
- Код: Выделить всё
luna-send -i -f luna://com.webos.service.bluetooth2/hid/connect '{"address":"00:13:87:65:ce:12"}'
Команда недокументированная, нашел ее по аналогии с другими connect-ами (для наушников нужно делать a2dp/connect — это есть тут https://www.webosose.org/docs/reference/ls2-api/com-webos-service-bluetooth2/). После успешного коннекта на моем геймпаде загорается индикатор присоединения
- запускаем RetroArch, в левом нижнем углу выскочит подсказка, что геймпад обнаружен. После успешного присоединения больше искать не придется, геймпад будет цепляться автоматически.
Таким же способом можно подключить мышь и наушники. Наушники после такого подключения в настройках звука отсутствуют, т. е. выбрать их для вывода звука нельзя. Мышь не управляет курсором после подключения, но если после этого подключить/отключить USB-мышь или USB-клавиатуру, начинает работать нормально. После засыпания мышь работать перестает. Видимо, не хватает каких-то udev-конфигов.
Клавиатуру, которая при сопряжении требует ввода пин-кода, подключить не получается.
Последний раз редактировалось Dystopian 30 дек 2021, 00:20, всего редактировалось 1 раз.
- За это сообщение автора Dystopian поблагодарили: 2
- andrewttrb (24 дек 2021, 09:17), TheChief (24 дек 2021, 12:21)
- Dystopian
- Сообщения: 3
- Зарегистрирован: 12 дек 2021, 02:56
- Благодарил (а): 1 раз.
- Поблагодарили: 5 раз.
- Телевизор: LG 65NANO866NA
- amyr13
- Сообщения: 37
- Зарегистрирован: 18 ноя 2018, 07:24
- Благодарил (а): 3 раз.
- Поблагодарили: 0 раз.
- Телевизор: LGTVLJ600U
- Ответить с цитатой
Re: Подключение по Bluetooth устройств ввода
TheChief » 24 дек 2021, 15:35
Dystopian писал(а):Как будет (если будет) работать клавиатура и мышь, я не знаю, проверить не на чем.
Моя клавиатура требует вводить пин-код, а запрос adapter/pair почему-то не выводит pin, хотя по мануалу и должен. Так что обломинго.
- За это сообщение автора TheChief поблагодарил:
- Dystopian (24 дек 2021, 23:34)
- TheChief
- Сообщения: 21
- Зарегистрирован: 22 сен 2018, 15:45
- Благодарил (а): 4 раз.
- Поблагодарили: 4 раз.
- Телевизор: LG OLED55C8
Вернуться в Телевизоры LG — Обсуждение
Перейти к содержимому
Обновление ПО
К телевизору LG необходимо подключить мышку или иметь пульт c гироскопом!
В первую очередь необходимо обновить ПО на телевизоре LG.
Для этого заходим в «Меню -> Все настройки -> Поддержка -> Обновление ПО -> Проверить обновления».
Получение Root-прав
Заходим в Браузер телевизора LG и в адресной строке прописываем адрес сайта «rootmy.tv»
Теперь необходимо перетащить ползунок слева-направо. Без мыши и пульта с гироскопом не обойтись!
Даём разрешение сайту сохранять информацию, нажав «Да».
После всех процедур телевизор перезагрузится и в «Список приложений» добавится иконка с кружкой. Нажмите на неё.
Нажмите «Reboot now», чтобы снова перезагрузить телевизор LG.
Снова нажимаем на иконку с кружкой.
В правом верхнем углу есть белая шестерёнка в красном круге. Нажимаем на неё.
Нажимаем на надпись «Add repository» и вводим «https://repo.webosapp.club».
Теперь необходимо снова перезагрузить систему.
Нажимаем «System reboot».
Как обычно, нажимаем на иконку с кружкой.
Теперь вы можете установить любое из предложенных сторонних приложений для телевизоров LG.
Статья составлена при помощи youtube-канала Pro100tehnika.
Также рекомендуем статью «Torrserver MatriX WebOS».
Same for me. I just discovered the project yesterday.
Tried on LG C9, latest fw. Run exploit, it rebooted — nothing happened!
Yep me three . Just confirmed that homebrew channel is missing after the ‘successful’ patch and reboot
I confirm, LG NANO86, latest firmware. Exploit is broken Nothing changed after reboot
The same on LG NANO866NA WebOS 5.3.0-2205
maybe someone has a safe method to downgrade?
Exactly the same for me — exploit says it was successful but no homebrew channel.
Doesn’t work here either. Exploit successful, TV reboots, no popups or any changes after reboot and no Homebrew Channel.
LG OLED55B97LA
Software Version 05.20.15
webOS TV Version 4.9.5-10 (goldilocks2-gympie)
Just to report that currently this is not working on mine either
Software Version 05.20.15
webOS TV Version 4.9.5-10 (goldilocks2-gympie)
Nope, here is the same, LG C9, latest fw as my other colleagues and still not working
Also having the same issue on an lg CX 55
Same for me, Software Firmware 5.20.15. Hopefully there will be a new version that will support this firmware 🙏
Still doesn’t work as of March 28th. Has there been any updates on when this could work? Was really looking forward to root my tv what a shame :/
please people.. stop spamming.. we all know that it doesn’t work anymore on new Software Versions. just posting every model isn’t gonna help.
please people.. stop spamming.. we all know that it doesn’t work anymore on new Software Versions. just posting every model isn’t gonna help.
Got it! thanks for the advise.
Now , moving on.. How can we sort out this issue? any suggested method? downgrading? if so, how?
Perhaps we should wait for updates on this.
Thanks in advance.
GRX
changed the title
Nog longer working (LGOLED65C9PLA — wos 05.20.15)
No longer working (LGOLED65C9PLA — wos 05.20.15)
Mar 29, 2022
Most people want root access to be able to use Piccap Hyperion which only works with rooted TV. Sadly root still doesn’t work on the latest firmware.
Hopefully a new version of RootMyTv is out soon. It shouldn’t take long because everything seems to work fine, only at the final step when the TV restarts something goes wrong.
OK, so it is not possible with the use of the DevMode Manager to get Hyperion Working at this time ?
OK, so it is not possible with the use of the DevMode Manager to get Hyperion Working at this time ?
Yeah it requires root access to work as of yet.
hm, okay so Fingers crossing for now…
Not sure thre the thread here is version specific, but for what it’s worth, the exploit worked on my tv running webOS 6.2.0-35.
@JasonLandbridge, a more detailed guide would be appreciated!
@Informatic, is there something we could help with? Do you need more info/logs?
Can concurr LG WebOS 05.25.15
Is there any way to downgrade webos? no, now there isn’t
So my TV just updated aswell (girlfriend confirmed the update prompt… forgot to re-enable blocking).
Really looking forward to an updated exploit to get back hyperion-webos.
Please, if there’s something I can help with, hit me up (LG C9, 5.20.15).
Maybe getting a new downgrade method working is easier?
At everyone! I assume you all want to install The Homebrew Channel, which can also be done by creating a developer account and installing the developer mode app on the TV.
Then you can use DevMode Manager for webOS TV to connect to your TV from your PC. Once connected, install the Homebrew channel from the application and then you’re done!
Extra tip: I managed to also install Ad-free Youtube by doing this!
Ask me if you have any questions and maybe I will write a more detailed guideWouldn’t homebrew app expire after some time since you need to refresh developer mode, or is it different?
I’ve got the same question. I’d like to use the Crunchroll app which doesn’t exists officially and it’s annoying to setup the developer mode and then the app again. Also the app on android doesn’t support streaming to LG WebOS..
For those who are interested, there is a way to downgrade, updating to a test version that can be rooted and then downgrade.
Compatible models:
UM7050-UM7090, UM7100-UM7110, UM7300, UM7400-UM7490, UM7500-UM7570, UM7600-UM7660, SM8000, SM8050, SM8100, SM8200 (webOS 4.5)
1- Install the «Lg Service Remote Control» application on an android device with infrared and press the «in start» button pointing at the screen that opens a password section in which you have to write «0413» and within the configuration in the «System 2» section, an option appears with the name NSU Mode that must be set to «Engineering mode» and exit.
2- Change the location setting of the system configuration to «Other» in the first section and two hyphens in the second such that «—«.
3- Once this is established and restarted, an update to version 30.05.09 should appear, if so, update otherwise NO.
4- Once updated, the rootmy.tv procedure can be done and later it could be downgraded following the existing methods to the version prior to patching.
Once the downgrade is done, you can disable «Engineering mode» and set location to whatever you want.
For those who are interested, there is a way to downgrade, updating to a test version that can be rooted and then downgrade.
1- Install the «Lg Service Remote Control» application on an android device with infrared and press the «in start» button pointing at the screen that opens a password section in which you have to write «0413» and within the configuration in the «System 2» section, an option appears with the name NSU Mode that must be set to «Engineering mode» and exit. 2- Change the location setting of the system configuration to «Other» in the first section and two hyphens in the second such that «—«. 3- Once this is established and restarted, an update to version 30.05.09 should appear, if so, update otherwise NO. 4- Once updated, the rootmy.tv procedure can be done and later it could be downgraded following the existing methods to the version prior to patching.
Once the downgrade is done, you can disable «Engineering mode» and set location to whatever you want.
Tried it on my OLED55C9PLA but only got an option to update to 05.35.35
in the system software updater.
Tried it on my OLED55C9PLA but only got an option to update to
05.35.35
in the system software updater.
I just looked at the compatible models:
UM7050-UM7090, UM7100-UM7110, UM7300, UM7400-UM7490, UM7500-UM7570, UM7600-UM7660, SM8000, SM8050, SM8100, SM8200 (webOS 4.5)
Sorry
For those who are interested, there is a way to downgrade, updating to a test version that can be rooted and then downgrade.
Compatible models:
UM7050-UM7090, UM7100-UM7110, UM7300, UM7400-UM7490, UM7500-UM7570, UM7600-UM7660, SM8000, SM8050, SM8100, SM8200 (webOS 4.5)
1- Install the «Lg Service Remote Control» application on an android device with infrared and press the «in start» button pointing at the screen that opens a password section in which you have to write «0413» and within the configuration in the «System 2» section, an option appears with the name NSU Mode that must be set to «Engineering mode» and exit. 2- Change the location setting of the system configuration to «Other» in the first section and two hyphens in the second such that «—«. 3- Once this is established and restarted, an update to version 30.05.09 should appear, if so, update otherwise NO. 4- Once updated, the rootmy.tv procedure can be done and later it could be downgraded following the existing methods to the version prior to patching.
Once the downgrade is done, you can disable «Engineering mode» and set location to whatever you want.
Thanks, it’s works well for my UM7050 !
How old is this version 30.05.09 ?
For those who are interested, there is a way to downgrade, updating to a test version that can be rooted and then downgrade.
Compatible models:
UM7050-UM7090, UM7100-UM7110, UM7300, UM7400-UM7490, UM7500-UM7570, UM7600-UM7660, SM8000, SM8050, SM8100, SM8200 (webOS 4.5)
1- Install the «Lg Service Remote Control» application on an android device with infrared and press the «in start» button pointing at the screen that opens a password section in which you have to write «0413» and within the configuration in the «System 2» section, an option appears with the name NSU Mode that must be set to «Engineering mode» and exit. 2- Change the location setting of the system configuration to «Other» in the first section and two hyphens in the second such that «—«. 3- Once this is established and restarted, an update to version 30.05.09 should appear, if so, update otherwise NO. 4- Once updated, the rootmy.tv procedure can be done and later it could be downgraded following the existing methods to the version prior to patching.
Once the downgrade is done, you can disable «Engineering mode» and set location to whatever you want.
You forgot to give link to original post on webOS forum: http://webos-forums.ru/post152991.html#p152991
looking at the commit history, showing latest technical commit in january, i assume the project is officialy dead?
Don’t give up hope 😉 😉
OLED65CX running 04.30.61
whiterat@xx:[~]$ telnet 10.1.161.192
Trying 10.1.161.192...
Connected to 10.1.161.192.
Escape character is '^]'.
webOS TV 5.3.0 LGwebOSTV
/ # uname -a
Linux LGwebOSTV 4.4.84-219.1.jasper.2 #1 SMP PREEMPT Thu Feb 24 09:02:14 UTC 2022 aarch64 GNU/Linux
/ # id
uid=0 (root) gid=0 (root)
Don’t give up hope wink wink
OLED65CX running 04.30.61
But wasn’t this thread about >= 05.20.15 ???
Don’t give up hope wink wink
OLED65CX running 04.30.61But wasn’t this thread about >= 05.20.15 ???
He wrote about new method to get root, including(?) 2019 models with 05.20.15.
looking at the commit history, showing latest technical commit in january, i assume the project is officialy dead?
no I rather assume that they are hard at work trying to find vulns in the TVs that are no longer vulnerable now.
FYI we we are in the process of working on v3 chain, which we plan to release in around a month. We plan to make it work on all currently released firmware versions (including 2022 TVs), though can’t guarantee that yet, since we haven’t done enough testing.
andyearnshaw, leandrodeassis, tk2232, ynixt, Alfagun74, and joseandres42 reacted with hooray emoji
kubo6472, leandrodeassis, tk2232, Kakise, Oujiii, leonelsr, ibrahimBeladi, rbkn, and vdumbrav reacted with heart emoji
That’s great news. Seriously waiting for an update, came late to root my OLED 55GXPUA WebOS 5.4.1 (Software Version 04.40.10) Couldn’t yet
FYI we we are in the process of working on v3 chain, which we plan to release in around a month. We plan to make it work on all currently released firmware versions (including 2022 TVs), though can’t guarantee that yet, since we haven’t done enough testing.
Hello! Any plans to support latest OLED G2? Which FW could be supported?
Thanks!
looking at the commit history, showing latest technical commit in january, i assume the project is officialy dead?
We don’t develop exploits in the open, because LG would be able to patch them quicker, and we don’t want that
Rest assured that the project is not dead. but I’m closing this issue for now as a duplicate of #18 — We know it’s not working right now, but the next release is comming soon™ and will aim to support as many devices as possible.
Any word on future updates? Or is 22 the last year of rootmy TV support?
Any word on future updates? Or is 22 the last year of rootmy TV support?
![]()
You can root your TV as described up there. I did it that way and it still works.
I attempted this on my LG B2 and it told me «No vulnerable apps found:(«
…
О проблеме с открытием сайтов на различных устройствах в связи окончанием срока действия сертификата Let’s Encrypt IdenTrust DST Root CA X3, а также о способах ее решения я писал в этой статье. И если в случае с компьютером все решается просто и быстро, то на других устройствах — телефонах, планшетах, телевизорах и т.п. — исправить ситуацию иногда довольно сложно.
Например, совсем недавно столкнулся с невозможностью открыть некоторые сайты во встроенном браузере на телевизоре LG, работающем под управлением WebOS. Причина та же — устаревший сертификат и отсутствие нового. Несмотря на то, что телевизор периодически получает обновления своего ПО, производитель почему-то не торопится включать в эти обновления новые сертификаты безопасности. Что делать? Придется решать проблему самостоятельно.
Как всегда, поиск в интернете принес определенные результаты, но на этот раз они были не утешительные. Часть заявлений сводилась к тому, что самостоятельно решить проблему нельзя никоим образом, это может сделать только производитель. Вторая же часть описывала довольно трудоемкий и малопонятный процесс взлома телевизора и модификации его программной начинки. Впрочем, почитав разные источники и немного разобравшись в предлагаемых способах обновления сертификатов, я пришел к выводу, что все не так уж и сложно, и поэтому решил попробовать.
Далее я постараюсь как можно более просто и понятно объяснить, как обновить сертификаты безопасности на телевизорах LG под управлением WebOS. Основным источником информации для меня послужила вот эта тема на специализированном форуме, которая, в свою очередь, ссылается на первоисточник с другого известного форума. Под спойлерами буду прятать дополнительную информацию, которую можно пропустить.
Инструкция по обновлению сертификатов Let’s Encrypt на ТВ LG под управлением WebOS 3.5 или новее
Нам потребуется:
- Сам телевизор, подключенный к интернету любым способом (WiFi или кабель)
- Компьютер, подключенный к той же локальной сети, что и телевизор
- Программа для подключения по протоколу Telnet или SSH, например, PuTTY
Также узнайте версию WebOS, установленную на ТВ — от нее будут зависеть некоторые дальнейшие действия. Узнать версию можно в меню Настройки -> Расширенные настройки -> Общие -> Сведения о телевизоре -> Информация о телевизоре. Будьте внимательны: на шаге “Сведения о телевизоре” высветится поле “Версия ПО”, но это не то, что нам нужно. Версия операционной системы будет в поле “Версия телевизора webOS” и будет выглядеть примерно так: 3.9.0-62906.
Шаг первый: получаем root-права
Для того, чтобы иметь возможность что-то исправлять в файловой системе или программном коде телевизора, нам необходимо получить так называемые root-права, то есть права на полный доступ к установленной операционной системе. Без этого ничего сделать с сертификатами мы не сможем.
Коротко о рут-правах
Многие устройства для повседневного использования работают под управлением заложенного в них производителем программного обеспечения (ПО). Как правило, доступ пользователя к программному обеспечению устройства не предусматривается, не говоря уже о возможности его изменения. По этой причине производители всячески стараются защитить устройство от редактирования, а иногда даже и от просмотра его программной начинки. Но в некоторых случаях, например, сервисным инженерам при ремонте прибора требуется полный доступ к ПО. По своей сути, получение root-прав или рутирование устройства — это получение полного доступа к заложенному в нем ПО с возможностью его изменения. В связи с усилиями производителей по защите устройств от взлома получение рут-прав обычно не отличается простотой и зачастую использует найденные уязвимости в защите системы.
[свернуть]
В интернете можно найти несколько способов получения root-прав для разных версий WebOS, но самый простой с точки зрения малоподготовленного пользователя — это использование уже готового инструмента. В моем случае это был rootmy.tv, почитать о нем можно здесь (описание на английском). Итак, приступаем:
- Включаем телевизор, запускаем на нем браузер, заходим по адресу https://rootmy.tv
- После загрузки страницы сдвигаем вправо слайдер “slide to root”. Его можно сдвинуть подключенной к ТВ мышкой или с помощью пульта Magic Remote. Если у вас обычный пульт, просто нажмите на нем цифру 5.
- Подтвердите появившееся предупреждение о безопасности.
После этих действий запустится автоматическое получение рут-прав, описание текущих стадий будет отображаться на экране. В процессе работы телевизор будет один или два раза перезагружен. В редких случаях ТВ вместо перезагрузки может выключиться, тогда его надо просто снова включить пультом. Вместе с получением рут-прав на ТВ будет также установлено приложение Homebrew Channel.
По завершении работы (весь процесс занял около минуты) ТВ предоставляет возможность неавторизованного доступа к своей операционной системе по протоколу Telnet. Для переключения на защищенный протокол SSH надо зайти в приложения, найти и запустить новое приложение Homebrew Channel, зайти в его настройки (значок в виде шестеренки в заголовке), включить протокол SSH и отключить протокол Telnet. Там же в настройках желательно отключить возможность автоматического обновления системы (Block system updates), чтобы не потерять в дальнейшем рут-права. После изменения настроек ТВ следует еще раз перезагрузить, для этого выберите пункт меню System reboot.
Подключаемся к ТВ с компьютера по протоколу SSH
Теперь мы можем управлять нашим ТВ с компьютера. Чтобы получить к нему доступ, делаем следующее:
- Узнаем IP-адрес телевизора. В зависимости от модели телевизора его можно найти в меню
Настройки -> Основные -> Сеть -> Состояние сети -> Настройки IP
или Настройки -> Сеть -> Проводное подключение -> Дополнительные настройки
или Настройки -> Сеть -> Подключение к сети Wi-Fi -> Дополнительные настройки Wi-Fi
- Запускаем программу PuTTY на компьютере, подключенном к той же сети, что и ТВ (программу скачиваем здесь).
- Вводим в поле Host Name (or IP address) адрес нашего ТВ, выбираем Connection type SSH (если после получения рут-прав не отключали протокол Telnet на ТВ, то можно выбрать Other – Telnet).
- Нажимаем кнопку Open.
Откроется окно терминала, в котором можно вводить команды для управления телевизором. Первым делом при подключении по SSH необходимо ввести имя пользователя и пароль. По умолчанию после получения рут-прав через rootmy.tv имя пользователя root
, пароль alpine
. При вводе пароля нажимаемые символы не отображаются, даже в виде “звездочек”. Подтверждение набора осуществляем клавишей Enter.
Обновляем сертификаты безопасности на ТВ
Теперь пошагово в терминале PuTTY задаем приведенные ниже команды и подтверждаем каждую нажатием клавиши Enter. Для ускорения работы и исключения ошибки в написании команд рекомендую полностью копировать текст команды и вставлять его в терминал. Копировать можете любым удобным вам способом (например, Ctrl+V), а вставлять в окно терминала нужно нажатием правой кнопки мыши, так как клавиатурные сокращения в нем не работают. По возможности буду приводить описание действия каждой команды.
1. Создаем на ТВ новую папку для размещения сертификатов
mkdir /media/cryptofs/root/
2. Копируем все содержимое папки /etc/ в нашу папку
cp -a /etc/ /media/cryptofs/root/
3. Копируем также папку с сертификатами в нашу папку
cp -a /usr/share/ca-certificates/ /media/cryptofs/root/ca-certificates/
3.1. Если у вас версия WebOS от 3.5 до 3.9 включительно, то копируем отдельно сертификаты браузера. Для других версий WebOS это делать не нужно
cp -a /var/palm/jail/com.webos.app.browser/usr/share/ca-certificates/ /media/cryptofs/root/ca-certificates_browser/
4. Запускаем текстовый редактор vi и открываем в нем файл со списком сертификатов
vi /media/cryptofs/root/etc/ca-certificates.conf
После этого на экране терминала отобразится содержимое файла ca-certificates.conf, а именно список установленных на устройстве сертификатов. Редактирование содержимого ведется почти как в обычном текстовом редакторе, но есть и отличия.
Работа с редактором vi. Прочитайте, если раньше не работали с ним!
Чтобы лучше разобраться с особенностями редактора vi, прочтите небольшую инструкцию. Скорее всего, она вам не понадобится, просто запомните основные действия:
- для перемещения по тексту и прокрутки экрана используем клавиши со стрелками;
- подведя курсор к нужному месту, входим в режим редактирования, нажав клавишу i;
- печатаем нужный текст;
- для выхода из режима редактирования с сохранением надо нажать Esc, а затем ZZ (два раза клавишу z с шифтом);
- для выхода без сохранения нажимаем Esc, затем клавишу : (двоеточие, нажимаем с шифтом, иначе введем точку с запятой), затем q (уже без шифта) и Enter.
[свернуть]
5. Находим в тексте строку DST_Root_CA_X3.crt, переводим курсор в ее начало, нажимаем i для входа в режим редактирования и ставим перед строкой восклицательный знак (должно получиться !DST_Root_CA_X3.crt
). Это означает, что сертификат не будет использоваться. Обратите внимание, что некоторые другие сертификаты тоже обозначены восклицательным знаком, то есть уже устарели.
6. Переходим в конец любой строки, нажимаем Enter для ввода новой строки и в ней печатаем:
mozilla/ISRG_Root_X1.crt
Редактирование файла закончено, нажимаем Esc и ZZ для сохранения и выхода из редактора.
7. Скачиваем из интернета новый сертификат безопасности и помещаем его в нашу папку с сертификатами
curl -k https://letsencrypt.org/certs/isrgrootx1.pem.txt | tee /media/cryptofs/root/ca-certificates/mozilla/ISRG_Root_X1.crt
8. Подключаем наши новые папки вместо старых
mount -o bind /media/cryptofs/root/etc /etc
mount -o bind /media/cryptofs/root/ca-certificates/ /usr/share/ca-certificates
9. Задаем команду для принудительного обновления сертификатов
update-ca-certificates
10. Если у вас версия WebOS от 3.5 до 3.9 включительно, то:
10.1. переходим в папку с сертификатами браузера
cd /media/cryptofs/root/ca-certificates_browser
10.2. удаляем старый сертификат
rm DST_Root_CA_X3.crt
10.3. закачиваем в папку новый сертификат
curl -k https://letsencrypt.org/certs/isrgrootx1.pem.txt | tee /media/cryptofs/root/ca-certificates_browser/mozilla/ISRG_Root_X1.crt
11. Теперь нужно отредактировать скрипт, который выполняется каждый раз при включении ТВ. Для этого снова используем редактор vi
vi /media/cryptofs/apps/usr/palm/services/com.palmdts.devmode.service/start-devmode.sh
Устанавливаем курсор клавишами со стрелками после строки /bin/bash
или в другое выбранное место скрипта (подробности под спойлером), нажимаем i для входа в режим редактирования и добавляем код:
# Set new certificates
mount -o bind /media/cryptofs/root/etc /etc
mount -o bind /media/cryptofs/root/ca-certificates/ /usr/share/ca-certificates
Куда именно вставлять код?
Будьте внимательны: при получении рут-прав через rootmy.tv, отключении автообновлений системы и применении прочих настроек через приложение Homebrew Channel содержимое скрипта меняется. В частности, там могут присутствовать условные операторы ветвления if
, и в зависимости от условия код в разных местах скрипта будет работать или игнорироваться. Поэтому необходимо правильно выбрать место для вставки команды на использование обновленных сертификатов.
Вставку новых команд желательно сделать перед строкой telnetd -l /bin/sh
, но таких строк в скрипте может быть несколько. Поэтому можно либо вставить перед каждой найденной, либо найти нужную и вставить только перед ней. Или еще лучше — вставить команды до оператора if
, сразу после строки /bin/bash
.
[свернуть]
11.1. Если у вас версия WebOS от 3.5 до 3.9 включительно, добавляем после указанных выше строк еще две:
sleep 50
mount -o bind /media/cryptofs/root/ca-certificates_browser/ /var/palm/jail/com.webos.app.browser/usr/share/ca-certificates/
Пример добавления строк
На скриншотах видно, что в скрипте имеются операторы ветвления, так что надо правильно выбрать место вставки. Например, в самом начале скрипта идет проверка на наличие файла-флага, используемого для восстановления работы ТВ при сбое в работе скрипта. Соответственно, команды между строками if и else будут выполнены только в случае сбоя.
А вот после строки else следуют команды, которые работают в нормальном режиме загрузки. Значит, сюда и надо добавлять наши команды. На скрине видно, что нужная нам секция # Set new certificates
добавлена перед секцией # Block software update service
, отвечающей за блокировку автообновления системы.
[свернуть]
Вставленные команды будут срабатывать при каждом включении телевизора и монтировать созданные нами папки с сертификатами в качестве стандартных системных папок.
Не забываем сохранить изменения в скрипте и выйти из редактора vi нажатием последовательности Esc + ZZ.
12. Вводим команду на перезагрузку ТВ
reboot
После перезагрузки телевизора открываем на нем браузер и вводим адрес сайта, который раньше выдавал ошибку из-за просроченного сертификата безопасности. Если сайт открывается, поздравляю: все прошло удачно!
Дополнительная информация
1. На тематических форумах, где обсуждалась описываемая проблема, встречаются рекомендации по установке еще двух сертификатов — ISRG_Root_X2.crt и Lets_Encrypt-R3.crt, но никто пока не сталкивался с тем, чтобы без них проблема не исчезала. Поэтому их не добавляем.
2. Если у вас возникают какие-то вопросы, почитайте источники, ссылки на которые приведены в начале статьи.
3. Если в процессе работы с PuTTY пропадет сетевое соединение, телевизор вдруг перейдет в спящий режим или отключится, не пугайтесь. Запомните последнюю выполненную команду, закройте программу PuTTY, включите ТВ, запустите PuTTY, подключитесь к ТВ, введите логин и пароль, а затем продолжите ввод команд со следующего пункта. Если отключение произошло при редактировании файла до его сохранения (пункты 4-6 или 11), то начните редактировать заново (пункт 4 или 11).
4. Ну и самое главное — помните, что все действия по модификации ПО вашего телевизора вы выполняете на свой страх и риск. Даже получение рут-прав может служить причиной для отказа в гарантийном обслуживании.
[свернуть]
За время, прошедшее с момента написания этой статьи, у меня появилась новая информация о некоторых особенностях добавления сертификатов на телевизоры LG. Этой информацией я решил поделиться с читателями.
Дополнительная информация (добавлено 3.01.2022)
После получения рут-прав через сервис rootmy.tv мой телевизор два раза переходил в режим восстановления. Оба раза это случалось после отключения электропитания. В режиме восстановления на экране ТВ каждые 15 секунд появляется сообщение
Failsafe mode! Open telnet and remove /var/luna/preferences/webosbrew_failsafe
Во всем остальном ТВ функционировал, как положено. Поэтому было решено просто убрать сообщение, для чего нужно удалить создаваемый для режима восстановления файл-флаг. Делается это следующим образом:
1. Запускаете PuTTY и подключаетесь к ТВ через протокол Telnet (SSH в режиме восстановления не работает).
2. Вводите команду
rm /var/luna/preferences/webosbrew_failsafe
и жмете на Enter. Таким образом удаляется файл, служащий признаком режима восстановления.
3. Вводите команду
reboot
и жмете на Enter. Телевизор перезагрузится, сообщение о режиме восстановления должно исчезнуть.
Для выхода из режима восстановления можно воспользоваться также встроенным telnet-клиентом Windows, подробности в этой статье. Кроме того, можно отключить режим восстановления через меню приложения Homebrew.
Также на некоторых моделях ТВ LG с версией WebOS 3.9 и меньше невозможно найти и заменить сертификаты браузера. В результате команды, описанные в пунктах 3.1 или 11.1 этой статьи, выполняются с ошибкой и реальная замена сертификатов не происходит. Дело в том, что нужные папки создаются динамически только при запуске браузера, поэтому при закрытом браузере подменить сертификаты не удается. В качестве решения предлагается добавить в стартовый скрипт команду запуска браузера в скрытом режиме, что позволяет затем проделать вышеописанные манипуляции для подмены сертификатов.
То есть, если при выполнении пункта 3.1 этой статьи вы получили сообщение об ошибке, то продолжайте выполнять остальные команды, а в пункте 11 самой первой командой вставьте
luna-send -n 1 -f luna://com.webos.applicationManager/launch '{"id": "com.webos.app.browser", "launchHidden":true, "params":{}}'
и потом все остальные, которые там приведены.
После этого перезапустите ТВ и повторите выполнение пунктов 3.1 и 10 (со всеми подпунктами). Затем снова перезагрузите ТВ.
На практике данную рекомендацию я не проверял, сведения взяты из этого источника.
[свернуть]