Philips_TV/research/19_apr_2020.md

15 lines
2.0 KiB
Markdown

# 19 April 2020
The project were picked back up after a long idle. Changes during last writeup has been the TV now asks for update every time after bootup (about 30 seconds to 2 minutes before it pop ups). As I am a reasonable person I say "no" every time.
## Ghidra
Currently I am checking the binaries I dumped late 2018 in [Ghidra](https://ghidra-sre.org/) as I have been doing other unrelated reversing lately that have helped me get my feet wet with reversing and debugging.
I am unsure what to look for so I have just been opening different binaries that I tried to understand last time. This includes mostly:
- /3rd/internet_browser/browser
- /3rd/browser_engine/opera_dir/jsplugins/tvapi_jsplugin.so
- /3rd/lib/libxtvapi.so
There were other files that were looked into but these were the most interesting at first sight. The most important one seem to be `tvapi_jsplugin.so` as this is the custom plugin they wrote that exposes some native functionality to their opera browser instance. It is quite difficult to use as you have to know what names, functions, etc. there are without any help. Even when you find a function you would need to somehow know the parameters and what it expects. It also seems very unstable as sometimes calling certain functions it would crash the browser instance and restart.
## Shell script chains
I have also been looking a lot though the shell scripts that are spread all over the place to try and understand the code flow and how the system starts and handle things. I am not experienced enough to understand how .rules files work (example: `/etc/udev/rules.d/devfs.rules`), but I think they are used to explain automated behavior. This is just a guess on my side so if anyone reads this in hope to understand what it does; do NOT take my guess as fact. I see something weird like `Palm Handheld` and such with `ttyUSB` (something that may give interactable terminal if I understood `autorun.sh` correctly). I hope that I am not required to buy some old device or spoof usb stuff with my pi to get a shell.