get software version

Aleksander Morgado aleksander at aleksander.es
Fri Jan 20 16:13:04 UTC 2017


On Fri, Jan 20, 2017 at 4:10 PM, Bjørn Mork <bjorn at mork.no> wrote:
> I noticed that you have implemented Get Software Version in qmicli and
> tried it out. Looks like it has been extended since the version we have
> documented in data/qmi-service-dms.json.  Running it on my EM7455 gives:
>
>
> [20 Jan 2017, 15:13:44] [Debug] [/dev/cdc-wdm0] Received message (translated)...
>>>>>>> QMUX:
>>>>>>>   length  = 294
>>>>>>>   flags   = 0x80
>>>>>>>   service = "dms"
>>>>>>>   client  = 3
>>>>>>> QMI:
>>>>>>>   flags       = "response"
>>>>>>>   transaction = 1
>>>>>>>   tlv_length  = 282
>>>>>>>   message     = "Get Software Version" (0x0051)
>>>>>>> TLV:
>>>>>>>   type       = "Result" (0x02)
>>>>>>>   length     = 4
>>>>>>>   value      = 00:00:00:00
>>>>>>>   translated = SUCCESS
>>>>>>> TLV:
>>>>>>>   type       = "Version" (0x01)
>>>>>>>   length     = 32
>>>>>>>   value      = 2E:32:2E:35:2E:31:2E:63:31:2D:30:30:31:31:30:2D:4D:39:36:33:35:54:41:41:41:41:4E:41:5A:4D:2D:31
>>>>>>>   translated = .2.5.1.c1-00110-M9635TAAAANAZM-1
>>>>>>> TLV:
>>>>>>>   type   = 0x10
>>>>>>>   length = 237
>>>>>>>   value  = 05:01:00:00:00:2F:42:4F:4F:54:2E:42:46:2E:32:2E:32:2D:32:2E:32:2E:30:36:30:30:35:3A:41:41:41:54:41:4E:41:5A:41:3A:43:41:52:4D:44:2D:45:56:2D:46:52:4D:57:52:32:02:00:00:00:29:54:5A:2E:42:46:2E:32:2E:33:2D:30:30:31:33:37:3A:4A:41:46:41:41:4E:42:41:41:3A:43:41:52:4D:44:2D:45:56:2D:46:52:4D:57:52:32:04:00:00:00:2A:52:50:4D:2E:42:46:2E:31:2E:33:2D:30:30:31:35:37:3A:41:41:41:41:41:4E:41:41:52:3A:43:41:52:4D:44:2D:45:56:2D:46:52:4D:57:52:32:09:00:00:00:30:4D:50:53:53:2E:42:4F:2E:32:2E:35:2E:31:2E:43:31:2D:30:30:31:31:30:3A:54:41:41:41:41:4E:41:5A:51:3A:43:41:52:4D:44:2D:45:56:2D:46:52:4D:57:52:32:0A:00:00:00:21:41:44:53:50:2E:42:46:2E:32:2E:34:2E:35:2D:30:30:30:37:33:3A:41:41:41:41:41:41:41:41:51:3A:43:52:4D
>
> [/dev/cdc-wdm0] Software version: .2.5.1.c1-00110-M9635TAAAANAZM-1
>
>
> TLV 0x10 looks like an array of type(?) and version string for different
> parts of the system, where "type" is a 32bit number with the values 1,
> 2, 4, 9 and 10 in my case. Do these match any known enums?
>
> The array starts with a one-byte number of elements, and each string
> value is prefixed with a one-byte length.  Trying to decode the above
> gives:
>
>  5 elements (05)
>
>   type   = 1 (01:00:00:00)
>   strlen = 47 (2F)
>   string = BOOT.BF.2.2-2.2.06005:AAATANAZA:CARMD-EV-FRMWR2 (42:4F:4F:54:2E:42:46:2E:32:2E:32:2D:32:2E:32:2E:30:36:30:30:35:3A:41:41:41:54:41:4E:41:5A:41:3A:43:41:52:4D:44:2D:45:56:2D:46:52:4D:57:52:32)
>
>   type   = 2 (02:00:00:00)
>   strlen = 41 (29)
>   string = TZ.BF.2.3-00137:JAFAANBAA:CARMD-EV-FRMWR2 (54:5A:2E:42:46:2E:32:2E:33:2D:30:30:31:33:37:3A:4A:41:46:41:41:4E:42:41:41:3A:43:41:52:4D:44:2D:45:56:2D:46:52:4D:57:52:32)
>
>   type   = 4 (04:00:00:00)
>   strlen = 42 (2A)
>   tring  = RPM.BF.1.3-00157:AAAAANAAR:CARMD-EV-FRMWR2 (52:50:4D:2E:42:46:2E:31:2E:33:2D:30:30:31:35:37:3A:41:41:41:41:41:4E:41:41:52:3A:43:41:52:4D:44:2D:45:56:2D:46:52:4D:57:52:32)
>
>   type   = 9 (09:00:00:00)
>   strlen = 48 (30)
>   string =  MPSS.BO.2.5.1.C1-00110:TAAAANAZQ:CARMD-EV-FRMWR2 (4D:50:53:53:2E:42:4F:2E:32:2E:35:2E:31:2E:43:31:2D:30:30:31:31:30:3A:54:41:41:41:41:4E:41:5A:51:3A:43:41:52:4D:44:2D:45:56:2D:46:52:4D:57:52:32)
>
>   type   = 10 (0A:00:00:00)
>   strlen = 33 (21)
>   string = ADSP.BF.2.4.5-00073:AAAAAAAAQ:CRM (41:44:53:50:2E:42:46:2E:32:2E:34:2E:35:2D:30:30:30:37:33:3A:41:41:41:41:41:41:41:41:51:3A:43:52:4D)
>
>
> Useful for the firmware update utilities?  This request seems to deal
> with the Qualcomm parts of the firmware, possibly using Qualcomm version
> strings?  Might make them comparable between vendors using the same
> chips?

Great finding! I don't recall having seen an enum like that one
though. They seem to be partition versions, though. ADSP, MPSS, RPM,
TZ and BOOT all look like some common partition names used in Android
devices?

-- 
Aleksander
https://aleksander.es


More information about the libqmi-devel mailing list