OpenHarmony 3.1 Beta
Version Description
OpenHarmony 3.1 Beta provides the following enhancements over OpenHarmony 3.0 LTS:
-
Enhanced basic capabilities for the standard system: The CMA usage is improved in the kernel. The background rendering module of RenderService is added to the Graphics subsystem. The STA and SoftAP features are provided for short-range communications. The geomagnetic field algorithm APIs are provided. The sensor driver model capability is enhanced. Application account query and subscription are supported. New globalization features are introduced. Unified build templates are provided for the Compilation and Building subsystem. Front-end compilation toolchains for Windows, macOS, and Linux are provided for the Multi-language Runtime subsystem. Previewer is supported for JS runtime. Six third-party JS libraries (JSON Processing, EventBus, VCard, Protobuf, RxJS, and libphonenumber) are supported. Time and time zone management is supported. The HiSysEvent module is added to DFX to provide query and subscription interfaces.
-
Enhanced distributed capabilities for the standard system: The distributed device profile is added. Distributed data management supports cross-device synchronization and subscription. DSoftBus supports network switchover. The distributed file system supports StatFS APIs.
-
Enhanced application framework capabilities for the standard system: The ArkUI-based custom drawing capability and Lottie animation capability are added. The implicit query and multi-HAP installation are added for the bundle management framework. Permission management, notification vibration setting, notification sound setting and query, do-not-disturb (DND) notification, and session notification are added for the Common Event and Notification subsystem.
-
Enhanced system application capabilities for the standard system: Text input and landscape-mode layout display for the input method application, SMS application information management, call log and dialer display in the contacts application, and more options in Settings are supported.
-
Enhanced capabilities for the mini system: The lightweight HiStreamer supports the customizable media pipeline framework. The Linux init process supports hot swap. The OS lightweight kernel and driver startup are optimized. The quick startup capability is supported.
Version Mapping
Table 1 Version mapping of software and tools
Software/Tool | Version | Remarks |
---|---|---|
OpenHarmony | 3.1 Beta | NA |
SDK | Ohos_sdk 3.1 Beta (API Version 8 Beta) | NA |
(Optional) HUAWEI DevEco Studio | 3.0 Beta2 | Recommended for developing OpenHarmony applications |
(Optional) HUAWEI DevEco Device Tool | 3.0 Beta2 | Recommended for developing OpenHarmony smart devices |
Source Code Acquisition
Prerequisites
-
Register your account with Gitee.
-
Register an SSH public key for access to Gitee.
-
Install the git client and git-lfs, and configure basic user information.
git config --global user.name "yourname" git config --global user.email "your-email-address" git config --global credential.helper store
-
Run the following commands to install the repo tool:
curl -s https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > /usr/local/bin/repo # If you do not have the access permission to this directory, download the tool to any other accessible directory and configure the directory to the environment variable. chmod a+x /usr/local/bin/repo pip3 install -i https://repo.huaweicloud.com/repository/pypi/simple requests
Acquiring Source Code Using the repo Tool
Method 1 (recommended)
Use the repo tool to download the source code over SSH. (You must have an SSH public key for access to Gitee.)
repo init -u git@gitee.com:openharmony/manifest.git -b refs/tags/OpenHarmony-v3.1-Beta --no-repo-verify
repo sync -c
repo forall -c 'git lfs pull'
Method 2
Use the repo tool to download the source code over HTTPS.
repo init -u https://gitee.com/openharmony/manifest.git -b refs/tags/OpenHarmony-v3.1-Beta --no-repo-verify
repo sync -c
repo forall -c 'git lfs pull'
Acquiring Source Code from Mirrors
Table 2 Mirrors for acquiring source code
Source Code | Version | Mirror | SHA-256 Checksum |
---|---|---|---|
Full code base (for mini, small, and standard systems) | 3.1 Beta | Download | Download |
Hi3516 standard system solution (binary) | 3.1 Beta | Download | Download |
RK3568 standard system solution (binary) | 3.1 Beta | Download | Download |
Hi3861 mini system solution (binary) | 3.1 Beta | Download | Download |
Hi3516 mini system solution - LiteOS (binary) | 3.1 Beta | Download | Download |
Hi3516 mini system solution - Linux (binary) | 3.1 Beta | Download | Download |
Standard system SDK package (macOS) | 3.1 Beta | Download | Download |
Standard system SDK package (Windows/Linux) | 3.1 Beta | Download | Download |
Compiler toolchain | - | Download | - |
What's New
This version has the following updates to OpenHarmony 3.0 LTS.
Feature Updates
Table 3 New and enhanced features
Subsystem | Standard System | Mini and Small Systems |
---|---|---|
Bundle management framework | - I4MBSE: Provides the home screen bundle management client. - I4MBSF: Supports cache clearing. - I4MBSG: Supports installation package information query. - I4MBSD: Supports multi-HAP installation. - I4MBSH: Supports signature verification during multi-HAP installation. - I4MBSC: Supports the srcPath field for modules and abilities. |
NA |
Distributed Scheduler subsystem | - I4MBRW: Samgr supports intra-process system ability list control. - I4MBRV: Samgr supports maintenance of the system service status list. - I4MBRZ: Samgr supports initialization of the full service list. - I4MBRY: Samgr supports maintenance of the system process status list. - I4MBRX: Samgr supports loading a specific system service. |
NA |
DeviceProfile subsystem | - I4NY23: Insertion, deletion, and query of local device profiles. - I4NY1X: Query of remote device profiles. - I4NY1T: Subscription to remote profile changes. - I4NY1W: Cross-device profile synchronization. |
NA |
Account subsystem | - I4MBQW: Application account addition and deletion. - I4MBQV: Restrictions on the basic information about application accounts. - I4MBQU: Application account subscription and unsubscription. - I4MBQT: Application account function setting and content modification. - I4MBQS: Application account information query. - I4IT3U: Basic information management for application accounts. |
NA |
Pan-sensor subsystem | - I3NJ96: Acceleration sensor data reporting. - I3NJ8H: Gyroscope sensor data reporting. - I3NJ7J: Ambient light sensor data reporting. - I3NJ76: Magnetic field sensor data reporting. - I4MBRP: Magnetic declination and dip. - I4MBRQ: Horizontal intensity and total intensity of the magnetic field. |
NA |
USB subsystem | I410OZ: - Querying the list of connected USB devices. - Obtaining the temporary permission to access USB devices. - Setting USB device configurations and interfaces. - Data transfer using USB devices. |
NA |
Multi-language Runtime subsystem | - I4MBUK: The default runtime of JS/TS is changed from quickjs to ARK. - I4MBUJ: The memory reclaim capability of ARK runtime is enhanced. The concurrent marking and concurrent compression algorithms are supported. Some regions can be selected for compression GC, reducing the GC pause time by 30%. |
NA |
Globalization subsystem | - Added globalization features: singular and plural rules, string sorting, phone number processing, calendar and local calendar, weights and measures and formatting, locale representations and attributes, time segment formatting, alphabet retrieval, Unicode character attributes, wrapping and line feed. - Supports system resources and rawfile resources. |
NA |
DSoftBus subsystem | - I4FZ29: DSoftBus provides the Ext API for transmission. - I4FZ25: DSoftBus supports network switching. |
- I4FZ29: DSoftBus provides the Ext API for transmission. - I4FZ25: DSoftBus supports network switching. |
Startup subsystem | NA | - I3XGJH: init basic environment building. - I3XGKV: System parameter management. - I3XGLN: init script management. - I3XGMQ: Basic permission management. - I3XGN8: Boot image building and loading. - I3XGKV: uevent management. - I3XGNM: Burning mode. |
Media subsystem | NA | - I4BX5Z: HiStreamer supports audio playback and control. - I4BX8A: HiStreamer supports playback of MP3 and WAV audio files. - I4BX9E: HiStreamer playback engine framework requirements are met. - I4DK89: HiStreamer plugin framework requirements are met. - I4DK8D: HiStreamer performance and DFX requirements are met. |
Graphics subsystem | New design of the OpenHarmony graphics stack: Added the background rendering feature to the UI framework. Supports the access to the background rendering module of RenderService from ArkUI components. |
NA |
Kernel subsystem | Kernel (Linux 5.10): - I4LUG4: Supports Contiguous Memory Area (CMA) reuse. (Currently, only Hi3516D V300 is supported.) - I4LX4G: Supports anonymous Virtual Memory Area (VMA) naming. (Currently, only Hi3516D V300 is supported.) |
- I3ND6Y: Optimized OS kernel and driver startup performance. |
Startup subsystem | NA | - I3NTCT: The Linux init process supports hot swap. |
Distributed Data Management subsystem | NA | - I4H3JJ: Provides distributed objects for small-system devices. |
Telephony subsystem | NA | - I4JQ2N: Provides HTTP JS APIs. - I4JQ3G: Supports HTTP 2.0. |
Misc Services subsystem | I4MBQE: Enables applications to read the system time. Enables applications to read the system time zone. Provides time change notifications. Provides time zone change notifications. Provides minute change notifications. |
NA |
Compilation and Building subsystem | - I4K7E3: Provides a unified compilation command as the compilation entry. - I4KCNB: Supports the unified gn template. |
- I4MBQN: Supports a unified compilation entry and uses build.sh to compile mini- and small-system devices. - I4MBQP: Supports a unified compilation process. - I4MBQR: Supports unified product configuration. |
File Storage subsystem | - I4MBS2: Provides StatFS JS interfaces for obtaining the total space and free space of a device. | NA |
Driver subsystem | - I4L3KK: The drive capability of sensor components is enhanced. The sensor sampling rate can be dynamically configured, the three-axis direction can be statically configured, and the ambient light gain can be adjusted. - I4L3LF: The sensor driver model capability is enhanced to support cross-process service obtaining and invoking of sensor HDIs. - I4MBTS: Provides more capabilities for HDF input devices and supports data reporting of joystick devices. - I4MBTR: The default reference implementation of the Display HDI interface for the standard system is provided based on the DRM display architecture, which helps vendors to adapt the HDI. - I4HPR7: Provides the hcs macro parsing mechanism. During compilation, the hc-gen tool is used to parse the driver parameters into parameters involved in the macro definition. The driver accesses these macro definition parameters through the hcs macro-format interface. - I4KVJQ: Supports system-level sleep/wakeup of the Linux and LiteOS kernels. - I4L3ZZF: Supports synchronous/asynchronous power management invoking and provides a synchronous/asynchronous mechanism for HDF device sleep/wakeup management. |
- I4L3KK: The drive capability of sensor components is enhanced. The sensor sampling rate can be dynamically configured, the three-axis direction can be statically configured, and the ambient light gain can be adjusted. Provides more capabilities for HDF input devices (running on Linux) and supports data reporting of joystick devices. - I4HPR7: Provides the hcs macro parsing mechanism. During compilation, the hc-gen tool is used to parse the driver parameters into parameters involved in the macro definition. The driver accesses these macro definition parameters through the hcs macro-format interface. - I4KVJQ: Supports system-level sleep/wakeup of the Linux and LiteOS kernels. - I4L3ZZF: Supports synchronous/asynchronous power management invoking and provides a synchronous/asynchronous mechanism for HDF device sleep/wakeup management. |
ArkUI | - I4MBUY: Added target to the event to obtain the size. - I4MBUZ: The <Swiper> component supports cache setting. - I4MBV1: The <Image> component supports synchronous and asynchronous rendering setting. - I4MBV3: Added the component polymorphic style setting to the style setting feature. - I4MBV5: Added the pop-up text for menu content extension to the <AlphabetIndexer> component. - I4MBV6: Added the custom container components to the component customization feature. - I4MBV7: Added scroll bar style customization. - I4MBV8: Added switching forbidden for the <Swiper> component. - I4MBV9: Added tab bar content customization for the <Tabs> component. - I4MBVA: Added title bar setting for the <Navigation> component. - I4MBVB: Added toolbar display/hide control for the <toolbar> component. - I4MBVC: Added content customization for the <toolbar> component. - I4MBVD: Added the SysCap declaration compilation feature. - I4MBVE: Added the JSSDK compilation feature. - I4MBVF: Added the Config.json compilation feature. - I4MBVG: Added the breakpoint debugging feature for single-instance debugging. - I4MBVH: Added the attach debugging feature for single-instance debugging. - I4MBVI: Added the declarative paradigm compilation feature to support compilation and verification. - I4MBVJ: Added the JS module shared compilation feature. - I4MBVK: Added the HAR reference and compilation feature. - I4MBVL: Added the HPM reference and compilation feature. - I4MBVN: Added the vertical display of the slider bar. - I4MBVO: Added the content customization feature for the <popup> component. - I4MBVP: Added the drawing capability for the <canvas> component. - I4MBVQ: Enhanced the capabilities of the <canvas> component. - I4MBVR: Added the touch target setting. - I4MBVS: Added the support for Lottie animation. - I4MBVT: Added the feature for obtaining the component size. - I4MBVU: Added content customization to the <menu> component. - I4MBVV: Added the support for the <swipe> gesture. - I4MBVW: Added the inspector capability for UI preview. - I4MBVX: Added the non-route file preview feature. - I4MBVY: Added the NAPI preview feature. - I4MBVZ: Added the declarative paradigm preview feature with the basic preview supported. - I4MBW2: Added the declarative paradigm hot loading feature for modification to the existing nodes. - I4MBW3: Added the declarative paradigm hot loading feature for node addition. - I4MBW4: Added the declarative paradigm hot loading feature for node deletion. - I4MBW5: Added the component preview feature and the page component preview. Added the universal attribute touchable to specify whether a component is touchable. Added the basic component <Marquee>. Added the basic component <Gauge>. Added the basic component <TextArea>. Added the basic component <TextInput>. Added the basic component <Toggle>. Added the container component <Stepper>. Added the container component <StepperItem>. Added the global UI method <ActionSheet>. |
NA |
DFX subsystem | - I4MBQH: Added the HiSysEvent class and provided the query and subscription interfaces. - I4MBQJ: Provides the tool query or subscription system event. - I4MBQL: Added the C interface of the HiAppEvent class. |
NA |
Application subsystems | - I4MBU1: Added Settings data management APIs. - I4MBU3: Added time setting. - I4MBU5: Supports sound management. - I4MBU6: Added Settings data management. - I4MBU7: Added Settings default value management. - I4MBU8: Added differentiated construction of multiple device forms in Settings. - I4MBU9: Added component-based notifications. |
NA |
API Updates
For details, see the following:
Chip and Development Board Adaptation
For details about the adaptation status, see SIG_DevBoard.
Samples & Codelabs
New Samples
Table 4 New samples
Name | Introduction | Programming Language |
---|---|---|
ArkTS Common Event | This sample shows how to use CommonEvent APIs in ArkTS to create subscribers and subscribe to, publish, and unsubscribe from common events. | ArkTS |
Air Quality | This sample implements a simple air quality app using JS. The app displays air quality information using line wrapping and historical data in a bar chart. | JS |
Distributed Calculator | This sample implements a simple calculator app using JS distributed features. The calculator can perform simple numerical calculations and start a remote calculator Feature Ability (FA) to perform collaborative calculation. | JS |
ArkTS Notification | This sample shows how to create and delete a slot in ArkTS, and how to publish and cancel a notification. | ArkTS |
ArkTS Resource Management | This sample shows how to call resource management APIs in ArkTS to obtain strings and images. | ArkTS |
Kika Keyboard | This sample shows how to implement a lightweight input method app, Kika Keyboard, that can run on smart devices powered by OpenHarmony. | JS |
ArkTS Distributed Data Management | This sample shows how to use distributed data management in ArkTS, including creating a KvManager instance and using KvStore data transfer. | ArkTS |
Lightweight Data Storage | Lightweight data storage supports lightweight key-value operations and allows local apps to store a small amount of data. This sample shows how to add offerings to the shopping cart, remove offerings from the shopping cart, and saving the shopping cart. The shopping cart information is retained even when the app is closed. This reflects the lightweight storage feature. | ArkTS |
ArkTS Process | This sample shows how to obtain process information and start a child process to run a shell script in ArkTS. With this sample, you can obtain the running time, obtain and change the working directory of a process, send a signal to a specific process, start or close a child process, and exit the current process. | ArkTS |
ArkTS Running Lock | This sample shows how to test the running lock that prevents the system from entering sleep mode. It uses the black and white wallpapers to simulate the screen-off and screen-on states. | ArkTS |
String Codec | This sample shows how to output strings in a specified format and output error codes in text format. It also demonstrates string encoding and decoding. | ArkTS |
JS Audio Playback and Management | This sample shows how to use the JS-based audio playback feature and set the volume. | JS |
JS Video | This sample shows how to use the JS UI component <video> to implement video playback. You can play a video clip and pause the playback through the control bar of the <video> component. | JS |
Dot Test | This sample illustrates the dot test function, including application dotting and performance dotting. | JS |
JS Worker | This sample shows how to start a worker thread in JS and implement the communication between the worker thread and host thread. | JS |
canvas Component | This sample shows how to use the <canvas> component to customize drawings. | JS |
JS Dialog | The JS UI component <dialog> allows users to customize the dialog box style and layout. This sample shows how to use a custom dialog box to implement contacts addition and deletion. | JS |
JSList Offerings | This sample shows how to apply <list> component in the offering classification list. In <listGroup>, two <list-item> components are used to display the list in the collapsed and expanded state. After a list is touched, the corresponding list items are displayed. | JS |
JS Panel | The JS container component <panel> provides a lightweight, slidable content display panel. The panel attributes such as the triggering mode and display height can be customized. This sample shows how to display the offering details and service guarantee on the panel. | JS |
JS svg | This sample shows how to use the JS component <svg> and its child components, including <rect>, <circle>, <ellipse>, <path>, <line>, <polygon>, <polyline>, <text>, <animate>, and <animateTransform>. | JS |
Custom JS Components | Custom components are existing components encapsulated based on service requirements. A custom component can be invoked multiple times in a project to improve the code readability. This sample shows how to use custom JS components, including basic usage, custom events, Props, and event parameters. | JS |
New Codelabs
Table 5 New codelabs
Name | Introduction | Programming Language |
---|---|---|
Synced Sketchpad (ArkTS) | This codelab shows how to implement synchronous writing and interaction between multiple devices based on the distributed feature. | ArkTS |
Distributed Database | This codelab shows how to use the Distributed Data Service APIs to facilitate consistent data access between devices. | JS |
Relational Database | This codelab shows how to quickly develop database-related application services based on the relational database and data management capability. | JS |
Shopping (ArkTS) | This codelab shows how to implement a shopping app based on OpenHarmony ArkTS UI components. | ArkTS |
Transition Animation (ArkTS) | This codelab shows how to implement page transition, component transition, and transition of shared elements based on OpenHarmony ArkUI components. | ArkTS |
slider Usage (ArkTS) | This codelab shows how to use the OpenHarmony ArkUI component <slider> to implement the animation effect when users adjust the size and speed of the windmill. | ArkTS |
Dialog Box (ArkTS) | This codelab shows how to implement an alert dialog box and custom dialog box based on OpenHarmony ArkTS UI components. | ArkTS |
Resolved Issues
Table 6 Resolved issues
Issue No. | Description |
---|---|
I48IM7 | During the hilog pressure test, hilogd restarts unexpectedly, and the hilog command cannot be used. |
I48YPH | [DSoftBus - Networking] During the testing of the getting-offline - discovery - networking cycle, there are 3 failures among all the 110 attempts. |
I4BVVW | [DSoftBus - Networking] The success rate of automatic networking between a standard-system device and mobile phone is 97%. |
I4BXY1 | There is no sound in the first few seconds of a video recording, the sound and image are out of sync, frame freezing occurs, and noises occur when the audio source was far away during recording. |
3ZJ1D | There is a possibility that the user mode fails in the XTS pressure test of the permission case. |
Known Issues
Table 7 Known issues
Issue No. | Description | Impact | To Be Resolved On |
---|---|---|---|
I4NRS5 | [Kernel subsystem] A CVE vulnerability exists. | No patch has been released for the Linux kernel. The kernel will be updated after the patch is released in the community. | Depending on the patch release in the community |
I4MGJM | [HDF/Camera] The case fails when the RK3568 board runs the camera HDI tests. | The photographing and preview functions are normal. The recording function can be started but cannot be stopped. | 2021/12/31 |
I4OECR | An Ark stack exception occurs during XTS running (low probability). | There is a low probability that the Ark stack becomes abnormal during the XTS pressure test. This issue occurs only once in 48 hours. The exception stack is reported only in the log and does not affect the functions. | 2022/01/05 |
I4OBTW | After all XTS cases are executed and the application is installed, aa start failures occur, affecting the OpenHarmony pipeline stability test. | During the XTS pressure test, when 100 application packages are installed in batches in a short period of time, 2 of them cannot be started. User experience is not affected. | 2022/01/05 |
I4OLHF | [Ark subsystem] The test process is abnormal due to the com.amsst.amsMissionSnapshotTest process. | This issue occurs occasionally during high-pressure tests. | 2022/01/05 |
I4OLUK | [Ark subsystem] The process stack is abnormal due to the com.ohos.systemui process. | This issue occurs occasionally during high-pressure tests. | 2022/01/05 |