Since I'm having a couple of problems lately that will ultimately require me to hard-reset my TyTN in the near future, I figured I could document the steps I take to salvage the configuration as I go and learn this stuff.
My primary tool will be the Windows Mobile 5.0 Pocket PC SDK, especially the rapiconfig tool, that allows to process and query configuration information in the form of provisioning xml files.
RapiConfig sends the provisioning file to the device, processes it and saves the answer to RapiConfigOut.xml.
Lesson #1:
How to retrieve Messaging account settings, even if they appear to have vanished, using the EMAIL2 configuration service provider:
<!-- query-email2.xml -->
<wap-provisioningdoc>
<characteristic-query type="EMAIL2" recursive="TRUE" />
</wap-provisioningdoc>
C:\>RapiConfig.exe /p query-email2.xml
The result will be a list of manually configured messaging accounts, plus Hotmail and MMS.
The result will not include passwords (parm name="AUTHSECRET). To be later able and use the output file for restore, these params should be added for those accounts with (parm name="AUTHREQUIRED" value = "1") and the file should be saved under a meaningful name. Since MMS will be commonly setup by the ExtRom setup, it should be removed.
Next time we'll look at wireless connection setup.
Lesson #2:
How to enable RAPI access with manager privileges and retrieve WLAN settings.
The attempt to retrieve WLAN settings using the "Wi-Fi" characteristic will fail with "Access denied", because the Wi-Fi configuration provider requires manager level access, which is like Administrator on a PC.
By default, RAPI only uses user access level, and users can obviously not be allowed to manage WLAN settings using RAPI.
The SDK provides a way around this. Allowing RAPI access to manager-level features can be enabled by a security policy. This policy must be set using a signed configuration file.
The SDK contains a file "RapiAllowed.cpf" in the rapisecurity folder that can be used for this purpose.
However, first the certificate used to sign this file must be installed on the device.
For this, the SDKCerts.cab must be run on the device. This step might fail however, if the network provider chose to prevent the user from using unknown certificates.
The the RapiAllowed.cpf can be copied and run as well. There will be no feedback other than a SMS confirming the installation.
RAPI is a powerful interface, so the inverse, RapiRestricted.cpf, must be run before the device is brought into possible hostile enviroments (e.g. where some people might run Bluetooth scanners, USB ports on public computers, etc).
There is also a tool available from Microsoft called "Security Configuration Manager" that allows reviewing and resetting device security.
With RAPI security disabled, querying Wi-Fi is a piece of cake:
<!-- query.xml -->
<wap-provisioningdoc>
<characteristic-query type="Wi-Fi" recursive="TRUE"/>
</wap-provisioningdoc>
C:\>rapiconfig /p query.xml
The RapiConfigOut.xml will show all configured WLANs grouped into access-point-based and ad-hoc networks, with a characteristic for each network.
The network key is included as dummy string "****************" that needs to be replaced by the real passphrase.
I guess the next thing is to take a look into the network settings provided by CM_Networks and CM_GPRS_Entries.
HB_TyTN, very interesting stuff in your lessons, thanks for your effort
Also you may like to check rapi unlocker here:
http://forum.xda-developers.com/showthread.php?t=252356
Excellent thread! Will definitely keep mentioining it in my forthcoming, related articles!
About networks
The network thing in Windows Mobile seems pretty messed up. In an attempt to make things easier, safer and more automated, I think, Microsoft left anybody on the way.
Here is what I understand and (warning), I may be totally off.
There are four pre-defined networks Internet, Corp, WAP and Secure WAP.
Although those may have different names based on OS language and HTC, provider or user choosing, the IDs of these networks are fixed and can be looked up in the SDK/include/connmgr.h file. E.g. Internet, is identified by 436EF144-B4FB-4863-A041-8F905A62C572.
These networks describe different setups in terms of routing, security or proxy settings or are used from different applications (e.g. WAP/MMS).
Of all networks, one is selected as Internet (public) and another can be chosen as private under Select Networks in Advanced Connections.
Internet will provide TCP/IP only. Private will provide access to Windows shares, and may connect to the internet, usually thru a proxy.
The Connection Manager separates the world into Internet and private, based on the URL of the server.
Non local server names, e.g. www.xda-developers.com will be connected with the network specfied as Internet.
Yes, this includes any directly entered IP address, as the detection is based on the occurrence of a "." dot in the server name. The only way around this is to specify the URL in Settings, Connections, Advanced, Exceptions (using * as a wildcard if necessary).
Sole server names and except URLs will be connected thru the network designated as private.
With each network, connections, network cards and wireless networks can be associated, so that, finally, the connection manager uses or dials one of those connections based on the network it chose to use.
That's a long intro into lesson #3: Querying network information
I'll start resetting RAPI security to restricted, by copying RapiRestricted.cpf to the device, running it and checking the SMS message for success. This should prevent any actual messing up something.
Now to querying networks using the CM_Networks configuration provider.
<!-- query.xml>
<!--<!DOCTYPE wap-provisioningdoc SYSTEM "msprov.dtd">-->
<wap-provisioningdoc>
<characteristic-query type="CM_Networks" recursive="TRUE"/>
</wap-provisioningdoc>
C:\>rapiconfig /p query.xml
C:\>notepad RapiConfigOut.xml
The introduction above is to explain why this query does not reveal anything useful, other than a list network names, their ID and an obscure "Secure" value, which is 0 for all my connections.
I find it more interesting to query the CM_PPPEntries or the CM_GPRSEntries providers. They use a similar, yet somewhat convoluted schema.
Here are the notable parts:
DestID associates the entry with one of the networks I talked about and queried above.
Phone is the number to dial for the connection. For GPRS, this entry is set to "~GPRS!". I wonder who came up with that string.
Username and Password are obvious and so is RequirePw.
DnsAddr, AltDnsAddr are not out of the ordinary, and if SpecificIpAddr is "1", the ip address is in IpAddr, although I'd assume it is assigned dynamically in most cases.
DeviceType and DeviceName are set to "modem" and "Cellular Line" for the connections that use the phone network.
DeviceSpecificRAW is the most dangerous entry here, since it contains the parameters for the phone device in binary form. I wonder if there is any point in looking into those other than to inflict pain.
Some of the device parameters are set verbosely, so let's rather look at those. However, your provider may not like it if you modify these vigorously.
If BearerInfoValid is 1, BearerInfoService and BearerInfoSpeed are supposed to specify the type of modem and it's speed. Values in my case are 1 -Async Modem and 15 - 9600 v32, which goes to show that the latter value is rather useless, because I know I get more than that with both UMTS and GPRS. So better not tamper with these.
CompressionInfoValid and RadioLinkInfoValid are set to 0 in my case, so one can easily do without.
GRPSInfoValid is set to 1, but the only real interesting parameter is GPRSInfoAccessPointName, which must be set for the GPRS connection to know whom to talk to.
GPRSInfoQOSSettingsValid and GPRSInfoMinQOSSettingsValid are 0, which is sad, because I'm really not happy with my GPRS Quality of Service and would have loved to improve it.
Now, that was a joke. QoS is a way of classifying network traffic for bandwidth and latency and I doubt any provider supports it for Joe Average.
For all the parameters documentation is in the Smartphone SDK about the Telephony and TSP API structures.
Finally, a list of default URL mappings, as found in the CM_Mapping provider documentation.
*://*.*/* The Internet
*://*/* My Corporate Network
wsp://*/* WAP Network
wsps://*/* Secure WAP Network
To query my personalization settings, next time I'll dive into the registry and see what I can do with RAPI configuration queries.
Related
I've now had my Trinity for a week and I love it. The GPS and TOM TOM are great. I bought a car mount from Mobile Planet (Expansys) and it works better than the Magellan I was using. The phone functions work generally well, although not as crisp as my Cingular 8525.
I set up the MediaNet connections manually using the settings from the AT&T web-site, and it seems to work well.
There are cab files for all of the Cingular settings that are posted on the XDA Hermes/TyTn list, but I'm not sure if there are any settings in that cab that will improve my Trinity's connectivity. I'm also concerened that I may in some way disable the Trinity with this cab file.
Any Comments?
Ron
I'm in the market for my 2nd Trinity. Where did you get it and what did you pay? Some resellers still have old stock with the old ROM.
As far as your settings go, I saw little or no difference with the cingular settings in my area. There are a couple of options you have including DNS servers and access point. I've had good luck with the folowing:
cellular line GPRS
access point - wap.cingular
user name [email protected]
pw CINGULAR1
no domain
Advanced server settings
DNS 208.67.222.222
ALT 208.67.220.220
Others may have a different experience. I never installed the cab.
Baxter said:
I'm in the market for my 2nd Trinity. Where did you get it and what did you pay? Some resellers still have old stock with the old ROM.
As far as your settings go, I saw little or no difference with the cingular settings in my area. There are a couple of options you have including DNS servers and access point. I've had good luck with the folowing:
cellular line GPRS
access point - wap.cingular
user name [email protected]
pw CINGULAR1
no domain
Advanced server settings
DNS 208.67.222.222
ALT 208.67.220.220
Others may have a different experience. I never installed the cab.
Click to expand...
Click to collapse
I got my Trinity from Phone Source USA for 593 shipped. Here goes a link to their ebay auction.
http://cgi.ebay.com/Brand-new-HTC-P...ryZ64355QQssPageNameZWDVWQQrdZ1QQcmdZViewItem
Results from quick experiment: San Francisco, USA
HTC Trinity (Latest LVSW.1.0.0.7 rom & Radio.1.41.00.11)
The Cing cabs (from this Forum) used to make settings put adv server config numbers in. Everything else is exactly same as manual setup with auto or configured servers.
Advanced server settings
DNS 208.67.222.222
ALT 208.67.220.220
Phone Band network type set: Auto
GSM/UMTS set: GSM(1900+850)+UMTS(1900+850)
Method: Connections, Advanced, Selected Network, MEdia Net settings or WAP (no proxy) settings, IE defaulted to Windows Live, clicked on url to DSL Reports-Speed Test, 600K used for every test, resulting kbits/sec, re-entered DSL Reports url each test. Between different network settings runs, made change, & soft reset. 2 separate run sets for both network configs & auto/non-auto adv server setup. All numbers kbits/sec.
MEdia Net-AUTO: 804, 889. Avg=847
MEdia Net-Adv settings: 880, 857. Avg=869
WAP-no proxy-AUTO: 634, 618. Avg=626
WAP-no proxy-Adv settings: 632, 705. Avg=669
(For accuracy, each number of the first 2 pairs presented are also averages of 3 separate runs each, with lowest value dropped & 2 used for avg of that run.)
Either method shows MEdia Net as mycingular.net or WAP-non-proxy as myvzw.com, but different ip addresses, for these runs.
Looks like NO STATISTICAL DIFFERENCES in overall results as to the use of Advanced dedicated dns settings.
Also, using the Cingular apps, i.e., MobiTV, Media Net Video, Streaming Video or Music, or other (non-Cingular) Internet Streaming Video & Audio sites, AUTO server-assigned settings worked almost always.
When switching to Adv dedicated settings instead, sometimes a change to AUTO-server assigned would be necessary to get the Video or Audio to run correctly.
Similar results obtained with HTC Tytn.
The only diff I saw with DNS is the time it takes to locate and open web pages. Much faster with the DNS settings I listed above for all of my devices. It has been a year or so since I have changed anything. Results may not be the same now.
How did you put in these settings? I went to Settings --> Connections --> GPRS Setting, but it only has 2 radio buttons: "PAP authentication" and "CHAP authentication".
Baxter said:
I'm in the market for my 2nd Trinity. Where did you get it and what did you pay? Some resellers still have old stock with the old ROM.
As far as your settings go, I saw little or no difference with the cingular settings in my area. There are a couple of options you have including DNS servers and access point. I've had good luck with the folowing:
cellular line GPRS
access point - wap.cingular
user name [email protected]
pw CINGULAR1
no domain
Advanced server settings
DNS 208.67.222.222
ALT 208.67.220.220
Others may have a different experience. I never installed the cab.
Click to expand...
Click to collapse
Create a new connection with those settings.
I am using the .cab 'Cingular WAP MediaNet MMS Settingsv2' on my Trinity and I am always getting nice 3G speeds (Since I am in UMTS or HSDPA areas 95% of my day).
If I go to Settings --> Connections --> Tasks, I only see
"Add a new model connection"
"Add a new VPN server connection"
....
I have tried all of those options, but don't see to be able to create a connection described by you. Can you help? Thanks.
Baxter said:
Create a new connection with those settings.
Click to expand...
Click to collapse
nbc17 said:
If I go to Settings --> Connections --> Tasks, I only see
"Add a new model connection"
"Add a new VPN server connection"
....
I have tried all of those options, but don't see to be able to create a connection described by you. Can you help? Thanks.
Click to expand...
Click to collapse
You said: "How did you put in these settings? I went to Settings --> Connections --> GPRS Setting, but it only has 2 radio buttons: "PAP authentication" and "CHAP authentication"."
For GPRS, choose CHAP. Then return to Connections, to continue dialog.
Go to Settings/Connections/Connections:
There you should see: 2 main Headings: Media Net & My Work Network
Also, you have the Advanced tab at bottom, Click on that:
Click on Select networks
Choose on top dialog, My Isp for setting up Data connection OR media Net for setting up proxy connection.
OR, an easy way is:
The file commented on in previous post by maevro, is the easiest way. Do a search on forum, you'll find it easily. Install the cab. Search for cab: Cingular WAP MediaNet MMS Settingsv2
Just create a new modem connection.
Thank you guys, I appreciate it. I am able to get it to work now. How come mine says I connect to EDGE, but not 3G? Again, thank you.
Wow, why go through all of this? Download this .cab and run it & it will set up all the AT&T/Cingular settings...I have said this a while back in this thread....
Hi,
Being a mobile device, it gets used in many places, with many WiFi networks.
Setting the various networking parameters involves opening several different setup screens and (often) fiddling around with entering IP addresses, proxies, etc.
Does anyone know of a utility that allows the easy setting of DHCP vs fixed IP, maybe DNS servers and proxy vs no proxy? And, perhaps more importantly, a utility that both does this and remembers the settings for the various networks, allowing a rapid setup on the second and later connections?
Regards,
Geoff.
Sad but am replying to my own message.
Am I the only one that regularly connects to networks with different parameters?
Am still hopeful that someone will know of a utility to store network parameters and allow same to be set with one tap - or someone clever will make such a utility??
Hi Geoff,
No you're not the only one.
Have you found something yet? I could do with the same!
Michael
Here's another vote for such a utility, i'd love to be able to use mine at hoem and work without having to dig through several menus to get there.
What about a CAB install with different settings..
Same here mate. I am looking into XML cab files, that modify your network card settings eg DHCP \ Fixed IP and also changing over the Wireless network settings, eg SSID, WEP Keys etc.
Its easy enough to create a shortcut to a CAB file, and one that just changes a few registry settings operates very quickly.
Yes, its a manual workaround.
Yes a application that detects the loss of one WIFI and attempts you connect the others in your device and then configures the WLan card accordingly (DHCP\Fixed IP etc) would be very handy.
No - I haven't got very far yet, I took the idea from another thread where someone used it to RESTORE their WIFI settings after a cold-reset.
Kudos to
http://forum.xda-developers.com/showthread.php?t=309855
http://forum.xda-developers.com/showthread.php?t=277727
for putting me on the path..
So I'm trying to change the default internet profile (Settings->Connections->Connections->Advanced->Select Networks).
This is the network management screen that allows you to change between "My ISP" and "My Work Network" profiles. I need "Programs that automatically connect to the Internet should connect using:" to be changed to "My Work Network" in a programmatic manner.
I have went thru the OMA client provisioning documentation and tried several ways to get this to switch and have been unsuccessful. In particular I have played with the CM_NetEntries quite a bit. This documentation seems to indicate that you can change the profile itself (My ISP or My Work Network) to point to a different provider (Internet or Private network). Is this what I should be doing? Or should I instead be trying to literally switch the selected profile over? Is there a better way to do this?
Thanks!
I think that is going to be hard, but which language are you using?
Right now I'm just using rapiconfig to provision the device with the xml doc. If I can get that to work, I'll wrap it into a .cpf and just install it. If I actually have to code, I prefer C#.
I want to automatically select the default network to which the device connects
(the first combo in Settings->WirelessControls->menu->Connections->Advanced->SelectNetworks -
See attached image)
My problem is as follows -
When I set up the connection to the operator -
it sets the default network to be <<3G Portal>>
I want to automatically change it to <<Internet 3G>>
(Or in the worst case -
Automatically delete the <<3G Portal>> -
making the <<Internet 3G>> the only available option -
which will force it to be default)
Does anyone know how to do this ?
(Even if some Cpp/C# code is needed - does anyone know the API ?)
Thanks
Not a lot of sense there
Looking at the screen print
The phone is set up to access the web FIRST via the 3G portal (every phone needs a portal to get online).
The second option looks to me to be a WIFI connection. Wifi always take priority over gprs/3g/hspa
so unless you can make a bit more clear what your looking for......................
http://www.filesaveas.com/gprs.html
Of course, if you mean a different web access point get the APN settings and manualy add then from the settings menu - wireless and networks access point names - press the menu button - add apn
As I understand your Q, you wanna auto set the default network without having to manually change it everytime you hard reset / change roms?
Here's what I do for such things.
Get ceregistry editor, connect to your phone, export the registry to file, then, on the phone, change the default access point to the one you would rather it was, (possibly reboot phone here to be sure the registry has changed the default apn,) back into ceregistry editor, compare current registry to the snapshot, figure out which key changed, and to what value, then provision that reg key (via a cab, or provxml,) whenever you hard reset, after the network has been set up. (I have a cab with dozens of tweaks in it,you can just keep adding to it)
johnerz said:
Not a lot of sense there
Looking at the screen print
The phone is set up to access the web FIRST via the 3G portal (every phone needs a portal to get online).
The second option looks to me to be a WIFI connection. Wifi always take priority over gprs/3g/hspa
so unless you can make a bit more clear what your looking for......................
http://www.filesaveas.com/gprs.html
Of course, if you mean a different web access point get the APN settings and manualy add then from the settings menu - wireless and networks access point names - press the menu button - add apn
Click to expand...
Click to collapse
Thanks for the reply.
Both connections are over the Cellular network.
The first one (3G Portal) is set up by the operator to go via some proxies and stuff, which block certain services/sites as they are not stored on this proxy.
The Second one is "unfiltered" internet connection over the Cellular network.
Whenever the network is detected and set up, the settings are automaticelly set to go via the "proxied" connection.
I want to change it to work over the unfiltered connection.
I would like to know the registry keys or any other place this information is kept, so I could automatically change it.
I tried searching the registry for these values but could not get to a definite conclusion about where exactly the "default connection" is stored, or if it is stored in the registry altogether.
(If it is stored in the registry - I do NOT want a complete registry import/export - just the relevant keys)
Many thanks in advance.
Yes it is stored in the reg, but it stores an ID for each connection which is different for everyone, hence the method I suggested which would reveal both the key and the ID, I wasn't suggesting you import a whole registry, simply make a cab of just the one key. It would take about 10 mins to do, but I'm not running winmo so can't lookup the key for you.
Som30ne said:
Thanks for the reply.
Both connections are over the Cellular network.
The first one (3G Portal) is set up by the operator to go via some proxies and stuff, which block certain services/sites as they are not stored on this proxy.
The Second one is "unfiltered" internet connection over the Cellular network.
Whenever the network is detected and set up, the settings are automaticelly set to go via the "proxied" connection.
I want to change it to work over the unfiltered connection.
I would like to know the registry keys or any other place this information is kept, so I could automatically change it.
I tried searching the registry for these values but could not get to a definite conclusion about where exactly the "default connection" is stored, or if it is stored in the registry altogether.
(If it is stored in the registry - I do NOT want a complete registry import/export - just the relevant keys)
Many thanks in advance.
Click to expand...
Click to collapse
Try using Data Controller by Red Frogfish. With this app, you can turn on and off all of your different connections indvidually.
Since, I have T-Mobile, I have the following connections:
T-Mobile Data
T-Mobile MMS
T-Mobile Internet
And, Data Controller lets turn each on or off as needed/wanted.
Rob
samsamuel said:
Yes it is stored in the reg, but it stores an ID for each connection which is different for everyone, hence the method I suggested which would reveal both the key and the ID, I wasn't suggesting you import a whole registry, simply make a cab of just the one key. It would take about 10 mins to do, but I'm not running winmo so can't lookup the key for you.
Click to expand...
Click to collapse
Ok, thanks.
I will try this method.
I am on the Pure Nexus that disables tethering provision but I have a problem with it. I love the rom but I have Total Wireless which is a Verizon MVNO and for some reason it has a bunch of different APN settings but none of them right for Total. I only get 3G. It will also not let me add a new APN setting. If I put in my MetroPCS sim it has the correct APN plus will let me add a new APN if needed. Pure is the only one I have seen in its description that says it turns off the check. Is there another custom rom out that does this? Thanks.
Disabling the tether provisioning check is usually nothing more than adding the following line to your build.prop and rebooting:
net.tethering.noprovisioning=true
Although if this still doesn't seem to work, sometimes you also need to:
(Optional) Using a root file explorer, navigate to /data/data/com.android.providers.settings/databases/ and make a copy of settings.db
- Install and open a SQL editor and grant it root access when prompted (such as SQLite Editor)
- Tap the APPS tab and then “Settings Storage”
- Tap on settings.db then global
- Tap on the + symbol to add a new key/value pair
- In the name field type in tether_dun_required
- In the value field type in 0 (zero)
- Tap Save
Note: If you do not have a SQL editor, this can also be accomplished with adb, using the commands:
Code:
adb shell
settings put global tether_dun_required 0
Open the Android System Settings
- Under WIRELESS & NETWORKS tap More…
- Tap Cellular network settings, then Access Point Names
- Tap your active Internet or Tethering APN (will vary by carrier, might only be one)
- Make sure your APN protocol and APN roaming protocol are both set to IPv4 (it doesn’t look like tethering works with IPv6 yet)
- (If you’re using T-Mobile) Make sure your APN is set to fast.t-mobile.com
Reboot
Click to expand...
Click to collapse
It should be noted that some carriers use the number of hops left on packets that hit their servers to indicate that you're using tethering rather than actual cellphone data.
The xt_HL.ko netfilter driver included with a customer kernel should allow a user to use the IP Tables rule to change tethered traffic TTL with the default TTL of the device. This would make tethered data appear as if it's actually cellphone data.
More information about including this in a kernel can be found here. (Sorry, it's in Russian and not my page)
Most of this info was taken from Enable Wireless Tethering in the Moto X Pure and other various sources but is fairly generic for most plain Android builds.
acejavelin said:
Disabling the tether provisioning check is usually nothing more than adding the following line to your build.prop and rebooting:
net.tethering.noprovisioning=true
Although if this still doesn't seem to work, sometimes you also need to:
It should be noted that some carriers use the number of hops left on packets that hit their servers to indicate that you're using tethering rather than actual cellphone data.
The xt_HL.ko netfilter driver included with a customer kernel should allow a user to use the IP Tables rule to change tethered traffic TTL with the default TTL of the device. This would make tethered data appear as if it's actually cellphone data.
More information about including this in a kernel can be found here. (Sorry, it's in Russian and not my page)
Most of this info was taken from Enable Wireless Tethering in the Moto X Pure and other various sources but is fairly generic for most plain Android builds.
Click to expand...
Click to collapse
Thanks for the info but I guess my biggest question is I wonder why the Pure Nexus Rom will not let me add an APN for Total wireless but will for Metro? I have a G5 Plus that is an Amazon ad subsidized also and it will let me change an apn for Total???Thanks for your info though.