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