Come faccio a far riconoscere il mio telefono all'iSync di Tiger (Mac OS X 10.4.6-10.4.11)?

Diversi telefoni Motorola, Nokia, SonyEricsson, Panasonic o Siemens non vengono riconosciuti da iSync, nonostante siano del tutto equivalenti, dal punto di vista della connettività, ad altri modelli delle stesse marche che sono invece pienamente supportati. Questo dipende solo dal fatto che quei modelli non sono espressamente riportati all'interno del file in cui sono specificati i modelli di telefono gestiti da iSync. Il file in questione si trova all'interno del bundle iSync.app: per la precisione si tratta di

iSync.app/Contents/PlugIns/ApplePhoneConduit.syncdevice/
Contents/PlugIns/PhoneModelsSync.phoneplugin/Contents/Resources/MetaClasses.plist

Si può comunque ovviare a questo problema ricorrendo a dei plugin che permettano ad iSync di riconoscere modelli aggiuntivi.
Alcuni plugin già pronti sono disponibili tra le risorse di Faqintosh e i relativi link sono riportati all'inizio di questa faq.

Per chi avesse un modello di telefono per il quale non è stato ancora preparato un plugin, e volesse cimentarsi nell'impresa, riportiamo qui sotto alcune indicazioni utili allo scopo.

Nota per chi ha Mac OS X 10.5 Leopard: tra i Developer Tools è disponibile l'applicazione iSync Plug-in Maker che permette di prepararsi da sé un plugin per il proprio telefono. Qui trovate il manuale d'uso.


Come prepararsi un plugin

Prima di tutto conviene scaricare uno dei plugin già pronti, in modo da avere una base di partenza su cui apportare le necessarie modifiche. Chi ha un telefono Motorola da sincronizzare via cavo USB, deve scaricare il plugin per il Motorola C350. Negli altri casi, dovrebbe andar bene quello per il Motorola A835.

Una volta scaricato il plugin, questo va messo nella cartella /Library/PhonePlugins (se deve essere disponibile per tutti gli utenti del computer) o ~/Library/PhonePlugins (se deve essere disponibile solo per uno specifico utente), e rinominato in base al proprio modello di telefono.

All'interno della cartella Contents, contenuta nel plugin, si trovano i file Info.plist e version.plist, e la cartella Resources.
Il file version.plist può essere lasciato così com'è, mentre Info.plist va modificato: aprirlo con TextEdit e sostituire tutte le occorrenze di MOTA835 (o MOTC350 se si sta lavorando sul plugin per il C350) con una sigla che identifichi il proprio telefono. Non è necessario usare una sigla specifica, ma se si vuole seguire la convenzione adottata da Apple, si può usare MOT per i Motorola, NOK per i Nokia, PAN per i Panasonic, SE per i SonyEricsson, SIE per i Siemens, seguito dal codice del modello.

A questo punto, possiamo spostarci dentro la cartella Resources per andare a modificare il file MetaClasses.plist, che contiene le informazioni essenziali del plugin. Cominciando dall'alto, modifichiamo la stringa:

<key>com.motorola.A835</key>
(oppure: <key>com.motorola.C350</key>)

in modo da farla corrispondere alla marca e al modello del nostro telefono.
Più sotto, troviamo le stringhe:

<key>com.apple.cgmi+cgmm</key>
<string>"Motorola CE, Copyright 2000"+A835</string>
<key>com.apple.gmi+gmm</key>
<string>"Motorola CE, Copyright 2000"+A835</string>

(oppure:

<key>com.apple.gmi+gmm</key>
<string>"Motorola CE, Copyright 2000"+C350</string> )

che sono quelle che permettono ad iSync di riconoscere il telefono. (Allo scopo, dovrebbe essere sufficiente una sola delle due chiavi com.apple.cgmi+cgmm e com.apple.gmi+gmm, che il più delle volte hanno un valore identico).

Per sapere quali sono le stringhe che identificano il proprio telefono, occorre seguire due procedure diverse a seconda che questo abbia o meno la connessione Bluetooth:

Tramite Bluetooth

Avviare Console (che si trova dentro /Applications/Utility) e da questa applicazione aprire il file console.log (se la colonna dei resoconti non fosse già aperta, basta cliccare sul pulsante "Resoconti" in alto a sinistra e selezionare "console.log").
Cliccare sul pulsante Cancella in modo da ripulire la schermata di Console dalle informazioni che non ci interessano, e lanciare il pannello delle preferenze di sistema Bluetooth.
Nella sezione Dispositivi troviamo l'elenco dei dispositivi Bluetooth associati al computer (se il telefono non fosse già stato associato, bisogna seguire la relativa procedura).
Selezioniamo il telefono nell'elenco e premiamo il pulsante Configura...

Dopo qualche secondo -necessario perché il computer si metta in comunicazione col telefono- (ovviamente il Bluetooth deve essere attivo su entrambi), si apre la schermata di Impostazione Assistita Bluetooth. A questo punto, possiamo tranquillamente chiudere sia Impostazione Assistita Bluetooth che le preferenze di sistema, e tornare a Console. Nella schermata dovremmo trovare il resoconto del dialogo tra computer e telefono. In particolare, dovremmo trovare i comandi +CGMI, +CGMM, +GMI e +GMM, seguiti dalle rispettive stringhe inviate dal telefono al computer. Ad esempio, nel caso del Motorola A835:

+CGMI: "Motorola CE, Copyright 2000"
+CGMM: "GSM900","GSM1800","GSM1900","WCDMA","MODEL=A835"
+GMI: "Motorola CE, Copyright 2000"
+GMM: "GSM900","GSM1800","GSM1900","WCDMA","MODEL=A835"

Da questi dati, si possono costruire le stringhe da inserire dopo le chiavi com.apple.cgmi+cgmm e com.apple.gmi+gmm, seguendo l'esempio sottostante:

<key>com.apple.cgmi+cgmm</key>
<string>"Motorola CE, Copyright 2000"+"GSM900","GSM1800","GSM1900","WCDMA","MODEL=A835"</string>
<key>com.apple.gmi+gmm</key>
<string>"Motorola CE, Copyright 2000"+"GSM900","GSM1800","GSM1900","WCDMA","MODEL=A835"</string>

(Nel caso in cui +CGMM e +GMM contengano MODEL, dovrebbe andar bene anche il solo codice del modello, al posto del valore completo, come è il caso dell'A835.)

Tramite cavo USB

Se il telefono è un Motorola che non ha il Bluetooth, per ottenere queste informazioni è necessario utilizzare un programma come ZTerm ed il cavo USB adatto al telefono. Prima ancora, però, conviene identificare l'ID del telefono che servirà in un passaggio successivo.

Una volta collegato il telefono al computer, lanciare System Profiler (dentro /Applications/Utility) e guardare sotto "Hardware | USB". Sotto uno dei Bus USB disponibili, dovrebbe comparire il telefono: se lo si seleziona, nel pannello delle informazioni si trova la voce ID prodotto, seguita da un numero esadecimale da annotare, che ci servirà più avanti (se il telefono viene usato come modem, probabilmente non comparirà sotto System Profiler: in questo caso basta scollegare il telefono, disabilitare la porta modem del telefono nelle preferenze di sistema Network e ricollegare il telefono).

A questo punto torniamo alle stringhe di identificazione del telefono: se non abbiamo mai aggiunto la porta modem del telefono alle interfacce di rete disponibili, occorre lanciare il pannello Network delle preferenze di sistema. Un messaggio ci dovrebbe avvisare che è stata rilevata una nuova porta: dare l'OK, salvare la configurazione e chiudere le preferenze di sistema.
A questo punto, lanciare ZTerm e sotto "Settings | Modem preferences..." selezionare la seriale del proprio telefono dal menu a tendina Serial Port (dovrebbe essere qualcosa del tipo usbmodem1811).
Per ottenere le informazioni richieste digitare, nella finestra principale di ZTerm, il comando:

AT+CGMI;+CGMM;+GMI;+GMM (seguito da [Invio])

Torniamo al file MetaClasses.plist.
Nel caso si sia partiti dal plugin per l'A835, la successiva stringa da prendere in considerazione è:

<string>com.motorola.usb-bt.0x22B8/0x3002</string>

dalla quale dipende il particolare conduit che iSync userà per connettersi al telefono. Nel caso di un generico Motorola dotato di Bluetooth, 0x3002 dovrebbe essere sostituito con 0x4902. Se non dovesse funzionare, si può provare a sostituire l'intera stringa con

<string>com.motorola.switchable-usb-bt.0x22B8/0x4902</string>

Nel caso di altre marche, occorrerà andarsi a spulciare il file

iSync.app/Contents/PlugIns/ApplePhoneConduit.syncdevice/
Contents/PlugIns/PhoneModelsSync.phoneplugin/Contents/Resources/MetaClasses.plist

e cercare di individuare la stringa che fa al caso proprio, all'interno di uno dei modelli della stessa marca riportati nel file.

Nel caso invece di un Motorola da sincronizzare via cavo USB, caso in cui bisogna partire dal plugin per il C350, la stringa da modificare sarà

<string>com.motorola.usb.0x22B8/0x5802</string>

In particolare, bisognerà sostituire 0x5802 con l'ID del proprio telefono, trovato in precedenza.

Continuiamo a scendere lungo il file MetaClasses.plist. Incontriamo

<key>ModelIcon</key>
<string>MOTA835.tiff</string>

(oppure:

<key>ModelIcon</key>
<string>MOTC350.tiff</string> )

Non è indispensabile, ma se vogliamo fare le cose per bene, possiamo preparare un'icona del telefono (TIFF 60 x 60) da mettere all'interno della cartella Resources.
Nelle stringhe appena riportate, andremo quindi a sostituire MOTA835.tiff col nome della nostra icona. Molte icone di telefoni, da prendere come riferimento, si trovano nella cartella

/Applications/iSync.app/Contents/PlugIns/ApplePhoneConduit.syncdevice/
Contents/PlugIns/PhoneModelsSync.phoneplugin/Contents/Resources/

Scendendo ancora più giù nel file, troviamo

<key>ModelName</key>
<string>A835</string>

(oppure:

<key>ModelName</key>
<string>C350</string> )

Qui basterà sostituire A835 con la sigla del proprio telefono. A questo punto, fatta eccezione per i Motorola da sincronizzare via USB, il lavoro dovrebbe essere terminato. Se iSync non riesce a dialogare col dispositivo, si deve provare a sostituire la stringa che identifica il conduit con un'altra tra quelle riportate nel file MetaClasses.plist che si trova nel bundle di iSync.app, procedendo per tentativi. Ogni volta che modifichiamo il file, dovremo salvare le modifiche e chiudere e riaprire iSync.

Nel caso invece di un Motorola USB, bisogna verificare se all'interno del file MetaClasses.plist del bundle di iSync si trova la seguente stringa:

<key>com.motorola.usb.0x22B8/0x****</key>

dove al posto degli asterischi vanno messe le cifre dell'ID del proprio telefono.
Nel caso in cui la stringa esista, basta cancellare dal file MetaClasses.plist del plugin la seguente parte:

<key>com.motorola.usb.0x22B8/0x5802</key>
<dict>
<key>Identification</key>
<dict>
<key>com.apple.usb.vendorid-modelid</key>
<string>0x22B8/0x5802</string>
</dict>
<key>InheritsFrom</key>
<array>
<string>family.com.motorola.pimsync.p2k.usb</string>
</array>
<key>Services</key>
<array/>
</dict>

Se invece la stringa non è presente, le righe qui sopra non vanno cancellate, ma bisogna sostituire tutte le occorrenze di 0x5802 con l'ID del proprio telefono. A questo punto il lavoro dovrebbe essere finito: nel caso in cui iSync non riesca a sincronizzarsi col telefono, provare a sostituire

family.com.motorola.pimsync.p2k.usb

con

family.com.motorola.p2k.usb

[ Home | Elenco delle FAQ | Risorse | Feed RSS ]