PLEASE NOTE, THE INSTRUCTIONS ARE FOR SEASONED USERS ONLY, DO NOT TRY THE INSTALLATION IF YOU DO NOT KNOW WHAT YOU ARE DOING!
OFFICIAL STATEMENT FROM JOLLA CARE SAYS:
"Our warranty does not cover issues arising from using unauthorized
software on the device. If installing the alternative OS causes problems
with the hardware, these are not covered by the warranty even if it
happens during the warranty period. The user would likely also lose the
benefit of their statutory rights to have errors repaired. In other
words, anyone trying this would do it at their own risk, we can’t be responsible for the outcome nor can we publicly encourage people to do this."
ALSO PLEASE DO NOT DISTRIBUTE THE HARDWARE ADAPTATION PACKAGES AS THEY ARE PROPRIETARY AND YOU DO NOT HAVE THE PERMISSION FROM JOLLA TO DO SO. THIS IS WHY I CANNOT PROVIDE YOU WITH THE PACKAGES, ONLY THE MEANS TO EXTRACT THEM FROM A EXISTING DEVICE.
1. Extraction of certain packages from Jollas repositories, with "zypper
install -f --download-only" and rsyncing them to a separate directory on
the Jolla device:
usb-moded-pc-suite-mode-android
droid-system-sbj
gst-av
jolla-recovery-sbj
gstreamer0.10-colorconv
qt5-qtwayland-wayland_egl
gstreamer0.10-droidcamsrc
gstreamer0.10-droideglsink
nemo-qtmultimedia-plugins-gstvideotexturebackend
gstreamer0.10-omx
gstreamer0.10-ffmpeg
hybris-libsensorfw-qt5
qtscenegraph-adaptation
kernel-adaptation-sbj
libhybris-sbj-libEGL
libhybris-sbj-libGLESv2
qt5-qpa-hwcomposer-plugin-sbj
libhybris-sbj-libwayland-egl
sbj-platform-images
sbj-version
sbj-wlan
libhybris-sbj-libhardware
libhybris-sbj
droid-system-packager
nemo-gstreamer0.10-interfaces
2. Copy over the aforementioned packages to a directory in which the Mer
SDK resides and can access.
3. Copy over configuration files from Jolla device:
rsync -R /etc/dconf/db/vendor.d/locks/screen-rotation.txt
/etc/dconf/db/vendor.d/screen-rotation.txt /etc/dsme/battery_levels.conf
/etc/dsme/temp_hw_battery.conf /etc/dsme/temp_hw_core.conf
/etc/mce/60-als-jolla.ini /etc/mce/60-doubletap-jolla.ini
/etc/mce/60-mce-display-blank-timeout.conf
/etc/mce/60-mce-display-brightness.conf
/etc/mce/60-mce-possible-display-dim-timeouts.conf
/etc/ofono/ril_subscription.conf /etc/usb-moded/android-usb-values.ini
/etc/usb-moded/usb-moded.ini
/lib/systemd/system/basic.target.wants/dev-mmcblk0p24.swap
/lib/systemd/system/create-swap@.service
/lib/systemd/system/dev-mmcblk0p24.swap /lib/udev/rules.d/90-toh.rules
/lib/udev/rules.d/999-boston-system.rules
/usr/lib/oneshot.d/bdaddr-from-factory-data
/usr/lib/oneshot.d/btrfs-autodefrag /usr/lib/oneshot.d/resize-filesystem
/usr/lib/qt5/plugins/feedback/qtfeedback-sbj.ini
/usr/share/ngfd/plugins.d/ngf-vibra-sbj.ini
/usr/share/qt5/keymaps/boston.qmap
/usr/share/ssu/board-mappings.d/05-sbj.ini
/var/lib/environment/compositor/60-boston-ui.conf
/var/lib/environment/nemo/60-multimedia.conf
/var/lib/environment/nemo/60-sbj-vibra.conf
/var/lib/environment/ofono/noplugin.conf to@dest.mer.machine:adaptation
4. Copy over /sbin/preinit from Jolla device to a separate directory on
the Mer SDK host.
5. Create a image using mic2 and Nemo Mobile system packages:
sudo mic cr fs -A armv7hl -o nemo-sbj-armv7hl-devel
--pack-to=nemo-sbj-devel.tar.bz2
--record-pkgs=name,url,content,license jolla-sbj-adaptation.ks
The kickstart file is here http://pastebin.com/zZYd0YM7
6. Add the missing configuration files and /sbin/preinit to the created
root filesystem package.
7. Copy the root filesystem package to a microSD card. Transfer the
microSD card to a Jolla.
8. Reboot jolla to a recovery mode using Volume Down and Power key, use
the recovery mode selector to move to a shell.
9. Inside the shell, copy a fresh installation of the sailfish-snapshot
script manually to a text editor.
10. Mount the sdcard inside the shell
11. Go to the sdcard directory and issue:
/sdcard # PARTITION=/dev/mmcblk0p28 MOUNTPOINT=/sailfish-snapshot
/sailfish-snapshot-script export factory .
12. Back up the current system with sailfish-snapshot:
/sdcard # PARTITION=/dev/mmcblk0p28 MOUNTPOINT=/sailfish-snapshot
/sailfish-snapshot-script create prenemo
13. Inject the Nemo Mobile root filesystem package to a new snapshot on
the Jolla device, with Jollas default home filesystem:
/sdcard # PARTITION=/dev/mmcblk0p28 MOUNTPOINT=/sailfish-snapshot
/sailfish-snapshot-script inject nemo-sbj-devel.tar.bz2
homefs-factory-1.0.4.20.tar.bz2 nemo
14. Make the nemo snapshot the current system:
PARTITION=/dev/mmcblk0p28 MOUNTPOINT=/sailfish-snapshot
/sailfish-snapshot-script restore nemo
15. Reboot the Jolla device to activate Nemo Mobile
To get back to SailfishOS:
1. Reboot Jolla back to recovery mode.
2. Enter shell and get sailfish-snapshot to it.
3. PARTITION=/dev/mmcblk0p28 MOUNTPOINT=/sailfish-snapshot /sailfish-snapshot-script restore prenemo