Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,8 @@ Release tags are immutable markers created on the `trunk` branch. Each tag repre

Below are the currently released stable versions and their change logs:

- **trunk-5.5**: Please refer to the [v5.5 Release Notes](./en/release_notes/v5.5.md) for detailed changes.

- **trunk-5.4**: Please refer to the [v5.4 Release Notes](./en/release_notes/v5.4.md) for detailed changes.

- **trunk-5.2**: Please refer to the [v5.2 Release Notes](./en/release_notes/v5.2.md) for detailed changes.
Expand Down
2 changes: 2 additions & 0 deletions README_zh-cn.md
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,8 @@ Vela 的命名源自拉丁语中船帆的含义,也是南方星空中船帆星

以下是当前已发布的稳定版本及其变更说明:

- **trunk-5.5**:请查阅 [v5.5 版本发布说明](./zh-cn/release_notes/v5.5.md) 了解详细变更。

- **trunk-5.4**:请查阅 [v5.4 版本发布说明](./zh-cn/release_notes/v5.4.md) 了解详细变更。

- **trunk-5.2**:请查阅 [v5.2 版本发布说明](./zh-cn/release_notes/v5.2.md) 了解详细变更。
Expand Down
357 changes: 357 additions & 0 deletions en/release_notes/v5.5.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,357 @@
# openvela trunk-5.5

[ English | [简体中文](../../zh-cn/release_notes/v5.5.md) ]

## 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](#new-feature-details)
- [Kernel (NuttX)](#kernel-nuttx)
- [Bluetooth](#bluetooth)
- [Connectivity Framework](#connectivity-framework)
- [Multimedia](#multimedia)
- [Graphics & Animation](#graphics--animation)
- [System Applications & Tools](#system-applications--tools)
- [System Services](#system-services)
- [Security & Runtime](#security--runtime)
- [QuickApp](#quickapp)
- [AI Agent](#ai-agent)
- [Breaking Changes](#breaking-changes)
- [Upgrade & Adaptation Guide](#upgrade--adaptation-guide)

## 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

#### Connection Manager Rewrite

- Full refactor of the ACL connection manager
- SPP, HID, A2DP, AVRCP, HFP and other profiles adapted to the new connection management API
- Profile callback mechanism optimized: from asynchronous dispatch to direct callback
- Multi-connection support and stability fixes

#### Protocol & Profile Upgrades

- AVRCP upgraded from 3.0 to 4.0
- GATT database hash computation and persistent storage (KVDB)
- GATT Service Changed indication support
- BLE Privacy configurable via Kconfig
- SPP `connect_with_option` API
- DID Profile build support

#### Stability

- Fixes for use-after-free, null pointer dereference, double free, resource leaks, and more

### 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](./../../../../../apps_interpreters_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](./../../../../../frameworks_runtimes_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](./../../../../../frameworks_runtimes_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](./../../../../../packages_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 | `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 |

### 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_SOFTLINKS` → `CONFIG_FS_LINKS`
- `modlib` API → `libelf`
- `atomic_fetch_xxx` → `atomic_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: `libcxxmini` → `libminiabi`

### 6. Third-Party Libraries

- FFmpeg upgraded to 7.x

## Related Links

- [Main repo](./../../../../../)
- [AI Agent](./../../../../../packages_ai_agent)
- [QuickJS](./../../../../../apps_interpreters_quickjs)
- [Runtime Feature](./../../../../../frameworks_runtimes_feature)
- [Runtime ASH](./../../../../../frameworks_runtimes_ash)
- [Official documentation](https://doc.openvela.com)
Loading
Loading