Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

Current Status

Development in 2022 included:

  • Reworking the applaunchd application enumeration and management daemon to use systemd units for applications instead of direct spawning.  This enabled the original goal of using systemd sandboxing features for applications.  As well, applaunchd was changed to start as unique user separate from root and agl-driver to improve security.
  • Adding a gRPC API to applaunchd in addition to the original D-Bus API, with an eye to removing the D-Bus API as soon as all demo applications are converted to using it.  At present, only the HTML5 demo applications remain to be converted.
  • Adding a gRPC API version of the legacy application framework's radio binding.
  • Reworking the legacy application framework's agl-service-hvac binding into a demo VIS client that uses the VSS HVAC signals instead of an AGL specific HVAC API.
  • Reworking the legacy application framework's agl-service-audiomixer binding into a demo VIS client that uses the VSS master volume signal instead of an AGL specific mixer API.  This is viewed as a stopgap until support for a gRPC version of the previous audiomixer API can be added.
  • Upgrading KUKSA.val to 0.2.5 to pick up a more stable version of its gRPC API and upgrade to VSS 3.0.
  • Initial implementation of a gRPC version of the agl-compositor's agl-shell API.
  • Adding SELinux support, but in non-enforcing mode in the demo builds.

Proposed Development Tasks

Development in 2023 is likely to be evolutionary, with a focus on extending and improving the use of gRPC in the demo stack.  Proposed tasks:

  1. Create a repository to hold the shared AGL gRPC API definitions so that server and client implementations can source them from a common location.  Some investigation will be required with respect to the most straightforward way of integrating this with the server and client implementations already in hand (e.g. integration with Meson).
  2. Finish converting the HTML5 demo homescreen and launcher to using the applaunchd gRPC API and removing the D-Bus API from the applaunchd codebase.
  3. Finish investigation into a minimal set of advanced systemd sandbox features to turn on by default in the application templates.
  4. Update the Flutter and HTML5 demo homescreen applications to use the latest agl-shell v3 features with respect to application start up and surface activation, matching the Qt demo homescreen features.  On the Flutter side, this may involve work in the Flutter embedder.
  5. Investigate converting at least some of the demo homescreen applications to use the new agl-compositor gRPC API instead of the agl-shell wayland protocol.
  6. Define a gRPC version of the legacy application framework's agl-server-audiomixer API, extend the new agl-server-audiomixer daemon to implement it, and update the Qt demo mixer application to use it.
  7. Investigate the effort required to define and implement gRPC APIs for the previous agl-service-bluetooth and agl-service-network bindings, with an eye to following through with implementing them if the effort seems reasonable.  The end goal of this would be to enable development of a Flutter demo settings application and potentially enhancing the HTML5 demo settings application.
  8. Investigate solutions for managing authorization tokens and potentially SSL certificates for VIS and/or gRPC.  One option that needs to be considered is integrating use of systemd-auth to pass things to daemons and applications.
  9. Investigate enabling SELinux enforcing mode in the demo builds.

Related Connectivity EG tasks:

  1. Keep following upstream KUKSA.val development and upgrading AGL to the latest releases.
  2. Convert all existing KUKSA.val VIS WebSocket usage to the gRPC API.
  3. Investigate potentially switching from the original KUKSA.val server to the Rust-based reimplementation (known as the KUKSA.val "databroker").  There are signs that the upstream community is starting to switch focus to the databroker, and the use of Rust is a potentially interesting technology demo to provide to AGL members.


  • No labels