So you want to test a new custom firmware and enjoy all the features that Nokia won't give you, but you have no idea on how to apply a Custom Firmware in your phone? This is how you'll do it. In this guide we are going to show you how to download an original firmware from Nokia's servers and guide you into flashing your phone with JAF even if it is dead, so this guide is helpfull not only for applying a CFW but also reviving your dead phone in case something bad happened after flashing it the wrong way.

Our guide will be in depth and as easy as possible to follow. In the end you'll get an overview of what's happening and how flashing works so be carefull on every single step as they are really helpful in case you want to become a firmware cooker.

Once more I don't take any responsibility for any damage caused to your phone by following this guide. DO IT AT YOUR OWN RISK.

There are three ways to flash your phone. The most common in case you want to flash an original firmware is through Nokia's Software update application or Nokia (OVI) Suite. This method automatically downloads the firmware from the internet and doesn't give you any option so it's useless for moders. The second is through Nokia's official application Phoenix that is given in every Nokia Service Center. Phoenix is a really good application not only for flashing but also for testing the devices for any hardware faults. Unfortunately Phoenix is not the best software for flashing coocked firmwares as there are CRC checksums on the files that will not let flashing of unauthorised files like all the CFW that have a modified CORE or sometimes even ROFS. So the best software for our needs is "Just Another Flasher" aka J.A.F. a 3rd party app that doesn't limit us on anything.

You will need the following software:
Navifirm Ex version 1.5 (mediafire mirror)
JAF with PKEY emulator and updated ini file (mediafire mirror)

  • STEP 1: Download your firmware with Navifirm

    This step can be bypassed in case you have all the needed files to flash. That's also the case with Phorepoc's firmware as everything is given in the rar file. But for everyone else who either want to apply the original firmware or have a custom firmware that only has one file (ROFS in most cases) this step is obligatory.
    • Picking the appropriate firmware for your phone:

      1. After starting navifirm on the left panel we choose our phone model. We should choose the exact RM-XXX that is written on the sticker of our phones bellow the battery. To make our life easier we can filter the results by typing our model in the box on the top of the list.

      2. After that the next panel on the right shows us the available versions. We pick the appropriate and always equal or higher than the version already installed in our phones. PICKING A LOWER VERSION WILL BRICK OUR PHONES (Downgrading can only be done with special hardware equipment).
      3. After clicking the appropriate version the 3rd panel will show us all the available variants. The code of your variant installed on your phone can also be seen on the sticker bellow your battery. Again you can filter ther results by typing either the country or the code in the box above the list. You are not obligated to choose the exact same variant that is installed in your phone. This way you can change the languages of your phone. Flashing the phone with a different variant won't change the product code of your phone so if a newer firmware is released, upgrading the classic way (through Nokia software updater or Ovi/Nokia Suite) will flash the firmware with the product code of your phone and not of the installed firmware. JAF gives you an option to change the product code permanently though.
    • Download the files:

      1. After choosing the variant, the last panel will show us all the files needed for flashing our phones. Wick tick every single one of them and then click on the "Add to Download Task" button.
      2. A new window will open that will let us choose where to download the files. It is wise to create a clean folder in our computer for these files. After that a new window will open with the download task manager.

What are all these files?

Well before going any further it is wise to have a look on some of these files NaviFirm just downloaded and understand their content. The most important file is the Core file and most probably it is the one lasting with ...prd.core.C00 e.g. the N97-1 has a Core file named "RM-505_22.0.110_prd.core.C00". This file is encrypted and it is really hard to be modified by cookers. Until a few months ago the encryption was unhackable but this changed and let moders make firmware porting a reality. The reason this file is so crucial is because it contains alot of the system files, so the total size proportion of the firmware was on this file making things really hard. What is common due to its dangerous nature when moding is to repartition it to the minumum size it can be leaving only some crucial files and move all the rest files on ROFS.We should also note that this file is the same on all variants of a phone firmware.

There are 1-2 files named ROFS that represent most of the applications, themes, sounds and in general every app installed in the firmware. These files are different in each firmware variant depending on the languages and model. ROFS2 is the most important and it usually ends with ...prd.rofs2.VXX (where XX is the language code) e.g. in a greek Nokia N97 the file is "RM-505_22.0.110_prd.rofs2.V09".

Sometimes there is another file, the ROFS3 ending with ...prd.rofs3.fpsx. This file is usually see in minor updates of firmware. This way nokia reduces the size of needed files needed to be downloaded in firmware updates as there is an hierarchy between this files. Being more specific when a file co-exists in all these files then the last file on the last ROFS will overwrite the previous. This was a key feature of Nokia's firmware update system that let modders do all the changes they want no matter where the files are stored.

Lastly there is a file with a name lasting with ...uda.fpsx. This file contains all the data that will be copied on the C drive of the phone. That means that after flashing our phones the phone memory will be formated no matter if the "Factory set" option is selected in JAF and then the image of this file will be cloned on the phone memory. This is the only file that we can safely rename to bypass the format of the phone memory and keep the data our phone had BUT it is wise to do a hard reset in major updates or when applying ported firmwares where it is mandatory to do a hard reset. Also there are some old methods of hacking a phone using an original firmware with no modifications that use this file only to apply Rompatcher. Unfortunately using such hacking methods if we do a hard reset of the phone manually Rompatcher will be lost...

  • STEP 2: Flashing your phone

    • Preparing JAF

      1. After Installing JAF we extract the OGM_JAF_PKEY_Emulator_v 5.exe file to the place JAF is installed (default is C:\Program Files\ODEON\JAF or C:\Program Files (x86)\ODEON\JAF in 64bit OS). We also extract the updated jaf_nok4models.ini file that contains all the new Nokia models replacing the existing one.
      2. In case we use Vista or Windows 7 we right click on the "OGM_JAF_PKEY_Emulator_v 5.exe" file and then on the Compatibility tab we enable the Windows XP compatibility mode by ticking on the "Run this program in compatibility mode for:" and sellecting "Windows XP (Service Pack 3)" on the drop down box below. We also enable the option "Run this program as an administrator" in the "Privilege Level" group of options. We then click on the OK button on the bottom to save our settings.

      3. Using Windows Explorer we open our Program Files folder (Program Files (x86) in 64bit systems) and we create the following subfolders -> "..\Nokia\Phoenix\Products\RM-XXX" (where XXX is the model of our phone). The Nokia Folder already exists by the Nokia (Ovi) Suite/ PC Suite installation. The other two subfolders may only already exist if we have installed Nokia's Phoenix application. So for example in a 64 bit Windows system if we want to flash a Nokia N97-1 (classic) we create the following path -> "C:\Program Files (x86)\Nokia\Phoenix\Products\RM-505"
      4. Now we move all the files we previously downloaded with Navifirm on that folder we've just created.
    • Executing and Setting up JAF

      1. We double click (execute) "OGM_JAF_PKEY_Emulator_v 5.exe" file and on the windows that opens we ensure that the "Random PKEY Raskal SN" option is checked in the "STEP 1" group and the "JAF (main)" option is checked in the "STEP 2" group. We then click the GO button in the "STEP 3" group.

      2. The JAF Full PKEY emulator will start the emulation and will then autoexecute the JAF application. DO NOT CLOSE THE JAF PKEY EMULATOR during the whole flash procedure else JAF will be terminated.

      3. If an error message pops up warning us about a BOX Driver not installed, this is expected, just click ok.

      4. After starting JAF we go on the BB5 tab and we click click on the "Manual Flash" and "Dead USB" Options. It is also good to have the "Normal Mode" Option enabled so the phone will reboot in Normal mode after flashing. All other options must be unticked.

      5. We tick on the "Use INI" option and we wait until a new window will pop up that will let us chouse our phone model.

      6. After selecting our phone model, JAF will automatically search for the files in the Phoenix folder. The "Status and Results" text box will show us what files will be flashed. In case a file is not found (like the APE VARIANT which is the C drive in our phones) the top buttons will be dark green. Else they will be light green and pressed.

      7. We click the "FLASH" button to start the flashing procedure. JAF will inform us that we should not flash the phone with a version lower than the already installed.

    • Flashing

      1. Before clicking yes we connect the phone to our computers through usb. In case the USB connection of the phone is also a charging port like in the N97 we have to remove the battery.
      2. After connecting the phone (and removing the battery if it is needed) we press yes. JAF will wait for the phone to be connected and be turned on. On most phones that cannot be charged through USB you just press the power button slighty (not a deep press as it will boot normally and not in ROM mode), on phones like the N97 where the phone charges through USB we just put the battery on the phone. Alternatively we can just connect the phone just after accepting.

      3. In case JAF won't find any phones, this is most probably caused by windows being slow in installing the drivers the first time. The phone will boot normaly if it takes more than it should and so JAF won't find it. In this case you have to turn off your phone and try again. Dissabling "internet driver searching" will also help windows install the drivers faster. You may need to try repeating the last 2 steps a few times the very first time you plug the phone in a specific USB for flashing through JAF (flashing uses different drivers than OVI/PC Suite).

      4. After JAF successfully identifies our phone, it will change the mode to flashing and the procedure will start.

      5. The first step will erase some blocks of the firmware in our phones.

      6. Next the firmware will be written into our phones. A green bar on the bottom shows us in what point the flash procedure is. DO NOT DISCONNECT YOUR DEVICE DURING THE LAST TWO STEPS ELSE YOU WILL BRICK YOUR PHONE.

      7. In the end JAF will beep three times and the phone will start normally. An example output at the "Status and Results" box of a successful flash would be something like this:
        JAF version 1.98.62
        Detected PKEY: 90009699
        Card life counter: 99.99%
        P-key nokia module version 01.02
        USB Cable Driver version:
        Changing mode...Done!
        MCU Flash file: NONE
        PPM Flash file: NONE
        CNT Flash file: NONE
        APE Variant file: NONE
        Searching for JAF saved location of ini...
        Checking path: C:\Program Files (x86)\Nokia\Phoenix\Products\RM-505\

        Searching for default location of ini...
        Checking path: \Products\RM-505\
        Searching for JAF saved location of ini...
        Checking path: C:\Program Files (x86)\Nokia\Phoenix\Products\RM-505\
        Scanning ini files...
        Searching for default location of ini...
        Checking path: \Products\RM-505\
        Checking path: C:\Program Files (x86)\Nokia\Phoenix\Products\RM-505\
        MCU Flash file: C:\Program Files (x86)\Nokia\Phoenix\Products\RM-505\RM-505_22.0.110_prd.core.C00
        PPM Flash file: C:\Program Files (x86)\Nokia\Phoenix\Products\RM-505\RM-505_22.0.110_prd.rofs2.V01
        CNT Flash file: C:\Program Files (x86)\Nokia\Phoenix\Products\RM-505\RM-505_22.0.110_C01_prd.rofs3.fpsx
        APE Variant file: C:\Program Files (x86)\Nokia\Phoenix\Products\RM-505\RM505_507_22.0.110_uda_1_001.uda.fpsx
        Languages in ppm: English,Russian,Netherlands,French,
        Detected P-KEY: 90009699
        P-key nokia module version 01.02
        Init usb communication...
        Searching for phone...Found
        Sending RAW loader...
        Using {=?Y012.005
        Elf2flash 09.24.000
        CMT RAW loader...
        Patching RAW boot step2...
        Sending RAW Loader...
        ....................Loader Sent!
        Stage 2 starting................PUBKEYS already sent...
        PUBKEYS already sent...
        PUBKEYS already sent...
        PUBKEYS already sent...
        ..........Phone prepared OK!
        Waiting for the phone to boot...
        Searching for phone...
        Status byte: 8000
        Selecting CMT flash...
        Result: 0000
        Phone is in flash mode...
        CMT blocks: 688, APE blocks: 0
        Erasing cmt...
        Processing C:\Program Files (x86)\Nokia\Phoenix\Products\RM-505\RM-505_22.0.110_prd.core.C00...
        Erasing cmt zone 00040000 - 00082FFF ... Erase result: 0000
        Erasing cmt zone 00083400 - 003FFFFF ... Erase result: 0000
        Erasing cmt zone 00800000 - 00D5FFFF ... Erase result: 0000
        Erasing cmt zone 00D60000 - 0AB9FFFF ... Erase result: 0000
        Partition result: 0014
        Processing C:\Program Files (x86)\Nokia\Phoenix\Products\RM-505\RM-505_22.0.110_prd.rofs2.V01...
        Erasing cmt zone 01B20000 - 0AA9FFFF ... Erase result: 0000
        Send CMT CFG...

        Writing cmt...
        Processing C:\Program Files (x86)\Nokia\Phoenix\Products\RM-505\RM-505_22.0.110_prd.core.C00...
        Sending CMT HASH for ADA
        Sending CMT HASH for KEYS
        Sending CMT HASH for PRIMAPP
        Sending CMT HASH for RAP3NAND
        Sending CMT HASH for PASUBTOC
        cmt->PAPUB_CERTIFICATE_DATA_BB5 block detected, sending...
        cmt->PAPUB keys already sent...
        cmt->PAPUB keys already sent...
        cmt->PAPUB keys already sent...
        cmt->PAPUB keys already sent...
        Sending CMT HASH for SOS*UPDAPP
        Sending CMT HASH for SOS*DSP0
        Sending CMT HASH for SOS*ISASW
        Sending CMT HASH for SOS+CORE
        Sending CMT HASH for SOS+ROFS1
        Processing C:\Program Files (x86)\Nokia\Phoenix\Products\RM-505\RM-505_22.0.110_prd.rofs2.V01...
        Sending CMT HASH for SOS+ROFS2
        Write result 27: 1701
        Finishing CMT session...
        Restarting CMT...
        Pooling phone...
        MCUSW: (null)
        APESW: (null)
        VariantSW: (null)
      8. In case the phone is not booted but you have a local mode screen just remove the battery of your phone and put it again back and press the power button. The first boot might take a few minutes to load so don't panic if you have a white screen for too long.
      9. Enjoy your new firmware.
  • In case this guide seems too complicated you can always follow any of the video guides in youtube that we are providing below.