[myTouch 4G Themes and Apps] Marine6680:
I didn't see a thread on how to do this anywhere in the MT4G forum, so I thought I would share.

If you want swype, but are not on their beta test program, do not want to muck about with their "installer" app, or deal with the reminders of beta status and app expiration; you can pull swype from a stock ROM and use it on your device.

As per the rules, you should not do this on a phone that does not have swype installed stock.

Also, this involves messing around in the "system" partition. While the risk is very low, you do this at your own risk.

First you will need to extract the needed files from a stock ROM. If you are still running the stock software, you can use a file explorer app to make a copy onto your SD card. Just copy and paste. You can also pull the files from the stock image or from the Iced glacier ROM. Pulling from Iced Glacier is the easiest method. Just unzip the ROM file and find the needed files.

There are two files, both in the system partition. The first is "Swype.apk" and is in /system/app folder. The second is "libSwypeCore.so" and is in /system/lib/ folder.

Edit: 7/25/11

It seems you must also conciser the source ROM and destination ROM when obtaining the files. Swype does a device/licence check when running, and if it fails the check then Swype will not work. The build.prop lists "t-mobile/htc/ect" as product.brand and Swype seems to check this before running. So use a version of Swype from a ROM with the same build.prop or edit the build.prop manually.

Now to install Swype:

There are two ways to do this, ADB or root explorer. (or other file manager with RW)

Any extra info to help explain what is going on for any new guys will be in green text.

For ADB:

First put the files you extracted into the tools folder of the android SDK, then open an ADB shell to your phone. When that is done, use the following commands. (each line is a separate command)

Remember Linux commands are case sensitive.

First is to mount /system as RW. (this allows you to save files to /system)

mount -o remount,rw /dev/block/mtdblock4 /system

Then you need to push (save a copy) the files to the correct locations.

adb push Swype.apk /system/app/Swype.apk
adb push libSwypeCore.so /system/lib/libSwypeCore.so

It may give the files the wrong permissions. (how much access to the system they have) Just to be safe we need to give the files the right permissions.

chmod 644 /system/app/Swype.apk
chmod 644 /system/lib/libSwypeCore.so
sync
reboot

Your phone will reboot and then you are done.

For Root Explorer:

Extract a copy of the needed files and put them on the SD card.

Then open root explorer and open the "sdcard" folder.

Next find "Swype.apk" and long press it and select "copy" (or if you have already completed this step once, copy "libSwypeCore.so")

Use the back button to go back to the root of the folder tree (up top where it shows your current location, it will show "/" this is where you started from when opening the app)

Locate and open the "system" folder.

You then need to tap the button up top marked "Mount R/W" (this will allow you to make changes and copy the files to the right locations) (this step should not be needed if you have already done so before)

Next open the "app" folder. (or if you are moving "libSwypeCore.so" open the "lib" folder)

Hit the "paste" button to copy the file.

Next long press the file you just copied "Swype.apk" and select "permissions" (or "libSwypeCore.so" as appropriate)

You will see a bunch of check boxes. The will be labeled "read" "write" "execute" across the top and "user" "group" "others" down the left side.

For "user" select the "read" and "write" boxes

For "group" and "others" select the "read" box only. Then select "OK"

When done with the first file, repeat the above steps again with the second file. Observe any changes to the steps that are in orange text.

Next open up a "terminal emulator" app and then run the following commands.

su
sync
reboot

Your phone will reboot and then you are done.

Hope this helps someone.