Hacker News new | past | comments | ask | show | jobs | submit login
Sosumi Snap – Download and Install macOS in Ubuntu (github.com/popey)
323 points by macco on Jan 18, 2021 | hide | past | favorite | 124 comments



A Canonical employee releasing a wrapper to download and run unlicensed MacOS, and shipping it via Ubuntu's explicitly for-profit app store? There is noooo way this was approved

"Sofireme" seems way more appropriate, or maybe "Sosumyemployer"

edit: double eek: https://github.com/popey/sosumi-snap/blob/master/snap/local/...


As pointed out in the other comments here, the EULA definitely allows you to run macOS in Ubuntu if you're using Apple's hardware.


Pretty sure the EULA does not cover copying essentially a DRM key from the SMC and checking it into GitHub, conveniently set up in such a way as the repo does not in fact require Mac hardware


You may find the reasoning here interesting: https://github.com/kholia/OSX-KVM

The "secret" Apple OSK string is widely available on the Internet. It is also included in a public court document available here. I am not a lawyer but it seems that Apple's attempt(s) to get the OSK string treated as a trade secret did not work out. Due to these reasons, the OSK string is freely included in this repository.

That repo has been around for many years.


Every so often I encounter a key in React (Preact, but preserved for compatibility) titled something like PRIVATE_DO_NOT_USE_OR_YOU_WILL_BE_FIRED and I appreciate the cutesy tongue in cheek acknowledgement that it’s not private and will likely be used anyway


As someone not at all familiar with modern JS: why the hell would a UI library have a key of any kind??


It's not a cryptographic key or a secret of any kind. In the case of React (or other JS libraries) export identifiers are chosen to expose private APIs for integration purposes with things like developer tooling and other functionality that isn't part of the publicly documented API.

Instead of choosing something like `__PRIVATE` the React library in particular chose something more eye catching: `__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED`, which is definitely sure to get people's attention when they look into it, but is essentially just a joke.


Because there are some really terrible projects out there made by guys who think that a two week "bootcamp" is enough to make you a competent developer. An SPA needs to access a third party resource of some sort (in my case it was Power BI), and fetching the necessary authentication information from your server with proper authorization is apparently too complicated. I ain't rewriting that shit, I have too much work already.


Not a crypto key (I hope). In JS, objects (dictionaries) are key-value pairs.


Fair enough, and I see how "private" might mean "inaccessible" and not "secret" as I originally assumed. I hope at least...


I meant... a property name. Like `{ [key]: value }`


Yeah, that makes sense. I automatically assumed you were talking about "secret" keys because of the parent post.


> shipping it via Ubuntu's explicitly for-profit app store

Can you clarify "explicitly for-profit"? I don't think that's true: https://en.wikipedia.org/wiki/Snap_(package_manager)

Snap is practically the opposite of that. It's a package manager that is almost entirely out of the hands of Canonical, which was one of the criticisms of apt.

If you mean to criticize that some of Snap is proprietary, that is legitimate, but that doesn't seem to be the aim here.


In theory, I agree. In practice, there doesn't seem to be any other snap store out there?

This is a years old quote from [0], but it doesn't feel like anything changed since.

> If you want to distribute your snaps, your choices are 1) publish it through the Canonical store, entirely under Canonical's control, 2) upload it as a file and tell people to use the CLI to install it, or 3) try to figure out how to reconfigure the snap client to use a different server by reading the source code, then write your own server end from scratch, and tell your users to do that.

[0] https://www.happyassassin.net/posts/2016/06/16/on-snappy-and...


>try to figure out how to reconfigure the snap client to use a different server by reading the source code, then write your own server end from scratch, and tell your users to do that.

You also need to

1) compile and distribute your own version of snapd, since it hardcodes the Canonical snap store.

2) Set the appropriate env variable to prevent snapd from auto-updating itself back to a Canonical version.


Again, this does not address what I took issue with, which is "explicitly for profit". There is no indication that this assertion is even remotely true. I did call out the proprietary nature of some of their server code, but again, that does not yield "explicitly for profit" which nullifies the posters point.


You've also claimed that it's "almost entirely out of the hands of Canonical", which it is not.

I'm with you on the "it's not explicitly-for-profit" point at the moment, but it is set up in a way that it could change at any point. Whether it's set up that way deliberately or not, we can only guess.

Anyway, Ubuntu derivatives are approaching the topic with this in mind. Linux Mint forbids snapd from being installed via apt (https://www.theregister.com/2020/06/02/linux_mint_team_snap/), and elementary OS goes a step further and is working on making its entire app ecosystem flatpak-exclusive (https://blog.elementary.io/elementary-appcenter-flatpak/).


I used the words "almost entirely" which is confusing, I will admit. I don't use snap for the same reasons. That said, what's being postulated by multiple users here is blatantly false.


He refers to the snapcraft, not the snap manager https://snapcraft.io/ , https://snapcraft.io/sosumi


I am still not seeing how snapcraft.io is "explicitly for-profit". eg: https://snapcraft.io/thunderbird


A private company is for-profit by definition. They may not be monetising it now, but that’s because they’re in the growth phase.


You don't get to make assertions based on speculation. Across Linux there have been an infinite number of package managers, sometimes ones that integrate each other's protocols like how the PopOS store integrates flatpak. Is PopOS or the PopStore now explicitly for profit despite the fact that it doesn't sell a single thing?


Except for non-profit companies, which are...


The name reflects this observation: https://en.m.wikipedia.org/wiki/Sosumi


There are fully working osx vagrant images on GitHub, so why should this surprise you?


You good law and order man! Earth is such a nice planet because many of you exist!


Sosumi Snap uses Clover internally.

[1] showed how to boot macOS in KVM without the usual Clover / Opencore setup but is not maintained for newer versions anymore. [2] shows how to run current macOS versions without Clover or Opencore in VirtualBox by changing the VM's ACPI(?) entries and loading variables into the NVRAM. [3] uses KVM but also uses Opencore.

I tried to translate [2] to QEMU but was never successful.

Does anybody know some resources how to have a pure KVM macOS VM without any hackintoshing?

[1] https://www.contrib.andrew.cmu.edu/~somlo/OSXKVM/

[2] https://github.com/myspaghetti/macos-virtualbox

[3] https://github.com/kholia/OSX-KVM


Hilarious that they named it after 'sosumi' which was apple's cheeky name for a sound effect that iirc was a response to a legal claim that their computers were not permitted to produce audio: 'so sue me'.


It wasn't that their computers weren't permitted to produce audio, its that they had made an agreement with The Beatles' Apple Corps that they wouldn't use the "Apple" trademark for products which were principally for creating music. The dust up was when the Apple IIGS contained a dedicated sound processor. Apple Corps thought that was too close of comfort and sued.


Took many years but honestly Apple Corps was right to be concerned. Think how much more brand recognition Apple computer has now, and that's pretty impressive considering the Beatles.


They were right to be concerned, in the sense that in the long-term they were outcompeted in the marketplace.

That doesn't mean they were right to sue, or that they should have succeeded.

Nobody has a right not to have competition, and the Apple IIGS was not a device principally for creating music.


On the other hand, imagine the tsunami of lawyer-shit you'd be drowning in if you started a record label called "iPhone Corp" today?


That’s different because the iPhone is not a generic object like a fruit. You could totally call a business Macintosh Records and get away with it though


I'd argue that iPhone is a generic term like band aid or Google.

"Pad" and "Pod" are certainly generic.

https://blog.tracyjonglawfirm.com/has-ipad-become-a-generic-...


> I'd argue that iPhone is a generic term like band aid or Google.

And you would lose that argument. 2/3 of those are not generic terms.


Yeah I don’t think iPhone flies as generic but by god in my time of technical support do I find people refer to all manner of cheap $50-$100 Walmart special android tablets as “iPads” and it’s caused me more than a few headaches.



If it wasn't Apple, it would have been Disney.

http://www.mtv.com/news/3020742/fake-nickelodeon-products-pe...


Almost entirely because that's not a word. Calling something "Lightning" would be a lot closer, as a trademark they use but with very conditional mindshare.


> Nobody has a right not to have competition

actually, trademark holders do have a right not to have competition that is branded with their same name, and consumers have a right when purchasing Apple records to be buying from the Beatles and not from a rip off artist.


I don’t see how apple can be said to have ever competed with a record company. Unless there is something I am missing out on here?


You're thinking too narrow. Apple the record company considered itself to be operating in the broader domain of audio/sound/music/playback etc. Apple the computer company had started to enter that domain.


But then in the present day, there is Apple Music so now they are certainly competing (and have already settled with Apple records).


For example they bought Apple trademark from Apple records for undisclosed sum and now they're licensing it back to Apple Records.


By the point of the release of the Apple IIGS and the Mac II, the Amiga was already on the market and other consumer-priced, user friendly systems with GUIs had sound capabilities. Apple Computer likely argued that the development of audio functionality in desktop workstation size PCs, post 1985, was a marketplace inevitability.


You mean the Beats headphones? /s


Honestly, Apple should have given them the middle finger back then and not agreed to any terms. It was a bullshit complaint from a record label against a computer company. I doubt they went after Apple Roofing or Apple Autotech, or Apple Consulting. They saw a big company in the making and wanted their cut.


Apple was a relatively small startup and The Beatles were an international sensation backed by the same kind of insatiable corporate lawyers who brought us the RIAA and the DMCA. Considering how things turned out, Apple probably made the right choice.


It was. But now there is Apple Music.


Excuse my ignorance, I have two questions:

1) How legal is this (assuming I have a a valid macOS licence that comes with my Apple hardware/laptop)?

2) Can this be used to do iOS development?


It's fine if you install Linux on a Mac and then install macOS as a VM on that Linux installation. It's permitted starting from 10.7 Lion. It's not allowed by the EULA if you do it on a non-Apple computer, but Apple likely won't care enough to take any action.


what is legal and illegal for that matter also depends heavily on your location. please keep in mind that a general comment on this topic is most likely difficult, maybe impossible.


It seems extremely likely that Apple will send a DMCA takedown about this project. Why wouldn’t they?


Adding to the existing response: Apple has a weird attitude toward software licensing, but it’s fairly predictable and has been since the early 00s. They care about:

- Is the first party experience uncompromised? (I.e. you must escape their protections explicitly to bypass them without scrutiny)

- Are you commercializing your unauthorized usage? (I.e. hackintosh okay, hackintosh for sale not okay)

They have a few other, less predictable, principles when it comes to lower profile software like WebKit, but if you account for those you’re very unlikely to cross their legal team. macOS is free (dollars), and not because they expect to make up the dollars of investment in hardware sales, but because they correctly realized selling an OS isn’t a profit generator anymore. Even Microsoft has realized that.

As long as no one is making money on this I seriously solve Apple will care one way or another.


> but because they correctly realized selling an OS isn’t a profit generator anymore

This may be true. It may also be that they recognised that they can reduce fragmentation of their userbase, and increase control, by making updates free, and the value of that to the business may exceed the dollar value made from charging for software updates.


because they correctly realized selling an OS isn’t a profit generator anymore. Even Microsoft has realized that.

Microsoft makes $billions in revenue from Windows OS. From the laziest of web searches, I see their revenue in 2015 was $14.8b for 'the Windows PC Operating System'. Even today, I'm sure it's no loss leader.


2015 isn't 2021, and I believe you can get microsoft 10 for free now.

I know I got some microsoft os version for my virtualbox to run windows programs on arch linux (yes, I'm an arch user /meme).

IMHO, MacOS would be better off allowing devs to develop off apple products, because they'd get their dev fees, and royalties in app store from more developers making up for their china-like control of the platform.


Aside from the already pointed out 6 year gap... how much of that revenue do you figure they make from people buying windows licenses? Not OEMs. I bet it’s close to tens of thousands USD.


There's plenty of other, very-explicitly-Hackintosh projects on GitHub, that they haven't gone after either.


All the necessary files come from Apple's CDN (Updates), https://github.com/popey/sosumi-snap/blob/master/snap/local/...

Check if there are any restrictions in your EULA when you access Software updates from your Apple computer.


It is the magic string in the hit repo that is not allowed


It kind of is, though.

https://github.com/kholia/OSX-KVM



And also https://github.com/kholia/OSX-KVM (which I found by searching the OSK and finding another HN thread about from 2016, with the same conversations about legality, e.g. https://news.ycombinator.com/item?id=12558195)


This is a saner option, without need for that pesky snap thing.


Maybe I'm misunderstanding the PsyStar case, but this seems likely to be illegal.

Psystar, among other things, released "Rebel EFI" (https://en.wikipedia.org/wiki/Psystar_Corporation#Rebel_EFI), which was a way to circumvent OSX's checks that you were running on mac hardware.

Judge Alsup ruled that Rebel EFI was a circumvention technology, and thus not legal under the DMCAs anti-circumvention provisions.

The snap is not running macOS on mac hardware. Even if you run it on a mac laptop, it's using virtualized qemu hardware. It includes a magic hardware string to make macOS run (https://github.com/popey/sosumi-snap/blob/def1652e916f/snap/...). That magic string is a circumvention measure which dodges a check macOS makes on boot to see if it's on legitimate hardware, and so I think this project is performing circumvention, similar to Rebel EFI.


The name is literally "So Sue Me".


It's also a throwback to Apple, post lawsuit-with-Apple-the-record-company, introducing sound to Macs. "Sosumi" is an odd (in context) but clever and reverent homage.


Apparently Jim Reekes said he didn't remember how he obtained the original sound, but left the possibility open that it might (?) have been sampled from the game Crystal Quest.

Having just listened to a bunch of Mac OS system beeps on youtube, I wonder whether the Indigo sound was sampled from the SGI Indigo workstation.


Oh I have no idea about the sound’s origin! I just knew the legal and naming history.


I can still hear the sound when I see the word “Sosumi”


I still hear it as my default alert sound even though I’ve disabled all system sounds for years!


I now have the sudden urge to go find “wild eep” and set it as my alert sound.


This is no doubt a reference to the alert whistle sound on Mac OS 7.

https://en.wikipedia.org/wiki/Sosumi https://www.youtube.com/watch?v=yRh_-2R6juM&t=24


In sad news, I went looking for Pud's blog "Fucking Sue Me", and not only does it redirect to something unrelated, but it was explicitly excluded from the Internet Archive. I guess a new generation will have to relearn the old lessons.



IIRC, Apple explicitly allows running macOS virtualized, as long as the physical device is an Apple device: VMWare Fusion and Parallels both sell software designed to make this easy.


> as long as the physical device is an Apple device

just get yourself an apple sticker to attach to your laptop, ah for real though in most jurisdiction it can't be legally mandated (even if Apple wanted that US law applied to the whole world).


Back for my first hackintosh, I bought MacOS on CD, which came with a big Apple logo sticker. A careful reading of the EULA allowed executing MacOS on "Apple logoed hardware". Done!


Technically correct is the best kind of correct.


> The snap is not running macOS on mac hardware. Even if you run it on a mac laptop, it's using virtualized qemu hardware.

Right. "Virtualized hardware", as in, you know, software. In other words, QEMU is software that runs on actual nonvirtualized hardware, in this laptop's example produced by Apple.

If you think differently, I invite you to virtualize a sailboat and than sail with it out to sea.

I suspect that somewhere along the way, the difference between virtaulized sailboats and actual sailboats will become more readily apparent... :)


You're reading of my comment is not charitable at all. I'm making the distinction specifically because of the DMCA's anti-circumvention measures, which specifically apply to circumventing digital copyright. Obviously any analogy to a sailboat is unrelated to the DMCA and unrelated to my comment.

I do agree that specific sentence of mine is poorly worded, but the point that it still requires that circumvention stands regardless of the poor wording.

I linked to the bit of the snap that I believe may constitute circumvention under the DMCA. I welcome you to actually respond to what I meant in my comment, and not with some strawman of an intentionally poor interpretation of it.


> but this seems likely to be illegal.

Lets leave that up to the courts.


Psystar (which AFAIK is the only Hackintosh effort that actually got taken down by Apple) was actually selling hardware, and thus would cut into Apple's hardware profits.


I tried many times to get MacOS to run on my AMD cpu windows machine so I could build my mobile games to iOS from Unity. I tried virtualbox and VMware and a few different ways of installing macOS on both. In some cases MacOS would install and run ok, but I could never connect to the iphone over usb and actually build to it. I ended up buying a 2nd hand mac mini. I still feel dirty paying £300 for such a low spec machine. it runs like absolute garbage. But it has Catalina and I can actually finally build to iOS.. very very very slowly.

[Updating xcode today took 6 hours]

I wonder if I should try this? Do ye think theres any chance of it working on the same hardware that failed to work in virtualbox and VMware on Windows?


I've installed a Hackintosh on my machine (only High Sierra because I have a Pascal Nvidia GPU and Nvidia and Apple are still throwing a tantrum) and it's working quite painless.

The old style of installing a Hackintosh (configuring clover and some random binaries based on forum threads) never worked for me, but Dortania's OpenCore Install Guide [1] worked great out of the box.

If your GPU works on macOS (so recent-ish AMD or old Nvidia), I definitely recommend giving it a try. You're missing out on a few performance optimisations and stuff like iMessage and Facetime don't work, but it's definitely good enough to just run and debug builds, possibly even with hardware acceleration inside the necessary emulators (not VMs).

If you want to go the VM route, you'll probably run into trouble because Apple's OS assumes that the processor is made by Intel (not strange, because all of their x64 processors are bought from Intel). There's a few patches you can download and install to make the OS boot on macOS though, and with those the VM should work in VirtualBox, VMWare, KVM, this snap, and that Docker image running qemu that someone posted at some point. Details about what to patches you may need can be found somewhere in [1], as well as a list of limitations. For example, running virtual machines on an AMD Hackintosh is practically impossible.

If you want to get the bare basics working in a virtual machine, running through the opencore install guide inside the VM will most definitely work, though the GUI will be slow as molasses because of the lack of GPU acceleration. That's still fine for running a build task over something like SSH though. There's options!

[1]: https://dortania.github.io/OpenCore-Install-Guide/


A 6-hour upgrade sounds like that mini is probably still on spinning rust. Rather than mess around just get the cheapest SSD you can find and install that. Also from what I've heard it comes down to certain AMD CPUs missing instructions macOS assumes are present, so any modern virtual machine that doesn't emulate every instruction can't help there.


I've pulled it off on my threadripper but I can't seem to assign it more than 8 cores. Other than that there's a problem with connecting an iphone. It's not perfect, but it's not bad. I'm on debian.


I build my macOS stuff using GitHub actions, which is relatively fast and works fine. Would something like this maybe work for you?


Mojave and High Sierra work fine here on an AMD Ryzen ThreadRipper 2950X, using QEMU/KVM.


This might come of as a weird question for Mac-users...

But as an Ubuntu-user, why would I want or need this? Are there any OSX software people consider essential? I mean... I barely even use Wine :)


Not a mac user myself, but i think some music and video editing applications are considered basically essential on Mac.


To compile native Mac and iOS apps, or to test compatibility of multiplatform apps, for example


xcode.


I've tried various different ways to get an OSX iso booted on Linux (system76 laptop) and it's been very problematic.

Is the trick to run Linux on mac hardware and then run the VM host on top of that? If so, why do that, why not just run a VM using virtual box, for example, with OSX inside OSX. Does the lower resource Linux host make it so you can run more VMs (or better specs)?

I'm definitely interested in building a bunch of development images as VMs. The setup of Apple development (signing and notarizing) is so opaque that I'm always terrified our CI will get broken with some small upgrade that I want to save stable images frequently, and this seems perfect for that.


Is there any chance that this won't be terribly slow/janky? I had tried installing OS X under QEMU a while back, and you could use KVM to make it faster (IIRC), but it was very tricky to set up.


This basically has no hardware acceleration, if you don't mess around with GPU passthrough and even then you won't have a great experience - so you won't be doing any heavy work or browsing. It'll be quite choppy, even on a relatively modern CPU.

If you need to build your app or use that note-taking app that's so nice but macOS exclusive, you'll be fine though.


That much is true.

On the flip side, I run Mojave and High Sierra in a QEMU/KVM and give it 8 cores of my 16 core Ryzen ThreadRupper, along with 32GB of RAM, and the result is a lot faster for non-graphics-intensive work than anything I can reasonably get from Apple at an even remotely comparable price. This means that the "build your app" case is actually way better than "native".


If I could pass through the usb or Bluetooth stacks so I could use my iPhone with linux properly, that would be a pretty useful thing.


This agrees with what my experience was like last time, thank you!


So, I don’t know what VMWare does, but macOS Catalina on VMWare Fusion works just fine, in my experience.


Now we just need a Sosumi Flatpak...


Impressive! Excuse an ignorant question, but there’s no support for Nvidia cards, I guess?


Drivers for really old ones are baked into macOS apparently. PCI pass through then delivers native graphics performance.

Edit: All Kepler GPUs are supported.


Apple doesn't like things like that for some odd reasons ...


Looks like https://snapcraft.io/sosumi is down


Also on the repo: "This repository has been archived by the owner. It is now read-only."


I made the snap private, and archived the repo.


yeah was not able to download it today either


Anybody try this out that also has experience with Hackintosh that can give a comparison review?


our hard work

by these words guarded

you wouldn't download a car


this is like a physical version of spacedesk?


Download it now if you are interested. Lol


Yep, it's gone, lmfao


Why?


I use it to run Scrivener and a couple other Mac-only apps. Works like a charm, provides a painless setup of a Mac VM.


I'm off topic, but at least with Scrivner 2, there was a Linux version (unsupported, but available).


The Linux version hasn’t been updated for several years now. V3 on Mac has some quite handy features and compatibility with the iPad version.


Why not?


iOS dev


I tried this, naively, on WSL2 and had no luck. May try again tomorrow.


You'll need to build a new kernel. The one in WSL2/Ubuntu isn't compiled with KVM support. Once you do that, it should work fine.


I've attempted several times today but haven't successfully gotten KVM working with the custom kernel. Thanks for pointing me in this path.


AMD KVM in WSL and basically anything that relies on the Windows Hypervisor won't work yet on AMD CPUs. You have to disable the Hypervisor support in Windows which allows other KVM capable VM managers like Qemu, Virtualbox, and VMWare to all run KVM VMs on AMD on Windows. Look at the 3rd or 4th answer here if you want two boot entries to be able to enable or disable the Windows Hypervisor at boot time from the boot menu. https://superuser.com/questions/540055/convenient-way-to-ena...




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: