# USB子系统变更说明

## cl.USB .1 USB管理功能模块接口废弃

**访问级别**

系统接口

**废弃原因**

USB模块接口增加权限控制,新开放的接口包含旧的系统级接口完整功能,接口更加标准并且原子化,符合社区API规范。

**废弃影响**

非兼容性变更,需要开发者进行适配。

**废弃发生版本**

从OpenHarmony SDK 4.1.5.1开始。

**废弃的接口**

修改不合理的鉴权方式整改。不允许使用调用方进程APL等级进行权限校验,需要修改为使用AccessTokenKit::VerifyAccessToken对访问者进行权限校验,新接口调用者需要申请ohos.permission. MANAGE_USB_CONFIG权限。
| 接口声明                                                     | 废弃说明                                                     | 替代接口                                                     |
| ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ |
| function addRight(bundleName: string, deviceName: string): boolean; | 使用usb.addDeviceAccessRight接口添加软件包访问设备的权限。 | function addDeviceAccessRight(bundleName: string, deviceName: string): boolean; |
| function usbFunctionsFromString(funcs: string): number; | 使用usb.getFunctionsFromString接口将字符串形式的USB功能列表转化为数字掩码 | function getFunctionsFromString(funcs: string): number; |
| function usbFunctionsToString(funcs: FunctionType): string; | 使用usb.convertFunctionsToString接口将数字掩码形式的USB功能列表转化为字符串。 | function convertFunctionsToString(funcs: FunctionType): string; |
| function setCurrentFunctions(funcs: FunctionType): Promise<void>; | 使用usb.setDeviceFunctions接口设置当前的USB功能列表。 | function setDeviceFunctions(funcs: FunctionType): Promise<void>; |
| function getCurrentFunctions(): FunctionType; | 使用usb.getDeviceFunctions接口获取当前的USB功能列表的数字组合掩码。 | function getDeviceFunctions(): FunctionType; |
| function getPorts(): Array<USBPort>; | 使用usb.getUsbPorts接口获取所有物理USB端口描述信息。 | function getUsbPorts(): Array<USBPort>; |
| function getSupportedModes(portId: number): PortModeType; | 使用usb.getUsbPortSupportModes接口获取指定的端口支持的模式列表的组合掩码 | function getUsbPortSupportModes(portId: number): PortModeType; |
| function setPortRoles(portId: number, powerRole: PowerRoleType, dataRole: DataRoleType): Promise<void>; | 使用usb.setUsbPortRoles接口设置指定的端口支持的角色模式,包含充电角色、数据传输角色。 | function setUsbPortRoles(portId: number, powerRole: PowerRoleType, dataRole: DataRoleType): Promise<void>; |

**适配指导**

变更前
应用配置文件xxx.cfg中的apl字段是system_basic 或者 system_core。
变更后
配置文件中的permission 字段需要添加ohos.permission.MANAGE_USB_CONFIG权限。