Installing Sailfish X on XA2 using Linux

IMPORTANT – Do not skip this step

Use your Xperia XA2 for some time with Android OS. Check that phone calls can be made and received, that you can browse the Internet with a mobile data connection (turn WLAN off) and that the camera works. You might also want to check the touch display, loudspeaker, microphone and, GPS. Use the same SIM card as will be used with Sailfish X.

What you need to begin

  1. A. Sony Xperia XA2 Single SIM (H3113 & H3123 & H3133) or Sony Xperia XA2 Dual SIM (H4113 & H4133) Sony Xperia XA2 Plus Single-SIM (H3413) or Sony Xperia XA2 Plus Dual-SIM (H4413 & H4493) Sony Xperia XA2 Ultra Single-SIM (H3213 & H3223) or Sony Xperia XA2 Ultra Dual-SIM (H4213 & H4233), verified to have an unlockable bootloader.
    B. USB-C data cable
    C. Internet connection
    D. Linux Computer
    E. Sailfish X from the Jolla shop.

What you need to do

1. Skip the Android update

  • It is not necessary to update your device to the latest version of Android. You can skip the update if prompted.
  • Both Android 9 and Android 8.1 are now okay as the starting point for installing Sailfish OS 3.2.0 and later releases. Do not update to Android 10 in case it is offered. You can see the Android version in Settings app > System > About Phone.

2. Install Fastboot tools on your computer

Here is how to install Fastboot tools on different Linux distributions using terminal:

The universe repository needs to be enabled first for Ubuntu (if not there yet).

Debian/Ubuntu/.deb distros:
apt-get install android-tools-fastboot
Fedora:
dnf install android-tools

3. Extract the Sailfish OS .zip file

3.1  You have purchased the Sailfish X license and are hence entitled to download the latest Sailfish OS .zip file from https://shop.jolla.com/downloads/ .  You can download newer versions later, too.

The zip files are like this: SailfishOS-VERSION1-DEVICE-VERSION2.zip.

Examples:

Sailfish_OS-Jolla-3.0.0.5-h3113-0.0.7.2.zip (This image can be used for H3113, H3123 & H3133)
Sailfish_OS-Jolla-3.0.0.5-h4113-0.0.7.2.zip (This image can be used for H4113 & H4133)
Sailfish_OS-Jolla-3.0.0.5-h3213-0.0.7.2.zip (This image can be used for H3213 & H3223)
Sailfish_OS-Jolla-3.0.0.5-h4213-0.0.7.2.zip (This image can be used for H4213 & H233)
Sailfish_OS-Jolla-3.0.0.5-h3413-0.0.7.2.zip (This image can be used for H3413)
Sailfish_OS-Jolla-3.0.0.5-h4413-0.0.7.2.zip (This image can be used for H4413 & H4493)

3.2 Extract this file to a directory: unzip SailfishOS-VERSION1-DEVICE-VERSION2.zip.

4. Unlock your bootloader

4.0 In order to unlock the phone you need to get the unlock key that can be requested from the Sony Open Devices website.

– scroll down the page
– select your device  Xperia™ XA2
– scroll down the updated page
– enter the IMEI code (from the Settings menu) of your device to the line near the bottom of the page
– Read and accept the first two tick boxes
– click “Submit” and the unlock code will appear
– copy the code to the text buffer of your computer.

After getting the key please follow the below actions to do the actual unlocking.

4.1  Enable “Developer options” by going to “Settings > System > About Phone” and tap the “Build Number” multiple times until you see a prompt saying “You are now a developer!”
4.2. Enable “OEM unlocking” and “USB debugging” from “Settings > System > Developer options” menu.

Note that your Xperia device must have an Internet connection when doing this.

4.3 Turn off your phone
4.4 Connect USB cable to PC
4.5 Press and hold the ‘Volume up’ button gently and connect the other end of the USB cable to your phone and wait for the LED to light up blue. If it turns green then disconnect the cable and try again.

4.6 Open Terminal on your Linux computer. Go to the folder where you unzipped Sailfish OS in step 3.2.

4.7 Run command shown in chapter 4 “Enter unlock key” of Sony instructions. Use the unlock key from chapter 4.0. Do not forget to add the ‘0x’ (“zero-ex”) prefix. Please prepend the command with ‘sudo’.

sudo fastboot -i 0x0fce oem unlock 0xAB34CD56EF89

— this is an example where “AB34CD56EF89” mimics the unlock code from Sony to you. Replace it with your code.
Expected output:

sudo fastboot -i 0x0fce oem unlock 0xAB34CD56EF89
...OKAY [ 1.716s]
finished. total time: 1.720s
NOTE: In some cases, the command above might fail. Try to use the shorter form of the command:
sudo fastboot oem unlock 0xAB34CD56EF89

The bootloader is now unlocked, allowing you to install Sailfish X on your device.

5. Getting the Sony vendor binary images

NOTE: With version v17B ofthe  Sony vendor image we have observed a decrease in the perceived signal strength of the 5GHz WLAN access points. Version v16 should work better in this respect. Therefore we would not recommend flashing v17B if you use WLAN networks in the 5GHz band.
-The flashing script allows you to use either of the two versions
-You can also change the vendor image later by reflashing just the vendor image of your choice (and not Sailfish OS) by following the instructions here.

5.1 Download one of the Sony binary images for the Xperia™ XA2 . Version 16 from here. Or version 17B from here. The downloaded files have the following names:


SW_binaries_for_Xperia_Android_8.1.6.4_r1_v16_nile.zip
SW_binaries_for_Xperia_Android_8.1.6.4_r1_v17B_nile.zip

5.2 Unzip the file you want to use.

5.3 Copy the unzipped file (below) and paste it to the same directory where you extracted the Sailfish OS .zip file.  The unzipped files have the names:

SW_binaries_for_Xperia_Android_8.1.6.4_r1_v16_nile.img
SW_binaries_for_Xperia_Android_8.1.6.4_r1_v17_nile.img (NOTE: it is "v17" without any "B")

6. Flashing Sailfish X to your Xperia™

Connect your device to your PC in Fastboot mode as follows:

NOTE: If your device is still connected and the blue LED lit from step 4.7 we recommend disconnecting it from the computer at this point. Then continue from step 6.1.

6.1 Disconnect your Xperia™ device from your PC
6.2 Turn off the device. Leave it off for at least fifteen (15) seconds.
6.3 Connect one end of a USB cable to your PC
6.4 While holding the ‘Volume Up’ button gently, connect the other end of the USB cable to your Xperia™ device. The LED next to the speaker on the device should light up blue. If green, then disconnect the cable and try again.
6.5 Open Terminal in the same directory where you extracted the Sailfish OS .zip file (see step 3.2)
6.6 Launch the flashing script by entering the command:

sudo bash ./flash.sh

6.7 Follow the instructions in the console window. The last two lines at the console should be:
Flashing completed.
Remove the USB cable and boot up the device by pressing the power key.

6.8 When flashing has finished, reboot your device into Sailfish X!

Happy flashing 🙂

Experiencing an issue with Linux when using a USB3 port? Click here to read our article about it.

7. Booting up to Sailfish X

7.1 Press the Power button. First, you will see a reminder of the unlocked bootloader (please ignore), followed by the Sony logo. Next, Sailfish OS appears.
7.2 Your Xperia starts soon running the first boot up, a.k.a. Startup Wizard, during which it will ask you to:
  • select the display language for the phone
  • accept the End User License Agreement
  • set the security code for the device lock
  • connect to the Internet
  • set the date & time
  • sign in to your Jolla account – the same that you used for buying the license, as this makes the so-called licensed content  (including Android Support) appear in Jolla Store for your device. The Jolla account must be the same as you used when purchasing the Sailfish X licence.
  • install the default Sailfish apps, Android Support (which can be installed later, too) and Aptoide Store
  • please restart your Xperia XA2 once at this point to activate all services and complete the installation.

7.3 Next, you can install more Sailfish apps from the Jolla Store or Android apps from stores like APKPure or Aptoide.