We have moved to a new Sailfish OS Forum. Please start new discussions there.

HowTo (all Computer-users): Recover or reset a device that is stuck / in boot loop

asked 2014-01-31 23:19:49 +0300

this post is marked as community wiki

This post is a wiki. Anyone with karma >75 is welcome to improve it.

updated 2015-03-03 10:36:36 +0300

jovirkku gravatar image

Yesterday when updating my Jolla to latest OS I somehow managed (or there was an error on Jolla's / OpenRepos Warehouse part) to get my phone in a situation, where it was stuck and I couldn't do anything with it.

Now I'm not a linux expert nor do I know how to hack/code/use developer mode/etc. Fortunately by the kind help of @bockersjv I finally managed, after 3hrs, to reset my phone via telnet.

So there's detailed instructions below for Windows/Mac/Linux users on how to reset your Jolla to factory settings via telnet. I did some editing on the instructions so everyone should be able to use them quite easily now. Hopefully others will benefit from this. And PLEASE ASK if you need any help/advice.

EDIT: I changed this to "community wiki". Lets make this as easy to follow and precise as possible. Also we really need an option to make some posts sticky. And this should be one of them. @rainisto would it be possible?

EDIT 2 (November 2014): The guidelines of Jolla Care for using the Recovery Mode are here: https://jolla.zendesk.com/hc/en-us/articles/202208763 – including warnings on using the Recovery Mode with certain Sailfish versions.The Jolla Care guidelines are updated, the answers below are not.

EDIT 3 (March 2015): The guidelines of Jolla Care for using the Recovery Mode are here now: https://jolla.zendesk.com/hc/en-us/articles/204709607.

edit retag flag offensive close delete



where i can find the sailfish driver for windows 7 home premium ? i'm unable to install RNDIS driver

redge73 ( 2014-02-01 01:54:59 +0300 )edit

Please read the below instructions carefully: FIRST you have to put the phone in recovery mode, THEN connect it to PC and after that install RNDIS driver.

t0mps0 ( 2014-02-01 02:03:17 +0300 )edit

is already in recovery mode aka fastboot but the unkwown driver is not listed at all, i have Sailfish as unknown and RNDIS fail missing part inf. maybe is Windows 7 Home premium limit the usage of RNDIS driver ?

redge73 ( 2014-02-01 03:01:56 +0300 )edit

re-tag: added recovery-modeand factory-reset

foss4ever ( 2014-02-01 15:52:44 +0300 )edit

what do you do if you have a mac?

wisdomlight ( 2014-02-01 17:46:02 +0300 )edit

12 Answers

Sort by » oldest newest most voted

answered 2017-01-31 16:17:18 +0300

Dante gravatar image

Thanks, this worked fine for me. Before that I tried to follow an instruction to recover data, where I used Putty, and Putty asked for a Device Lock Code, which never was set, I am sure.I bought the Jolla second hand, but put it off and on very often and only needed the SIM card PIN code - what some people seemed not to believe and were not willing to help. But this instruction worked. And: All data is still there. So if somebody is stuck with the recovery instruction using putty, you may better skip it: https://jolla.zendesk.com/hc/en-us/articles/204709607-Jolla-Phone-How-do-I-use-the-Recovery-Mode-

edit flag offensive delete publish link more

answered 2016-12-28 12:31:30 +0300

Soy gravatar image

I opened 4) Shell, because I want to backup my data in the recovery mode. I followed this guide, but had a problem with "mount -o subvol=@home /dev/mmcblk0p28 /myhome" : https://jolla.zendesk.com/hc/en-us/articles/202514138 I tried the fdisk -l command and there was only "mmcblk1p1". And then I maked "mount  -o  subvol=@home  /dev/mmcblk0p28 /myhome", but I received "Segmentation fault", I changed the "mmcblk0p28" to "mmcblk1p1" and maked "ls -l /myhome" and "ls -l /mysd" and the content was the same, it was from my sd card. Then I tried it without my sd card. I maked fdisk -l and see only "mmcblk0p1" .So I tried "mkdir -p /myhome" and "mount -o subvol=@home /dev/"mmcblk0p1" /myhome". It comes "mounting /dev/mmcblk0p1 on /myhome failed: Invalid argument". It's not a new SD card, so I think it's mounted to /home/nemo/sdcard or something like that. I tried "mount /dev/sailfish/home /myhome" and it comes "mounting /dev/sailfish/home on /myhome failed: No such file or directory".

edit flag offensive delete publish link more

answered 2014-11-04 13:30:27 +0300

jovirkku gravatar image

updated 2015-03-03 10:33:18 +0300

The guidelines of Jolla Care for using the Recovery Mode are here:

We keep updating the article when there is a need to.

edit flag offensive delete publish link more



https://jolla.zendesk.com/hc/en-us/articles/202208763#33 those tiny little red words should be huge and on the top before anything else And the instruction below does not contain any warning about completing it with new versions of the OS.

Odorobo ( 2014-11-23 21:58:12 +0300 )edit

There is a warning right at the top:


If you are using Recovery Mode with SailfishOS,, or even, running some features of the Recovery Mode are bound to break your device.

Please read all instructions provided in this article carefully, and please start with reading through the Known Issues section below."

nthn ( 2014-11-24 17:17:28 +0300 )edit

There is no warning here.

Odorobo ( 2014-11-24 17:19:35 +0300 )edit


nthn ( 2014-11-24 17:20:47 +0300 )edit

In a post below.

Odorobo ( 2014-11-24 17:22:40 +0300 )edit

answered 2014-09-10 19:38:17 +0300

QQQOOO gravatar image

Hi, my phone boots as soon as I touch the screen. I tried connecting via telnet; the recovery program is v0.1 and does not have the option to recover from bootloop. I tried resetting to factory settings but I have no clue about the device lock code. Wat do? Is it possible to update the recovery tool to v0.2 via USB?

edit flag offensive delete publish link more



Unfortunatly if you dont remember your devicelock code then your only option is to contact care for getting the device reflashed.

rainisto ( 2014-09-11 00:44:11 +0300 )edit

How could you have "no clue" about the device lock?

Sthocs ( 2014-09-11 01:22:40 +0300 )edit

Hi. The "devicelock code" is the one you used to type before typing your PIN code. I also was troubled by this term, thinking it was like a device code you would have got relating to IMEI. But no, it's juste the code you could have set and entered each time you power on/go out of lock.

Okerampa ( 2014-12-20 12:34:20 +0300 )edit

answered 2014-08-06 21:08:22 +0300

Jaro070 gravatar image

How to install RNDIS driver on Windows 8.1 64-bit?

edit flag offensive delete publish link more

answered 2014-06-10 22:38:09 +0300

Malkavian gravatar image

updated 2014-06-10 22:49:38 +0300

How to connect to internet from your mobile in Recovery mode

(for (un)installing packages with zypper for example)

If the installation of some patched package or whatever bricked your phone, before reseting it to factory settings maybe you would like to try to reinstalling the official package and then maybe unbrick it. It worked for me after installing a patched lipstick (needed in the past for patchmanager) after update (Saapunki).


  1. As Douglas Adams said: DON'T PANIC. Maybe you can repair it without losing anything. I am not responsible for making more damage to your device, I'm just trying to help. If you decide to follow this guide is your responsibility. Don't complain if it explodes and burns your dog.
  2. A computer with GNU/Linux (Windows and MacOS should work too) and (obviously) an USB port.
  3. Software for converting your PC in a router (for GNU/Linux iptables is included with the kernel).
  4. Knowing to use the GNU/Linux terminal.


As described above enter

Recovery mode ---> Shell

As described above chroot to Sailfish filesystem:

mkdir /mnt/rootfs
mount /dev/mmcblk0p28 /mnt/rootfs
chroot /mnt/rootfs

(Then I mounted proc sysfs and /dev/pts but probably not needed):

mount /proc

mount /sys

mount /dev/pts

Do in the computer:

Then, to get Internet in the Jolla in Recovery mode in my GNU/Linux I activated package forwarding and a rule of iptables to route the packages received on the computer to Internet (so I converted my computer in a router. There is software to make this also on Windows and maybe on MacOS).

sysctl net.ipv4.ip_forward=1 
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Again in SailfishOS:

Add in sailfish almost one nameserver (DNS) to /etc/resolv.conf because if not, it can't resolve repo names to IPs (I wrote the Google one in this example, add wich you want, you can add more than one repeating the command with another one):

echo "nameserver" >> /etc/resolv.conf

Tell Sailfish that net packages for Internet must go through the computer (which we previously had converted in a router. In this example I assumed that Sailfish IP is and computer IP is

route add default gw

Profit! All is ready, you are in your SailfishOS filesystem and you have Internet connection.

In my case, I installed normal lipstick-qt5 so it removes patched one, with: zypper in -f lipstick-qt5

After finishing:

If you mounted sysfs proc and /dev/pts from the chroot, umount them:

umount /proc

umount /sys

umount /dev/pts

Exit from the chroot:


Here I couldn't umount /mnt/rootfs because /sbin/busybox-static and other processes were using it (info got by "lsof /mnt/rootfs" command). I done "killall -15 busybox-static" and telnet recovery mode closed ( I made a stupid killall) and phone rebooted. So maybe you just need to...

Exit the shell and reboot the phone (yes, "exit" command again):

Write 2 and press enter to get option 2 (Reboot) of the recovery menu.

Pray to Saint Ignucius

Hope yours now works!!! Mine did without having to reset it :)

This was originally written at http://talk.maemo.org/showthread.php?p=1428999#post1428999

Microsoft is to operating systems and security what McDonald's to gourmet food and healthy nutrition.
(Javier Ortega Conde (Malkavian))

edit flag offensive delete publish link more



Thanks, this saved me(so far) from resetting to factory default after failing to upgrade to Vaarainjärvi.

I entered the rescue mode, used the shell and I'm now running zypper update... fingers crossed :)

Later edit: it eventually worked, I just had to remove some files and do some rebalancing tricks on btrfs, since it reported out of disk space errors although I had like 4GB of free space.

The phone rebooted and everything is now back to normal.

In addition to the instructions, before entering the chroot I had to bind-mount /dev inside it so I could mount /home, where I had to delete a bunch of files from /home/nemo/.cache in order to get the btrfs rebalancing some space to move things around.

before entering chroot: - mount /dev -o bind /mnt/rootfs/dev

in chroot: - looked at /var/log/zypp/history and saw some disk space errors like: # error: unpacking of archive failed on file /usr/bin/nmap: cpio: rename failed - No space left on device - df showed lots of disk space, so this was clearly btrfs metadata getting full. - mount /home - deleted some files from /home/nemo/.cache/ (mostly browser caches, etc) - btrfs balance start -dusage=55 / kept doing this with larger values(65,75,etc.) until it moved at least a couple of chunks around - zypper update (a few times)

then the phone needed to be rebooted and it fully recovered after the reboot.

Cristian Magherusan-Stanciu ( 2014-12-19 23:59:54 +0300 )edit


Some additionnal precisions about your procedure:

  • when modifying the DNS with echo "nameserver" >> /etc/resolv.conf, you must ensure that the line nameserver is RIGHT AFTER nameserver On my side, nameserver was added after nameserver ::1, causing the DNS resolution to fail.

  • Also, if you encounter any SSL issues when doing a zypper in, it is because your date is not valid. To resolv this, simply type date -s 05/13/2017, where 05/13/2017 is the today's date.

  • If you are on windows, you can share the connection by going to your Network card properties -> sharing tab.

louisbob ( 2017-05-13 13:45:55 +0300 )edit

I could not get this to work with a Jolla C in recovery mode and a Linux computer. I've done exactly as described in the guide (except I used mount /dev/mapper/sailfish-root /mnt/rootfs instead of mount /dev/mmcblk0p28 /mnt/rootfs since my Jolla is a Jolla C), everything seemed to go well and I got no errors, but in the end I still have no Internet connection from the recovery shell.

Any ideas? My Jolla C is bricked since yesterday already after the last early updated failed, and I would like to try checking package issues with zypper before having to do a factory reset.

Help would be very much appreciated! I'm back on my Jolla 1 in the mean time, a phone that I love very much for its form factor, but the Aliendalvik version is too outdated to run some applications that I need daily (no alternatives, not even websites).

Kabouik ( 2017-07-27 04:20:18 +0300 )edit

answered 2014-04-26 12:46:58 +0300

voggy gravatar image

My Jolla is in a boot loop, but i cannot connect via telnet. I am on a mac, downloades horndies, followed the instructions ... doesn't work with telnet or telnet, ... anyone has a idea?

edit flag offensive delete publish link more


In my case, it helps to hook the phone up to the charger. This stops the boot loop, and then taking out the battery for at least 10 mins makes it more stable. I also do another full battery drain, take out battery for 10 mins again, then a full charge. This usually helps for about two weeks.

bilgy_no1 ( 2014-04-26 21:07:58 +0300 )edit

answered 2014-02-15 20:24:28 +0300

cquence gravatar image

I have set a device lock at some point but this option was disabled and I wasn't using it. Now I got stuck for 24hrs after five attempts of wrong codes. Any ideas on what to do while waiting for the next 24hrs to try again?

edit flag offensive delete publish link more

answered 2014-02-08 19:34:07 +0300

Kollin gravatar image


> Push and hold the volume DOWN button now push and hold the power button until the phone vibrates then release all buttons. And even removing the battery did not work then:

Push and hold the volume UP button + the power button until the phone vibrates two or three times, then without releasing ANY button slide your finger to volume DOWN key and hold until Jolla logo stays on screen permanently, then you are ready to plug the usb cable and go like it's described above.

edit flag offensive delete publish link more


Kollin, this not help for the case Jolla Recovery v0.1 and SFOS or "Push and hold the volume UP buton + power button until the phone vibrates two or three times, then without releasing ANY button slite your finger to volume DOWN key and hold until Jolla logo stays on screen permanently, then you are ready to plug the usb cable..." or maybe a failed the steps while move finger from UP to DOWN without release finger. Thank you anyway..

redge73 ( 2014-02-09 04:26:08 +0300 )edit

What also works is keeping the down key pressed and plugging the USB in.

Philippe De Swert ( 2014-02-28 23:47:59 +0300 )edit

If your battery is flat, and plugging in USB triggers boot loop and not charging, then you have to make sure you plug the USB to power and not to a laptop/PC while holding down power + volume down. Otherwise you end up in fastboot mode and not recovery mode, so USB networking will not work.

asdfasdf ( 2014-03-09 14:12:47 +0300 )edit

I now managed to get my phone in recovery mode but it doesn't show up as RNDIS in Devicemanager. Actually it doesn't show up there at all. But Windows knows it's plugged in because it gives me the option to eject a device called "Recovery". And when I try to use telnet it just says connection time out. If this is important, I got the bootloop after doing a Factory Reset from settings to be able to start fresh after not using the phone for a few months.

JakeTheChangeling ( 2016-03-23 09:07:59 +0300 )edit

answered 2014-02-02 07:26:13 +0300

abc123 gravatar image

updated 2016-10-25 12:59:50 +0300

cos gravatar image

Linux users: How to solve "Jolla reboot loop / phone stuck" problems.

I will will add Linux instructions only to make this complete. In linux you don't need to do much to get it to work, actually everything should work out of the box.

  • Before we start the device should be turned off.
  • Push and hold the volume down button now push and hold the power button until the phone vibrates then release all buttons.
  • Plug in the USB cable into the computer and the Jolla JP-1301.
  • Your device should show up as an ethernet device for me it was eth2
  • If you are using a modern desktop Linux, the device should be configured automatically and you can now skip next step and move to telnet command.
  • Connect by DHCP, how you do this is up to you and provided tools on your Linux distribution. (dhcpcd, dhclient, network-manager)
# dhcpcd eth2
dhcpcd[12401]: version 6.0.5 starting
dhcpcd[12401]: eth2: soliciting an IPv6 router
dhcpcd[12401]: eth2: rebinding lease of
dhcpcd[12401]: eth2: NAK: from
dhcpcd[12401]: eth2: soliciting an IPv6 router
dhcpcd[12401]: eth2: soliciting a DHCP lease
dhcpcd[12401]: eth2: offered from
dhcpcd[12401]: eth2: leased for 864000 seconds
dhcpcd[12401]: eth2: adding host route to via
dhcpcd[12401]: eth2: adding route to
dhcpcd[12401]: forked to background, child pid 12443
  • telnet
     Jolla Recovery v0.2     
Welcome to the recovery tool!
The available options are:
1) Reset phone to factory settings
2) Reboot phone
3) Bootloader unlock [Current state: locked]
4) Shell
5) Try btrfs recovery if your device is in bootloop
6) Exit
Type the number of the desired action and press [ENTER]:
edit flag offensive delete publish link more



Thanks for the Linux howto! My device went suddenly into the boot loop last night (I was sleeping so did not cause it), luckily a sixth sense woke me up to check the phone, so I could set the morning alarm to my old N9, and didn't miss a meeting with my boss... =) I will try to reset my phone this evening with these instructions. Edit: Worked on the second try, and my Jolla is back in business. Thanks again!

tajunta ( 2014-02-06 12:19:06 +0300 )edit

Some distros have started using systemd which issues unique interface names not eth0 eth1 etc. The interface name can be found by issuing the command:

sudo /sbin/ifconfig -a

find the device interface from the list, in my case it was enp4s0u1. Then another way of connecting is by typing:

sudo /sbin/ifconfig enp4s0u1 netmask up

Obviously you need to replace enp4s0u1 with the unique name in your case.

rgp ( 2014-02-14 00:25:30 +0300 )edit

@rgp you should only need to send an dhcp request, setting static ip is optional. EDIT: saw that i misread and that it was another way of connecting.

abc123 ( 2014-02-14 19:42:03 +0300 )edit

Yes, I only saw your instructions when I thought I could add my tiny bit to the documentation, I'd already found my method from TMO.

rgp ( 2014-02-14 22:15:38 +0300 )edit

In kubuntu 14.04 network-manager auto-configures jolla. Konsole, telnet* and done.

DarkWhite ( 2014-09-17 00:51:47 +0300 )edit
Login/Signup to Answer

Question tools



Asked: 2014-01-31 23:19:49 +0300

Seen: 50,465 times

Last updated: Jan 31 '17