Whilst the Packager plugin and RDKShell DAC Integration is available in rdkservices, it should be considered beta quality and is under active development
RDKShell currently has window management and key input handling capabilities but will soon have app lifecycle management capability added. It is also able to launch / suspend / resume / kill native apps, web apps, Thunder plugins and Lightning apps.
RDKShell will be extended to work with the OCIContainers plugin and the updated version of the "Packager" plugin when launching containerized native apps and plugins.
The "Packager" Thunder plugin is needed for managing OCI bundles; downloading, extracting, and removing them.
- During startup, Resident app fetches a list of available apps in the appstore.
- When the resident app (EPG, Receiver, ResApp etc) wants to launch "myApp"; it sends a launch request via JSON-RPC to RDKShell
- RDKShell sends a query to Packager to see if "myApp" is already installed. If it's not installed, RDKShell sends an install command to Packager.
- Packager provides the runtime configuration and the bundle info back to RDKShell
- RDKShell then launches the app using OCIContainers JSON-RPC command.
- RDKShell manages the lifecycle of the app via suspend/resume/kill commands provided by OCIContainers plugin