The G2 may have a next-gen MSM7X30 processor, but unfortunately, HTC and T-Mobile have decided to clock it at a paltry 800MHz. That's not to say it's unbearably slow; judging by the early reviews, quite the contrary. But still, just imagine what could be done if some wise guy out there overclocked it to something more along the lines of... oh, 1.42GHz.

As the video above proves, xda-developers member coolbho3000 has done just that. There are one or two disclaimers - for example, you lose the overclock every time you reboot - and the method isn't as straightforward as it would be if you were using SetCPU. Luckily, coolbho3000 has been... cool enough to put together some pretty detailed instructions:

To use it on a T-Mobile G2 on the stock kernel, copy vision_oc.ko to /data/local and run this command as root:
insmod /data/local/vision_oc.ko

This will overclock your phone to the default 1017.6MHz, which is on par with the 8x55. To overclock even higher (or lower), run the following command:
insmod /data/local/vision_oc.ko pll2_l_val=53
Where pll2_l_val*19.2 equals the speed (in MHz) that you're overclocking to. For example, 53*19.2 corresponds to 1017.6MHz, while setting pll2_l_val=74 will overclock you to slightly over 1420MHz: insmod /data/local/vision_oc.ko pll2_l_val=74 (this is 1.42GHz - be careful! I ran into freezing issues somewhere between 76 and 80, so I figured 74 was stable for my G2, and I've been running it at that all day. If it freezes try 73, 72, etc. Every phone is unique - your mileage may vary. You may even be able to get higher than me.)

If you ever want to change the speed of your overclock without rebooting, run the following command:
rmmod vision_oc.ko
Then run one of the above commands. It's important to note that using a value of 42 (good number) for pll2_l_val will make your phone run at 806.4MHz again. Rebooting the phone will reset your root access and your overclock (of course, you probably already knew this). Voltages can also be tweaked for the highest frequency (to know how to do this, read the README link below).

If there's ever an OTA or if you flash a custom kernel, you'll need a recompiled version of the kernel module, and with different addresses. Any kernel dev can easily do this using the documentation below.

To use it on another device (such as an HTC Desire Z, if it runs a different kernel, or even an HTC Desire HD or 8x55 myTouch) running a different kernel, you must re-compile the kernel module from source and refer to the instructions here to modify it (or the installation process) accordingly:

If you're going to be overclocking, SetCPU sleep/battery/battery temperature profiles can be tremendously helpful.

And there you have it - now off to work you go!

Source: xda-developers via Android Central