Drivers AMIJ USB Modem For PDC



USB Data Cable only - software NOT included.Note: Phone and software features are limited to the phone's capability and the service provider's default settings. Please consult with your phone's user manual and your service provider for the availability of these features. Sep 23 20:28:27 pdc-laptop kernel: 978.998889 usb 2-2: GSM modem (1-port) converter now attached to ttyUSB0 Sep 23 20:28:27 pdc-laptop kernel: 978.999696 option 2-2:1.1: GSM modem (1-port) converter detected Sep 23 20:28:27 pdc-laptop kernel: 979.000667 usb 2-2: GSM modem (1-port) converter now attached to ttyUSB1. Usb 3-1: new high-speed USB device number 5 using xhcihcd usb 3-1: New USB device found, idVendor=1bbb, idProduct=00b6, bcdDevice=10.00 usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 usb 3-1: Product: Mobilebroadband usb 3-1: Manufacturer: Alcatel usb 3-1: SerialNumber: ABCDE.

I've started researching how to configure the modem to work properly in Linux. First thing I checked how it's configuring in Windows drivers. Fortunately I've found drivers installer log with detailed steps to configure it. You can find relevant extract from the log here.

Hey guys, has anyone got the pixel 3? If so, I've got a thread where I got ports open but can't connect yet with pdc. Any help would be appreciated.

Installer log analyzing results

Drivers Amij Usb Modem For Pdc Windows 10

Reading through log I've found that it checks current firmware version (in Linux it available as 'qmicli --dms-get-revision'), then reboots device to Fastboot mode (using GobiConnect/ChangeDeviceDownLoadMode) and downloads/uploads firmware.

Drivers Amij Usb Modem For Pdc Windows 7

Implementing ChangeDeviceDownLoadMode

For
This call is present in Gobi driver, so it should use standard qmi protocol. Analyzing USB spoof results using usbpcap/Wireshark I've found that this command have id 0x5556 and have one uint8 parameter, so I've added the call to libqmi. Also I've created program to change the mode that don't require libqmi to implement new calls. You can download it here.
After executing it:
modem will be switched to fast boot mode:
T: Bus=01 Lev=01 Prnt=01 Port=02 Cnt=01 Dev#= 8 Spd=480 MxCh= 0
D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=03f0 ProdID=9f1d Rev=01.00
S: Manufacturer=HP
S: Product=HP lt4120 Snapdragon X5 LTE
S: SerialNumber=MDM9625
C: #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=256mA
I: If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=42 Prot=03 Driver=(none)

So now we can flash new firmware. It was done by standard fastboot utility. But Windows drivers decrypt files before flash. Quick research showed that the Decrypt.exe utility just drops first 12 bytes of file (may be it also checks CRC)?

After flashing

After flashing modem still don't work. Looks like it require one more part: selecting active config, that is done by MCFG.exe executable. Looks like it use PDC service interface, that completely missed in libqmi. So it will be next target.
Current version of the code can be found in my Github repo: borovsky/x5-snapdragon-linux.