[Huawei P9 Lite ROMs, Kernels, Recoveries, & Other ] k1ll3r8e:
Just as Info

[MENTION=7183558]fireburner-de[/MENTION]

I just write a model to read the oeminfo, regarding ur question if something will change in the oeminfo and ur post about the update issue, i have found the following:

My just created enum for the "ids" which appear in the oeminfo

public enum IDOEMID : int
{
///<summary>
/// ? (signed)checksum
///</summary>
SCS1 = 8,

///<summary>
/// custom.bin content
///<para/>hw/eu
///</summary>
CUSTOM = 18,

///<summary>
/// ? trigger
///<para/>0
///</summary>
T1 = 66,

///<summary>
/// ? byte array
///</summary>
BA1 = 67,

///<summary>
/// Recovery version
///<para/>rescue:VNS-LxxCxxxBxxx
///</summary>
RECOVERY = 68,

///<summary>
/// ? checksum (md5)
///</summary>
CS1 = 74,

///<summary>
/// ? mini data blob
///<para/>VNS-L31C432B380
///<para/>...
///</summary>
MDB1 = 78,

///<summary>
/// ? (signed)checksum
///</summary>
SCS2 = 83,

///<summary>
/// ? mini data blob
///</summary>
MDB2 = 87,

///<summary>
/// ? checksum (md5)
///</summary>
CS2 = 90,

///<summary>
/// ? mini data blob
///<para/>HUAWEI VNS-L31
///<para/>...
///</summary>
MDB3 = 91,

///<summary>
/// ? byte array
///</summary>
BA2 = 93,

///<summary>
/// Device Model
///<para/>VNS-Lxx
///</summary>
MODEL = 97,

///<summary>
/// ? trigger
///<para/>PRF
///</summary>
T2 = 98,

///<summary>
/// ? mini data blob
///</summary>
MDB4 = 99,

///<summary>
/// ? mini data blob
///<para/>VNS-L31C432B380
///<para/>...
///</summary>
MDB5 = 101,

///<summary>
/// ? byte array
///</summary>
BA3 = 102,

///<summary>
/// ? integer
///</summary>
INT1 = 104,

///<summary>
/// ? integer
///</summary>
INT2 = 105,

///<summary>
/// ? integer
///</summary>
INT3 = 106,

///<summary>
/// ? integer
///</summary>
INT4 = 107,

///<summary>
/// ? mini data blob
///<para/>VNS-L31C432B370
///<para/>...
///<para/>fe80::1 wlan0
///</summary>
MDB6 = 111,

///<summary>
/// ? web handle token
///<para/>&token=E57F846F46BCA2B9&hmac=38EB960DBCF5BD6598A9E8324AAB45F78FD359B8D70D07C7ED486FD99F4182A3
///</summary>
TOKEN1 = 166,

///<summary>
/// ? mini data blob
///<para/>7.0 8ewhat
///<para/>...
///</summary>
MDB7 = 173,

///<summary>
/// ? big data blob
///<para/>size ~ 4,1 MB
///</summary>
BDB1 = 351,

///<summary>
/// ? big data blob
///<para/>size ~ 4,1 MB
///</summary>
BDB2 = 352,

///<summary>
/// ? big data blob
///<para/>size ~ 4,1 MB
///</summary>
BDB3 = 353
}

If u have a look at it, u'll see some "examples" data "out cuts", which shows which values the ids can have.

Soo, for example the ids 68, 78, 99, 101, 111, 166, 173 and maybe some checksums will be modified.

And about the prob with the "no updates", maybe the id 166 is the problem... But i don't know... If i find more out what the values are for, i'll post here an update or edit this post.

Edit(1):

How to read the file or identify the fields/values u can do the following:

1) locate the 1st "chunk", normally the 1st "chunk" appear on address "7000H" or pos. 28672

(Block size is 4096 bytes)

2) read the header, the header of an chunk is 28 bytes and look like this:

OEM_INFO[int32][int32][int32][int32][int32]

00007000h: 4F 45 4D 5F 49 4E 46 4F 06 00 00 00 08 00 00 00 ; OEM_INFO........
00007010h: 01 00 00 00 20 00 00 00 03 00 00 00 ; .... .......

The integers are formatted as "little-endian" so, if u read them by hand, u should reverse them before u cast them.

Here is a short explain about the field, what i found out or think they are for:

OEM_INFO = identifies that here is an datablock(?)
[int32] = data block version(?) on all tested oeminfos still "6"
[int32] = data block id the id's mentioned a bit earlier
[int32] = data block type (?) so far i have seen only -1, 1, 8101
[int32] = data length in bytes
[int32] = modification setter (?) will be in-/decreased in the "2cd" block copies

Also, if u read it with code, here is what i found out about the padding inside a data block:

if the block is from "type" -1 the padding before the value is 512 bytes (0xFF), so without the header we have 484 bytes of padding (0xFF). The same goes for the "type" 1. But, i'm not sure about "type" 8101, because, the 6 blocks have 484 bytes 0x00 or 0xFF but the normal "padding" is 0xFF... So i'm not sure if the 0x00 is meant as padding for the value or padding which the value brings. So i don't skip here the 1st 484 bytes just to be sure.

***

Frohe Pfingsten! ;)

***

Regards,

Sebastian