When you develop OpenHarmony devices or applications for specific industries or regions, you may need to customize the system to meet the requirements of specific scenarios. This is where the customization subsystem comes into the picture. This subsystem provides enterprise device management and policy configuration.
| Config Policy Kit | Provides APIs for service modules to obtain the configuration directory or configuration file path at different configuration levels.|
| EnterpriseDeviceManagement Kit| Provides the management application development framework, management mode setting, and enterprise device management capabilities for developing Mobile Device Management (MDM) applications. You can leverage the system-level management APIs for your applications in the enterprise context.|
## System Architecture
**Figure 1** Customization subsystem
![](figures/customization-subsystem.png)
- Application layer
System applications, extended applications, and third-party applications invoke interfaces at the interface layer to configure functions or obtain specific data.
- Interface layer
The EnterpriseDeviceManagement Kit provides system-level management APIs for applications in the enterprise context. The Config Policy Kit provides APIs for service modules to obtain the configuration directory or configuration file path at different configuration levels.
- Service layer
EnterpriseDeviceManagerService provides specific implementation capabilities for EnterpriseDeviceManagement Kit at the interface layer to help ensure normal service running.
## Directory Structure
The source code of the Customization subsystem is stored in **/base/customization**. The directory structure is as follows:
```
/base/customization/
├── config_policy # Code repository of the Config Policy Kit
│ ├── frameworks # Core code of the Config Policy Kit
│ │ ├── config_policy # Module of the Config Policy Kit
│ │ │ └── src # Implementation code
│ ├── interfaces # Interfaces of the Config Policy Kit