Tether: iMessage, SMS, etc. on Linux
zackbartel.com280 points by zackb 6 days ago
280 points by zackb 6 days ago
> Personally, I think putting an interoperability protocol implementation behind a copyleft license is a little unfortunate!
Huh, haven't thought of it. Just relicensed ancs4linux to MIT.
I love HN. Read an article that raises a reasonable point about a project’s license, and that project’s author shows up to announce they were convinced and changed the license accordingly. Repo was updated 5 minutes ago.
It’s things like this that give me hope for the world.
I'm not a scab, so I won't use permissive licenses on my unpaid projects. People who want to use them at work can cry me a river.
Same. Started to adopt AGPLv3 for every new project. With AI sucking up all the CV-driven contributors, it’s time to take back open source as a joyful hobby for nerds that enjoy programming and sharing their creations with one another, instead of being corpo stans that do free support for shareholder driven enterprises.
Do you think AGPL is going to stop a crawler from incorporating your work into their training set? I don’t. There are zero meaningful consequences atm.
That being said, I’m with you in spirit and in action, but realistically it’s pointless outside of living in accordance with your values.
Edit: Re-reading that, i just told you that your principles are pointless, and thats fucked up and wrong. I’m going to live in accordance with mine and not delete this, but apologies.
[flagged]
So I'm guessing you don't do anything except what matters to billions of people? Always 100% fully generalized contributions, never making your local world a better place? Your only local contributions being to tell off people who are grateful that their lives are materially improved by someone else's smaller actions... You must be beloved by your community.
[flagged]
Yet here you are, posting self-congratulatory comments about how you don't post self-congratulatory things.
IMHO this is even less meaningful/impactful than the comment that you objected to.
I don't think the point you're trying to make improves the quality of the discussion here. If a downstream project laments a license and the author changes it, that's good communication and cooperation. Complaining that people are happy with the outcome isn't productive.
Making one small corner of the world a little bit better is a good thing. There's not much use in complaining that it's not as big of an impact as could hypothetically be achieved on some larger issues.
“He who would do good to another must do it in minute particulars. General good is the plea of the scoundrel, hypocrite, and flatterer.” -- William Blake
It's things like this that rob my of my hope for the world.
Lol. Someone liking this change is stupid for letting it lift their outlook, right? How stupid is it then to let this comment rob your hope.
I saw someone smile at the park the other day, do you think you could talk to them for me?
Not GP but I feel like that's kinda their point - the fact that we still have this platform to collaborate in such an organic way is truly remarkable and must not be taken for granted.
This is verifiably false. Without copyleft licensing like the GPL or permissive licensing like MIT and Apache we literally would not have the internet, or it would be somehow even more wildly dystopian and proprietary than it already is.
Actually a lot of that bad stuff billionaires are doing is enabled by MIT licensed software. Like, device lockdown is illegal with GPL3
People are concerned about having homes to live in and having food to eat. They aren't concerned about 'device lockdown'. Try to see the bigger picture.
Device lockdown is why our biggest billionaires are billionaires. It's how they made their money and still make it.
Isn't this[0] the use-case that is supposedly covered by LGPL?
[0] copyleft-licensed library that could be legally linked into non-copyleft code base.
[flagged]
Those poor multi-trillion dollar companies that can't use copyleft projects, whatever will they do?
You might want to check again for something that has patent protection. apache2+llvm exception, or just the mozilla public license...
EUPL is also basically GPL without being viral, too.
Mega-kudos to the author for chipping away at the wall around Apple’s garden.
I have had a iPhone for 15 years, and I have only ever been able to back it up with iTunes on windows (as I will never buy a Mac).
Apple’s refusal to provide interoperability borders on criminal. I wish there was a better option.
Have a look at https://github.com/libimobiledevice/libimobiledevice and iOS backup projects that are based on it.
Or idevice [0] (the one I prefer), or go-ios [1], or pymobiledevice3 [2]
[0]: https://github.com/jkcoxson/idevice
Over the years, I have tried to make that solution work, but it never ever went smoothly.
Maybe it’s time to try it again, but it’s an arms race from what I remember. Apple just keeps changing things; if you’re on the latest iOS version, it was unlikely to work. Has that changed?
> as I will never buy a Mac
Want a round of applause or what?
> Apple’s refusal to provide interoperability borders on criminal.
This is the most over dramatic thing I’ve read on HN today. Congrats.
I'm shouting into the wind here a fair amount, but I just discovered DeltaChat and ArcaneChat. ArcaneChat is available only on Android, but DeltaChat is available on iOS and uses chatmail relays. My family has found it to be super useful and effective. I don't think it's viable to convert everybody in my social circle, but I've been very happy with the apps and attachments, notifications, and general performance.
I'm considering running my own chatmail relay, although I haven't tried that yet.
DeltaChat was much more useful when it worked with any email server and didn't need its own special kind of server. We have plenty of messengers that use their own servers, like matrix, XMPP, and simplex.
Didn't know they stopped working with regular email servers, that is a huge letdown. I'm guessing this was quite recent?
That was their one big plus and while I avoided it because of PGP, this means that it really has no upside over XMPP for me.
[flagged]
Because they provide a platform. Platforms are not normal products. Once a product becomes a platform, the rules should change to force interoperability. This should be true no matter the product or technology.
Nobody's asking Apple to provide anything. We just want them to stop sending cease and desists to developers who do provide said thing.
They don't have to add support. All they need is APIs and documentation.
[flagged]
No it's not.
Do you think it costs nothing to provide stable APIs and write documentation?
You could stop using iMessage and iCloud.
Green bubbles, WhatsApp, Signal, etc. are not an option for a lot of people. I don't get it either.
What is there to get? Some people just don’t want to use other services. Period.
Not sure why people having their own subjective views and preferences is such a hard concept to grasp.
Because techies on average aren't socially popular enough to get anybody to make any effort to msg them on a better platform.
Speak for yourself
Ok! I don't use iMessage because people I want to talk to are happy to install a new app to do so. :)
I know people who have iPhones just for FaceTime because young and old non-techies use those a lot.
I’ve gotten my close friends onto Signal but there are still always 3-4 group chats where that isn’t possible.
> I’ve gotten my close friends onto Signal but there are still always 3-4 group chats where that isn’t possible.
I'm sure it's possible for them to use Signal but some people are unreasonably stubborn.
You mean the same Apple, who supports RCS, and historically supported open protocols?
As to iMessage, think carefully about the architecture, and maybe you can imagine why it is Apple only.
As a fanboy I can admit rcs came with them kicking and screaming against it.
didn't it take legal threats from the EU to ultimately make it happen?
Yeah, and I’ve yet to make any use of this feature. Nice to have, but let’s not pretend RCS is that big of a deal in any way.
This is all made possible by broker app on the iPhone / (or other device) to send data back and forward. When I first read the headline I thought it would integrate directly into the Apple ecosystem without needing middlemen which would have been crazy impressive since I believe it is or very near entirely impossible.
As a KDE Connect user for a few years I know it doesn't always work without reconnecting especially with sleep cycles on the phone and the laptop but it does everything on Android at least - clipboard sync, notifications, sms, calls, remote control and media playback control. Must be iOS restrictions that made the author go through the admirable effort.
IOW Linux ecosystem has better vertical integration without any direct ties with Android :)
Does KDE connect work with other, non KDE window managers?
Yes, and it's great. But you can't iMessage / SMS or get Notifications with iPhone.
The linked blueferry doc is excellent. Back in 2020, inspired by a comment on HN, I looked into writing a proxy to send and receive iMessages on Linux through an iPhone connected with Bluetooth Message Access Profile (MAP). I was able to send and receive messages, but I ran into the problem mentioned in the doc in the "Group metadata side channel" section: the bMessages in the inbox included the message originator, but didn't include the recipients, even though the MAP standard says that it "shall" be included (see page 22). I didn't know about ANCS, so it didn't occur to me to use that channel, and without any way to tell what context a message was sent in, I couldn't do threading, so I decided it wasn't worth pursuing.
The group messages were the biggest problem, and that's what made me give up, but there were some other issues:
- Shared links showed up as "Website: Short description (example.com)" and didn't include the URL
- Images weren't shown at all
I might take a look and see how blueferry handled those limitations.
[blueferry doc] https://github.com/erikwb/blueferry/blob/main/PROTOCOL.md
[inspiration] https://news.ycombinator.com/item?id=23411520#23413394
[Bluetooth MAP standard] https://www.bluetooth.com/specifications/specs/message-acces...
What’s the security story behind the iMessage integration? Why is iOS willing to send iMessage data over Bluetooth to a device that hasn’t convinced Apple that it’s a validly authenticated device signed in as the same user?
I don’t know the full history but before CarPlay it was used to read and respond to messages using entertainment systems.
Sorry if this is obvious, but does it use the same thing OpenBubbles does? What's nice about that is that it just hooks directly into Apple's servers, so doesn't require a connection to your phone or anything.
This is a good question. No, OpenBubbles impersonates a Mac and talks to Apple's servers. Tether connects to the phone via Bluetooth and asks the iphone to send/receive messages. OpenBubbles's technique is not supported by Apple, while their Bluetooth version is.
Besides messaging it doesn't do any of the other stuff Tether does (author, im biased).
Thank you! Yeah, this is a lot more features than openbubbles could ever do. Going to check it out for sure. Thanks for making it!
Whoa this is so much better than having to send it via a BlueBubbles bridge, if this actually works I’m donating! Awesome project!
Very nice, I'll say Continuity can absolutely be implemented fully on Linux though ! I think the thing we'd need very first is an actual communication "backbone" that would span bluetooth,wifi-direct and even mesh networks like Tailscale or smth. Continuity is partly based on AWDL, Apple proprietary implementation of Wifi-Direct to allow high speed local inter device communication and allow things like Sidecar with an iPad. Then we could implement protocols over that backbone to implement actual useful applications.
For me this is the last piece of the puzzle keeping me on macOS. I’ll give it a proper test later and if it works as described I’ll be ordering a Framework 13 Pro.
Oh, so it requires an app, which isn't even available on older iOS versions… that's such a shame, I wanted to try it out on my iOS 17.0 iPhone. (and I thought it was just using the official Apple ways used for macs, so that's a small disappointment)
Wasn't there another iMessage clone for Linux/Android a few years back and they got a C&D from Apple? Or maybe Apple just blocked their service?
This is very different from Beeper or BlueBubbles.
Tether is "merely" talking to your iPhone over bluetooth and the local network. It does nothing if you don't already have an iPhone. Apple should have no more reason to come after this than it does a Garmin watch that can show your iMessages via bluetooth.
There’s bluebubbles which runs a server on a Mac and syncs your messages that way.
Beeper?
Yes, I don't see why the author expects anything different to happen this time. I guess there's a new king on the throne.
As a general rule, Apple will shut down an operator of such service once it gets used to pump out spam.
Of course, every spammer dreams of their spam texts coming through as a blue bubble.
Oh, fantastic, thank you. If this allows me to drop files onto an iPhone without me having to open an app, that would solve a lot of my issues. I use localsend right now and although I really love it, it still requires me to always keep the app open on the phone.
Dependencies: ...wayland-client...
Nuts, I'm on xfce, and don't intend to switch over until it's necessary.
Why is Wayland necessary for this?
We really need a WaylandX, don't we? It shouldn't be that hard to make, since Wayland is a very limited protocol...
I can't think of an ideological reason that apps shouldn't require Wayland that wouldn't apply to anything else. Isn't it just as bad for an app to require X11 or to require Linux or to require Windows or to require Android? You are free to port it to X11 or any other platform.
I mean... if you wanna keep using xorg, more power to you. But you can't expect developers to keep supporting it. Isn't XFCE moving to Wayland soon anyway?
This is incredibly timely as I moved my first choice personal computer to full time linux this week (and am a long time iPhone user who loves the autofill as well). I'll be happily contributing when I find an itch that needs to be scratched.
Does clipboard sync work when the iOS app is in the background?
Pretty cool stuff either way!
Doesn't Tether lack end-to-end encryption, making it less secure for private communications?
This is for iPhones only. Do I assume correctly that the issue is solved for Android, instead?
I don't know the specific ones, but there are android apps that replace Google Messages (dark pattern warning: enabling this makes your previous messages inaccessible as Google Messages won't let you read them unless it's your default SMS app) as well as apps that can send and receive in parallel to Google Messages. I'm not sure if there are also apps that can read your message history out of Google Messages.
Also curious. I keep messages.google.com in a pinned tab but the number of times I have to go find my phone and re-authenticate is too damned high.
On Android, you can use KDE Connect on KDE and GSConnect on GNOME. It has a Messaging app that syncs with your phone's SMS.
Is there an easy way to share iOS clipboard to Linux directly using local WiFi without going through any cloud?
Edit: clarification in my reply later in this thread: https://news.ycombinator.com/item?id=49492003
"Easy" is subjective, but tether seems like it would do this? There is also kdeconnect (don't let the "KDE" fool you).
That's what I thought at first but then discovered:
> universal clipboard is synchronized over internet, it is not done trough cable connection. it uses apple continuity service, what you put into UC is uploaded into apple cloud,..
https://github.com/libimobiledevice/libimobiledevice/issues/...
That's why I'm a bit confused now.
> don't let the "KDE" fool you
Being GNOME2-then-MATE user, it really would.
It's a project by KDE, but it doesn't require you to use the KDE desktop environment. I'm sure it integrates with that but it doesn't require it.
You can use the app that is the subject of this thread:
https://apps.apple.com/us/app/tether-linux-companion/id67620...
Literally OP does this. It doesn't share it automatically like iOS-to-macOS integration but you open the app, click a button - job done.
You cant really complain about the ecosystem if you insist on using an iPhone. What you think is interop is viewed by Apple as hostile and if they could find a way to sue you for it they would.
Fair, but the only other major player here, Google, has not done much better; RCS is still locked up with no API in sight.
I use whatsapp primarily, so no tethering needed, but SMS of course for one-time passwords and the like. I didn't want to open my phone for that. So I had a coding agent write an android background app for me that listens for SMS and forwards it to a discord server, and side loaded it. So now I get a discord notif on my laptop with the OTP.
I have Google Fi, we always had messages.google.com to even get calls, which I never did. Convenient especially because I write longer messages.
Never felt superiour over others for it.
[dead]
I don't know.
What's a feature not in KDE connect that the writer wanted and it didn't have?
They could always submit a pr.
Beeper exists you know....
I have a question. It's fine to build for your own self but is it okay to release something in public when the environment is a moving target and you are just a one-man team keeping it afloat?
Wouldn't it be better to go behind established FOSS products and not reinvent the wheel when you don't have to?
I understand no one can tell you how to or why to do certain things but there comes a time, when youw want to help, not build the next temple os and instead help manjaro or whatever is cool these days?
I find KDE Connect severely lacking. It's great that it exists, and maybe it's really excellent with Android, but for iOS it's really not there yet.
Even features that do exist don't always work reliably. I can't send files between devices, most of the time clipboard sharing doesn't work either, and there's loads not implemented.
> What's a feature not in KDE connect that the writer wanted and it didn't have?
From TFA:
"And Tether now supports: iMessage, SMS, Notifications, Contact sync on Linux. In addition to its previous: File Transfer, Clipboard Sync, OTP handling."
> Wouldn't it be better to go behind established FOSS products and not reinvent the wheel when you don't have to?
From TFA:
"Before you ask, I know KDE Connect exists. It's great! If you're on Android you should definitely use it. The problem is that it didn't do what I wanted and it's roadmap indicated it never would."
Maybe next time read the article before commenting?
Let's be fair: At least some of the features you quoted do work in KDE connect in my experience, so I had the same question as GP. Even after reading the article.
Like I mentioned, I found KDE Connect to be lacking but mostly even the feature that it does have, don't always work.
So far (really only a couple hours), Tether seems a lot more polished.
This is a very good point and I'm not sure why you're being downvoted. I considered contributing to KDE Connect but decided against it for many reasons:
1. This would be a major subsystem added to KDE Connect and I have no history with the project.
2. The KDE Connect roadmap explicitly lists iMessage / SMS support as "Won't Implement"
3. My project requires a browser extension and mail extension, I can't imagine I have much of a chance of getting a "KDE Connect" extension approved.
4. Time: it would have taken much longer to jump through all the (appropriate) hoops.
5. Choice. While I'm not a fan of Omarchy, I LOVE what it is doing. Having an alternative to the Big Two and embracing "custom" desktops is very appealing to me, and I think it is a good thing for Linux and FOSS.
6. I was going to do this no matter what, it worked better than I expected, I wanted everyone to have it.
One of the not cool things about KDE Connect is that its "plugins" system doesn't seem like it.
Where are more plugins for it? How you add them? Where are docs for creating them?
I haven't had a great feeling when asking its dev about stuff but hope that situation has changed. Having a proper plugin system would let people like OP extend KDEConnect and potentially benefit more people, instead of being subjected to the will of its devs and the roadmap.
I suspect this is the wrong way to think about it. Since it's FOSS, you don't even need a plugin system to extend it. Likely the plugins are just an internal organisation structure.
I would argue that if you have the same setup as the author then use it. Yes a moving target but won't you fix something you use for yourself? Also point an agent at it get it back working in a few hours of waiting :P
Glad you brought that up, I was actually going to suggest not to replace KDE Connect but rather to become interoperable with it because AFAIR (but didn't touch an iPhone for few years now) there is no iOS client for it.
I can't get KDE connect to work for the life of me. So I guess something that works would be an improvement!
Could be GrapheneOS/arch interop or something.
A genuine question, does anyone here actually use KDE Connect as a daily driver to actually keep in touch with people? I would love to but, for example, when I'm on a university campus the possibility of keeping those two devices connected appears difficult if not impossible. I keep looking into both Bluetooth and/or the VPN route every once in a while, but it ends up not working and I give up. Something I'm missing, perhaps?
Personally, few years ago I wanted to use kde connect with my iPhone, and I don’t remember the distro now but it’s when I had to install kde connect later it wasn’t part of it, and after almost a whole day of googling around and trying to compile and solve whatever missing libraries or drivers, it never connected.. so yeah I welcome the fact that there are alternatives, always!