openvela trunk-5.5

[ English | 简体中文 ]

Overview

This openvela trunk-5.5 release brings comprehensive enhancements and improvements across the kernel, connectivity, multimedia, graphics, runtime framework, and developer tools. More importantly, this release open-sources openvela's first lightweight native AI Agent engine, and adds the open-sourced QuickApp Feature framework runtime core library & tools, as well as the QuickJS lightweight JavaScript engine.

Table of Contents

New Feature Details

Kernel (NuttX)

Architecture Support

  • Continued improvements across multiple architectures: ARM Cortex-M / Cortex-A / Cortex-R, ARM64, RISC-V, Xtensa, x86_64, TriCore, SPARC
  • ARMv8-R enhancements: UDIV instruction, Monitor-mode interrupt vectors, TEE jump optimization
  • TriCore Tasking toolchain C++ build support
  • QEMU ARMv8-A / ARMv8-R board-level enhancements and improvements

Drivers

  • RPTUN / RPMsg: IVShmem fixes, BMP mode, UART port optimization
  • Virtio: virtio-snd audio, virtio-crypto encryption, virtio-mmio optimization and enhancements
  • V4L2 M2M video framework
  • ALSA audio adaptation enhancements

Scheduler

  • Signal-handling refactor: CONFIG_DISABLE_SIGNALS support
  • SMP scheduling: spinlock double-unlock fix, priority scheduling optimization
  • POSIX compliance: pthread_cond API, mq_open path restrictions, abort() implementation
  • Per-CPU variable optimization

Networking

  • VSock: virtio vsock support with sockif implementation
  • IPv4 / IPv6 forwarding and input processing fixes
  • Netdev locking, IGMP, VLAN, netlink route
  • TCP close fix

File System

  • LROFS: truncate, create, copy file content optimization
  • GPT partition support
  • FATFS UTF-8 optimization
  • Procfs pressure monitoring

Memory Management

  • Mempool multi-pool manager, dynamic pool configuration optimization
  • KASAN detection enhancements

Libraries

  • libc: scanf, printf, strtol bug fixes and enhancements
  • libelf: modlib renamed to libelf
  • libcxx / libcxxabi: C++ initialization flow optimization

Tools

  • nxgdb debugging enhancements
  • CMake build optimization
  • syscall generation tool supports const union

Bluetooth

  • AVRCP version update with support for richer operation commands
  • GATT caching mechanism, significantly improving connection speed
  • Support for custom BLE Security Levels
  • Enhanced SPP, HID, A2DP, HFP, SPP and other protocols, improving compatibility and resolving known issues
  • Fixed other known issues, enhancing subsystem stability

Connectivity Framework

Telephony

  • TAPI sub-modules gain callback functions across the board
  • Modem upgrade operation support

Network

  • Fixed callback leak issues
  • Fixed MQTTS certificate issue
  • Fixed resumable download issue

Multimedia

Player

  • Media player core refactor
  • Audio focus management optimization
  • Streaming playback enhancements
  • Multi-core cross-CPU communication support

Recorder

  • Recorder framework optimization, parameter passing fixes

Media Graph

  • Media processing graph engine update
  • media_uv_trigger asynchronous interface
  • Asynchronous detection callback

FFmpeg Upgraded to 7.x

  • Version upgrade: FFmpeg 5.x → 7.x

Graphics & Animation

New Features

  • Animation system: Added LV_ANIM_USE_FLOAT config that extends start/end/cur/path_cb types from int32_t to float; added easing parameters (ease param), animation-complete callback, and frame-interval smoothing
  • Vector rendering (VG_Lite): Added border side rendering, tiled image support, stroke path cache and path upload modes, GPU utilization query interface, font cache reference counting, dynamic parameter print control
  • Image compatibility: Added compatibility decoding for LVGL V8 legacy .bin / .rle image formats (automatically converts V8 header to V9)
  • Image decoding: JPEG now fully supports orientation and CMYK; JPEG/PNG decoders allocate draw buffer in one shot; added decoding performance measurement
  • New widgets: arc_label curved-text widget; QRCode circular style and quiet zone
  • Rendering: draw_buf blur support; ARM MVE/NEON alpha pre-multiplication acceleration; global recolor; display rotation now implemented via transform matrix with FULL rendering-mode rotation support
  • Input: Added crown scroll event; added global focus object
  • Scrolling: Added force-elastic scroll property
  • Text: Restored text recolor; span widget supports BiDi bidirectional text
  • Canvas: Direct painting mode support
  • File system: Added lv_fs_read_file_alloc API that reads a file and auto-allocates memory
  • Memory: Added linear allocator; added lv_reallocf
  • Tools: Added argparse CLI library; added remote_ctrl remote-control component (integrated with NuttX libuv); GDB debugging module refactored for multi-instance and lazy loading
  • NemaGFX: Added freetype vector font support

Performance Optimizations

  • Rendering refresh reduces unnecessary refr_children calls (by checking layer opa) and empty dispatches
  • Draw task descriptors merged-allocated via linear allocator to cut malloc calls
  • Style cache uses longer bitmaps, allowing a single call to fetch multiple space properties
  • Text drawing reduces lv_text_get_size and glyph lookup calls
  • Objects cache the current opa stack in the layer, avoiding repeated computation
  • VG_Lite adds a gradient pool that optimizes memory allocation and lookup; vector path / descriptor structures are streamlined
  • A8 format decoding performance improved; snapshots render starting from the top-level object

Key Fixes

  • Fixed rendering anomalies when layer opacity/recolor was not restored after layer-area acquisition failure
  • Fixed flicker caused by conflicts between scroll animation and finger drag during continuous sliding
  • Fixed infinite loop in scroll_end events
  • Fixed accidental click triggered by two-finger swipe
  • Fixed multiple VG_Lite crashes (empty stroke cache, uninitialized gradient, empty clipper path)
  • Fixed memory leaks in SVG/PNG decoders
  • Fixed image-decoder memory leak under multi-core rendering scenarios
  • Fixed crashes of freetype and profiler_builtin during lv_deinit
  • Fixed textarea placeholder not vertically centered and wrapping anomalies
  • Fixed span widget text display corruption
  • Fixed anomalies when combining flex layout with RTL direction

Testing

  • 20+ module unit-test coverage added (anim, area, event, draw_buf, vector, qrcode, span, fs, etc.)
  • CI switched to native 32/64-bit builds; all reference screenshots refreshed

System Applications & Tools

ALSA-Lib

  • DMix drain fix, semaphore leak fix
  • mmap offset calculation fix, silent pre-fill optimization
  • Independent device logging support

Test Frameworks

  • cmocka: XML output format, ELF test-file execution
  • ostest: atomic operations, spinlock, cancel test fixes
  • LTP CLOCK_MONOTONIC adaptation

System Tools

  • stty terminal control enhancements
  • readline echo issue fix
  • NSH: stderr redirection, Ctrl+C exit fixes

System Services

KVDB / Utils

  • BMP / AMP scenario connection optimization; default timeout raised from 0.5s to 5s
  • GDBus proxy property retrieval, double-free fix

LibUV Extensions

  • AES-CCM mode API, ECDH shared-key, HKDF support

UOrb Topics

  • Algorithm topics: gesture, posture, heart rate, pedometer
  • Charging state, vibrator on/off state topics

OTA

  • AVB multi-image verification, vbmeta_partition mode

Binder IPC

  • RPC / NDK separation, CPC ServiceManager compatibility

ASH Framework

  • Microservice support, MessageLoopListener, C API exports

Activity Manager

  • Fixed coexistence of applications with duplicate names; Lite mode refactor

Window Manager

  • Lite single-instance mode, window transition animations

Security & Runtime

OP-TEE

  • ELF TA support (CMake build), WASM multi-instance initialization
  • Mutex protection for concurrent TA initialization
  • Triad encryption/decryption interface

WASM Runtime

  • netlib / WiFi / xtables WASM wrappers

QuickApp

This release open-sources the entire QuickApp development stack, covering the JS engine, Feature framework, and application Shell runtime:

  • QuickJS

    A lightweight JavaScript engine based on an enhanced fork of Fabrice Bellard's QuickJS. It preserves the original lightweight, fast, and high-compatibility characteristics while integrating a set of new features, especially around developer tooling and debugging support, making it a more complete JavaScript runtime environment.

  • runtime_feature

    The QuickApp Feature framework runtime core library and tools. Developed in C/C++ for efficient JavaScript-to-native interoperability. The architecture consists of three core components: a runtime framework that provides a JS-native execution environment, a JIDL (Interface Description Language) and toolchain for auto-generating bi-directional invocation interfaces, and a standardized set of native developer APIs.

  • runtime_ash

    The openvela application Shell runtime environment. A lightweight C++ runtime foundation library for embedded systems, providing efficient and reliable low-level components for resource-constrained environments. The modular design covers: resource management (Bundle), system security (Crash handling), device info abstraction (Device Info), file system wrappers (File), file-descriptor management (Scoped FD), message-loop mechanism (Message Loop), stream processing, string conversion, threading, time/timer, networking, memory management, and debug tracing. Built with the GN build system, with CMake support via CMakeLists.txt, and compatible with the Kconfig configuration system, suitable for real-time operating systems such as NuttX.

AI Agent

openvela AI Agent is an AI agent engine designed to run on small devices such as watches, speakers, glasses, and earphones. Architecturally, the engine builds a full-stack intelligence pipeline from perception and memory to reasoning and execution, truly enabling devices to make autonomous decisions and deliver proactive services.

Breaking Changes

⚠️ The changes below may impact existing code. Please review them carefully when upgrading.

Kernel

Type Change Impact
Rename modliblibelf binfmt, ELF loading
Rename PSEUDOFS_SOFTLINKSFS_LINKS File system Kconfig
API sched_note_printf signature change trace module
API atomic_fetch_xxxatomic_xxx atomic operations in apps
New CONFIG_DISABLE_SIGNALS signal-related conditional compilation
Config libcxxminilibminiabi C++ initialization

Bluetooth

Type Change Impact
Behavior CM profile callbacks changed from asynchronous to direct Profile callback handling
Behavior pairing_complete always reports BONDED Pairing flow
Behavior Removed connection-state check in security_changed Security callback

Telephony

Type Change Impact
New All TAPI sub-modules add callbacks All TAPI callers
Refactor char** pointer parameter refactor TAPI function signatures

Runtime

Type Change Impact
Refactor QuickApp interface refactor QuickApp
Replace UVTaskQueue → ash MessageLoop C interface QuickApp exit flow
API NetworkStatus callback returns object type Network status

System Services

Type Change Impact
Config KVDB default timeout 0.5s → 5s KVDB clients
API Binder RPC / NDK separation Binder IPC

Upgrade & Adaptation Guide

1. Kernel Configuration

  • CONFIG_PSEUDOFS_SOFTLINKSCONFIG_FS_LINKS
  • modlib API → libelf
  • atomic_fetch_xxxatomic_xxx

2. Bluetooth

  • Profile callbacks must be adapted to direct-callback mode (no longer asynchronously dispatched)
  • Review pairing_complete callback logic

3. Telephony

  • TAPI callers must adapt to the newly added callback parameters

4. Runtime

  • UVTaskQueue → ash MessageLoop C interface
  • Adapt to the updated lv_anim interface

5. Build System

  • C++ initialization: libcxxminilibminiabi

6. Third-Party Libraries

  • FFmpeg upgraded to 7.x