I sincerely hope you succeed. If I'll see any way I can help out, I'll try my 
best to do it.

Enrico


On Mon, 9 May 2022, Thilo-Alexander Ginkel wrote:

Date: Mon, 9 May 2022 20:13:43
From: Thilo-Alexander Ginkel <th...@ginkel.com>
To: Bjørn Mork <bj...@mork.no>
Cc: "ModemManager (development)" <modemmanager-devel@lists.freedesktop.org>,
    Aleksander Morgado <aleksan...@aleksander.es>
Subject: Re: Lenovo T99W175 / Foxconn SDX55 update on LVFS breaks FCC unlock

Hi Bjørn,

thanks for your reply! I don't think that the lenovo-wwan-dpr snap
implements the OTP unlocking mechanism.

Lenovo also just posted in their forum [1] that the new firmware
deliberately broke the unlock used by ModemManager. So that was
probably my last Lenovo laptop...

With regards to reversing the OTP mechanism: I made some first
attempts at decompiling / diffing the Windows driver using Ghidra, but
have to admit that I am not very experienced doing so and am somewhat
lost as to which driver file actually implements the unlocking.

Thanks,
Thilo

[1] 
https://forums.lenovo.com/t5/Other-Linux-Discussions/Finally-X55-5G-modem-works-under-linux/m-p/5082236?page=11#5639046


On Sun, May 1, 2022 at 6:31 PM Bjørn Mork <bj...@mork.no> wrote:

Bjørn Mork <bj...@mork.no> writes:

Wrt the implementation: Any protocol depending on closed binaries is
broken by design, without exception.  It doesn't matter whether you use
a "secret" algorithm or just store keys inside the binary. Anything that
was compiled can be decompiled.  Sure it can be obfuscated to make that
harder.  We all love a challenge :-)

And just let me prove that fact without even modifying one byte of the
code:

 root@miraculix:/tmp# cat /sys/class/dmi/id/product_family
 ThinkPad X1 Carbon 4th
 root@miraculix:/tmp# echo ThinkEdge > /tmp/product_family
 root@miraculix:/tmp# mount --bind /tmp/product_family 
/sys/class/dmi/id/product_family
 root@miraculix:/tmp# cat /sys/class/dmi/id/product_family
 ThinkEdge

And what do you think?  There goes the machine check....

 May  1 18:24:59 miraculix DPR_Fcc_unlock_service: main(): FCC unlock app 
started
 May  1 18:24:59 miraculix DPR_Fcc_unlock_service: get_product(): DT
 May  1 18:24:59 miraculix DPR_Fcc_unlock_service: MACHINE = [4] --- 
THINKEDGE_SE30 = [4]
 May  1 18:24:59 miraculix DPR_Fcc_unlock_service: main(): FCC unlock app exited

This doesn't work for me of course, only having the original EM7455
modem.  But I do note that the log output changed from -1 to 4, whatever
that means.  Previously:

 May  1 18:21:01 miraculix DPR_Fcc_unlock_service: MACHINE = [-1] --- 
THINKEDGE_SE30 = [4]

Something to try out on your X1E4, maybe?


Bjørn

Reply via email to