Jollafono, primo panico e recupero

Arriva il "nuovo" telefono.
In realtà il telefono è vecchio di un paio d'anni, ma per me proverà ad essere un sostituto del durevole HTC che mi accompagna dall'estate 2013.

Lo jolla-fono è gestito da Sailfish OS ⬀ (anche wiki ⬀), un mix fra una distribuzione Linux (Mer ⬀), una interfaccia utente proprietaria creata da Jolla ed altre componenti.

Alcuni punti bonus vengono dalla possibilità di usare le applicazioni Android, affiancando il software nativo della piattaforma.

2015-09-29 Primo approccio

Ho avviato gli aggiornamenti dell'OS a nastro fino alla versione 1.1.9 che porta con sè la nuova interfaccia (2.0) ⬀.

Con la nuova versione dell'OS il fono si pianta sul lockscreen. Telefono inutilizzabile. Leggera sensazione di panico. ;-)
Necessario un recover completo seguendo il link https://jolla.zendesk.com/hc/en-us/articles/204709607-How-do-I-use-the-Recovery-Mode- ⬀.

  1. spegnere il telefono
  2. tenere premuto il volume giù
  3. mentre si tiene premuto il volume giù, si riavvia il telefono
  4. dopo la vibrazione connettere il telefono al pc via usb: comparirà un'interfaccia di rete.
  5. assegnare ip ad usb0 appartenente alla giusta sottorete.
  6. telnet 10.42.66.66

Telefono recuperato.

Il giorno successivo eseguo nuovamente tutta la trafila fino alla versione 1.1.9.28.
Aggiornamenti completati con successo.

Lo jolla-fono 2.0 è qui e lotta insieme a me.

2015-09-30 La prima connessione

Attaccando lo jolla via usb al computer possiamo creare un collegamento Ethernet over USB semplicemente dando un ip alla box nella stessa sottorete indicata nel telefono (per vere più riferimenti guardare Ethernet over USB ⬀ , USB CDC ⬀ e usbnet ⬀).

L'utenza è "nemo", la password è generata nel cellulare (configurazioni | sistema | modalità sviluppatore).
Ovviamente l'ssh server che gestisce la connessione accetta una chiave in .ssh/authorized_keys che ci semplificherà la vita.

Nota a parte: può essere comodo creare una serie di automatismi con ssh e udev per accedere facilmente al telefono.

  1. voce in /etc/hosts che punta all'ip usb del telefono
  2. creazione di una chiave ssh con ssh-keygen; copia della chiave pubblica sul telefono
  3. aggiungere una regola udev che deve attivarsi quando il telefono viene connesso al desktop. Qualcosa di simile a:
    ACTION=="add|change", SUBSYSTEM=="net", ATTRS{idVendor}=="x", ATTRS{idProduct}=="y", ATTRS{product}=="Sailfish", ATTRS{serial}=="z", ATTRS{manufacturer}=="Jolla", ATTR{address}=="aa:bb:cc:dd:ee:ff", RUN+="/sbin/ifconfig %E{INTERFACE} 192.168.2.1 up"
    Per individuare i parametri utili: dmesg, lsusb, udevadm
  4. $ ssh -l nemo -i .ssh/id_rsa.jolla jolla

2015-10-01 Primo contatto

Avere accesso diretto al telefono è una benedizione per spostare i file: aggiunta una micro sd si va di scp e rsync a manetta.
$ scp -i ~/.ssh/id_rsa.jolla -vr -p ~/Music/Thelonious_Monk nemo@jolla:/media/sdcard/CDF2-6BE2/Music
$ rsync -av -e 'ssh -l nemo -i /home/sim/.ssh/id_rsa.jolla' ~/Music/Bob\ Mould jolla:/media/sdcard/CDF2-6BE2/Music

Per visualizzare notifiche di sistema si può usare python:

#!/usr/bin/python

import dbus

bus = dbus.SessionBus()
obj = bus.get_object('org.freedesktop.Notifications', '/org/freedesktop/Notifications')
interface = dbus.Interface(obj, 'org.freedesktop.Notifications')

interface.Notify("app_name", 0, "/path/to/icon-m-notifications",
	"Here is the title",
	"and here the body",
	dbus.Array(["default", ""]),
	dbus.Dictionary({
		"x-nemo-preview-body": "preview body",
		"x-nemo-preview-summary": "preview summary" },
	signature='sv'),
	0)
Nota: serve installare la libreria dbus con # pkcon install dbus-python.

E' anche possibile avviare via dbus:

il browser
$ dbus-send --session --type=method_call --dest=org.sailfishos.browser / org.sailfishos.browser.openUrl array:string:"www.simotrone.it"
la posta
$ dbus-send --session --type=method_call --dest=com.jolla.email.ui /com/jolla/email/ui com.jolla.email.ui
il bluetooth
$ dbus-send --system --print-reply --dest=net.connman /net/connman/technology/bluetooth net.connman.Technology.SetProperty string:"Powered" variant:boolean:true

Ho trovato informazioni interessanti sul sito di Alfonso Martone ⬀ e maemo.org ⬀.

2015-10-03