diff --git a/en/release-notes/changelogs/v4.0-beta2/Readme-EN.md b/en/release-notes/changelogs/v4.0-beta2/Readme-EN.md
index 0a7f3f1f2184f7d696f8254cdc1eea8b05c997f5..0cb47825d0267f144b0615c0b9e09bdf0fab2def 100644
--- a/en/release-notes/changelogs/v4.0-beta2/Readme-EN.md
+++ b/en/release-notes/changelogs/v4.0-beta2/Readme-EN.md
@@ -1,2 +1,52 @@
-# Readme
+# Summary
+
+| Subsystem | Change Type | Description |
+| -------- | -------- | -------- |
+| ArkUI | | |
+| ArkUI | | |
+| ArkUI | | |
+| ArkUI | | |
+| ArkUI | | |
+| ArkUI | | |
+| ArkUI | | |
+| ArkUI | | |
+| ArkUI | | |
+| ArkUI | | |
+| ArkUI | | |
+| ArkUI | | |
+| Bundle management | | |
+| Bundle management | | |
+| Bundle management | | |
+| Bundle management | | |
+| Bundle management | | |
+| OS media | | |
+| OS media | | |
+| OS media | | |
+| Application access control | Permission changed | [Change of the Permission Requesting Modes of the Phone, Messaging, and Call Logs Permission Groups](changelogs-accessToken.md#claccesstoken2-change-of-the-permission-requesting-modes-of-the-phone-messaging-and-call-logs-permission-groups) |
+| Application access control | Permission group changed | [Change of the Media and Files Permission Group:
Moved ohos.permission.MEDIA_LOCATION to the Images and Videos permission group.
Moved ohos.permission.READ_MEDIA and ohos.permission.WRITE_MEDIA to the Documents permission group.](changelogs-accessToken.md#claccesstoken1-change-of-the-media-and-files-permission-group) |
+| Input method framework | | |
+| Theme framework | | |
+| Distributed data management | API/Component changed | [Change of ValuesBucket to a Public Interface](changelogs-distributeddatamgr.md#cldistributeddatamgr1-change-of-valuesbucket-to-a-public-interface) |
+| Distributed data management | API/Component changed | [Change of Some Predicate Interfaces in dataSharePredicates to Public Interfaces](changelogs-distributeddatamgr.md#cldistributeddatamgr2-change-of-some-predicate-interfaces-in-datasharepredicates-to-public-interfaces) |
+| Distributed data management | API/Component changed | [Change of the DataShareExtensionAbility Context](cldistributeddatamgr3-change-of-the-datashareextensionability-context) |
+| Distributed data management | API/Component changed | [Change of the Return Value Type of Function Pointer Variables in the OH_Predicates Struct from OH_Predicates to OH_Predicates *](cldistributeddatamgr4-change-of-the-return-value-type-of-function-pointer-variables-in-the-oh_predicates-struct-from-oh_predicates-to-oh_predicates-) |
+| Distributed data management | API/Component changed | [Change of the Error Codes of the OH_Rdb_ErrCode Struct](cldistributeddatamgr5-change-of-the-error-codes-of-the-oh_rdb_errcode-struct) |
+| Distributed data management | Variable changed (Native) | [1. Change of int (*close)(OH_Cursor *cursor) in OH_Cursor Struct to int (*destroy)(OH_Cursor *cursor)](cldistributeddatamgr6-change-of-int-closeoh_cursor-cursor-in-oh_cursor-struct-to-int-destroyoh_cursor-cursor)
[2. Change of int (*destroyPredicates)(OH_Predicates *predicates) in OH_Predicates Struct to int (*destroy) (OH_Predicates *predicates)](cldistributeddatamgr7-change-of-int-destroypredicatesoh_predicates-predicates-in-oh_predicates-struct-to-int-destroy-oh_predicates-predicates)
[3. Change of int (*destroyValueObject)(OH_VObject *valueObject) in OH_VObject Struct to int (*destroy) (OH_VObject *valueObject)](cldistributeddatamgr8-change-of-int-destroyvalueobjectoh_vobject-valueobject-in-oh_vobject-struct-to-int-destroy-oh_vobject-valueobject)
[4. Change of int (*destroyValuesBucket)(OH_VBucket *bucket) in OH_VBucket Struct to int (*destroy) (OH_VBucket *bucket)](cldistributeddatamgr9-change-of-int-destroyvaluesbucketoh_vbucket-bucket-in-oh_vbucket-struct-to-int-destroy-oh_vbucket-bucket) |
+| Distributed data management | Variable changed (Native) | [Change of OH_Rdb_Config Struct Member Variables:
1. Changed the type of **securityLevel** from **enum OH_Rdb_SecurityLevel** to **in**.
2. Deleted the member variable **path**.
3. Added the member variables **selfSize**, **dataBaseDir**, **storeName**, **bundleName**, and **moduleName**.](cldistributeddatamgr10-change-of-oh_rdb_config-struct-member-variables) |
+| Distributed data management | API input parameter changed (Native) | [Change of const char *path in OH_Rdb_DeleteStore() to const OH_Rdb_Config *config](changelogs-distributeddatamgr.md#cldistributeddatamgr11-change-of-const-char-path-in-oh_rdb_deletestore-to-const-oh_rdb_config-config) |
+| Distributed hardware | | |
+| Media | | |
+| Media | | |
+| Ability - widget framework | | |
+| Ability - widget framework | | |
+| Pan-Sensor | | |
+| File management (media library) | API/Component changed | [Change of the mediaLibrary Interface Compatibility](changelogs-medialibrary.md#clfile1-change-of-the-mediabibrary-interface-compatibility) |
+| Communication | API/Component changed | [Change of the API Name](changelogs-wifiManager.md#clwifi1-change-of-the-name-of-the-api-for-obtaining-wi-fi-scan-result) |
+
+
+> **NOTE**
+>
+> Unless otherwise specified, the changes described in this topic are ArkTS API changes.
+
+
\ No newline at end of file
diff --git a/en/release-notes/changelogs/v4.0-beta2/changelogs-accessToken.md b/en/release-notes/changelogs/v4.0-beta2/changelogs-accessToken.md
new file mode 100644
index 0000000000000000000000000000000000000000..be745211296b7b1558d6c05bbcf7d2d160ce16c8
--- /dev/null
+++ b/en/release-notes/changelogs/v4.0-beta2/changelogs-accessToken.md
@@ -0,0 +1,89 @@
+# Application Access Control Changelog
+
+
+## cl.accessToken.1 Change of the Media and Files Permission Group
+
+The original **Media and File** permission group contains the following permissions:
+
+- ohos.permission.MEDIA_LOCATION
+
+- ohos.permission.READ_MEDIA
+
+- ohos.permission.WRITE_MEDIA
+
+Changed the permission group as follows:
+
+- Moved **ohos.permission.MEDIA_LOCATION** to the **Images and Videos** permission group.
+
+- Moved **ohos.permission.READ_MEDIA** and **ohos.permission.WRITE_MEDIA** to the **Documents** permission group.
+
+**Change Impact**
+
+The permission group rather than the permission is presented in the dialog box for requesting permissions.
+
+- Before the change, if the three permissions are applied for an application, a dialog box for requesting the media and file permissions will be displayed only once.
+
+- After the change, if the three permissions are applied for an application, a dialog box for requesting the **Images and Videos** permissions and a dialog box for requesting the **Documents** permission will be displayed.
+
+**Key API/Component Changes**
+
+Permission groups before the change:
+
+| Permission | Permission Group |
+| -------- | -------- |
+| ohos.permission.MEDIA_LOCATION | Media and files|
+| ohos.permission.READ_MEDIA | Media and files|
+| ohos.permission.WRITE_MEDIA | Media and files|
+
+Permission groups after the change:
+
+| Permission | Permission Group |
+| -------- | -------- |
+| ohos.permission.MEDIA_LOCATION | Images and videos|
+| ohos.permission.READ_MEDIA | Documents|
+| ohos.permission.WRITE_MEDIA | Documents|
+
+**Adaptation Guide**
+
+N/A
+
+
+## cl.accessToken.2 Change of the Permission Requesting Modes of the Phone, Messaging, and Call Logs Permission Groups
+
+The **Phone**, **Messaging**, and **Call logs** permission groups contain the following permissions:
+
+- ohos.permission.ANSWER_CALL
+
+- ohos.permission.MANAGE_VOICEMAIL
+
+- ohos.permission.READ_CELL_MESSAGES
+
+- ohos.permission.READ_MESSAGES
+
+- ohos.permission.RECEIVE_MMS
+
+- ohos.permission.RECEIVE_SMS
+
+- ohos.permission.RECEIVE_WAP_MESSAGES
+
+- ohos.permission.SEND_MESSAGES
+
+- ohos.permission.READ_CALL_LOG
+
+- ohos.permission.WRITE_CALL_LOG
+
+- ohos.permission.MEDIA_LOCATION
+
+These permissions can be pre-authorized only.
+
+**Change Impact**
+
+Instead of requesting these permissions through a pop-up window, the system applications can obtain the permissions only in pre-authorization mode.
+
+**Key API/Component Changes**
+
+N/A.
+
+**Adaptation Guide**
+
+These permissions can be pre-authorized only.
diff --git a/en/release-notes/changelogs/v4.0-beta2/changelogs-bluetooth.md b/en/release-notes/changelogs/v4.0-beta2/changelogs-bluetooth.md
new file mode 100644
index 0000000000000000000000000000000000000000..28b8027cee35fbe3a119e70c82d50db373ac42f3
--- /dev/null
+++ b/en/release-notes/changelogs/v4.0-beta2/changelogs-bluetooth.md
@@ -0,0 +1,36 @@
+# Bluetooth Subsystem Changelog
+
+## cl.bluetooth.1 New APIs, Attributes, and Enums
+
+**Change Impact**
+
+Added APIs to provide capabilities of obtaining the peripheral device address in non-Bluetooth scan mode (for example NFC), initiating pairing, and setting profile connection management.
+
+**Key API/Component Changes**
+
+| Module |API |
+| ------------- |-------------------------------------------------------- |
+|@ohos.bluetoothManager| [pairCredibleDevice(deviceId: string, transport: BluetoothTransport, callback: AsyncCallback<void>): void](../../../application-dev/reference/apis/js-apis-bluetoothManager.md#bluetoothmanagerpaircredibledevice10) |
+|@ohos.bluetoothManager| [pairCredibleDevice(deviceId: string, transport: BluetoothTransport): Promise<void>](../../../application-dev/reference/apis/js-apis-bluetoothManager.md#bluetoothmanagerpaircredibledevice10-1) |
+|@ohos.bluetoothManager| [getRemoteProfileUuids(device: string, callback: AsyncCallback<Array<ProfileUuids>>): void](../../../application-dev/reference/apis/js-apis-bluetoothManager.md#bluetoothmanagergetremoteprofileuuids10) |
+|@ohos.bluetoothManager| [getRemoteProfileUuids(device: string): Promise<Array<ProfileUuids>>](../../../application-dev/reference/apis/js-apis-bluetoothManager.md#bluetoothmanagergetremoteprofileuuids10-1) |
+|@ohos.bluetoothManager| [getLocalProfileUuids(callback: AsyncCallback<Array<ProfileUuids>>): void](../../../application-dev/reference/apis/js-apis-bluetoothManager.md#bluetoothmanagergetlocalprofileuuids10) |
+|@ohos.bluetoothManager| [getLocalProfileUuids(): Promise<Array<ProfileUuids>>](../../../application-dev/reference/apis/js-apis-bluetoothManager.md#bluetoothmanagergetlocalprofileuuids10-1) |
+|@ohos.bluetoothManager| [setDevicePinCode(device: string, code: string, callback: AsyncCallback<void>): void](../../../application-dev/reference/apis/js-apis-bluetoothManager.md#bluetoothmanagersetdevicepincode10) |
+|@ohos.bluetoothManager| [setDevicePinCode(device: string, code: string): Promise<void>](../../../application-dev/reference/apis/js-apis-bluetoothManager.md#bluetoothmanagersetdevicepincode10-1) |
+|@ohos.bluetoothManager| [setConnectionStrategy(device: string, strategy: ConnectionStrategy, callback: AsyncCallback<void>): void](../../../application-dev/reference/apis/js-apis-bluetoothManager.md#bluetoothmanagersetconnectionstrategy10)|
+|@ohos.bluetoothManager| [setConnectionStrategy(device: string, strategy: ConnectionStrategy): Promise<void>](../../../application-dev/reference/apis/js-apis-bluetoothManager.md#bluetoothmanagersetconnectionstrategy10-1) |
+|@ohos.bluetoothManager| [getConnectionStrategy(device: string, callback: AsyncCallback<ConnectionStrategy>): void](../../../application-dev/reference/apis/js-apis-bluetoothManager.md#bluetoothmanagergetconnectionstrategy10)|
+|@ohos.bluetoothManager| [getConnectionStrategy(device: string): Promise<ConnectionStrategy>](../../../application-dev/reference/apis/js-apis-bluetoothManager.md#bluetoothmanagergetconnectionstrategy10-1) |
+|@ohos.bluetoothManager|[ConnectionStrategy](../../../application-dev/reference/apis/js-apis-bluetoothManager.md#connectionstrategy10)|
+|@ohos.bluetoothManager|[properties](../../../application-dev/reference/apis/js-apis-bluetoothManager.md#blecharacteristic)|
+|@ohos.bluetoothManager|[deviceName](../../../application-dev/reference/apis/js-apis-bluetoothManager.md#scanresult)|
+|@ohos.bluetoothManager|[includeDeviceName](../../../application-dev/reference/apis/js-apis-bluetoothManager.md#advertisedata)|
+|@ohos.bluetoothManager|[GattProperties](../../../application-dev/reference/apis/js-apis-bluetoothManager.md#gattproperties10)|
+|@ohos.bluetoothManager|[pinType](../../../application-dev/reference/apis/js-apis-bluetoothManager.md#pintype10)|
+|@ohos.bluetoothManager|[BluetoothTransport](../../../application-dev/reference/apis/js-apis-bluetoothManager.md#bluetoothtransport10)|
+|@ohos.bluetoothManager|[ProfileUuids](../../../application-dev/reference/apis/js-apis-bluetoothManager.md#profileuuids10)|
+
+**Adaptation Guide**
+
+For details, see examples in the related API references.
diff --git a/en/release-notes/changelogs/v4.0-beta2/changelogs-distributeddatamgr.md b/en/release-notes/changelogs/v4.0-beta2/changelogs-distributeddatamgr.md
new file mode 100644
index 0000000000000000000000000000000000000000..7d5985e212da1afd6ffff8f64737e90fb3efee63
--- /dev/null
+++ b/en/release-notes/changelogs/v4.0-beta2/changelogs-distributeddatamgr.md
@@ -0,0 +1,478 @@
+# Distributed Data Management Changelog
+
+## cl.distributeddatamgr.1 Change of ValuesBucket to a Public Interface
+
+**Change Impact**
+
+For applications developed based on earlier versions, only system applications can use **ValuesBucket**. From this version, **ValuesBucket** can be called by third-party applications.
+
+**Key API/Component Changes**
+
+Before change:
+
+```ts
+ /**
+ * Indicates possible value types
+ *
+ * @syscap SystemCapability.DistributedDataManager.DataShare.Core
+ * @systemapi
+ * @StageModelOnly
+ * @since 9
+ */
+ export type ValueType = number | string | boolean;
+```
+
+After change:
+
+```ts
+ /**
+ * Indicates possible value types
+ *
+ * @syscap SystemCapability.DistributedDataManager.DataShare.Core
+ * @StageModelOnly
+ * @since 10
+ */
+ export type ValueType = number | string | boolean;
+```
+
+
+## cl.distributeddatamgr.2 Change of Some Predicate Interfaces in dataSharePredicates to Public Interfaces
+
+**Change Impact**
+
+For applications developed based on earlier versions, only system applications can use **dataSharePredicates**. From this version, the namespace **dataSharePredicates**, **dataSharePredicates** class, and some predicate interfaces can be called by third-party applications.
+
+**Key API/Component Changes**
+
+The involved interfaces are as follows:
+
+- equalTo(field: string, value: ValueType): DataSharePredicates
+
+- and(): DataSharePredicates
+
+- orderByAsc(field: string): DataSharePredicates
+
+- orderByDesc(field: string): DataSharePredicates
+
+- limit(total: number, offset: number): DataSharePredicates
+
+- in(field: string, value: Array[/topic/body/section/ul/li/p/valuetype {""}) ): DataSharePredicates (valuetype]
+
+
+## cl.distributeddatamgr.3 Change of the DataShareExtensionAbility Context
+
+Removed the optional flag from the context attribute of @ohos.application.DataShareExtensionAbility, and changed the start version from API version 9 to API version 10.
+
+**Change Impact**
+
+For applications developed based on earlier versions, use SDK API version 10 for the context.
+
+**Key API/Component Changes**
+
+Before change:
+
+```ts
+ /**
+ * Indicates datashare extension ability context.
+ *
+ * @type ?{ ExtensionContext }
+ * @syscap SystemCapability.DistributedDataManager.DataShare.Provider
+ * @systemapi
+ * @StageModelOnly
+ * @since 9
+ */
+ context?: ExtensionContext;
+```
+
+After change:
+
+```ts
+ /**
+ * Indicates datashare extension ability context.
+ *
+ * @type { ExtensionContext }
+ * @syscap SystemCapability.DistributedDataManager.DataShare.Provider
+ * @systemapi
+ * @StageModelOnly
+ * @since 10
+ */
+ context: ExtensionContext;
+```
+
+
+## cl.distributeddatamgr.4 Change of the Return Value Type of Function Pointer Variables in the OH_Predicates Struct from OH_Predicates to OH_Predicates \*
+
+**Change Impact**
+
+This change is incompatible with earlier versions. You need to use the new function pointer variables in the **OH_Predicates** struct.
+
+**Key API/Component Changes**
+
+Before change:
+
+```ts
+ OH_Predicates (*equalTo)(OH_Predicates *predicates, const char *field, OH_VObject *valueObject);
+ OH_Predicates (*notEqualTo)(OH_Predicates *predicates, const char *field, OH_VObject *valueObject);
+ OH_Predicates (*beginWrap)(OH_Predicates *predicates);
+ OH_Predicates (*endWrap)(OH_Predicates *predicates);
+ OH_Predicates (*orOperate)(OH_Predicates *predicates);
+ OH_Predicates (*andOperate)(OH_Predicates *predicates);
+ OH_Predicates (*isNull)(OH_Predicates *predicates, const char *field);
+ OH_Predicates (*isNotNull)(OH_Predicates *predicates, const char *field);
+ OH_Predicates (*like)(OH_Predicates *predicates, const char *field, OH_VObject *valueObject);
+ OH_Predicates (*between)(OH_Predicates *predicates, const char *field, OH_VObject *valueObject);
+ OH_Predicates (*notBetween)(OH_Predicates *predicates, const char *field, OH_VObject *valueObject);
+ OH_Predicates (*greaterThan)(OH_Predicates *predicates, const char *field, OH_VObject *valueObject);
+ OH_Predicates (*lessThan)(OH_Predicates *predicates, const char *field, OH_VObject *valueObject);
+ OH_Predicates (*greaterThanOrEqualTo)(OH_Predicates *predicates, const char *field, OH_VObject *valueObject);
+ OH_Predicates (*lessThanOrEqualTo)(OH_Predicates *predicates, const char *field, OH_VObject *valueObject);
+ OH_Predicates (*orderBy)(OH_Predicates *predicates, const char *field, OH_OrderType type);
+ OH_Predicates (*distinct)(OH_Predicates *predicates);
+ OH_Predicates (*limit)(OH_Predicates *predicates, unsigned int value);
+ OH_Predicates (*offset)(OH_Predicates *predicates, unsigned int rowOffset);
+ OH_Predicates (*groupBy)(OH_Predicates *predicates, char const *const *fields, int length);
+ OH_Predicates (*in)(OH_Predicates *predicates, const char *field, OH_VObject *valueObject);
+ OH_Predicates (*notIn)(OH_Predicates *predicates, const char *field, OH_VObject *valueObject);
+ OH_Predicates (*clear)(OH_Predicates *predicates);
+```
+
+After change:
+
+```ts
+ OH_Predicates *(*equalTo)(OH_Predicates *predicates, const char *field, OH_VObject *valueObject);
+ OH_Predicates *(*notEqualTo)(OH_Predicates *predicates, const char *field, OH_VObject *valueObject);
+ OH_Predicates *(*beginWrap)(OH_Predicates *predicates);
+ OH_Predicates *(*endWrap)(OH_Predicates *predicates);
+ OH_Predicates *(*orOperate)(OH_Predicates *predicates);
+ OH_Predicates *(*andOperate)(OH_Predicates *predicates);
+ OH_Predicates *(*isNull)(OH_Predicates *predicates, const char *field);
+ OH_Predicates *(*isNotNull)(OH_Predicates *predicates, const char *field);
+ OH_Predicates *(*like)(OH_Predicates *predicates, const char *field, OH_VObject *valueObject);
+ OH_Predicates *(*between)(OH_Predicates *predicates, const char *field, OH_VObject *valueObject);
+ OH_Predicates *(*notBetween)(OH_Predicates *predicates, const char *field, OH_VObject *valueObject);
+ OH_Predicates *(*greaterThan)(OH_Predicates *predicates, const char *field, OH_VObject *valueObject);
+ OH_Predicates *(*lessThan)(OH_Predicates *predicates, const char *field, OH_VObject *valueObject);
+ OH_Predicates *(*greaterThanOrEqualTo)(OH_Predicates *predicates, const char *field, OH_VObject *valueObject);
+ OH_Predicates *(*lessThanOrEqualTo)(OH_Predicates *predicates, const char *field, OH_VObject *valueObject);
+ OH_Predicates *(*orderBy)(OH_Predicates *predicates, const char *field, OH_OrderType type);
+ OH_Predicates *(*distinct)(OH_Predicates *predicates);
+ OH_Predicates *(*limit)(OH_Predicates *predicates, unsigned int value);
+ OH_Predicates *(*offset)(OH_Predicates *predicates, unsigned int rowOffset);
+ OH_Predicates *(*groupBy)(OH_Predicates *predicates, char const *const *fields, int length);
+ OH_Predicates *(*in)(OH_Predicates *predicates, const char *field, OH_VObject *valueObject);
+ OH_Predicates *(*notIn)(OH_Predicates *predicates, const char *field, OH_VObject *valueObject);
+ OH_Predicates *(*clear)(OH_Predicates *predicates);
+```
+
+**Adaptation Guide**
+
+Example:
+
+Code before change:
+
+```
+predicates->beginWrap(predicates).equalTo(predicates, "data1", valueObject).orOperate(predicates);
+```
+
+Code after change:
+
+```
+predicates->beginWrap(predicates)->equalTo(predicates, "data1", valueObject)->orOperate(predicates);
+```
+
+
+## cl.distributeddatamgr.5 Change of the Error Codes of the OH_Rdb_ErrCode Struct
+
+**Change Impact**
+
+Changed **RDB_ERR_INVALID_ARGS** to **RDB_E_INVALID_ARGS**, and **RDB_ERR_OK** to **RDB_OK**, and added error codes.
+
+**Key API/Component Changes**
+
+Before change:
+
+```ts
+ RDB_ERR_INVALID_ARGS = -2,
+ RDB_ERR = -1,
+ RDB_ERR_OK = 0
+```
+
+After change:
+
+```ts
+ RDB_ERR = -1,
+ RDB_OK = 0,
+ E_BASE = 14800000,
+ RDB_E_NOT_SUPPORTED = 801,
+ RDB_E_ERROR = E_BASE,
+ RDB_E_INVALID_ARGS = (E_BASE + 1),
+ RDB_E_CANNOT_UPDATE_READONLY = (E_BASE + 2),
+ RDB_E_REMOVE_FILE = (E_BASE + 3),
+ RDB_E_EMPTY_TABLE_NAME = (E_BASE + 5),
+ RDB_E_EMPTY_VALUES_BUCKET = (E_BASE + 6),
+ RDB_E_EXECUTE_IN_STEP_QUERY = (E_BASE + 7),
+ RDB_E_INVALID_COLUMN_INDEX = (E_BASE + 8),
+ RDB_E_INVALID_COLUMN_TYPE = (E_BASE + 9),
+ RDB_E_EMPTY_FILE_NAME = (E_BASE + 10),
+ RDB_E_INVALID_FILE_PATH = (E_BASE + 11),
+ RDB_E_TRANSACTION_IN_EXECUTE = (E_BASE + 12),
+ RDB_E_INVALID_STATEMENT = (E_BASE + 13),
+ RDB_E_EXECUTE_WRITE_IN_READ_CONNECTION = (E_BASE + 14),
+ RDB_E_BEGIN_TRANSACTION_IN_READ_CONNECTION = (E_BASE + 15),
+ RDB_E_NO_TRANSACTION_IN_SESSION = (E_BASE + 16),
+ RDB_E_MORE_STEP_QUERY_IN_ONE_SESSION = (E_BASE + 17),
+ RDB_E_NO_ROW_IN_QUERY = (E_BASE + 18),
+ RDB_E_INVALID_BIND_ARGS_COUNT = (E_BASE + 19),
+ RDB_E_INVALID_OBJECT_TYPE = (E_BASE + 20),
+ RDB_E_INVALID_CONFLICT_FLAG = (E_BASE + 21),
+ RDB_E_HAVING_CLAUSE_NOT_IN_GROUP_BY = (E_BASE + 22),
+ RDB_E_NOT_SUPPORTED_BY_STEP_RESULT_SET = (E_BASE + 23),
+ RDB_E_STEP_RESULT_SET_CROSS_THREADS = (E_BASE + 24),
+ RDB_E_STEP_RESULT_QUERY_NOT_EXECUTED = (E_BASE + 25),
+ RDB_E_STEP_RESULT_IS_AFTER_LAST = (E_BASE + 26),
+ RDB_E_STEP_RESULT_QUERY_EXCEEDED = (E_BASE + 27),
+ RDB_E_STATEMENT_NOT_PREPARED = (E_BASE + 28),
+ RDB_E_EXECUTE_RESULT_INCORRECT = (E_BASE + 29),
+ RDB_E_STEP_RESULT_CLOSED = (E_BASE + 30),
+ RDB_E_RELATIVE_PATH = (E_BASE + 31),
+ RDB_E_EMPTY_NEW_ENCRYPT_KEY = (E_BASE + 32),
+ RDB_E_CHANGE_UNENCRYPTED_TO_ENCRYPTED = (E_BASE + 33),
+ RDB_E_CHANGE_ENCRYPT_KEY_IN_BUSY = (E_BASE + 34),
+ RDB_E_STEP_STATEMENT_NOT_INIT = (E_BASE + 35),
+ RDB_E_NOT_SUPPORTED_ATTACH_IN_WAL_MODE = (E_BASE + 36),
+ RDB_E_CREATE_FOLDER_FAIL = (E_BASE + 37),
+ RDB_E_SQLITE_SQL_BUILDER_NORMALIZE_FAIL = (E_BASE + 38),
+ RDB_E_STORE_SESSION_NOT_GIVE_CONNECTION_TEMPORARILY = (E_BASE + 39),
+ RDB_E_STORE_SESSION_NO_CURRENT_TRANSACTION = (E_BASE + 40),
+ RDB_E_NOT_SUPPORT = (E_BASE + 41),
+ RDB_E_INVALID_PARCEL = (E_BASE + 42),
+ RDB_E_QUERY_IN_EXECUTE = (E_BASE + 43),
+ RDB_E_SET_PERSIST_WAL = (E_BASE + 44),
+ RDB_E_DB_NOT_EXIST = (E_BASE + 45),
+ RDB_E_ARGS_READ_CON_OVERLOAD = (E_BASE + 46),
+ RDB_E_WAL_SIZE_OVER_LIMIT = (E_BASE + 47),
+ RDB_E_CON_OVER_LIMIT = (E_BASE + 48)
+```
+
+
+
+## cl.distributeddatamgr.6 Change of int (*close)(OH_Cursor *cursor) in OH_Cursor Struct to int (\*destroy)(OH_Cursor \*cursor)
+
+**Change Impact**
+
+This change is incompatible with earlier versions. The function pointer name is changed from **close** to **destroy**. The input parameters and return values remain unchanged.
+
+**Key API/Component Changes**
+
+Before change:
+
+```ts
+int (*close)(OH_Cursor *cursor);
+```
+
+After change:
+
+```ts
+int (*destroy)(OH_Cursor *cursor);
+```
+
+**Adaptation Guide**
+
+Example:
+
+Code before change:
+
+```
+cursor->close(cursor);
+```
+
+Code after change:
+
+```
+cursor->destroy(cursor);
+```
+
+
+## cl.distributeddatamgr.7 Change of int (\*destroyPredicates)(OH_Predicates \*predicates) in OH_Predicates Struct to int (\*destroy) (OH_Predicates \*predicates)
+
+**Change Impact**
+
+This change is incompatible with earlier versions. The function pointer name is changed from **destroyPredicates** to **destroy**. The input parameters and return values remain unchanged.
+
+**Key API/Component Changes**
+
+Before change:
+
+```ts
+int (*destroyPredicates)(OH_Predicates *predicates);
+```
+
+After change:
+
+```ts
+int (*destroy)(OH_Predicates *predicates);
+```
+
+**Adaptation Guide**
+
+Example:
+
+Code before change:
+
+```
+predicates->destroyPredicates(predicates);
+```
+
+Code after change:
+
+```
+predicates->destroy(predicates);
+```
+
+
+## cl.distributeddatamgr.8 Change of int (\*destroyValueObject)(OH_VObject \*valueObject) in OH_VObject Struct to int (\*destroy) (OH_VObject \*valueObject)
+
+**Change Impact**
+
+This change is incompatible with earlier versions. The function pointer name is changed from **destroyValueObject** to **destroy**. The input parameters and return values remain unchanged.
+
+**Key API/Component Changes**
+
+Before change:
+
+```ts
+int (*destroyValueObject)(OH_VObject *valueObject);
+```
+
+After change:
+
+```ts
+int (*destroy)(OH_VObject *valueObject);
+```
+
+**Adaptation Guide**
+
+Example:
+
+Code before change:
+
+```
+valueObject->destroyValueObject(valueObject);
+```
+
+Code after change:
+
+```
+valueObject->destroy(valueObject);
+```
+
+
+## cl.distributeddatamgr.9 Change of int (\*destroyValuesBucket)(OH_VBucket \*bucket) in OH_VBucket Struct to int (\*destroy) (OH_VBucket \*bucket)
+
+**Change Impact**
+
+This change is incompatible with earlier versions. The function pointer name is changed from **destroyValuesBucket** to **destroy**. The input parameters and return values remain unchanged.
+
+**Key API/Component Changes**
+
+Before change:
+
+```ts
+int (*destroyValuesBucket)(OH_VBucket *bucket);
+```
+
+After change:
+
+```ts
+int (*destroy)(OH_VBucket *bucket);
+```
+
+**Adaptation Guide**
+
+Example:
+
+Code before change:
+
+```
+valueBucket->destroyValuesBucket(valueBucket);
+```
+
+Code after change:
+
+```
+ valueBucket->destroy(valueBucket);
+```
+
+
+## cl.distributeddatamgr.10 Change of OH_Rdb_Config Struct Member Variables
+
+**Change Impact**
+
+The changes are incompatible with earlier versions.
The type of **securityLevel** is changed from **enum OH_Rdb_SecurityLevel** to **in**.
The member variable **path** is deleted.
The member variables **selfSize**, **dataBaseDir**, **storeName**, **bundleName**, and **moduleName** are added.
+
+**Key API/Component Changes**
+
+OH_Rdb_Config before change:
+
+```ts
+typedef struct {
+ const char *path;
+ bool isEncrypt;
+ enum OH_Rdb_SecurityLevel securityLevel;
+} OH_Rdb_Config;
+```
+
+OH_Rdb_Config after change:
+
+```ts
+typedef struct {
+ int selfSize;
+ const char *dataBaseDir;
+ const char *storeName;
+ const char *bundleName;
+ const char *moduleName;
+ bool isEncrypt;
+ int securityLevel;
+} OH_Rdb_Config;
+```
+
+**Adaptation Guide**
+
+When creating an RDB store with **OH_Rdb_Config**, you need to pass in the bundle name and module name.
+
+
+## cl.distributeddatamgr.11 Change of const char *path in OH_Rdb_DeleteStore() to const OH_Rdb_Config \*config
+
+**Change Impact**
+
+This change is incompatible with earlier versions. The input parameter is changed from **const char \*path** to **const OH_Rdb_Config \*config**.
+
+**Key API/Component Changes**
+
+OH_Rdb_DeleteStore before change:
+
+```ts
+int OH_Rdb_DeleteStore(const char *path);
+```
+
+OH_Rdb_DeleteStore after change:
+
+```ts
+int OH_Rdb_DeleteStore(const OH_Rdb_Config *config);
+```
+
+**Adaptation Guide**
+
+Example:
+
+Code before change:
+
+```
+OH_Rdb_DeleteStore("")
+```
+
+Code after change:
+
+```
+OH_Rdb_DeleteStore(config)
+```
diff --git a/en/release-notes/changelogs/v4.0-beta2/changelogs-wifiManager.md b/en/release-notes/changelogs/v4.0-beta2/changelogs-wifiManager.md
new file mode 100644
index 0000000000000000000000000000000000000000..59f2abf1eaadcf49d644a52b117c02b83a039084
--- /dev/null
+++ b/en/release-notes/changelogs/v4.0-beta2/changelogs-wifiManager.md
@@ -0,0 +1,100 @@
+# Wi-Fi Subsystem Changelog
+
+# cl.wifi.1 Change of the Name of the API for Obtaining Wi-Fi Scan Result
+The name of the API for obtaining Wi-Fi scan result is changed in API version 10 Beta1 and then changed to the names used in API version 9 release.
+
+**Change Impact**
+
+The JS API name needs to be adapted for applications developed based on earlier versions. Otherwise, relevant functions will be affected.
+
+**Key API/Component Changes**
+
+- Involved API:
+
+ getScanInfoList(): Array;
+
+- Before change:
+
+```js
+getScanInfoList(): Array;
+```
+
+- After change:
+
+```js
+getScanResults(): Array;
+getScanResultsSync(): Array;
+```
+
+**Adaptation Guide**
+
+Example:
+- Call **getScanResults**.
+```js
+function getScanResultsPromise() {
+ let methodName = `${tag} getScanResultsPromise`
+ wifiManager.getScanResults((err, data) => {
+ if (err) {
+ showToastE(`${methodName} failed ${JSON.stringify(err)}`)
+ return
+ }
+ if (data == null || data.length == 0) {
+ showToast(`${methodName} end data is null`)
+ return;
+ }
+ })
+}
+```
+- Call **getScanResultsSync**.
+```js
+function getScanResultsSync(): Array {
+ let methodName = `${tag} getScanResultsSync`
+ try {
+ return wifiManager.getScanResultsSync();
+ } catch (error) {
+ showToastE(`${methodName} failed ${JSON.stringify(error)}`)
+ }
+ return Array();
+}
+```
+
+# cl.wifi.2 Change of Wi-Fi P2P APIs
+The names of P2P APIs are changed in API version 10 Beta1 and then changed to the names used in API version 9 release.
+
+**Change Impact**
+
+The JS API name needs to be adapted for applications developed based on earlier versions. Otherwise, relevant functions will be affected.
+
+**Key API/Component Changes**
+
+- Added APIs
+
+| API| Description|
+|------|---------|
+| **function** updateNetwork(config: WifiDeviceConfig): number; | Updates the added hotspot configuration information. |
+| **function** disableNetwork(netId: number): **void**; | Disables the added hotspot configuration. |
+| **function** removeAllNetwork(): **void**; | Deletes all hotspot configurations. |
+| **function** removeDevice(id: number): **void**; | Deletes configuration of a single hotspot. |
+| **function** getStations(): Array; | Obtains information about devices connected to this hotspot. |
+| **function** createGroup(config: WifiP2PConfig): **void**; | Creates a P2P group. |
+| **function** removeGroup(): **void**; | Removes a P2P group. |
+| **function** startDiscoverDevices(): **void**; | Starts P2P scan. |
+| **function** stopDiscoverDevices(): **void**; | Stops P2P scan. |
+| **function** deletePersistentGroup(netId: number): **void**; | Deletes the persistent P2P group with a specified network ID. |
+| **function** setDeviceName(devName: string): **void**; | Sets the P2P device name. |
+
+- Deprecated APIs
+
+| API |Description |
+| ------------- |-------------------------------------------------------- |
+| **function** updateDeviceConfig(config: WifiDeviceConfig): number; | Updates the added hotspot configuration information. |
+| **function** disableDeviceConfig(networkId: number): **void**; | Disables the added hotspot configuration. |
+| **function** removeAllDeviceConfigs(): **void**; | Deletes all hotspot configurations. |
+| **function** removeDeviceConfig(networkId: number): **void**; | Deletes configuration of a single hotspot. |
+| **function** getHotspotStations(): Array; | Obtains information about devices connected to this hotspot. |
+| **function** createP2pGroup(config: WifiP2PConfig): **void**; | Creates a P2P group. |
+| **function** removeP2pGroup(): **void**; | Removes a P2P group. |
+| **function** startDiscoverP2pDevices(): **void**; | Starts P2P scan. |
+| **function** stopDiscoverP2pDevices(): **void**; | Stops P2P scan. |
+| **function** deletePersistentP2pGroup(netId: number): **void**; | Deletes the persistent P2P group with a specified network ID. |
+| **function** setP2pDeviceName(devName: string): **void**; | Sets the P2P device name. |