| 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:<br/>Moved ohos.permission.MEDIA_LOCATION to the Images and Videos permission group.<br/>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)<br/>[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)<br/>[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)<br/>[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:<br/>1. Changed the type of **securityLevel** from **enum OH_Rdb_SecurityLevel** to **in**.<br/>2. Deleted the member variable **path**.<br/>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.
## 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.
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.
## 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.
## 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.
## 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.
## 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.
## 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.
## 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. <br>The type of **securityLevel** is changed from **enum OH_Rdb_SecurityLevel** to **in**.<br>The member variable **path** is deleted.<br>The member variables **selfSize**, **dataBaseDir**, **storeName**, **bundleName**, and **moduleName** are added.
**Key API/Component Changes**
OH_Rdb_Config before change:
```ts
typedefstruct{
constchar*path;
boolisEncrypt;
enumOH_Rdb_SecurityLevelsecurityLevel;
}OH_Rdb_Config;
```
OH_Rdb_Config after change:
```ts
typedefstruct{
intselfSize;
constchar*dataBaseDir;
constchar*storeName;
constchar*bundleName;
constchar*moduleName;
boolisEncrypt;
intsecurityLevel;
}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**.