Or, maybe, there is a another check in firmware.
I also recently reversed and patched this firmware (although I just rewrote function 0x1002608 instead of jmping the written function further). It seems to me that the id is the primary decryption of both the payload and further code. I could not...