The MediaTek USB VCOM driver is what turns a MediaTek phone in BROM, Preloader or Download Agent mode into a COM port that SP Flash Tool and mtkclient can talk to (USB\VID_0E8D&PID_2000 and friends). You do not need a “driver pack” or to disable driver signing on Windows 11: MediaTek’s package, version 3.0.1504.0, is on Microsoft’s own Update Catalog, signed by Microsoft’s hardware program. This page has the exact package to pick, what each 0E8D port means, and the mtkclient change from 12 October 2026 that matters on Windows.

⬇ MediaTek USB VCOM 3.0.1504.0: official Microsoft Update Catalog package

Windows 10 / 11 · x86 and x64 · catalog entry “Windows 10 and later drivers” · checked 13 Oct 2026

Open the Microsoft Update Catalog

Pick the row “Windows 10 and later drivers”, 126 KB. File: 20896845_fdc6bb5aa9a9bac99adf85d931d6c21d1130a96e.cab · 129,336 bytes · SHA-256: ce72e97c07582ad41debfaeee6f6284ecd28285df5f9caa05193653fb236561f

Not mirrored here: MediaTek’s driver is proprietary, so we link Microsoft’s copy and publish its checksum. Inside: cdc-acm.inf, cdc-acm.cat and usb2ser.sys for x86 and x64.


⬇ UsbDk 1.0.22 (for mtkclient on Windows)

Download UsbDk 1.0.22 (x64)

File: UsbDk_1.0.22_x64.zip · 6.3 MB · SHA-256: b93a3f6e324e6afd617afbe53224255282523b17cd45f2527c632d677be231af · original UsbDk_1.0.22_x64.msi inside, SHA-256 91f6f695e1e13c656024e6d3b55620bf08d8835ef05ee0496935ba6bb62466a5

32-bit: UsbDk_1.0.22_x86.zip · 4.9 MB · SHA-256: b0e763b007e591e456b27d27b18af8ae93507552850ce6a26c6ac9da2df56dfb (MSI 278c58e0d8d33eba7de51f8cbee78b09f9f3c0ee1c7aae601fd77c7ec69e28ef)

Unmodified mirror of daynix/UsbDk v1.00-22 (March 2020, still the latest release). Apache-2.0, licence text included in the zip. The MSI is signed by Red Hat, Inc.; the Windows 10 kernel driver inside it is signed by Microsoft Windows Hardware Compatibility Publisher.

Which MediaTek package is which

Searching the catalog for “MediaTek USB VCOM” returns 10 entries. They all carry the same version, 3.0.1504.0, but they point to only three different files. We downloaded all three and read their INF and signature catalogs.

Package Size Microsoft lists it for OS versions inside the signed .cat Use on Windows 11?
Catalog cab 20896845_… (signed 15 Jul 2016) 126 KB Windows 10 and later; Windows 10 Creators Update and later servicing XP to 7, plus 10.0 Yes, this one. Windows 11 still reports NT 10.0.
Catalog cab 20851002_… (signed 10 Mar 2016) 126 KB Windows 7 XP to 7 only (no 10.0) No. Same INF, but the catalog does not cover Windows 10/11.
Catalog cab 20913465_… (signed 16 Aug 2016) 8.5 MB Windows 7, Windows 8.1 2000 to 8.1, plus 10.0 Only if you also want MediaTek’s ADB (WinUSB 11.0), RNDIS tethering and MBIM drivers. The VCOM part is the same INF.
Windows’ own usbser.sys built in n/a n/a Loads by itself only when the device reports CDC class 02, subclass 02 (Microsoft Learn). mtkclient’s Windows notes accept it as long as Device Manager shows no warning icon.
“MTK USB All” and similar driver packs varies not on the catalog unknown Not needed. If you already have one, compare it against the SHA-256 above.
Microsoft Update Catalog search results for MediaTek PreLoader USB VCOM showing three signed driver packages
The three “MediaTek PreLoader USB VCOM” entries on Microsoft’s catalog. The bottom row is the Windows 10 and later package. Capture: catalog.update.microsoft.com, 13 Oct 2026.

Two limits come from the INF itself. It has x86 and x64 sections only, so there is no ARM64 driver for Snapdragon-based Windows laptops. It is also dated 22 January 2015, and the catalog has nothing newer.

Install it on Windows 11

  1. Download the 126 KB “Windows 10 and later” cab and check it: certutil -hashfile 20896845_fdc6bb5aa9a9bac99adf85d931d6c21d1130a96e.cab SHA256.
  2. Extract it with the tool Windows already has: expand -F:* 20896845_fdc6bb5aa9a9bac99adf85d931d6c21d1130a96e.cab C:\mtkvcom
  3. As administrator: pnputil /add-driver C:\mtkvcom\cdc-acm.inf /install
  4. Connect the phone powered off. It should show under Ports (COM & LPT) with one of the names in the table below.

What each 0E8D port means

MediaTek’s cdc-acm.inf matches 111 hardware IDs on 64 product IDs under VID 0E8D. Most of them are interfaces of a phone that is already running (41 “VCOM”, 29 ETS, 24 ELT, 10 modem and 4 AT ports). Three are the ones that matter for flashing and unbricking:

VID:PID Name Windows shows (from the INF) What the phone is doing How you get there
0E8D:0003 MediaTek USB Port BootROM (BROM), the mask ROM before anything on flash runs Phone off, hold Vol Up + Power or Vol Down + Power, connect (mtkclient README)
0E8D:2000 MediaTek PreLoader USB VCOM (Android) The preloader from flash, waiting briefly for a tool Phone off, no buttons, connect
0E8D:2001 MediaTek DA USB VCOM (Android) The Download Agent the tool just uploaded Appears on its own during a flash
0E8D:201D, 20FF, 3000, 6000; LG 1004:6000; OPPO 22D9:0006 Not in the INF Preloader ports that mtkclient knows (config/usb_ids.py) These get no “MediaTek” name from this driver. mtkclient opens them over libusb instead.

One example from mtkclient’s history: an 0E8D:201D preloader reports device class 0x00 with vendor-specific interfaces. The fix (commit 4b580a8, 14 Sep 2026) was checked on Windows 11 build 26200 and connects through the UsbDk fallback. No COM driver is involved.

mtkclient on Windows: what changed on 12 October 2026

mtkclient’s Windows guide still says: install the MTK serial port driver (or use the default Windows COM port), then UsbDk. Pull request #358, merged 12 Oct 2026, changed the order. mtkclient now uses its own bundled libusb-1.0.dll and has turned off the UsbDk option on its normal path, because “UsbDk enumeration is broken on this Windows build (26200)”. UsbDk is still the fallback when Windows answers “Access denied” (errno 13), which means a kernel driver already owns the port. Keep UsbDk installed, and update your mtkclient clone.

Common problems

The port appears for a second, then disappears. That is how the preloader is supposed to behave. A mtkclient bug report calls it “MTK’s sub-second Preloader/BROM window”. Start the tool first, so it shows “Waiting for PreLoader VCOM” (#44), then plug the phone in.

Buttons do nothing on a new phone. On MT6781, MT6789, MT6855, MT6886, MT6895, MT6983 and MT8985 the BootROM is patched, so mtkclient needs preloader mode plus a V6 loader (README). If the preloader is disabled, the README suggests adb reboot edl.

DAA_SIG_VERIFY_FAILED. The driver is working. The phone refused an unsigned Download Agent; #274 calls this “expected device security behavior”.

Nothing at all, or “Unknown USB Device”. The phone never enumerated, so this is a cable or port problem; see the Unknown USB Device guide. For other chips’ IDs, see the VID/PID table. Qualcomm phones use a different driver: QDLoader 9008.

Sources