Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Sailfish OS port to Sony Xperia Tama devices, AOSP 10 based

Please read this document fully before planning or starting to use this port.

This is a community port, meaning that there is no official support and extensions included in the paid version:

  • There is no Jolla provided Android app support. Android apps are supported through Waydroid (see below)
  • There is no MS exchange support
  • There is no Jolla Store predictive text support. Use Presage-based keyboards instead (see below)

It is the second port for Xperia Tama, this time on top of AOSP10. The port is based on official port for Xperia 10II (seine) and earlier AOSP 9 based port for Xperia Tama. As a result, it has similar tools available for flashing and the device userdata is partitioned using LVM.

As it requires unlocking bootloader on Sony Xperia, you will loose DRM keys and associated functionality. See AOSP10 threads at XDA for your device for details regarding hardware support.

Documentation and development of the port is in hybris-10 branch of the repositories.

While the care has been taken during porting, please see LICENSE for legal details.


Port issues are all reported within this repository: . Specific AOSP10-base issues can be seen using a filter.

Supported devices

The following devices are supported:

  • Xperia XZ2 single sim variant (h8216)
  • Xperia XZ2 dual sim variant (h8266)
  • Xperia XZ2 Compact single sim variant (h8314)
  • Xperia XZ2 Compact dual sim variant (h8324)
  • Xperia XZ3 single sim variant (h8416)
  • Xperia XZ3 dual sim variant (h9436)

Transition from AOSP9-based Sailfish OS port

To switch from AOSP9-based Sailfish port, see separate documentation.

Over-the-Air updates (OTA)

OTA updates are supported. They were tested without public releases.

Currently supported OTA updates are to the following releases:

  • See separate instructions for this update
  • Alpha to Beta See separate instructions for this update

OTA updates are supported via command line, as described below.

  • Backup of Sailfish OS user files to a sdcard or to another device is strongly encouraged before updating Sailfish OS.
  • Updates are tested by making updates between consecutive versions of Sailfish. Before skipping versions, check at TJC whether it is recommended. In addition, read the release notes for the versions that you plan to skip.
  • Enable ability to change to root in Settings/Developer tools:
    • Enable 'Developer tools'
    • Set the password
    • Allow 'Remote connection' if you wish to update via ssh
  • Open shell with normal nemo user preferrably via ssh
  • Updating Sailfish OS via commandline:
# Start with refresh of current SFOS repo
devel-su zypper ref 
# Update all packages for current SFOS release
devel-su zypper up
# Replace DEVCODE below with your device code (see above). For XZ2 single sim - h8216
devel-su zypper in patterns-sailfish-device-configuration-DEVCODE

# Replace with the release you are updating to
ssu release

ssu lr
# Check the output that you have repos adaptation-community and adaptation-community-common

# You may have many of OpenRepos enabled. It's recommended to disable them, even
# though version --dup will do its best-effort to isolate repositories:
ssu lr | grep openrepos

devel-su zypper clean -a
devel-su zypper ref -f

devel-su version --dup
# if above fails, try again
# devel-su version --dup

# Check before reboot that all packages were installed
# Replace DEVCODE below with your device code (see above). For XZ2 single sim - h8216
devel-su zypper in patterns-sailfish-device-configuration-DEVCODE

# just in case
  • Reboot. Note that on the first boot, it will reboot again automatically if the kernel is updated.

Current state

Port is based on AOSP10 / Linux kernel 4.14 / aarch64.

Software stack state:

  • Jolla Store access
  • Kernel and OS OTA updates
  • Storage encryption

Working hardware:

  • Display
  • Touch, multitouch
  • Calls
  • Cellular network
  • LED
  • Audio
  • Bluetooth
  • GPS
  • WLAN (connect and hotspot)
  • Camera (as in AOSP10)
  • GSM (SMS, voice, data)
  • Keys (Vol +/-, camera, power)
  • Power management
  • USB Charging, Network, MTP
  • Wireless Charging
  • Fingerprint
  • Sensors: light, proximity, gyroscope, acceloremeter
  • Sensors: magnetometer, compass, step counter, pickup
  • Vibrator
  • SD card

Build is distrbuted via OBS.


Before flashing, please check the current issues and pay attention to the critical ones. The critical issues may damage your hardware, so please be aware of them.

Flashing guide is at


Predictive text support

For predictive text support, install Presage-based predictive keyboards. These keyboards are available at Chum repositories. After enabling Chum, install the keyboard layout(s) on your device. For example, for English:

devel-su zypper in keyboard-presage-en_US

List of available keyboards:

zypper se keyboard-presage-

Fingerprint support

Fingerprint is supported through community effort sailfish-fpd-community. It is incorporated into the images.

Fingerprints can be used for authentication if you enable in Settings, under "Device lock", use of security code.

When adding fingerprints, it is recommended to use separate application: "Fingerprints". If you add fingerprints under Sailfish Settings, it may lead to device reboot (issue). In the dedicated application, such issue was not encountered.

Android apps

Running Android apps is supported via WayDroid. To use WayDroid, follow the guide in SFOS Waydroid packaging. Note that starting from SFOS version 4.5 release of this port, Waydroid gbinder configuration is included with the rest of device configurations. So, do not install waydroid-gbinder-config-hybris package on your device.

Tracker and SD Cards

To allow tracker to index files on SD Card, run

gsettings set org.freedesktop.Tracker.Miner.Files index-recursive-directories "['&DESKTOP', '&DOCUMENTS', '&DOWNLOAD', '&MUSIC', '&PICTURES', '&VIDEOS',  '/run/media/nemo']"

Step counter

Step counter is enabled and requires user space programs. Currently, the best available interaction is through stpcntrd which registers DBus session interface. You can use "Visual D-Bus" app to navigate to com.kimmoli.stpcntrd and through that app call the methods. To install the daemon, use

pkcon install stpcntrd

The daemon is included in Xperia Tama repositories.

Pickup gesture

Pickup gesture switches on the screen when you pickup the phone and allows you to avoid pressing a power button. It may require relatively faster movement, try with the different movement patterns if it does not work. Note that sometimes the gesture is not registered, try to switch on / off the screen to re-arm the sensor. In addition, there is some delay between pickup and switching on the screen, but that seems to be originating mostly from the sensor or sensor-sensorfwd interaction.

Pickup gesture requires development branch of sensorfwd and pickupd. The both are available in Xperia Tama repositories.

To enable pickup gesture, you need to just install pickupd:

pkcon install pickupd

To disable, uninstall the daemon.


Pressure sensor is configured. To my knowledge, the only application interfacing it is Messwerk from .

Launcher icons appear too small

A workaround around is to install launcher-combined-patch with patchmanager and increase the icon size.

First install either patchmanager by hand or via Storeman.

Then install the patch by opening the settings app -> patchmanger -> pull-menu -> web-catalogue.

After this go a page back, select launcher-combined and enable change icon size.

Resetting storage

From, it is possible to encrypt the storage. If you wish to switch between encrypted and non-encrypted storage, see instructions at Community edition of Sailfish Encryption. Note that this will result in loss of the data stored currently on device - make sure to have a backup.

Extending storage

It is possible to use system partitions that are not used in Sailfish for storage. This is for advanced users and corresponding instructions are given separately.

Use of cryptsetup in recovery

It is possible to use cryptsetup, but only after making chroot into /rootfs:

# in recovery
chroot /rootfs
cryptsetup ...

Backup and recovery

The port supports backup and recovery when device is booted from recovery boot image. This is for advanced users and is available from Sailfish release. See instructions for details.


Port is developed under, under hybris-10 branches of repositories. For setting up a build, see HADK.