I just got my XDA II and started installing my software onto it. Noting seems to work! Any software that has more than 1 cab refuses to install, if i look on the device the cab files are there but trying to execute them gives a invalid cab file error - i am installing to SD card, installs to ram seem ok. What am i missing?
maybe your cab files are not for the arm processor?
or not for ppc2003?
it is quite strange for a pocket pc application to have more than 1 cab.
You say they install to ram ok but not to sd card, do the programs work once installed to ram? Many programs have an option when downloading to either have an exe file install or a cab file install, have a look at the sites of the software you are installing to see if that option exists for the programs you are trying to install.
ok, to clarify..Dispite the low number of posts i'm not a newbie - been using and developing for ppc for years...The software all installed ok on my ipaqs(3970 + 5450) both with XScale both with WM2003. I am using activesync 3.7.1, and am leaning towards that being the problem, any thoughts?
you don't need activesync to install cabs. if you copy the CAB to your ppc,
and then click on it in the pocket-file explorer, it should install too.
I'm not trying to install cabs. On my pc i click the install program. That launches add/remove programs in activesync, that copies over the cab files to the ppc which are then executed. If install fails they are not removed. that is how i know they are there.
What programs are you trying to install?
based on a post at pocketpcthoughts in august 2003 i changed my todat theme back to windows default - and guess what - no more install problems! no more directory corruption- should i return my device?
My goal is to get the TCP data from a TCP application on the pocket pc
like data from internet explorer or active sync. I want to write a proxy
that forwards all TCP data to the application server (Web server,...).
So I have tried to replace the ws2.dll with a wrapper dll that forwards all
winsock API calls to the original ws2.dll. But when I replace the ws2.dll file
with my own and make a softreset the device hangs in boot screen and
I must do a hardreset. Could not get this to work on WM5 but it works great
on WM2003 devices.
So I have tried another thing. Have heard about API hooking and want to
try this with winsock API functions (connect, WSAConnect, send, recv,...).
After several days of investigation in some forums I have found many
informations about API hooking and API sets win WM5. But when I look
deeper there is no server process for winsock API calls. So I cannot
change the method adresses.
Another idea was to hook LoadLibrary() API function and when ws2.dll is
loaded from an application I will load my own dll and forward all calls to
the original ws2.dll. But LoadLibrary() has also no server process.
Has anybody another idea how to do this?
Thanks for any information on this.
Houser
Hi Houser!
I think the reason your original method failed on WM5 is because all system DLLs must be signed or the system will not load them.
There are several threads on this forum (sorry, can't remember precise link right now) that explain how to create\use certificates, and sign files, so just search for that.
Good luck.
Thanks levenum for your reply.
I also have thought about signing the dll but I have disabled certificate
check on the WM5 device with the Cert_SPCS.CAB file and now
my system loads every dll without asking the user.
I have written some test applications that explicite load my ws2.dll with
a different name (ws2xx.dll) and then in my ws2xx.dll I load
the org ws2.dll from \windows dir and all worked fine. I can use
any winsock function and can make TCP connects and so on.
So I think signing is not the problem, only when I do not use
the Cert_SPCS.CAB file to disable it?
Or are system file always checked at boot phase?
That would then explain the problem maybe.
Regards
Houser
I am pretty sure system files are treated separately. I once used a device with no cert ROM, which ran all programs and loaded DLLs without asking for certificate, but refused to do so for system files (MUIs).
I think you should give certificates a chance before moving on to more complicated solutions.
So I should try to sign my wrapper dll with a certificate.
So I will try to sign with the Visual Studio 2005 developer
certificate. And then I must install this certificate on my device
so that the system trusted the dll file with this certificate?
Houser
Another thing: What do you mean with MUIs?
That's correct.
There are provisioning CABs in the 2005 SDK. You just run them on your device and they insert all the test certificates.
SDK also shows how to provision devices through RAPI, but most WM5 ROMs block that option.
Also you should use the 'privileged' execution certificate to make sure you have maximum access to the system.
MUIs are duplicate system DLLs that contain resources for other languages. For example: coredll.dll.0409.mui will contain English resources for coredll.dll (409 is hex for English code page). They are used to switch interface languages both on PC windows and mobile. (Metalanguage User Interface).
P.S.
If you want, there are XML templates for provisioning CABs in the SDK, and makecert.exe that let you create your own certificate and put it on the device.
Another thing: What do you mean with MUIs?
So I have tried this:
1) Installed the SdkCerts.cab certificates on the device (copied the file on
the ppc and tap in explorer on it) A success message was displayed from
the setup process.
2) In VS2005 I have set in the project settings the cert signing to "Sample
Privileged Root for windows mobile SDK" certificate and rebuild my dll.
In the dll file properties I can see the certificate.
3) Have copied my ws2.dll file to \windows and replaced the org ws2.dll file
there, my dll loads a copy of the org ws2.dll (ws2copy.dll) that is also
in the \windows dir
4) Then the big moment: Soft reset and..... hanging again in boot screen
The installed certificates did not appear in the pocket pc certificate manager.
Do you know if they should appear there or not?
Maybe the SDK certificates are not imported correctly?
Thanks for you help!
Houser
I'm sorry my solution didn't help.
The test certificates do not show in the list (don't know why).
The way I see it there are two possibilities:
1. I was wrong about the certificates. (Though I think you may still need them)
2. There might be a problem with the copy DLL you try to load (ws2copy.dll). Is it from a good dump? Have you tried loading it from a test app? Is it signed? I think it needs to be signed to.
Sorry I can't give you advice on an alternate way. Insufficient knowledge...
It is very frustrating, I do not knwo how many
hard resets I have made in the last few weeks. :?
I have written a test app that loads my winsock dll file and
then my dll loads the copy ws2.dll file. The copy ws2.dll file
is from a platform builder 5.0 build.
These tests with my test app all worked fine, I can make TCP connects
and do all the winsock stuff like I load the org ws2.dll file directly.
I have even disabled certificate check on the device and tested
with unsigned dll and it works too.
The copy dll from PB 5.0 is not signed. may be this could
be a problem when my dll is loaded in boot time.
Do you know a way to sign the copy PB dll with the SDK certificate?
Thanks man!
Houser
Signing files (DLL, EXE, CAB) is very easy. In the SDK, there is a file called signcode.exe. It will give you a step by step wizard to sign the file. The only additional thing you will need is the certificate files themselves which should also be in the SDK.
Got it to work with signing the copy dll file and
now after soft reset my device does NOT hang. :lol:
Many thanks for your support levenum!
That is very good but now I have figured out that
I cannot make a localhost connect on a local tcp port
on the device. That has something to do with WM5
because it was working under Wm2003. Strange..very
strange.
Houser
Has anyone tried installing these file to enable SAP Settings?
ftp://ftp.xda-developers.com/Hermes/Tools_and_Programs
Have have loaded the unzipped files into the Windows directory of my SPV3100 and when I start the program I get this message...
SAPSettings' cannot be opened. Either it is not signed with a trusted certificate, or one of its components cannot be found. You might need to reinstall or restore this file"
Can anyone give me guidance as to what I am doing wrong - or is there a problem with the files on the FTP?
TIA
Trout
Hi,
Recently, i can't run cab files anymore from the Trion (install files), even files that worked in the past don't work anymore. Maybe i've messed up some setting in the system...javascript:emoticon(':roll:')
When i try to run the install cab file, i get an error message: "The file ... can't be opened. Either it is not signed with a trusted certificate or one of its components cannot be found. You might need to reinstall or restore this file".
Any suggestion, please? javascript:emoticon(':idea:')
Please reply to [email protected]
Thanks. :roll:
Please help me someone how to make CABs which can replace system files in ROM (e.g. gwes.exe etc.). I know that there are many users who know how to do these CAB files...
BTW I have searched all available WM5 forums and found nothing
You can't actually replace ROM files using a cab. What you can do is overwrite any ROM file once, with a file that has the same name. The actual file will be stored in the normal storage memory and referenced instead of the original ROM file by anyone trying to access it.
If you hard reset (format) the device the original file will be back.
There are no special actions required to do this. Create a cab as usual with the files you want.
Note two things: 1)You really don't want to mess with gwes.exe because you are likely to crash your device. 2) On some devices, replacing system files may require changing security settings first. If your cab fails because of permission issues, search for 'Application unlock' for your device.
Thanx very much for your reply I want to mess with system files because I'm going to make translation of my device I tryed to make CAB file but it seems my device (Mio A701) is locked so you say I must search for "application unlock" specially created for my device? Isn't there any universal unlock for WM5 devices?