[Nokia 6 Guides, News, & Discussion] hikari_calyx:
This is what you definitely need to know if you plan to flash a Nokia or Sharp (not the Japanese exclusive models) Android phone.

The "Software Version" in "About Phone" (e.g.00CN_5_620_SP04)is not FIH firmware build version. The exact FIH firmware build version is located in systeminfo partition, or "fver" file in the OTA package for A-only partition based Android phones.

In many cases you can dial *#*#227#*#* to open "BBox" app and check out your firmware revision, take this one from my Nokia 2 for example:

[IMG="N2_Firmware_Build"]https://pic3.zhimg.com/80/v2-4c85a79eab23efed15da4e1f8b22bc26_hd.jpg[/IMG]

It's actual firmware revision is

E1M-0650-0-00WW-B01

In somecases, the selinux seems misconfigured for this app, so you can't check anything in BBox or only few of them.

You can also use these methods to check firmware build version:

Under ADB Shell or internal BASH:

$ cat /proc/fver

Or under fastboot/download mode:

./fastboot oem getversions

Let's divide it into 4 parts:

E1M - The FIH internal project code or codename. Unlike regular codename (in this example, dynamo), this FIH internal codename is widely used everywhere. A project code stands for a device, so keep it in your mind. Next time when I mentioned a FIH internal codename on Twitter, you need to react immediately - Oh this project code represents my device.

0650 - Firmware version number. This is what you will see such as V0.650. Or it will be combined with branch and revision part (e.g. 0650.B01), which I'll mention later. In some cases the first digit won't change when an Android revision upgrade releases, like Nokia 5/6 from Android 8.0 to 8.1.

First digit means the number of Android version it's running. In this example, Nokia 2 had Android 7.1 running when released and it's the first version, so the first digit is zero. And next version is Android 8.1, so it will change to 1 - for example, E1M-115P-0-00WW-B01.

Second digit means the major function revision. It changes a lot in China. Take Nokia 7 Plus in China for example, from B2N-213C-0-00CN-B04 (April 2018) to B2N-213E-0-00CN-B04 (May 2018), then B2N-233A-0-00CN-B03 (June 2018), B2N-233C-0-00CN-B01 (July 2018) and B2N-242C-0-00CN-B02 (August 2018).

Third digit means bugfix revision. This bugfix is mainly related to FIH itself, like driver issue.

Fourth digit means Android Security Patch Level revision. The base build usually ends with zero or an upper case letter. When a base build is stable enough, FIH will apply Android Security Patch Level with their own patch method and push it to users. But it's usually unrelated. Take Nokia X6 sold in China for example, from DRG-237E-0-00CN-B01 (August 2018) to DRG-237H-0-00CN-B01 (September 2018), then DRG-237I-0-00CN-B01 (October 2018). If you own a leak source of FIH internal OTA packages, you will notice few packages has unusual version, like NB1-5113-0-00WW-B01 (ends with 3) or PDA-209k-0-00CN-B01 (ender with lower case K) These updates are mainly internal minor fix updates and you may unable to get newer updates based on it, so be careful.

Don't care about the third zero.

00WW - Region code. This should be easy to understand. So far Nokia phones only has "00CN" and "00WW". Few variants like Sharp Aquos C10 (Europe Variant of Aquos S2 FS8010) uses "00E0". In fact this is the last 4 characters of the SKUID. I've attached the SKUID_Info.xml dumped from another FIH made phone with codename "ANT", hope this will help you understand the meaning of SKUID easier.

B01 - branch and revision. Recently, Branch A are mainly used on prototype devices, Branch B are mainly used on retail devices. In some cases, FIH decided to swith your current branch to B instead of A, but you can't switch branch B back to branch A due to different signatures.

I think this will help you understand your current build version.

Unhide follow to read known project codes.

FRT - Nokia 1 (The exact project code is frontier)

E1M - Nokia 2 (The exact project code is dynamo)

E2M - Nokia 2.1 (The exact project code is dynamo2)

NE1 - Nokia 3 (The exact project code is essential)

ES2 - Nokia 3.1 (The exact project code is essential2)

ROO - Nokia 3.1 Plus (The exact project code is rooster)

DPL - Nokia 3.2 (The exact project code is deadpool)

PAN - Nokia 4.2 (The exact project code is panther)

ND1/D1A - Nokia 5 (The exact project code is core)

CO2 - Nokia 5.1 (The exact project code is core2)

PDA - Nokia 5.1 Plus / Nokia X5 (The exact project code is panda)

D1C/PLE - Nokia 6 (The exact project code is plate)

PL2 - Nokia 6.1 (The exact project code is plate2)

DRG - Nokia 6.1 Plus / Nokia X6 (The exact project code is dragon)

TAS - Nokia X71 (The exact project code is taishan)

C1N - Nokia 7 (The exact project code is charm)

B2N - Nokia 7 Plus (The exact project code is onyx)

CTL - Nokia 7.1 (The exact project code is crystal)

PNX - Nokia 8.1 / Nokia X7 (The exact project code is phoenix)

NB1 - Nokia 8 (The exact project code is bang)

A1N - Nokia 8 Sirocco (The exact project code is avenger)

AOP - Nokia 9 (The exact project code is olympic beholder)

VN3 - Sharp Z3

SS2 - Sharp Aquos S2 SDM630 / Aquos C10 (The exact project code is sato)

SAT - Sharp Aquos S2 SDM660 (The exact project code is sato)

HH1 - Sharp Aquos S3 SDM630

SD1 - Sharp Aquos S3 SDM660

SG1 - Sharp Aquos S3 mini

After you understood the build version, let's talk about internal OTA update filename formats.

Internal OTA update packages leaked from either FIH OTA Server of my own private source has a fixed filename format for OTA packages.

Take the recently leaked OTA package for Nokia 5 and 6 for example:

Android Pie for Nokia 5 Differed OTA: ND1-612E-0-00WW-B01-558K-0-00WW-B01-update.zip

Android Pie for Nokia 6 Full OTA: D1C-612D-0-00CN-B01-update.zip

Here's the formula:

Differed OTA: [fih_internal_codename]-[fw_version_after_update}-0-[region_code_after_update]-[branch_and_revision_after_update]-[fw_version_before_update}-0-[region_code_before_update]-[branch_and_revision_before_update]-update.zip

Full OTA: [fih_firmware_build_version_after_update]-update.zip

It will make much more sense after I colored the filename.

With this specific file name format, DO NOT rename it casually, otherwise it can't be recognized with internal OTA update app - anyway, FIH will gradually remove the internal OTA update app in Nokia 7 Plus Global Variant, but it still worth preserves, and it will help you pick the correct OTA package for your current firmware version.

However, Google renamed these OTA packages to it's checksums, it will be harder to restore it as it's original filename provided by FIH.

So my thought is simple - you need to know the firmware build before update and the firmware build after update.

As I said, you can obtain your current firmware version by either dialing *#*#227#*#* or simply read systeminfo partition of your current slot - if you have root permission. But if it's an A-only device OTA package, you can check "fver" file in the package with any text editor - that's what it will be written to systeminfo partition.

At least you will know the FIH internal codename of your device.

When it's a full OTA, you can rename the filename as the formula shown above.

What if I don't know at all?

Simple. Rename it to

[fih_internal_codename]-999Z-0-00WW-B09-update.zip

Nothing can be newer than 999Z.B09 right?

After update finished, you can check exact firmware revision by method mentioned above.

Hope this will help you feedback issues from stock firmware or leaked OTA update easier.

Why did I write this topic?

Because many Chinese users only asked me "How to install B02 update on my device? " But they don't know B02 only means the branch and revision, not the firmware itself. At least please use this expression like this: "How to install D1C-612D build on my device? "