1# Application- or Component-Level Configuration (Stage Model) 2 3During application development, you must configure tags to identify an application, such as the bundle name and application icon. This topic describes some critical tags. 4 5## Configuring the Bundle Name 6 7The bundle name is specified by the **bundleName** field in the [app.json5 file](../quick-start/app-configuration-file.md) in the **AppScope** directory of the project. This field identifies an application and must be globally unique. You are advised to use the reverse domain name notation, for example, *com.example.demo*, where the first part is the domain suffix **com**, the second part is the vendor/individual name, and the third part is the application name, which can be of multiple levels. 8 9## Configuring Icons and Labels 10Icons and labels are usually configured together. They correspond to the **icon** and **label** fields in the [app.json5 file](../quick-start/app-configuration-file.md) and [module.json5 file](../quick-start/module-configuration-file.md). 11 12### Icon and Label Configuration in the app.json5 File 13 14#### Use Scenarios 15 16The icon and label configured in the **app.json5** file are displayed on an application screen, for example: 17* Application list in Settings 18* Applications with permissions granted in the privacy management screen 19 20**Figure 1** Icon and label configuration in the app.json5 file 21 22 23 24#### Configuration Example 25 26```json 27{ 28 "app": { 29 "icon": "$media:app_icon", 30 "label": "$string:app_name" 31 ... 32 } 33} 34``` 35 36### Icon and Label Configuration in the module.json5 File 37 38#### Use Scenarios 39The icon and label configured in the **module.json5** file are displayed on the home screen after the application is installed. The scenarios are as follows: 40* Applications displayed on the device's home screen 41* Applications displayed in Recents 42 43**Figure 2** Icon and label configuration of the module.json5 file 44 45 46 47 48#### Configuration Example 49 50To display the UIAbility icon on the home screen, you must configure the **icon** and **label** fields, and under the **skills** tag, add **entity.system.home** to **entities** and **ohos.want.action.home** to **actions**. 51 52```json 53{ 54 "module": { 55 ... 56 "abilities": [ 57 { 58 "icon": "$media:icon", 59 "label": "$string:EntryAbility_label", 60 "skills": [ 61 { 62 "entities": [ 63 "entity.system.home" 64 ], 65 "actions": [ 66 "ohos.want.action.home" 67 ] 68 } 69 ], 70 } 71 ] 72 } 73} 74``` 75#### Management Rules 76The system strictly controls applications without icons to prevent malicious applications from deliberately displaying no icon on the home screen to block uninstall attempts. 77 78To hide an icon of a pre-installed application on the home screen, you must configure the **AllowAppDesktopIconHide** privilege.<!--Del--> For details, see [Application Privilege Configuration Guide](../../device-dev/subsystems/subsys-app-privilege-config-guide.md).<!--DelEnd--> After this privilege is granted, the application icon will not be displayed on the home screen. 79 80Home screen icons can be hidden only for pre-installed applications. The icon display rules are as follows: 81* The HAP file contains UIAbility configuration. 82 * If both an icon and a label are configured in the **abilities** tag of the **module.json5** file, the system displays that icon and label on the home screen. Touching this icon will direct the user to the home page of the UIAbility. If only an icon is configured, the system displays the label configured in the **app.json5** file on the home screen. 83 84 * If no icon is configured in the **abilities** tag of the **module.json5** file, the system displays the icon and label configured in the **app.json5** file on the home screen. Touching this icon will direct the user to the application details page. 85 86* The HAP file does not contain UIAbility configuration. The system displays the icon and label configured in the **app.json5** file on the home screen. Touching this icon will direct the user to the application details page. 87 88 89 **Figure 3** Application details page 90 91  92 93## Configuring Application Version Declaration 94 95To declare the application version, configure the **versionCode** and **versionName** fields in the [app.json5 file](../quick-start/app-configuration-file.md) in the **AppScope** directory of the project. **versionCode** specifies the version number of the application. The value is a 32-bit non-negative integer. It is used only to determine whether a version is later than another version. A larger value indicates a later version. **versionName** provides the text description of the version number. 96 97## Configuring Device Types Supported by the Module 98 99To configure the device types supported by the module, set the [deviceTypes](../quick-start/module-configuration-file.md#devicetypes) field in the [module.json5 file](../quick-start/module-configuration-file.md). If a certain device type is added to **deviceTypes**, the module can run on that device. 100 101## Configuring the Module Permission 102 103The [requestPermissions](../quick-start/module-configuration-file.md#requestpermissions) field in the [module.json5 file](../quick-start/module-configuration-file.md) is used to configure the permission information required by the module to access the protected part of the system or other applications. This field declares the name of the permission to request, the reason for requesting the permission, and the scenario where the permission is used. 104