1# Bundle Manager Subsystem Changelog
2
3## cl.bundlemanager.1 Deleted the ApplicationReservedFlag Enum and the applicationReservedFlag field in ApplicationInfo
4
5**Access Level**
6
7Public APIs
8
9**Reason for Change**
10
11The name of **applicationReservedFlag** is too difficult to understand. In addition, the information obtained by this field is never used.
12
13**Change Impact**
14
15This change is a non-compatible change. The **applicationReservedFlag** field in **ApplicationInfo** is designed to store the reserved fields of an application. Currently, it is used to store only the information indicating whether the application is encrypted. After the field is deleted, you cannot obtain the reserved fields of an application through **applicationReservedFlag**.
16
17**API Level**
18
1911
20
21**Change Since**
22
23OpenHarmony SDK 4.1.5.5
24
25**Key API/Component Changes**
26
27| API| Description|
28| --------------- | ------- |
29| enum ApplicationReservedFlag | This enum is no longer used.|
30| readonly applicationReservedFlag: number; | This field is no longer used.|
31
32**Adaptation Guide**
33
34No adaptation is required.
35
36
37## cl.bundlemanager.2 Deleted the appId and appIdentifier Fields from OH_NativeBundle_ApplicationInfo
38
39**Access Level**
40
41Public APIs
42
43**Reason for Change**
44
45The **appId** and **appIdentifier** fields is deleted from the [OH_NativeBundle_ApplicationInfo](../../../application-dev/reference/native-apis/_o_h___native_bundle_application_info.md) struct.
46
47**Change Impact**
48
49For a native application developed using API version 11 or later, you cannot use [OH_NativeBundle_GetCurrentApplicationInfo](../../../application-dev/reference/native-apis/native__interface__bundle.md#oh_nativebundle_getcurrentapplicationinfo) to obtain its appId and appIdentifier information.
50
51**API Level**
52
5311
54
55**Change Since**
56
57OpenHarmony SDK 4.1.5.5
58
59**Key API/Component Changes**
60
61An application calls [OH_NativeBundle_GetCurrentApplicationInfo](../../../application-dev/reference/native-apis/native__interface__bundle.md#oh_nativebundle_getcurrentapplicationinfo) to query its own information.
62
63**Adaptation Guide**
64
65Call [OH_NativeBundle_GetAppId](../../../application-dev/reference/native-apis/native__interface__bundle.md#oh_nativebundle_getappid) to query the appId information.
66Call [OH_NativeBundle_GetAppIdentifier](../../../application-dev/reference/native-apis/native__interface__bundle.md#oh_nativebundle_getappidentifier) to query the appIdentifier information.
67
68Sample code:
69
70 ```c++
71    static napi_value GetCurrentApplicationInfo(napi_env env, napi_callback_info info)
72    {
73        // Call the native API to obtain the application information.
74        OH_NativeBundle_ApplicationInfo nativeApplicationInfo = OH_NativeBundle_GetCurrentApplicationInfo();
75        napi_value result = nullptr;
76        napi_create_object(env, &result);
77        // Convert the bundle name obtained by calling the native API to the bundleName attribute in the JavaScript object.
78        napi_value bundleName;
79        napi_create_string_utf8(env, nativeApplicationInfo.bundleName, NAPI_AUTO_LENGTH, &bundleName);
80        napi_set_named_property(env, result, "bundleName", bundleName);
81        // Convert the fingerprint information obtained by calling the native API to the fingerprint attribute in the JavaScript object.
82        napi_value fingerprint;
83        napi_create_string_utf8(env, nativeApplicationInfo.fingerprint, NAPI_AUTO_LENGTH, &fingerprint);
84        napi_set_named_property(env, result, "fingerprint", fingerprint);
85
86        char* appId = OH_NativeBundle_GetAppId();  // new
87        // Convert the application ID obtained by calling the native API to the appId attribute in the JavaScript object.
88        napi_value napi_appId;
89        napi_create_string_utf8(env, appId, NAPI_AUTO_LENGTH, &napi_appId);
90        napi_set_named_property(env, result, "appId", napi_appId);
91
92        char* appIdentifier = OH_NativeBundle_GetAppIdentifier();  // new
93        // Convert the application identifier obtained by calling the native API to the appIdentifier attribute in the JavaScript object.
94        napi_value napi_appIdentifier;
95        napi_create_string_utf8(env, appIdentifier, NAPI_AUTO_LENGTH, &napi_appIdentifier);
96        napi_set_named_property(env, result, "appIdentifier", napi_appIdentifier);
97        // To prevent memory leak, manually release the memory.
98        free(nativeApplicationInfo.bundleName);
99        free(nativeApplicationInfo.fingerprint);
100        free(appId);
101        free(appIdentifier);
102        return result;
103    }
104```
105
106## c3.bundlemanager.3 Control Changed for the Installation of Debugging Applications
107
108**Access Level**
109
110Other
111
112**Reason for Change**
113
114Debugging applications can be installed only on a device in developer mode. You can determine whether an application is a debugging one based on the **type** field in the [signing certificate](../../../application-dev/security/app-provision-structure.md).
115
116**Change Impact**
117
118This change is a non-compatible change. If the signing certificate type of an application is **debug** and the device is not in developer mode, the application cannot be installed on the device.
119
120**API Level**
121
12211
123
124**Change Since**
125
126OpenHarmony SDK 4.1.5.5
127
128**Key API/Component Changes**
129
130N/A
131
132**Adaptation Guide**
133
134You can choose **Settings > General > Developer Mode** to enable or disable the developer mode.
135