Nokia Lumia 630 (nokia-rm977)

From postmarketOS
Jump to navigation Jump to search
Nokia Lumia 630
Nokia Lumia 630 running Windows Phone 8.1
Nokia Lumia 630 running Windows Phone 8.1
Manufacturer Nokia
Name Lumia 630
Codename nokia-rm977
Released 2014
Category testing
Original software Microsoft Windows Phone 8.1
Chipset Qualcomm Snapdragon 400 MSM8226
CPU 1.2 GHz Quad-Core ARM Cortex-A7
GPU Qualcomm Adreno 305
Display 480x854 IPS
Storage 8 GB
Memory 512 MB
Architecture armv7
Non-Android based device
USB Networking
3D Acceleration
Mobile data



Users owning this device

  • Anthello147 (Notes: Boots Little Kernel through a Boot Shim)
  • Km2 (Notes: RM-976)

Current porting status

Successfully unlocked bootloader using WPInternals 2.9. I have added a BCD boot entry and used the Lumia 640 boot shim and LK, which seem to work (the kernel loads and displays a bunch of errors as well as trying to modify screen resolution). The next step is to test out a mainline Linux kernel on it, and perhaps try to get a Linux system running on the phone (just enough to at least telnet into it).

Refer to the Lumia 640 wiki page for a partially working Lumia msm8x26 kernel and instructions (it should also apply to 630, as it uses msm8226). I will test it later.

Manual installation


  • Microsoft Windows 8-10 with 10+ GB free space (virtual machines don't work!)
  • Required files (available at Lumia Firmware)
    • FFU for the Lumia 630 (RM977)
    • EDE for the Lumia 630 (RM977)
    • FFU for the Lumia 950 XL (RM1085)

Porting setup

You will need to get the product code of the phone from WPInternals (it should look something like 059W012). The RM977 files you get from Lumia Firmware should be those for your product code. Another important note is that the Nokia Lumia 630 encompasses both the RM976 and RM977 models (also note the distinction between the Lumia 630 and the Dual SIM variant, which encompasses RM978 and RM979), so when you use WPInternals to unlock the phone, check the model number, and when downloading the files from Lumia Firmware, download the files for your model number and product code.

It may be a good idea to flash the original RM977 FFU to ensure the phone's integrity before commencing critical operations. If you ever need to revert the phone back to its original state, you can always reflash the original FFU.

Unlocking the bootloader

The bootloader is unlocked using WPInternals. It will request three files. The original FFU is the RM977 FFU file. The "emergency programmer" is the EDE file. The last file required is the RM1085 FFU file. The RM1085 FFU is necessary because the original FFU doesn't have a "supported OS version" for analysis. When you are ready, press "Unlock" to unlock the phone.

After scanning for a flashing profile, the phone will enter Mass Storage Mode. To finish unlocking the phone you need to manually reset/physically reboot the phone. WPInternals should show you how to do this. After you manually reboot the phone it will continue trying to find the correct flash profile, and when it does, it will unlock the phone and reboot the phone into Windows. If this all goes successfully, your phone's bootloader has been unlocked.

Adding a boot entry for Linux

To add a boot entry the phone needs to be put into Mass Storage Mode. This is, again, achieved using WPInternals. In Mass Storage Mode, the phone will not charge, so make sure the phone is fully charged before putting it into Mass Storage Mode!

When the phone enters Mass Storage Mode, your computer will get access to all the contents of the phone's eMMC. Make sure not to modify any of the partitions preceding the EFI partition and not to modify the EFI partition unless these instructions specifically instruct you to. These partitions contain all the firmware for the phone and modification to them almost certainly result in a permanent brick of your phone. Unless you have equipment to directly access the eMMC, your phone will be unrecoverable.

Once the phone is in Mass Storage Mode, your computer will allocate a drive letter for the EFI partition. The boot entry database (BCD) is stored in E:/efi/Microsoft/Boot/, where E: is the drive letter assigned to the phone's EFI partition. If the BCD becomes corrupt, it will prevent the phone from entering Mass Storage Mode and in that case, the original FFU needs to be reflashed. Modification to the BCD needs to be done using the command line. Open Command Prompt as administrator and issue the command cd /d E:/efi/Microsoft/Boot/. Do not close it yet.

Theoretically a new BCD entry could be made for Linux and a boot entry selection menu could be brought up, but the phone has no arrow or enter keys. As such, a better solution would be to replace the Windows Phone Hard Reset EFI application on the phone to a boot shim which will load the Linux kernel. At the time of writing there haven't been any experiments with the real Linux kernel (the Little Kernel has been used instead) but it still proves that the Linux kernel can be put on the phone. So, first download the boot shim and Little Kernel for the Lumia 640. You will need to rename the ELF file to emmc_appsboot.mbn and the EFI file to resetphone.efi. Also, make a backup of E:/Microsoft/System32/Boot/resetphone.efi because it will be replaced. After a backup of the original Windows resetphone.efi is made, move the LK and boot shim to the folder which contained the original resetphone.efi.

Now the BCD database should be examined to find the GUID of the boot entry for resetphone.efi. To do this, in the Command Prompt, run the command bcdedit /store BCD /enum ALL. Scroll up and find the section where resetphone.efi is mentioned. Find the corresponding GUID and note it down, WITH the curly brackets. Execute the following commands, replacing "{GUID}" with the GUID you noted down earlier:

bcdedit /store BCD /set "{GUID}" "nointegritychecks" 1
bcdedit /store BCD /set "{bootmgr}" "nointegritychecks" yes

After doing this, you can manually reboot the phone, and, to boot into Little Kernel (and not Windows Phone), hold down the "Vol Down" button.

See also