1# USB Subsystem Changelog
2
3## cl.usb.1 Security Permission Change of the USB Driver API
4
5In version 4.0x or later, the **ohos.permission.ACCESS_EXTENSIONAL_DEVICE_DRIVER** permission needs to be declared for the **bindDevice**, **unbindDevice**, and **queryDevices** APIs in **@ohos.driver.deviceManager**.
6
7function unbindDevice(deviceId: number): Promise\<number>;
8
9function unbindDevice(deviceId: number, callback: AsyncCallback<number>): void;
10
11function bindDevice(deviceId: number, onDisconnect: AsyncCallback<number>): Promise<{deviceId: number, remote: rpc.IRemoteObject}>;
12
13function bindDevice(deviceId: number, onDisconnect: AsyncCallback<number>): Promise<{deviceId: number, remote: rpc.IRemoteObject}>;
14
15function queryDevices(busType?: number): Array<Readonly<Device>>;
16
17**Change Impact**
18
19Before the change, the APIs can be called without declaring the required permission, which poses security risks.
20
21After the change, the APIs can be called only if the **ohos.permission.ACCESS_EXTENSIONAL_DEVICE_DRIVER** permission is declared.
22
23**Involved APIs**
24
25The **ohos.permission.ACCESS_EXTENSIONAL_DEVICE_DRIVER** permission is required for calling the following APIs:
26bindDevice
27unbindDevice
28queryDevices
29
30**Adaptation Guide**
31
32Apply for the **ohos.permission.ACCESS_EXTENSIONAL_DEVICE_DRIVER** permission when calling the related APIs.
33