Uploading new firmware to HP lt4120 modem
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.
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)?
Current version of the code can be found in my Github repo: borovsky/x5-snapdragon-linux.
Installer log analyzing results
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.
Implementing ChangeDeviceDownLoadMode
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:
sudo ./x5-set-download-mode -d /dev/cdc-wdm0 -m 5
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)
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.
well done, please, keep investigating -- I look fwd to using my modem again :)
ReplyDeleteThank You and that i have a neat supply: Where Do You Get The Money To Renovate A House house renovation mortgage
ReplyDeleteGreat and that i have a dandy provide: Where To Loan For House Renovation house renovation calgary
ReplyDelete