In simple terms ...
The ULK definition is one of the rules imposed by @The_Ripper and @Telesat to easily recognize the kernel version inside file patch.e2 container and being able to manage it from their AZUp Tool !!!
For a more professional control ... for example ... you could discriminate (FNIB) magic header that on unlicensed kernel version (vmlinux_xload.zbf) start always from offset address x00000090h ... while ... on the licensed version (xrpc_xload_vmlinux_ES4_prod.bin) at this offset address begins data area for Hash customer key definitions (Sigma SDK) for SoC's XRPC control & decrypt kernel on VRAM.
Another thing to be recommended for the MAT tool ... before nor-flash writing process ... you always have to check that PLL divider clock is set to normal (SoC not overclocked) otherwise you risk corrupting the data on the nor-flash ... in this case the receiver can be recovered only with Jtag procedure or replacing nor-flash with other one already programmed !
On XENV data environment (setxenv):
XENV Block "Overclocked" PLL clock divider settings
XENV Block "Normal" PLL clock divider settingsCode:(0x00) 4 x.pll3 0x01020065
XENV Block "Normal" PLL clock divider variable set:Code:(0x00) 4 x.pll3 0x01020057
Obviously, in the case, the new setting will be effective only after a reboot of the receiver !!!Code:setxenv -b x.pll3 0x01020057
Ciao ...