Star on GitHubStar1.1k stars

Case study

PlxNative: reconstructing a native webOS media-client interface

An unofficial Plex client built after the author investigated LG webOS native media interfaces with Ghidra and coding agents. It draws its own Rust/OpenGL interface and uses the television’s decoder, with documented host, simulator and real-device test tiers.

Targets
App
Category
Independent reconstruction cases
Relationship
Independent reconstruction project
Sources reviewed

Requirements & limits

  • Prerequisites: Requires a Plex account/server and a compatible LG TV. The baseline is webOS 4.0+, with explicitly documented 3.4.3/3.9.3 exceptions; the latter needs a newer source build than prebuilt v0.8.0.
  • Prerequisites: Product builds need macOS (x86_64 or arm64) or arm64 Linux, the webOS NDK, the pinned Rust toolchain and CMake. The desktop simulator has a different host/setup path.
  • Limits: Developer Mode normally needs no root but requires renewal. Some k5lp/k3lp devices cannot play under its sandbox, and k6hp crashes remain unresolved.
  • Scope: The scope is movies and TV shows, excluding music, photos, live TV and DVR. Selected relay/encrypted-server paths lack end-to-end viewing tests; timing and playback results remain author/device-specific.
  • License: GPL-3.0-or-later for project code, with separate brand and third-party terms including bundled FFmpeg.

About this entry

The description was reviewed against primary sources.

Report an outdated entry Suggest a translation fix

Primary sources

  1. README.md GitHub · GLinnik21/plx-native · Revision 0b0b220
  2. docs/building.md GitHub · GLinnik21/plx-native · Revision 0b0b220
  3. docs/install-and-verify.md GitHub · GLinnik21/plx-native · Revision 0b0b220
  4. LICENSE GitHub · GLinnik21/plx-native · Revision 0b0b220
  5. THIRD-PARTY-NOTICES.md GitHub · GLinnik21/plx-native · Revision 0b0b220
  6. https://www.reddit.com/r/ClaudeCode/comments/1x043yp/i_used_claude_code_to_reverseengineer_an_lg_tv/

More in Apps

All 174 entries in AppsApps case studies (62)

↑↓ move↵ open⌘↵ new tab