Swype Beta Hack

This is for those of you that were using the one build of the Swype Beta that actually worked for the Ally (up until last week, when it expired).

There is a new beta floating around (version 2.4.44.10912.t100), however, when installed on the Ally, it instantly locks you out with a message that this version wasn't made for your phone.

I read somewhere that in the past, you could fix this by modifying the Swype apk to contain an older "license.dat" file (such as the one from the open beta). With this new version however, Swype will FC instantly if it was installed from a resigned apk.

Out of curiosity, I extracted the files from within "classes.dex" and started poking around. In one of the files, I found this line:

This sparked my curiosity a bit. Apparently, one area Swype looks for its "license.dat" file is on your phone's filesystem! After a few unsuccessful tests, I found a license file that worked on my phone. So far, Swype hasn't given me any problem with this combo of old license + new Swype.

The "license.dat" file itself can be found within older swype apk's that you may find floating around the net. It is located at "/assets/files/license.dat" within the apk. You may need to try multiple versions before you find one that works for your phone. Also, a quick reminder that Swype *is* copyrighted software, and that you download said apk's at your own risk.

The easiest way to get this onto your phone is to extract the "license.dat" file to your android SDK's "tools" folder and run this command (with your phone attached in USB debugging mode of course):

If you have trouble with the directory(s) not existing, make sure to run Swype at least once first. It will create it's own folders.

Good Luck!

Note: I've only had Swype working on my phone this way for about an hour now, so it could always change it's mind and stop working. I don't anticipate any trouble with it, but I haven't thoroughly tested it yet.

UPDATE: After upgrading my girlfriend's Ally to Velocity 0.2, I tried applying the Swype fix using the adb push command above. This failed with a "Permission Denied" error. Instead, I had push the file elsewhere and use a cli shell to move it to the correct location. Not sure why adb allowed the push on my phone but not on hers.

If you try the command above and get a permission denied error, try the following.

1) Transfer the file to your phone (anywhere should be fine)
2) Open a terminal emulator or an adb shell
3) Run the "su" command (no quotes) and confirm dialog on your phone to get root privileges.
3) Navigate to the location you placed "license.dat"
4) Run the command "mv license.dat /data/data/com.swype.android.inputmethod/swypedata/" (without the quotes)

I apologize for the sloppiness of my workaround. I'm a still bit of a newbie with the adb interface. Also, being good with the command line apparently doesn't make up for being bad at writing instructions. If anyone has a better (and more fool-proof) set of instructions, feel free to post them.

I considered using Shapewriter instead, but when I went to look for it I noticed that they took it off the market. I figure that if I'm going to go out of my way to get one of them, might as well get the one that has the most hype. =/

...no pun intended there between hype and swype, lol.

Personally, I'd like to see the Swype developers release Swype to the Market, rather than just bundle it with OEM's. Seems like they'd reach such a big market that way. And just because it's on the market, doesn't mean they couldn't *also* sell it to OEM's for bundling. Hopefully they'll change their mind on the issue once they drop their "beta" tag.

Swype 2.4.44.10912 WVGA <-- Is the verison of swype that i have that works flawless with the ally. And landscape mode all the keys fit on the screen. I have a copy of " Swype 2.4.44.10912 WVGA" if anyone wants it. Just stop by the LG Ally IRC channel.

Nice find. I spent awhile trying to find a working apk, but didn't turn up anything. Might have given up too early though. I'm hoping that my method stays future proof though. They like to make Swype expire at regular intervals after all. Still, the more ways to make it work, the better.

I have a 1.61 version I can't part with, it has a different skin then all the normal swype installs I have seen. It's is a werid super plain version of the keyboard. If you guys want a copy let me know and I'll figure something out for you.

I have a 1.61 version I can't part with, it has a different skin then all the normal swype installs I have seen. It's is a werid super plain version of the keyboard. If you guys want a copy let me know and I'll figure something out for you.

Click to expand...

I use this version too. The keyboard is more visible and works in landscape FLAWLESSLY.

I use this version too. The keyboard is more visible and works in landscape FLAWLESSLY.

Click to expand...

Yep and for future reference the Ally at 480x800 is a WVGA (wide vga) device, the HVGA (half vga) is 240x640. So any programs that have different resolutions available you always want the WVGA version.

For the record, I've noticed an .ini file within the Swype .apk that looks like it controls resolution settings. It's located at "/assets/files/SwypeScreen.ini". I've haven't tried changing it, but you could theoretically use it to fit any copy of Swype to your screen size.

I think you can update files within an app without having to resign the apk, as long as you're not adding or removing any files (e.g. replace SwypeScreen.ini with another, modified, SwypeScreen.ini). This method would be similar to how MM works.

For the record, I've noticed an .ini file within the Swype .apk that looks like it controls resolution settings. It's located at "/assets/files/SwypeScreen.ini". I've haven't tried changing it, but you could theoretically use it to fit any copy of Swype to your screen size.

I think you can update files within an app without having to resign the apk, as long as you're not adding or removing any files (e.g. replace SwypeScreen.ini with another, modified, SwypeScreen.ini). This method would be similar to how MM works.

Click to expand...

Interesting, but I doubt it would work correctly. Internally the programs are set up to have separate directories for different resolution artwork, so if you change your resolution and it looks for that artwork and it's missing, you'll still be at square 1. If the swype apk contains multiple skins, then it could work. However there tons of devices that don't have exact resolutions like the Ally does (ie the droid at 480 x 854), so I'm pretty sure the apks are built for specific groups of devices, they aren't universal.

I would like to remind everyone that it is against AF policy to distribute licensed apps, like Swype. Please refresh yourself of what the Site Rules/Guidelines are.

Below is our stance against distributing Swype.

1. Swype is NOT a "free beta". It's only available by registering for a closed beta program, the t&c for which I am sure preclude users sharing it out to all and sundry.

2. Swype made it perfectly clear a long time ago that the app was copyright and that they would consider legal action against sites that allowed it to be distributed. The owner of AF has no inclination to attract the attention of Swype's legal team.

3. The Forum Rules make it clear that linking to/sharing copyrighted apps is prohibited. When you registered here you agreed to abide by these rules. Anyone found to be breaching these rules, either openly in the forums or via PM, will receive infractions.

Has anyone though of changing that string to point to a folder on the SD card so the user could easily upload a new license file by simply plugging in his phone?

Click to expand...

Hmm... I really hadn't thought of that. Unfortunately, I think it would be a long way around the problem. The convenience of knowing where Swype looks for a license file is that it's presumably future-proof. Newer versions of Swype will probably always look for the license there in order to ensure backwards compatibility with phones that have a license installed there.

If you were to modify it, you'd have to modify *each* new version, which takes enough work that you might as well push the file to its original location. The only advantage I could see would be the ability to do this on an un-rooted phone.

Also, such a modified version couldn't be uploaded here due to the forum rules (and concerns already addressed by the moderators).

According to warkrismagic (above), there is a new version floating around on the web right now that works perfectly on the Ally. Again thought, the link here was taken down for legal reasons. I'd suggest trying to google search for it. And sorry to shoot down your suggestion so abruptly... <.<

Hmm... I really hadn't thought of that. Unfortunately, I think it would be a long way around the problem. The convenience of knowing where Swype looks for a license file is that it's presumably future-proof. Newer versions of Swype will probably always look for the license there in order to ensure backwards compatibility with phones that have a license installed there.

If you were to modify it, you'd have to modify *each* new version, which takes enough work that you might as well push the file to its original location. The only advantage I could see would be the ability to do this on an un-rooted phone.

Also, such a modified version couldn't be uploaded here due to the forum rules (and concerns already addressed by the moderators).

According to warkrismagic (above), there is a new version floating around on the web right now that works perfectly on the Ally. Again thought, the link here was taken down for legal reasons. I'd suggest trying to google search for it. And sorry to shoot down your suggestion so abruptly... <.<

Click to expand...

There is one that works perfect with the Ally. Not sure if i can give out the version number on the forums though.