I telefoni UIQ 2.x usano per gli appunti un formato particolare, probabilmente proprieario, binario,
incompatibile con qualunque altra applicazione. Su alcuni modelli è FORSE possibile esportali tramite
SyncML, ma in ogni caso non sul mio Motorola a1000.
Questo è uno studio di reverse engineering sul formato del jotter, che dovrebbe portare, con l’aiuto di chi legge,
a scrivere un programma per PC in grado di esportare le note del Jotter.
Gli appunti sono organizzati su due file:
c:\system\apps\jotter\jotter.ini File delle categorie
c:\documents\jotter\jotter File dei dati
Il file jotter.ini sembra contenere il percorso c:\documents\jotter\jotter tante volte quante sono le
categorie esistenti, incluse quelle predefinite Generale e Personale.
E’ inoltre presente l’elenco delle categorie; ogni entry è formato da:
un byte che indica la lunghezza del testo MOLTIPLICATA PER 4 (???)
il testo
4 byte che rappresentano l’UID della categoria; il terzo di questi byte vale 0×10 se la categoria è
“di sistema” (Generale, Personale, e forse un’altra (???) ).
La categoria “Tutto” ha l’UID speciale ff ff 00 00
Categoria ”Personale”: 01 10 00 00
Categoria ”Generale”: 02 10 00 00
Sembra che, A VOLTE (???), aggiungendo una nuova categoria, questo elenco non vnga aggiornato, ma quello nuovo viene accodato a quello vecchio.
Le categorie sono elencate in ordine alfabetico.
E’ POSSIBILE che cambiando i percorsi associati alle categorie si possa usare un file Jotter
diverso per ogni categoria (???). Forse bisogna prima creare a mano le cartelle (???).
Il file Jotter contiene i dati degli appunti. Ogni entry è formato da 6 campi (elencati all’inizio del file):
Create_date (8), Update_date (8), Flags (
, UID (4) , Sketch (6), Text_Jot (xxx)
Le date sono in formato symbian standard (vedi articolo apposito).
I flag sono sempre tutti a 00 00 00 sul mio A1000.
L’UID è ovviamente quello della categoria associata.
“Sketch” è presente solo se c’e' un disegno associato alla nota
Text_jot è formato da 2 byte:
- se il primo vale 0×00, il secondo indica IL DOPPIO della lunghezza della stringa dell’appunto.
- se il secondo vale 0×40, il primo indica la lunghezza ESATTA della stringa
- se il secondo vale 0×4Y e il primo 0xQR, con Y=qualunque , allora la lunghezza della stringa è data da 0×0YQR
Probabilmente questo schema è descrivibile in un modo piu’ sensato, che al momento non mi viene in mente…
PROBLEMA: non tutti gli appunti rispettano questo schema: alcuni sono semplicemente stringhe
precedute dalla loro lunghezza!
Questo pero’ puo’ dipendere che il Jotter sul mio a1000 è stato ”ereditato” dal SonyEricsson p800
che avevo prima, per cui forse c’e' stato un miscuglio di formati.
PROBLEMA2: bisogna scoprire se esiste una tabella di indirizzi che punta ai vari entry, per individuare
anche quelli ”speciali” senza intestaiozne.
Questa prima bozza di programma è in grado di estrarre ALCUNI degli appunti (solo se successivi
al 2003), individuandoli tramite le loro date:
http://www.planetmobile.it/jumpjack/ReadJotter.zip