Flash to Stock (Pie)
Reference: https://community.fxtec.com/topic/2466-guide-restore-to-stock-firmware-using-fastboot-method/
- Download the stock files from here
- If you are running Android, enable developer mode, then enable USB debugging
- On your computer, open a terminal and type adb reboot bootloader
- If you are coming from a SailfishOS version, enable developer mode. Connect to ssh defaultuser@192.168.2.15 from your computer, become devel-su and issue reboot bootloader
- In case your device does not boot into any OS currently, you can alternatively access the fastboot bootloader menu by pressing the volume down key during the first second of the boot process.
Now you are in the fastboot bootloader menu. Run the following commands or create a script from them as described below:
fastboot flash boot_a boot.img
fastboot flash boot_b boot.img
fastboot flash dtbo_a dtbo.img
fastboot flash dtbo_b dtbo.img
fastboot flash system_a system.img
fastboot flash system_b system.img
fastboot flash vendor_a vendor.img
fastboot flash vendor_b vendor.img
fastboot flash vbmeta_a vbmeta.img
fastboot flash vbmeta_b vbmeta.img
fastboot flash userdata userdata.img
fastboot flash abl_a abl.elf
fastboot flash abl_b abl.elf
fastboot flash persist persist.img
fastboot flash mdtp_a mdtp.img
fastboot flash mdtp_b mdtp.img
fastboot flash splash splash.img
fastboot flash xbl_a xbl.elf
fastboot flash xbl_b xbl.elf
fastboot flash rpm_a rpm.mbn
fastboot flash rpm_b rpm.mbn
fastboot flash tz_a tz.mbn
fastboot flash tz_b tz.mbn
fastboot flash hyp_a hyp.mbn
fastboot flash hyp_b hyp.mbn
fastboot flash pmic_a pmic.elf
fastboot flash pmic_b pmic.elf
fastboot flash modem_a NON-HLOS.bin
fastboot flash modem_b NON-HLOS.bin
fastboot flash keymaster_a km4.mbn
fastboot flash keymaster_b km4.mbn
fastboot flash cmnlib_a cmnlib.mbn
fastboot flash cmnlib_b cmnlib.mbn
fastboot flash cmnlib64_a cmnlib64.mbn
fastboot flash cmnlib64_b cmnlib64.mbn
fastboot flash bluetooth_a BTFM.bin
fastboot flash bluetooth_b BTFM.bin
fastboot flash dsp_a adspso.bin
fastboot flash dsp_b adspso.bin
fastboot flash devcfg_a devcfg.mbn
fastboot flash devcfg_b devcfg.mbn
fastboot flash mdtpsecapp_a mdtpsecapp.mbn
fastboot flash mdtpsecapp_b mdtpsecapp.mbn
fastboot flash storsec storsec.mbn
Suggestion: copy the commands and save as a bash script, then just run the script instead of running each
command individually.
To do so, copy and paste above fastboot commands into a script, e.g. nano flash-stock.sh. Add #!/bin/bash
as first line. Save what you pasted into nano using ctrl+o. Exit nano with ctrl+x and make the script executable
using chmod +x flash-stock.sh.
Now you are ready to start the script and thus execute all commands sequentially
by executing ./flash-stock.sh.
Next run fastboot reboot
Your Pro1 is now flashed back to stock.
At this point, I went through the Android 9.0 setup and enabled developer mode and USB debugging again. Might
be possible to skip this last step...
Install Sailfish OS 3.3 (Rokua)
Reference: https://community.fxtec.com/topic/2467-community-build33016updated-18th-aug-sailfish-os-for-fxtec-pro1/
Requirements
Process
- Download the TWRP file (twrp-3.3.1-qx1000.img) from here
- Download the SailfishOS 3.3 image (sailfishos-t5-release-3.3.0.16-devel-20200507.zip) from here
- Copy the SailfishOS 3.3 image to the microSD card (do not unzip) and insert the microSD card into the
Pro1
- Reboot your Pro1 to the bootloader (adb reboot bootloader)
- On your computer, run fastboot set_active a
- On your computer, run fastboot flash boot twrp-3.3.1-qx1000.img
- On the Pro1, use the volume buttons to switch to "Recovery Mode", then press the power button to select
- In TWRP go to Wipe > Format Data then type yes and click the blue tick
- When the format is complete then go back three times, choose reboot, then choose reboot into recovery
(swipe to confirm)
- Select "install" then select storage SD, then click install zip
- Navigate to where you put the zip on the microSD card and click it
- Swipe to install
- Choose reboot
You now have SailfishOS! Great choice btw.
Upgrade from Sailfish 3.3 to 3.4 (Pallas-Yllästunturi)
Reference: https://community.fxtec.com/topic/2467-community-build33016updated-18th-aug-sailfish-os-for-fxtec-pro1/page/8/?tab=comments#comment-54413
Requirements
- A linux machine to run the flash.sh script on
- Not minding the fact that this will wipe your 3.3 install (backup your files if you have any...)
Process
- Download the 3.4 files (Sailfish_OS--devel-20201125-3.4.0.24-t5-0.0.1.2.zip) from here
- Extract the zip file (just once)
- Put the Pro1 into fastboot mode. Either by issuing reboot bootloader
while connected via SSH (Developer Mode). Or by turning the phone off, then turning it back on holding
the volume-down and power buttons)
- On your computer, in a terminal, in the folder you extracted, run sudo
./flash.sh
- Then reboot the phone (fastboot reboot)
You should now have a SailfishOS 3.4 install!
Upgrade from Sailfish 3.4 to 4.0 (Koli)
- In SailfishOS, open Settings
- Go to Developer tools
- Set a password under the Remote connection option
- Open the Terminal app then run the following commands:
devel-su
ssu re 4.0.1.48
ssu ur
zypper ref
zypper dup
My Pro1 crashed at this point, but after a powercycle I had a perfectly functional 4.0 install. Complete with
the ugly lighthouse ambiance.
You should reboot, in any case.
Optional note:
The CPU gets downclocked when the Pro1 goes into sleep mode.
Consider setting the
screen timeout to 10 minutes to make things run faster!
Upgrade from 4.0 to 4.1 (Kvarken)
Same thing as the 3.4 to 4.0 install, just change the number when running ssu re.
devel-su
ssu re 4.1.0.24
ssu ur
zypper ref
zypper dup
Reboot when you're done.
Upgrade from Sailfish OS 4.1 to 4.2 (Verla)
Same thing again, just change the number.
devel-su
ssu re 4.2.0.21
ssu ur
zypper ref
zypper dup
Reboot when you're done.
Upgrade from Sailfish OS 4.2 to 4.3 (Suomenlinna)
Same thing yet again, just change the number.
devel-su
ssu re 4.3.0.12
ssu ur
zypper ref
zypper dup
Reboot when you're done.
Upgrade from Sailfish OS 4.3 to 4.4 (Vanha Rauma)
This time, it is advised to update the 4.3 install again before actually updating to 4.4. Especially when updating an old 4.3 install.
devel-su
zypper ref
zypper dup
ssu re 4.4.0.58
ssu ur
zypper ref
zypper dup
Reboot when you're done.
In case you are left with no network connection for all Sailjail apps, there are two possible culprits.
Dnsmasq might have wrongly been activated by the systemd update. Disable it with:
systemctl disable dnsmasq
Another quirk could be the resolv.conf not being visible from inside the Sailjail. Check if your /etc/resolv.conf symlink still points to /var/run/connman/resolv.conf. Change it to /run/connman/resolv.conf and restart the browser booster.
ls -l /etc/resolv.conf
rm -f /etc/resolv.conf
ln -s /run/connman/resolv.conf /etc/resolv.conf
systemctl --user restart booster-browser@sailfish-browser.service
Upgrade from Sailfish OS 4.4 to 4.5 (Struven Ketju)
devel-su
ssu re 4.5.0.19
ssu ur
zypper ref
zypper dup
zypper rm gmp-droid
Reboot when you're done.
Do check the zypper output, and make sure nothing crazy is being removed...
Post-installation stuff
Homescreen rotation fix
sed -e "s/return allowed/return Orientation.All/" -i /usr/lib/qt5/qml/Sailfish/Silica/Page.qml
Reboot or restart lipstick as root/devel-su with systemctl --user restart lipstick to apply changes
Choose hardware keyboard layout
dconf write /desktop/lipstick-jolla-home/model \"fxtecpro1\"
dconf write /desktop/lipstick-jolla-home/layout \"LAYOUT\"
Replace LAYOUT with a country code from /usr/share/X11/xkb/symbols/fxtec_vndr/pro1
For US English layout use "us"
My camera doesn't work! (fix only applies to 4.3.0.12)
Reference: https://forum.sailfishos.org/t/4-3-0-12-jolla-camera-also-torch-does-not-start-at-all-as-well-as-videos-do-not-play/9000/62
devel-su
ssu rr adaptation-common
rm -r /var/cache/ssu/
ssu ur
pkcon refresh
version --dup
reboot
If your camera works, you don't need to do this.
Maintenance stuff
Fixing touch guestures after display change
After a change of the display it might be necessary to update the firmware of the display controller if the display doesn't react to touch gestures on the curved part.
Requirements
- To be able to update the firmware the Linux kernel has to have the enabled option "CONFIG_GTP_AUTO_UPDATE=y":
zcat /proc/config.gz | grep CONFIG_GTP_AUTO_UPDATE
- The display firmware file: gt1x_fw.bin
Process
- Create a directory and store the firmware file in it: mkdir -p /lib/firmware
- Add the new directory to the list of directories in the beginning of this script: vi /usr/bin/droid/droid-load-firmware.sh
- Reboot. Now the display should react to touches on the curved part of the screen again.
- Remove the added directory in /usr/bin/droid/droid-load-firmware.sh and/or the firmware file in /lib/firmware to avoid flashing the firmware after every restart of the device.
Publication date: 2022-01-08
Updated: 2023-03-23
Version: v0.4.1