Method A — Engineering code
Dial:
*#*#83781#*#* or *#*#3646633#*#*
Go to Log and DebugUSB Port Settings → Enable DIAG, disable others if needed.

Method B — Via ADB

adb shell
su
setprop persist.sys.usb.config diag,adb

Method C — Hardware key combo (varies by model):

Check Device Manager — a new unknown device appears when done correctly.


Most Spreadtrum Diag drivers are unsigned, so Windows blocks them by default.

The SPRD U25 Diag Driver is a proprietary software driver that enables diagnostic communication between a host PC and a device powered by a Unisoc U25 chipset (commonly found in IoT modules, feature phones, or low-end smartphones). It uses a proprietary diag protocol over interfaces like USB or UART to access internal chipset logs, memory dumps, modem states, and other debug information.

  • Expose virtual COM ports for:
  • Handling of driver signing (Windows requires driver signing; provide signed driver package or instruct test-signing during development)
  • Implement device installation class and service with recovery for device re-enumeration
  • Use a terminal program (Putty, RealTerm, or HyperTerminal) on the COM port (e.g., COM5, 115200 baud, 8N1).

    Send AT+CGMI or AT+GSN — should return manufacturer and IMEI if diag port works.

    Or use SPD SN Writer or ResearchDownload — select the correct COM port in tool settings.


  • Windows Driver: Create WinUSB-based INF and sample app using WinUSB API. Package driver with test signing certificate; move to proper signing for release.
  • Testing: Validate on multiple U25 devices, ensure mode switching, flashing, and logging work.
  • Documentation: Usage, safety, recovery procedures, and VID/PID list.