LinuxでiMessageやSMSを快適に!Tetherを使ってメッセージを統合しよう
Tether: iMessage, SMS, etc. on Linux
Tether: iMessage, SMS, etc. on Linux
Tetherは、Linux環境でiMessageやSMSなどのメッセージングサービスをシームレスに利用するためのツールです。スマホを取り出さずにPC上でメッセージのやり取りが可能になり、作業効率が劇的に向上します。
「相互運用性のプロトコル実装をコピーレフトなライセンスで公開するのは、少し残念なことだと思う!」
えっ、その視点はなかったな。ちょうどancs4linuxをMITライセンスに切り替えたところだよ。
Appleの「壁で囲まれた庭」に風穴を開けようとする作者に最大の敬意を。私は15年iPhoneを使ってるけど、WindowsのiTunesでバックアップする以外に選択肢がなかったんだ(Macを買うつもりは一切ないからね)。Appleが相互運用性を拒むのは犯罪に近いよ。もっとマシな選択肢があればいいのに。
これ全部、iPhone(や他のデバイス)上のブローカーアプリがデータをやり取りすることで可能になっているんだね。見出しを最初に読んだときは、仲介なしで直接Appleのエコシステムに統合できるのかと思ったよ。もしそうなら、ほぼ不可能に近いことだからめちゃくちゃ凄いことだなと驚いたんだけど。
すごく良いね!Continuity(連係機能)はLinuxでも完全に実装できるはずだよ。まず必要なのは、Bluetooth、Wifi-Direct、それからTailscaleのようなメッシュネットワークまで網羅する、通信の「バックボーン」だね。Continuityは部分的にAWDL(Apple独自のWifi-Direct実装で、高速なデバイス間通信やiPadのSidecarなどを可能にするもの)をベースにしている。そのバックボーンの上にプロトコルを構築できれば、実際に役立つアプリケーションを作れるようになるはず。
KDE Connectを数年使ってる身としては、スマホやノートPCのスリープ復帰時に再接続が必要になることがあって完璧じゃないのは知ってるけど、少なくともAndroidならクリップボード同期、通知、SMS、通話、リモート操作、メディア再生制御まで何でもできるよ。作者がこんなに苦労したのはiOSの制限のせいだろうね。それにしても見事な努力だ。つまり、LinuxエコシステムはAndroidと直接結びつかなくても、より優れた垂直統合を実現できているってことだな。
リンクされているblueferryのドキュメントは素晴らしいね。2020年にHNのコメントに触発されて、BluetoothのMAP(Message Access Profile)経由で接続したiPhoneからLinuxでiMessageを送受信するプロキシを書こうとしたことがあるんだ。メッセージの送受信まではできたんだけど、ドキュメントの「Group metadata side channel」セクションで言及されている問題にぶつかった。受信ボックスのbMessagesには送信者は含まれるけど、受信者は含まれていなかったんだ。MAP標準では「含めるべき(shall)」とされているのにね(22ページ参照)。その当時はANCSの存在を知らなくて、そのチャンネルを使うという発想がなかった。メッセージがどのようなコンテキストで送られたかを知る方法がなかったので、スレッド化ができず、追求する価値はないと判断して諦めたよ。
グループメッセージが一番の難所で、それで挫折したんだけど、他にもいくつか問題があったな:
blueferryがこれらの制限をどう処理しているのか、ちょっと確認してみるつもり。
うわ、BlueBubblesのブリッジ経由で送るよりずっといいじゃん!これが本当に動くなら寄付するよ。最高のプロジェクト!
私にとってこれが、macOSに縛り付けられている最後のピースなんだ。後でしっかりテストしてみて、説明通りに動くならFramework 13 Proを注文するよ。
当たり前のこと聞いてたら申し訳ないんだけど、これはOpenBubblesと同じ仕組みを使ってるの?OpenBubblesはAppleのサーバーに直接フックするから、スマホとの接続がいらないのがいいところなんだけど。
iMessage統合のセキュリティについてはどうなってるんだろう?なぜiOSは、自分と同じユーザーとしてログインした正当な認証デバイスだと確認できていないデバイスに対しても、Bluetooth越しにiMessageのデータを送ろうとするの?