Leopard Already Hacked To Run On PC Hardware
PoliTech passed us a PC World link, noting that the newest version of OS X, Leopard, has already been adapted to run on a PC. "The OSx86 Scene forum has released details of how Windows users can migrate to Apple's new OS, without investing in new hardware -- even though installing Leopard on an PC may be counter to Apple's terms and conditions. The forum is offering full instructions on how to install the system, including screenshots of the installation process. Not all the features of Leopard function with the patch -- Wi-Fi support, for example, is reportedly inoperable. Historically, Apple's likely next move will be to track down and act against those behind the hack."
Cue up the "I would buy OSX for my PC if they would only offer it" posts.
This is why you are not running a major corporation, son.
If Slashdot were chemistry it would look like this:Cadaverine
Apple is worth more than IBM, but armchair CEOs keep saying, "if they were smart, they would sell OS X for 'IBM' PCs. Imagine how much more successful they would be." But Apple has no debt, it has billions in the bank, and its cashflow is astounding and steeply increasing. Why do the armchair CEOs never do a reality check and adjust to what really works in the marketplace? Quality products that are cool and just work.
But they do - at least a very broad range of PC hardware runs every build of Windows they make, for regression testing.
It's not as comprehensive, but they DO bother trying.
In the end it's more about control and the dollar. They are a hardware/solution company, and NOT a Software company. The percentage they make of OS X sales is not their cup of tea, they rely on their hardware sales.
However there are some CR@PPY PCs out there, things that make even a good distro of Linux cringe. Most notably poor components that have poor support for drivers and don't work well with generic drivers, let alone have decent Windows drivers. I've received some of these and tried resurrecting them via Ubuntu or what-not and encountered a lot of problems to the point that I gave up.
Unfortuantely, these are the PCs Joe Sixpack buys at discount: desktop+monitor+inkjet for $150 after rebates. These are the ones that manage to bring down XP and Vista a couple of times per week. And these are the ones Apple wants no part in.
If they open it up, then every Joe Sixpack out there will give it a go to try on their junk-Machine-5000 to see what all of the fuss is about. When it starts dying 10x more than Windows, they start yelling loudly that OS X runs horrible and has poor support, neglecting to add the fact that Windows runs almost as poorly on those rigs.
Then Apple's image for quality products go down the drain. So, might as well do what they can to keep it off everything they can't control.
There's a difference between these alternatives:
1. Actively supporting third-party hardware
2. Being indifferent to third-party hardware
3. Actively interfering with attempts to run on third-party hardware
Please excuse my ignorance in these matters, because I genuinely don't know. Is Apple doing #2, or #3? It's plausible that, as people claim, #1 interferes with Apple's desire to guarantee quality. But #2 and #3 should be essentially equivalent in terms of the quality that Apple can deliver for its customers, and hobbyists would be a lot happier with #2.
I am a registered ADC developer and so I had access to all the seeds. That was a god send for dealing with the new 64-bit Objective-C runtime but I also figured that since I had the seeds, well, why not see how compatible Leopard is with non-Apple hardware.
There are legit reasons to do it. For instance, a base Darwin system can be made out of entirely open source software. Until you start decrypting binaries or (given the DMCA) tell people how to do it, you're not breaking the law. Running binaries you compile yourself is also not breaking the law nor the license.
So I did some research into it and looked at the various hacked kernels that are out there as well as some of the available source patches. After doing some research on it I realized that a good bulk of the typical kernel patch is due to lack of the "/efi" node in the device tree. Well, boot-132 (the non-EFI bootloader) is open source and after a bit of hacking I modified it to look for the ACPI and SMBIOS tables and put them in the appropriate sub-nodes of the efi node.
Assuming the right processor (e.g. Core or Core 2) that's enough to get any kernel Apple has ever made to boot without modifying the binary or recompiling from source. Unfortunately I used a P4 as a test rig so I had to do a tiny bit of hacking. It's pretty easy since the source is available so you can just fix it and recompile. Or if the source isn't available (e.g. source for Leopard isn't yet) you can still quite easily patch the machine code to ignore the processor family.
Once you've got that the only thing between you and OS X is a way to get the kernel to decrypt the binaries. Amit Singh has illustrated the magic poem which is actually not the decryption but instead a secondary protection mechanism. In some earlier Leopard seeds, that mechanism didn't appear to be used anymore. The real decryption is two AES keys, also widely available. The interface between the kernel and the decryption kernel extension is public. That is, there's a function pointer variable in the source and basically you just write a function that does the AES decryption and then set the appropriate function pointer to the address of your function from your kernel extension's initialization routine. That's all I'll give away on a public forum though. And I'm not giving anything away here, it's public knowledge, right in the source code to xnu.
I post here not to tell people how to hack it but to illustrate that it's not some difficult scheme. I have a good laugh reading the various osx86 forums about how cool these hackers must be if they can crack OS X. It's not as if Apple tried to make it hard. I mean, putting the decryption hook in "Don't Steal Mac OS X.kext" is a pretty dead giveaway. The other good meme is the thought that the methods of hacking need to be kept secret so Apple doesn't figure them out. Believe me, if I can reverse engineer the hacks then I'm quite certain Apple has several people who can. If they even want to. I see no indication that anyone at Apple is trying to prevent hacks. They write code that works on their machines. If it happens to work on other x86 machines, it does. They haven't ever done anything to stop it.
The one thing no one seems to mention is apple has NO activation process, they are one of the few companies on the planet that dont assume their customers are crooks.
If they opened OSX up to generic hardware they would need to impliment some type of anti theft setup simply because generic PC users are cheap and would steal OSX till the cows come home. Personally that fact alone makes me glad it only runs on Mac hardware, Its so nice never having to deal with activations, or worse false positives and the machine becomming basicly un-usable.
Business plan:
In a survey of 100 programmers, 111111 thought that duck-typing was a good idea.
Executive Summary
- Regardless of what the media has been harping on for a long time, and regardless of what system attackers have been saying about the "evil TPM protection" Apple uses, Apple is doing no TPM-related evil thing. In fact, Apple is doing no TPM-related cryptographic thing at all in Mac OS X. Yes, I know, there has been much talk of "TPM keys" and such, but there are no TPM keys that Apple is hiding somewhere.
- More specifically, Apple simply does not use the TPM hardware. In Apple computer models that do contain a TPM, the hardware is available for use by the machine's owner. Of course, to use it you need a device driver, which Apple indeed doesn't provide.
- I am releasing an open source TPM driver for Mac OS X, along with Mac OS X versions of popular open source trusted computing software from the Linux world. No reverse engineering was required to write this driver.
- The driver and the software stack together make (a form of) trusted computing possible on Mac OS X, assuming you have a machine with a TPM. This page shows you how to "take ownership" of the TPM and begin using it.
- For crying out loud, Intel's Trusted Execution Technology (a.k.a. LaGrande) does not mean you start putting TPMs "inside the CPU". Apple isn't shipping CPUs with "built-in TPMs."
(emphasis mine).You know, I see this remark in one form or another all the time, but I don't believe it at all. I'll tell you why.
Our household is Mac-centric; we have 3 mini's and a Macbook Pro. There are other machines here, linux and XP, but we generally use the Macs, the linux machine is a web server, not a desktop. We've run into problems with the Mac's wifi, specifically with the sharing of the connection feature. I've taken the time to document the problems, post them on the Mac forums, report them as bugs, but these problems remain unfixed. These are stock Mac machines with stock Mac wifi hardware. My impression is that Apple doesn't care about my complaints, because the configuration here is, apparently, uncommon. Most people use a wifi-capable router to distribute wifi about their premises, while I elected to use the mini's "share" capability to do it. It worked 100% initially, then an OS upgrade broke it, and it's remained broken since March 2007, despite my poking them in various places such as this (this is only one of many examples - there are other threads, and not just from me, either.) These replies on the Apple forums - not from Apple, from users - were the closest I ever got to help.
I'm right with the program when people say that Apple stuff is remarkably stable. However, I think the credit there should go to the engineers who created the system. There's no apparent company-wide effort to see that things "just work." Lots of things don't work, and haven't for years. There's no unified push to get things that are broken "right." They never added unicode to Appleworks, or really even kept up with it, they just let it die. As of 10.4, network shares haven't been able to refresh after changes for years. Memory (mis)management still causes applications to pig out for tens of seconds at a time. Mail still loses sent mail if you try to use more than one email address. The iPod touch works through the Intel mini's WiFi but not the PPC mini's wifi, same settings all around. Apple's response to this was "use the intel mini" which I consider to be inadequate.
Lest you think I'm just generally Apple bashing, I'm not. I spent years trying to work with Microsoft, both as a user and a developer, and it was MUCH worse. Microsoft sucks so hard my vacuum cleaner ran out in the street and threw itself under the wheels of a passing semi in despair. It is the very reliability of Apple's products out the door - not as a "we'll fix what's broken", but as a "we generally don't ship broken stuff" - that makes the Apple experience what it is.
Consequently, I don't buy the whole "we don't want customers to experience broken OSX, so we won't let it run on generic hardware" rationale. Customers experience broken OSX behaviors all the time, and Apple just lets it run on, likely as not.
People have a very strong tendency to speak up in support of products they have purchased, my guess is because they feel a need to justify having spent money and time and reputation on such a thing. I've heard absolutely worthless justifications over and over for everything from Photoshop to Windows to linux that one way or another, seem to only have obvious value as they reflect the investment in time, money or even public remarks people don't want to back down from. Apple is no more and no less subject to this; once someone buys an Apple, it is my very strong impression that they're going to be pretty positive about having done so. Not just because it works pretty well, which it certainly does, but because money was spent, a decision was made, an internal turning point reached (and there can be factors like terminal frustration with another vendor, such as Microsoft... I'm personally familiar with that feeling, in spades.)
There's another
I've fallen off your lawn, and I can't get up.