Ça y est, la version officielle de SailfishOS est dispo à la vente. Votre Xperia est en version community et vous n’avez toujours pas de PC sous Windows sous la main. En plus l’image téléchargée ne se flasherait que sur Android 7, que vous n’avez plus, avec un outil Sony/M$ qui doit probablement vous briquer le smartphone sous Wine : bref tout va pour le mieux dans le meilleur des mondes !

Mais pourquoi tant de haine ?

En fait la version 7 d’Android modifie une partition qui est utilisée lors du flash … De toute façon si vous avez installé le SFOS community, alors vous étiez déjà en Android 7 ; la partition préexistait ; par contre elle n’a plus du tout le contenu attendu : un petit nettoyage s’imposera après que le flashage se soit conclu par un semi succès :

devel-su
mkdir ~/oem
mount /dev/disk/by-partlabel/oem ~/oem
rm -rf ~/oem/*
cp -ar /system/vendor/* ~/oem
umount ~/oem
rmdir ~/oem

Mais nous n’en sommes pas encore là : achetons tout d’abord cette image officielle chez Jolla, pour la désarchiver, puis toujours en mode « CLI »récupérons les drivers Sony de notre précédente installation :

# firefox https://jolla.com/sailfishx/&
# mkdir SonyX_Officiel
# cd SonyX_Officiel
# mv ~/Téléchargement/SailfishOS-2.1.3.5-1-f5121-0.0.1.16.zip .
# unzip SailfishOS-2.1.3.5-1-f5121-0.0.1.16.zip 
# cd SailfishOS-2.1.3.5-1-f5121-0.0.1.16/
# ls
AdbWinApi.dll*         fastboot.exe*        flash-on-windows.bat  hybris-boot.img                     
AdbWinUsbApi.dll*      fimage.img001        flash.sh*             hybris-recovery.img               md5.lst          
extracting-README.txt  flashing-README.txt          Jolla-2.1.3.5-f5121-armv7hl.urls  sailfish.img001

En plus des fichiers .img et de quelques scories destinées à Monde des ténèbre$ Windows, on trouve bien un script dédié à l’environnement bash/linux : flash.sh. Mais celui fourni avec l’image officielle est assez différent de celui qui accompagnait la community version ; outre quelques contrôles fort bien venu sur l’identité du terminal ou des fichiers à flasher, l’opération ne se réalise plus tout à fait de la même façon : plus besoin de make_ext4fs, entre autres. Il devrait être assez simple de flasher SFOS sur l’Xperia,. Et comme il n’est pas souhaitable de briquer le terminale de Sony, assurons nous, avant tout, que tous les fichiers sont bien ceux que Jolla a archivé :


# while read MD FILE
do
echo "$MD $FILE"
set -- $(md5sum $FILE)
MD2=$1
echo -n "$MD2 $FILE "
[ $MD = $MD2 ] && echo " OK" || echo " Problème !"
echo "#"
done < md5.lst
ed5a809dc0024d83cbab4fb9933d598d AdbWinApi.dll
ed5a809dc0024d83cbab4fb9933d598d AdbWinApi.dll OK
#
0e24119daf1909e398fa1850b6112077 AdbWinUsbApi.dll
0e24119daf1909e398fa1850b6112077 AdbWinUsbApi.dll OK
#
a091d61c53094eac97fd43241ede2466 extracting-README.txt
a091d61c53094eac97fd43241ede2466 extracting-README.txt OK
#
c980ea6caa9140ee3f30cdc0e98844c4 fastboot.exe
c980ea6caa9140ee3f30cdc0e98844c4 fastboot.exe OK
#
611d0db74e6ffd22addf63318508b71d fimage.img001
611d0db74e6ffd22addf63318508b71d fimage.img001 OK
#
b4b0cf6854d4a7d7183ba119504ee5d6 flashing-README.txt
b4b0cf6854d4a7d7183ba119504ee5d6 flashing-README.txt OK
#
16e818a0a27a263163fb22656523fa3b flash-on-windows.bat
16e818a0a27a263163fb22656523fa3b flash-on-windows.bat OK
#
a6c86c8f1369df8a7a6c249dbe818cb0 flash.sh
a6c86c8f1369df8a7a6c249dbe818cb0 flash.sh OK
#
77ddc7a0b9dd95db593829b97bc9868a hybris-boot.img
77ddc7a0b9dd95db593829b97bc9868a hybris-boot.img OK
#
33a4b502070c415938acf02c019954d6 hybris-recovery.img
33a4b502070c415938acf02c019954d6 hybris-recovery.img OK
#
4aeaf0cb890e9188ba42f48353741cd4 Jolla-2.1.3.5-f5121-armv7hl.urls
4aeaf0cb890e9188ba42f48353741cd4  Jolla-2.1.3.5-f5121-armv7hl.urls OK
#
88d74c452de2521e3eebd4f4dcdb3851 sailfish.img001
88d74c452de2521e3eebd4f4dcdb3851 sailfish.img001 OK
#
# cp ~/Téléchargment/SW_binaries_for_Xperia_AOSP_M_MR1_3.10_v12_loire.zip .

ÇA COMMENCE PLUTÔT BIEN 😉 .

Mettons l’Xperia en mode fastboot (volume + /plug USB {–} PC) et pas flashtool (volume /plug USB {–} PC), et flashons cette image ; n’oublions pas que chez Mageia, fastboot s’appelle fastboot-android, et que ça risque très probablement de devenir conflictuel : réglons ça avant :


# su
password:
§ locate fastboot-android
/usr/bin/fastboot-android
§ cp /usr/bin/fastboot-android /usr/bin/fastboot
§ type fastboot
fastboot est /usr/local/bin/fastboot
§ mv /usr/local/bin/fastboot /usr/local/bin/fastboot.sh
§ type fastboot
fastboot est /usr/bin/fastboot

Vérifions que ce Sony F5121 est toujours reconnu


§ fastboot devices
BH9039RL56      fastboot

Ahhhhh, que c’est agréable quand tout s’effectue du premier coup comme il est prévu que cela s’effectue. Alors comme disait Queen : FLASH ! AAHH AAAAHHH !


§ ./flash.sh
Detected Linux
Searching device to flash..
Found device with vendor id '0fce': Bus 002 Device 067: ID 0fce:0dde Sony Ericsson Mobile Communications AB Xperia Mini Pro Bootloader
Fastboot command: fastboot -i 0x0fce 
The Sony Vendor partition image was not found in the current directory. Please
download it from
https://developer.sonymobile.com/downloads/software-binaries/software-binaries-for-aosp-marshmallow-android-6-0-1-kernel-3-10-loire/
and unzip it into this directory.


C’était trop beau 😉 Puisqu’il insiste, dezipons ces drivers Sony … et reflashons :


§ unzip SW_binaries_for_Xperia_AOSP_M_MR1_3.10_v12_loire.zip 
Archive:  SW_binaries_for_Xperia_AOSP_M_MR1_3.10_v12_loire.zip
creating: vendor/
creating: vendor/sony/
creating: vendor/sony/loire-common/
inflating: vendor/sony/loire-common/loire-partial.mk  
...
§ ./flash.sh
Detected Linux
Searching device to flash..
Found device with vendor id '0fce': Bus 002 Device 067: ID 0fce:0dde Sony Ericsson Mobile Communications AB Xperia Mini Pro Bootloader
Fastboot command: fastboot -i 0x0fce 
The Sony Vendor partition image was not found in the current directory. Please
download it from
https://developer.sonymobile.com/downloads/software-binaries/software-binaries-for-aosp-marshmallow-android-6-0-1-kernel-3-10-loire/
and unzip it into this directory.


Ça tourne au running gag : ce script semble autiste ! Ou taquin ; et j’apprécie toujours aussi modérément l’humour finlandais … à moins que ce soit de l’humour nippon … re-téléchargeons ces binaires et re-dezipons les :


§ firefox https://developer.sonymobile.com/downloads/software-binaries/software-binaries-for-aosp-marshmallow-android-6-0-1-kernel-3-10-loire/&
§ mv ~/Téléchargement/SW_binaries_for_Xperia_AOSP_M_MR1_3.10_v13_loire.zip .
§ unzip SW_binaries_for_Xperia_AOSP_M_MR1_3.10_v13_loire.zip 
Archive:  SW_binaries_for_Xperia_AOSP_M_MR1_3.10_v13_loire.zip
inflating: SW_binaries_for_Xperia_AOSP_M_MR1_3.10_v13_loire.img 

Effectivement, c’était de l’humour japonais : le changement de version de l’archive (V12 -> V13) induit un changement d’empaquetage (.img) qui est incompatible avec le précédent : je suis content de constater qu’ils n’ont que ça à faire chez Sony mobile … Troisième essai :


§ ./flash.sh
Detected Linux
Searching device to flash..
Found device with vendor id '0fce': Bus 002 Device 067: ID 0fce:0dde Sony Ericsson Mobile Communications AB Xperia Mini Pro Bootloader
Fastboot command: fastboot -i 0x0fce 
Flashing boot partition..
target reported max download size of 536870912 bytes
sending 'boot' (10842 KB)...
OKAY [  0.488s]
writing 'boot'...
OKAY [  0.079s]
finished. total time: 0.567s
target reported max download size of 536870912 bytes
erasing 'system'...
OKAY [  0.215s]
sending sparse 'system' 1/2 (524284 KB)...
OKAY [ 30.299s]
writing 'system' 1/2...
OKAY [  3.939s]
sending sparse 'system' 2/2 (92428 KB)...
OKAY [  4.312s]
writing 'system' 2/2...
OKAY [  0.711s]
finished. total time: 39.477s
target reported max download size of 536870912 bytes
erasing 'userdata'...
OKAY [  0.816s]
sending sparse 'userdata' 1/3 (524284 KB)...
OKAY [ 25.560s]
writing 'userdata' 1/3...
OKAY [  3.845s]
sending sparse 'userdata' 2/3 (524284 KB)...
OKAY [ 25.920s]
writing 'userdata' 2/3...
OKAY [  3.903s]
sending sparse 'userdata' 3/3 (252840 KB)...
OKAY [ 12.040s]
writing 'userdata' 3/3...
OKAY [  1.884s]
finished. total time: 73.968s
Flashing oem partition..
target reported max download size of 536870912 bytes
sending 'oem' (163040 KB)...
OKAY [  7.522s]
writing 'oem'...
FAILED (remote: Command not allowed)
finished. total time: 7.525s
§ 

Et oui,
writing 'oem'...
FAILED (remote: Command not allowed)

mais on était prévenu … Il ne reste plus qu’à faire ce ménage qui était recommandé, mais comme on est déjà en fastboot, profitons en : lançons le mode recovery à partir de son image hybris-recovery.img

 
§ fastboot boot ./hybris-recovery.img

Sur votre Sony’Xperia, de tous petits caractères bleus s’affichent en haut de l’écran pour indiquer l’adresse IP du terminal, connecté en RNDIS via le cable USB : 10.42.66.66 ; il ne reste plus qu’a s’y logguer via telnet :

 
§ ifconfig -a
enp0s29u1u2: flags=4163  mtu 1500
ether be:8d:07:6e:19:de  txqueuelen 1000  (Ethernet)
...
§ ifup enp0s29u1u2
§ ifconfig -a
enp0s29u1u2: flags=4163  mtu 1500
inet 10.42.66.67  netmask 255.255.255.248  broadcast 10.42.66.71
ether be:8d:07:6e:19:de  txqueuelen 1000  (Ethernet)
...
§ telnet  10.42.66.66
-----------------------------
Jolla Recovery v2.0
-----------------------------
Welcome to the recovery tool!
The available options are:
1) Reset device to factory state
2) Reboot device
3) Shell
4) Perform file system check
5) Run sshd
6) Exit
Type the number of the desired action and press [Enter]: 
3
If you continue, this may void your warranty. Are you really SURE? [y/N] y
/dev/mmcblk0rpmb: read failed after 0 of 4096 at 0: Input/output error
/dev/mmcblk0rpmb: read failed after 0 of 4096 at 4128768: Input/output error
/dev/mmcblk0rpmb: read failed after 0 of 4096 at 4186112: Input/output error
/dev/mmcblk0rpmb: read failed after 0 of 4096 at 4096: Input/output error
2 logical volume(s) in volume group "sailfish" now active
readlink('/proc/self/fd/3') failed: No such file or directory [fd=3]
warning: unable to get realpath for the library "libGLESv2.so". Will use given name.
readlink('/proc/self/fd/3') failed: No such file or directory [fd=3]
warning: unable to get realpath for the library "libcutils.so". Will use given name.
readlink('/proc/self/fd/3') failed: No such file or directory [fd=3]
warning: unable to get realpath for the library "libutils.so". Will use given name.
readlink('/proc/self/fd/3') failed: No such file or directory [fd=3]
warning: unable to get realpath for the library "liblog.so". Will use given name.
readlink('/proc/self/fd/3') failed: No such file or directory [fd=3]
warning: unable to get realpath for the library "libEGL.so". Will use given name.
readlink('/proc/self/fd/3') failed: No such file or directory [fd=3]
mkdir oem
mount /dev/mmcblk0p28 oem
mkdir cache
mount /dev/mmcblk0p24 cache
rm -rf oem/*
cp -ar cache/* oem
umount oem
umount cache
rmdir oem cache
exit
-----------------------------
Jolla Recovery v2.0
-----------------------------
Welcome to the recovery tool!
The available options are:
1) Reset device to factory state
2) Reboot device
3) Shell
4) Perform file system check
5) Run sshd
6) Exit
Type the number of the desired action and press [Enter]: 
2
Rebooting...
Connection closed by foreign host.

Mais ce petit flash qui a foiré, et qui a vu le script s’arréter, a-t-il compromis toute l’opération ? Où ce situe-t-il dans la séquence d’installation ? Le plus simple est d’aller voir :

§ tail -9 flash.sh
echo "Flashing oem partition.."
$FLASHCMD oem $BLOBS
echo
echo "Flashing completed."
echo
echo "Remove the USB cable and bootup the device by pressing powerkey."
echo

c’était la dernière manip : hormis cette dernière étape, tout a été écrit sur le terminal ; tout devrait bien aller bien (oui faut y croire fort !) : il ne reste plus qu’à laisser le Sony’X rebooter.

et le Sony’X reboota en version Officielle …

Ce petit partage d’expérience ne demande qu’à se poursuivre sur le forum ! par exemple, peut-on retrouver l’appli « carte » présente sur le premier jollaphone ?

Forum_LINK

bandix400

bandix400

Auteur

Je suis passionné de génétique, d’informatique, de mécanique, et je m’arrête là car je manque déjà de temps pour tout faire ; autrement j’y rajouterais volontiers l’électronique, la musique, l’aquariophilie, le graphisme, le jeu Vidéo (simulation de conduite/FPS) et du ju-jitsu traditionnel.
bandix400

Les derniers articles par bandix400 (tout voir)

Sony'X, où Sailfish X sur Xperia X