I appreciate you spending the extra time making that instructional video. It was very helpful, so thank you a million times!
Please let me know if this step-by-step tutorial is correct.
Am I missing any details?
Overall your steps are good, but you are missing one important detail. You have to consider the file permissions. If you do this command:
Code:
ls -la /System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage
You will see something like this:
Code:
-rwxr-xr-x 1 root wheel 180168 23 Aug 13:29 /System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage
It's best to keep those permissions, especially the file owner (root) and group (wheel, in my case) as they are. It might be harmless to change them, but it's better not to take the risk. The less things you change, the better. But as they are, the file is not writable, so you have to change that temporarily in order to patch it.
I've made some amendments to your steps:
1) REMEMBER TO BACKUP THE ORIGINAL *first*...
Code:
sudo cp /System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage ~/Desktop/IOAHCIBlockStorage.backup
and only then...
2a) enable write permission on the IOAHCIBlockStorage file, so that you can modify it directly (this is the easiest way to keep the original file owner, group)
Code:
sudo chmod o+w /System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage
2b) patch IOAHCIBlockStorage file, changing APPLE SSD (AND ONLY those 9 characters) with the first 9 characters in your SSD model. (anyone with the 2012 macbook air is probably not going to be reading this thread, because he/she will already have a built-in APPLE SSD and TRIM will enabled by default, but yes, in theory these directions wouldn't work for them)
Here's a YouTube video that shows how to do it using the free Hex Fiend.app:
http://www.youtube.com/watch?v=W_wx5p0YkHs
2c) remove write permission:
Code:
sudo chmod o-w /System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage
3) run this in the terminal (to force your changed file to be used by the system):
Code:
sudo touch /System/Library/Extensions/
you shouldn't see any output. If you do see some warning message saying about the IOAHCIBlockStorage file being corrupted or something, you have to ABORT! Replace the modified file with the backup of the original, and re-do this step. If you go on to restart, you'll most likely end up with a non-booting system (it will still be possible to recover, but it's more trouble - see bottom of this post)
4) reboot
Also, is it true that I will have to do this after every 10.8.x update?
This depends on whether a given update changes the IOAHCIBlockStorage file. If not, you won't have to do it again. If it does, you will. So far, in the last couple of OS X updates, the pattern has been like... 60% of the time you have to redo the patch.
---
If something goes wrong and you can't boot (probably you messed up the IOAHCIBlockStorage file or its permissions), then boot into ML recovery mode, open the terminal and do:
5a) restore IOAHCIBlockStorage from your backup
Code:
sudo cp ~/Desktop/IOAHCIBlockStorage.backup /System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage
(You'll have to modify paths appropriately, because the root of your SSD inside Recovery mode will be /Volumes/ or something)
5b) (optional) restore its file permissions, perhaps you'll need to change group via
chgrp command...
5c) run this so your changes will be applied:
Code:
sudo touch /System/Library/Extensions/
5d) restart, and hopefully you're back at square one