[Windows Mobile Apps and Games] MikeKnoop:
Tachi Phone Canvas Patched

Alright guys, I've been working on getting the Tachi phone canvas patched to work on our phones for the past 3 days or so, and I'm extremely pleased to present a fully-functional, CDMA and GSM compatible, TF3D2 compatible, Tachi Phone Canvas!

Okay so here are the details:

Below are 2 zip files, one for CDMA and one for GSM. It turned out that the problem with the Tachi phone canvas was it kept failing to render the slot manger screen. After debugging and locating where exactly this screen render was called, I was able to patch SlotMgrInterface.dll to bypass the entire thing and jump straight to the in-call screen. I also hardcoded SlotMgrInterface.dll to use a specific radio, hence why there are 2 different files. SlotMgrInterface.dll was signed with the developer certificate so you'll need SDKCerts installed (see attached).

The exact changes to SlotMgrInterface.dll are also detailed inside the ZIP files, and pasted here. They are:

Modify SlotMgrInterface.dll using a HEX editor

BOTH:
sub_100014D0
@08D8 CHANGE FROM (94 30 9F E5) TO (1F 00 00 EA)

CMDA:
sub_10001708
@0B48 CHANGE FROM (13 00 00 0A) TO (15 00 00 EA)

GSM:
sub_10001708
@0B40 CHANGE FROM (17 00 00 0A) TO (15 00 00 EA)

A mini-FAQ

What is provided in the ZIP files?

Inside, you'll find OEM files for the canvas, and a CAB file for installation. Also, details on exactly what was modified inside SlotMgrInterface.dll

Can I uninstall the CAB file?

Yes, I tested it and it uninstalls perfectly.

How many files were changed?

The only file which is modified from the default Tachi phone canvas is SlotMgrInterface.dll and again, details are in the ZIPs.

How about that bounty?

Well, after looking at the list I'm not sure this qualifies for them all. The dialer does support conferencing, however being on CDMA I was unable to test wether it had video capabilities. I'll let you guys decide wether you think this is worth it or not.

Are there any problems with the canvas?

After testing the canvas for a little while, I noticed a few things. One, there is a missing text label on the "contacts" button. Two, the in-call screen cover doesn't "slide" down, rather it just disappears when you slide it (I think it's supposed to smooth scroll down but I haven't seen this in action). There may be more tiny issues, but all in all it works. I didn't even attempt to try and fix these problems, I was only concerned with getting the canvas to work on our diamonds/pros.

What phone was this tested on?

I tested it on my CDMA Diamond on Sprint. I definitely need someone who has a GSM phone to test it on their phone. Also, if someone on a Touch Pro wouldn't mind testing and reporting their results, that would be great too.

Alright! So that's about it. This phone canvas looked a little "shaky" like it wasn't a final build. If anyone has their hands on a NEWER Tachi Phone Canvas, shoot me a PM and I'll see if I can patch a newer version that might have some of the problems I pointed out above fixed. There are many places where this is evident, especially when the canvas is switching between screens, moving through menus, etc. Also I'm at work at the moment and can't specifcally TEST the conference feature, but it is there and opens up another call window -- I just can't verify at the moment that it actually calls 2 people.

EDIT:

Alright so I've gotten some testing feedback and here's what it looks like. There are a number of issues we're seeing which are more likely than not related to the early alpha version of the Tachi canvas which was used to patch. Things include...

1. Can't manually dial a contact

2. In call slider behavior is abnormal, doesn't slide and cant be put back into place (other than waiting a few seconds for it to automatically go back)

3. Conference call functionality allows you to select another contact, but doesn't appear to actually call them

If you have your hands on a more stable Tachi canvas, let me know!

The Files

UPDATED: SEE HERE, http://xdaforums.com/showpost.php?p=3878294&postcount=650

EOF