[ English | 简体中文 ]
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.
- 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
- 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
- Signal-handling refactor:
CONFIG_DISABLE_SIGNALSsupport - SMP scheduling: spinlock double-unlock fix, priority scheduling optimization
- POSIX compliance:
pthread_condAPI,mq_openpath restrictions,abort()implementation - Per-CPU variable optimization
- VSock: virtio vsock support with sockif implementation
- IPv4 / IPv6 forwarding and input processing fixes
- Netdev locking, IGMP, VLAN, netlink route
- TCP close fix
- LROFS: truncate, create, copy file content optimization
- GPT partition support
- FATFS UTF-8 optimization
- Procfs pressure monitoring
- Mempool multi-pool manager, dynamic pool configuration optimization
- KASAN detection enhancements
- libc: scanf, printf, strtol bug fixes and enhancements
- libelf:
modlibrenamed tolibelf - libcxx / libcxxabi: C++ initialization flow optimization
- nxgdb debugging enhancements
- CMake build optimization
- syscall generation tool supports
const union
- 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
- TAPI sub-modules gain callback functions across the board
- Modem upgrade operation support
- Fixed callback leak issues
- Fixed MQTTS certificate issue
- Fixed resumable download issue
- Media player core refactor
- Audio focus management optimization
- Streaming playback enhancements
- Multi-core cross-CPU communication support
- Recorder framework optimization, parameter passing fixes
- Media processing graph engine update
media_uv_triggerasynchronous interface- Asynchronous detection callback
- Version upgrade: FFmpeg 5.x → 7.x
- Animation system: Added
LV_ANIM_USE_FLOATconfig that extends start/end/cur/path_cb types fromint32_ttofloat; 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/.rleimage 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_labelcurved-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_allocAPI 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
- Rendering refresh reduces unnecessary
refr_childrencalls (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_sizeand 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
- 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_endevents - 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
- 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
- DMix drain fix, semaphore leak fix
- mmap offset calculation fix, silent pre-fill optimization
- Independent device logging support
- cmocka: XML output format, ELF test-file execution
- ostest: atomic operations, spinlock, cancel test fixes
- LTP
CLOCK_MONOTONICadaptation
sttyterminal control enhancements- readline echo issue fix
- NSH: stderr redirection, Ctrl+C exit fixes
- BMP / AMP scenario connection optimization; default timeout raised from 0.5s to 5s
- GDBus proxy property retrieval, double-free fix
- AES-CCM mode API, ECDH shared-key, HKDF support
- Algorithm topics: gesture, posture, heart rate, pedometer
- Charging state, vibrator on/off state topics
- AVB multi-image verification,
vbmeta_partitionmode
- RPC / NDK separation, CPC ServiceManager compatibility
- Microservice support, MessageLoopListener, C API exports
- Fixed coexistence of applications with duplicate names; Lite mode refactor
- Lite single-instance mode, window transition animations
- ELF TA support (CMake build), WASM multi-instance initialization
- Mutex protection for concurrent TA initialization
- Triad encryption/decryption interface
- netlib / WiFi / xtables WASM wrappers
This release open-sources the entire QuickApp development stack, covering the JS engine, Feature framework, and application Shell runtime:
-
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.
-
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.
-
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.
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.
⚠️ The changes below may impact existing code. Please review them carefully when upgrading.
| Type | Change | Impact |
|---|---|---|
| Rename | modlib → libelf |
binfmt, ELF loading |
| Rename | PSEUDOFS_SOFTLINKS → FS_LINKS |
File system Kconfig |
| API | sched_note_printf signature change |
trace module |
| API | atomic_fetch_xxx → atomic_xxx |
atomic operations in apps |
| New | CONFIG_DISABLE_SIGNALS |
signal-related conditional compilation |
| Config | libcxxmini → libminiabi |
C++ initialization |
| 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 |
| Type | Change | Impact |
|---|---|---|
| New | All TAPI sub-modules add callbacks | All TAPI callers |
| Refactor | char** pointer parameter refactor |
TAPI function signatures |
| 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 |
| Type | Change | Impact |
|---|---|---|
| Config | KVDB default timeout 0.5s → 5s | KVDB clients |
| API | Binder RPC / NDK separation | Binder IPC |
CONFIG_PSEUDOFS_SOFTLINKS→CONFIG_FS_LINKSmodlibAPI →libelfatomic_fetch_xxx→atomic_xxx
- Profile callbacks must be adapted to direct-callback mode (no longer asynchronously dispatched)
- Review
pairing_completecallback logic
- TAPI callers must adapt to the newly added callback parameters
UVTaskQueue→ ash MessageLoop C interface- Adapt to the updated
lv_animinterface
- C++ initialization:
libcxxmini→libminiabi
- FFmpeg upgraded to 7.x