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 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

answered 2014-01-31 23:44:33 +0300

bockersjv gravatar image

updated 2014-02-28 00:18:44 +0300

jgr gravatar image

Windows 7 and Mac users: How to to solve the Jolla "reboot loop" / "phone is stuck" problem

What you need

  • USB cable between PC and Jolla handset
  • Windows PC: Installed telnet (see below)
  • Mac PC: Installed Terminal (to be used as telnet client)
  • RNDIS driver


Windows: Enable telnet

Telnet is not installed by default so proceed as follows:

  1. Open Control Panel
  2. Click on “Programs”
  3. Select “Turn Windows Features on/off” (in the vertical bar to the left)
  4. Check-mark (tick) all telnet features.
  5. Click [Ok].

Access the Jolla recovery tool

  1. Mac: Make sure, RNDIS driver is installed.
    Download: http://joshuawise.com/horndis
  2. Put the phone in "recovery mode":
    • Unplug USB cable.
    • Power off.
    • Remove the battery.
    • Reinstall the battery.
    • While pressing "volume down" button (keep it pressed), press the power key until the jolla logo appears.
    • Release all keys.
    Phone is now in recovery mode.
  3. Connect Jolla to PC via USB.
  4. Windows: Install RNDIS driver:
    Use the following guide with these exceptions: You can skip part 1 AND for part 6 choose "Remote NDIS based Internet Sharing Device" (re-installation may be required each time, you disconnect and reconnect the USB).
  5. Start telnet connection
    Windows: Type telnet in the windows start menu search bar and telnet window should open.
    Mac: Start Terminal.
  6. Within telnet: Type string o (o is for open)
    The following menu should appear.
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].

For example: Enter 5 to recover from bootloop
5 Done Press [Enter] to reboot the phone... Rebooting... Connection to host lost. Press any key to continue...
Phone reboots and all is working well

Good luck.


  • For a description of the recovery tool options see this Answer below.
  • For destructive options (e.g. resetting phone to factory settings which will return the device to ex factory state not only for Settings but the complete software version) your device lock code is requested. When you have mistyped it for 4 times, you have to wait for 24 h before you can retry. (Or reboot the device by removing USB connection and removing/reinstalling battery and then pressing the power button to reset the timer.)
edit flag offensive delete publish link more



You can use Putty for telnet connections as well.

marsch ( 2014-02-01 00:17:22 +0300 )edit

under Other devices, I have no unknown device, i have 3x Bluetooth peripheral and Sailfish all yellow colors! I have windows 7 Home premium, it is make difference, limited RNDIS? I have telnet client and telnet server, whish one i must use ?

redge73 ( 2014-02-01 01:16:52 +0300 )edit

Nice instructions, where did you get that ip-address to connect to?

foss4ever ( 2014-02-01 15:48:39 +0300 )edit

It was on Jolla Care under the release notes for along with a 192 address that did not work for me.

bockersjv ( 2014-02-01 16:39:01 +0300 )edit

i would appreciate instructions for mac users. please

wisdomlight ( 2014-02-01 19:44:28 +0300 )edit

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-02-01 00:30:57 +0300

melg01 gravatar image

updated 2015-03-03 10:37:34 +0300

jovirkku gravatar image

@bockersjv: excellent howto, I was just about to write the same thing :-) A few more comments on the new recovery mode 0.2:

      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]:
  • bootloader unlock is usefull for kernel developers as it allows you to run fastboot commands for example to load custom kernels.
  • If your phone is on rebootloop then you should 1st try number 5 and see if that helps, and if it doesnt help then factory reset should do the trick.
  • If you want to access the Shell (point 4) you will be asked to enter your device lock code (screen lock code) if you had one set. You only get 5 attempts, no idea what happens if you mistype 5 times. If you misstype 5 times, then rescue mode will be locked out for the next 24 hours. This looks like this:
 Type the number of the desired action and press [ENTER]:
 Are you really SURE? If you continue, this may void your warranty.[y/n]
 Type your devicelock code and press [ENTER] key:
 (please note that the typed numbers won't be shown for security reasons)
 [OK] Code accepted.
 / #
 / # ls -la
 drwxr-xr-x   14 0        0                0 Jan 31 21:50 .
 drwxr-xr-x   14 0        0                0 Jan 31 21:50 ..
 -rw-------    1 0        0              200 Jan 31 22:17 .ash_history
 drwxr-xr-x    2 0        0                0 Jan 21 01:21 bin
 drwxr-xr-x    7 0        0             5620 Jan 31 21:35 dev
 drwxr-xr-x    2 0        0                0 Jan 31 21:35 etc
 -rwxr-xr-x    1 0        0             2065 Jan 21 01:21 init
 drwxr-xr-x    3 0        0                0 Jan 21 01:21 lib
 drwxr-xr-x    2 0        0                0 Jan 21 01:21 mnt
 dr-xr-xr-x  120 0        0                0 Jan  1  1970 proc
 drwxr-xr-x    2 0        0                0 Jan 31 22:08 root
 drwxr-xr-x    2 0        0                0 Jan 21 01:21 sbin
 dr-xr-xr-x   12 0        0                0 Jan 31 21:35 sys
 drwxrwxrwt    2 0        0               40 Jan 31 21:35 tmp
 drwxr-xr-x    5 0        0                0 Jan 21 01:21 usr
 drwxr-xr-x    6 0        0                0 Jan 31 21:39 var
 / #

Thanks @whoever for adding the following comments:

If you want to access the rootfs and sdcard you can do:

 mkdir /mnt/rootfs
 mkdir /mnt/sd
 mount /dev/mmcblk0p28 /mnt/rootfs
 mount /dev/mmcblk1p1 /mnt/sd

And if you want to copy files over the usbnet then you can use netcat pipes to do so (google howto).

edit flag offensive delete publish link more


If you are Mac user you can install RNDIS drivers from here http://joshuawise.com/horndis

rainisto ( 2014-02-01 11:09:58 +0300 )edit

could you please give some instruction on how to do this solution on a mac

wisdomlight ( 2014-02-01 23:54:35 +0300 )edit

Instractions for Mac are exactly the same as in windows, instead of windows rndis drivers you just install the above horndis drivers, and then "telnet" from Terminal-application.

rainisto ( 2014-02-02 00:13:41 +0300 )edit

i guess basic mac users (no further information about terminal etc.) would benefit from detailed & precise instructions ,(like the ones for pc/windows). Like @rainisto said, its a challenge that so many forum users are so deep in programming etc. computer world that there might be a gap between them and really common, basic users.

t0mps0 ( 2014-02-02 13:04:01 +0300 )edit

what exactly is being tried for btrfs recovery? i'd like to know the exact commands, in order to see how destructive they are, or use them in another way

AL13N ( 2014-03-05 22:47:01 +0300 )edit

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-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-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-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-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-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
Login/Signup to Answer

Question tools



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

Seen: 54,062 times

Last updated: Jan 31 '17