These instructions provided me with a permanent root workaround when SuperOneClick, run within Windows 7, repeatedly hung "waiting for device". SuperOneClick elegantly automates the ADB method, but for some reason the ADB command "adb devices" fails to recognize an attached Galaxy Tab when run from within Windows 7. The larger problem seems to be that in some situations like mine, ADB simply does not run correctly from within Windows 7, even when one right-clicks on SuperOneClick.exe and runs it as Administrator. Perhaps SuperOneClick would work OK on Windows XP, but I have no idea.
The procedure below uses components from SuperOneClick but runs the ADB server and commands from within Linux. In this environment the ADB command "adb devices" correctly reports the attached Galaxy Tab, and other ADB commands work correctly as well. To obtain the needed SuperOneClick components, download SuperOneClickv1.9.1.zip to Linux and unzip it there. The SuperOneClick.exe (which is a Windows executable) will be ignored, but other files (see below) will be pushed to the Galaxy Tab during the rooting process.
I'm indebted to authors at http://pastebin.com/i234U96k and http://rootingdroid.com/ for the hack below. Note that there is a modification to require no dependence on a "cp" command at the ADB shell prompt. For some reason "cp" is missing in /system/bin on my Galaxy Tab.
As always, attempt using this procedure at your own risk. Be specifically aware that you may not be able to "unroot" your Galaxy Tab after using this procedure--ever! This procedure doesn't back anything up from the unrooted device, so if "unrooting" it requires restoring something from such a backup, I'm (and you're) stuck with a permanently rooted device. This condition may interfere with your receiving certain updates or downloading DRM content in the future.
1) Download and install TitaniumBackup and SuperUser onto your Galaxy Tab from the Android Market. Note that SuperUser may not be necessary since there are sources for this app below. I'm including it at this step because I had previously installed it prior to the steps below.
2) Download and unzip SuperOneClickv1.9.1 into some Linux folder of your choice. You can get it at http://shortfuse.org/?page_id=2 near the bottom of the page.
3) Install Android SDK for Linux x86 into your home directory on your Linux box. You can get it at http://developer.and.../sdk/index.html The ADB server will be located in ~/android-sdk-linux_x86/platform-tools.
4) For convenience, copy from the SuperOneClickv1.9.1 folder above the files Superuser.apk, psneuter, su-v2 as su, and busybox into ~/android-sdk-linux_x86/platform-tools. Note that SuperOneClick seems to provide three different versions of su (su-v1, su-v2, su-v3). The su-v2 version worked for me. Performing this copy simplifies entering the "adb" commands below.
Note that there is an alternative source for Superuser.apk and su at http://www.rootingdroid.com at the "Download" link in Step 2.
5) Enter the Linux directory containing the ADB server with the command
6) Plug in the Galaxy Tab to the computer, with USB debugging turned on.
7) Test ADB recognition of the Galaxy Tab with the command
You should see messages indicating the ADB server is starting, and then a message similar to
List of devices attached
If no device is listed, begin investigating by ensuring that USB debugging is turned on. In my experience, when the "adb devices" command is entered from within Windows 7, no device is listed. Again, I think this is related to the "waiting for device" hang when SuperOneClick is run in Windows 7.
Push psneuter to the Galaxy Tab with the command
./adb push psneuter /data/local/tmp
9) Make psneuter executable with the command
./adb shell chmod 777 /data/local/tmp/psneuter
10) Run the psneuter exploit with the command
./adb shell /data/local/tmp/psneuter
The message "property service neutered." should appear indicating success.
11) Test for successful rooting with the command
The # prompt should result.
12) Remount the /system volume rw (by default it's ro), so that files can be pushed to /system, with the command
mount -o rw,remount -t ext3 /dev/block/mmcblk1p21 /system
13) Return to the Linux computer command line with the command
14) Push Superuser.apk, su and busybox to the /system volume with the commands
./adb push Superuser.apk /system/app/Superuser.apk
./adb push su /system/bin/su
./adb push busybox /system/bin/busybox
15) Make su executable with the command
chmod 4755 /system/bin/su
16) Remount the /system volume as ro with the command
mount -o ro,remount -t ext3 /dev/block/mmcblk1p21 /system
17) Verify that su works with the command
You should see the # prompt; type the command
and you should see the # prompt again.
18) Power the Tab down and then power it back up. Run TitaniumBackup, which will ask for root privileges that (hopefully) will be granted. It's a good idea to backup your Galaxy Tab before using your new root privileges!