It's still Saturday somewhere right? :happy:
YOU DO THIS AT YOUR OWN RISK. If you are not familiar with rooting, being rooted, the android/linux command line and file system/permissions, DO NOT EVEN THINK OF DOING THIS. Even if you are familiar with all of this, I highly recommend NOT adding this to any automatic startup scripts for the time being so you don't brick yourself out of your own phone. If it's not automated, you're at worst a battery-pull from a usable phone (unless you start messing with unrecommended voltages). I've not yet had to resort to the battery-puu myself, but I haven't tried ridiculous overclocks, either. YOU HAVE BEEN WARNED.
You must be rooted. I also recommend having Root Explorer to move files around and set file permissions. It's not absolutely necessary, but I'm not going to get into the command line method in this discussion. If someone else feels free to add, by all means, but it didn't come from me. You also need a terminal emulator. Terminal Emulator will work, but I recommend Better Terminal Emulator if you have Smart Keyboard Pro (which I also recommend in general). This will allow you to use arrow keys to recall commands, which I found in getting this working and testing to be invaluable. Maybe not so necessary for you guys, but it was indispensable for me.
Attached is an archive containing 2 files. One is the modified kernel module for our phones, the other is a shell script to simplify testing and finding your optimal overclock. The file overclock.ko goes into your /system/lib/modules folder. Make sure you have write permissions on the folder using Root Explorer (set to R/W on the folder using the button at the top right as of the current version with this post.) Permissions should match the other kernel modules in this folder, which is User R/W and Group/Others R (644). You can get it there by copying the file to your SD Card then using Root Explorer to move it from your SD Card to /system/lib/modules and set the appropriate permissions. The file overclock.sh goes into /system/bin, and should have permissions set to User R/W/E, Group/Others R/W (755).
Next, make sure you're in a terminal as the root user by issuing 'su' (superuser) if you have not already. At this point, you should be able to issue the command 'overclock.sh' from a terminal no matter what directory you are in. This command takes 2 parameters. The first is your clock speed, in Hz. 1200000 would be a 1200Mhz (1.2Ghz) overclock. 1100000 would be a good starting point. The second parameter is the voltage. It's very important that you not go crazy with this parameter because you very well could fry your processor. The default at 1Ghz is 66. I highly recommend not going over 96 for this, which is 1.8V. I haven't used more than 80 (1.6V) for this myself just to be safe, and because I started having some random freezes at that amount at 1200Mhz and I haven't tried higher clocks yet. Keep in mind that higher voltage equals more heat and more power consumption, so the trick is to get the best overclock that you're happy with, while at the lowest voltage that will keep it stable. There's little point in having a 3Ghz phone if it lasts 3 minutes unplugged (don't even think of trying it!).
You can remove the module at any time by typing 'busybox rmmod overclock' in a terminal. This will allow you to issue the overclock command over again with new parameters without a reboot. This is helpful in babystepping your way up to your max stable overclock. I found Quadrant to be a good test for benchmarking and stability testing.
I recommend using SetCPU to verify the overclock and to set an appropriate governor for what you are using your phone for at the time (Performance to lock max clocks for benching). Enjoy, and I'm looking forward to some feedback and benchmarks.