Dear CoPilot users,
Over the last month I have been having a bit of a battle with the makers of CoPilot 8, ALK, with regards to my license which I purchased in early 2010.
Like many of you here, I'm a bit of a compulsive phone updater, be it new windows builds, android or this new android NAND stuff.
Anyway, every time I flashed a ROM, I'd have to reactivate Co-Pilot over the internet. No problem. However, one day, it stopped working, saying that my code was invalid!! Much to my horror, I sent ALK an e-mail asking what had happened. Here was my response.
Discussion Thread
---------------------------------------------------------------
Response (Brandt) - 08/11/2010 11.45 AM
Dear Jon,
Thank you for contacting CoPilot Technical Support.
Unfortunately the reason why you are no longer able to continue activating CoPilot is our Activation server has seen that you have reached the maximum permitted activation limit for a product.
Unfortunately there is nothing further I can do to unlock your Product Key Code to allow for further activations as this falls under excessive uses of activation.
Click to expand...
Click to collapse
Well, I didn't realise I could only activate so many times before the product was no longer mine. So I did some fishing through my T&C's for CoPilot 8 and there is no actual figure to indicate what "the maximum permitted activation limit for a product" is.
So I replied with an e-mail to that effect, saying that there is nothing in black and white for me to have known this. A month later they finally got back to me and said that I can now reactivate my code.
Now - I can understand what's happened. From their server's point of view, lots of people could be using my code on a large number of devices. So how do you get around this?
Well, every time you go to flash a new ROM, **MAKE SURE YOU DEACTIVATE YOUR LICENSE FIRST**!!
In settings (assuming you have show all settings selected), you will see a license button. Select your map in the list of things and press deactivate.
If you do this then you will be okay. But I suspect ALK will be updating their T&C to prevent this from occurring again.
Anyway, I hope that saves some of you from some potential trouble in the future.
why dont you backup & restore using titanium?
works for me
as far as im aware the activation code is linked to your phones IMEI, so it doesnt matter how many times you change your build, (with the same os) if restoring from backup
this is common practice with drm'd software.
the solution is just not to use it.
In The windows ver .. there is a file called : licp8.dat
That keeps your lic Info ...
Wonder if there is one for thr Android ???
then it will not matter
Just Found This ..
Requirements:
- A *LEGAL* copy of CoPilot 8 for Windows Mobile and the license key
- The latest version of CoPilot 8 for Android (works in Froyo now) Link to ALK Web Site
I bought it about 8 months ago for my HD2, for Windows Mobile 6.5. Great piece of software. I contacted ALK to ask if I could transfer between OS's and they said no, it wouldn't work! It also clearly states on their web site that transfers don't work:
Link
So being stubborn, I thought I'd take my own license from WinMo and deactivate it, stick it into Android and needless to say - it works and I have a fully legal copy of CoPilot 8 running on my Android Froyo device. Those cheeky beggers at ALK!!!
So how to get it working:
•Make sure you still have CoPilot installed under Windows Mobile and activated;
•Launch CoPilot. Go to the Menu|Settings|Licensing (NOTE: If you can't see this, find "More Settings" and select that first to show Licensing);
•Select your Map Region from the list (Mine was UK and Ireland), then press "Deactivate";
•CoPilot will now shut down;
•Boot into Android and using an installer, install the APK file which is in the requirements section at the top of the page or here;
•Open CoPilot from the Menu and it will ask for your license info. Enter this as you did when you first bought CoPilot (usually a username and password);
•Bada Bing. That should be it, all working!
Just to clarify one further time, this is only for legally purchased licenses. No questions about dodgy software please. Thank you.
WarlockW said:
Just Found This ..
Click to expand...
Click to collapse
LOL Warlock, that was my original post
Windows 8 RT (Surface RT) as well as Windows Phone 8 incorporate a TMP chip that is mandatory. The chip is burned (at time of manufacturing) a key and the OS flash locks the keys together with what was burned into the TMP. Windows 8 Standard/Pro, this is OPTIONAL, with RT and WP8, it is REQUIRED. Unless someone finds a way to decrypt/re-encrypt this on the fly by reading the key and certs, you won't flash ROM's or dual boot or whatever.
In order to "install" Windows 8 Standard or Pro, you would have to find a versions of those that are compile for ARM, which you won't find.
Hope this helps lay to rest all of these ideas of dual boot and flashing and whatnot.
I won't say that it's impossible, devs and hackers have always found been very enthusiastic trying to find ways to get around things, but this one may not even be worth the time and trouble.
A TPM is a microchip designed to provide basic security-related functions, primarily involving encryption keys. The TPM is usually installed on the motherboard of a computer or laptop, and communicates with the rest of the system using a hardware bus.
Computers that incorporate a TPM have the ability to create cryptographic keys and encrypt them so that they can be decrypted only by the TPM. This process, often called "wrapping" or "binding" a key, can help protect the key from disclosure. Each TPM has a root "wrapping" key, called the Storage Root Key (SRK), which is stored within the TPM itself. The private portion of a key created in a TPM is never exposed to any other component, software, process, or person.
Computers that incorporate a TPM can also create a key that has not only been wrapped, but also tied to certain platform measurements. This type of key can only be unwrapped when those platform measurements have the same values that they had when the key was created. This process is called "sealing" the key to the TPM. Decrypting it is called "unsealing." The TPM can also seal and unseal data generated outside of the TPM. With this sealed key and software like Windows® BitLocker™ Drive Encryption, you can lock data until specific hardware or software conditions are met.
With a TPM, private portions of key pairs are kept separated from the memory controlled by the operating system. Keys can be sealed to the TPM, and certain assurances about the state of a system—that define its "trustworthiness"—can be made before the keys are unsealed and released for use. Because the TPM uses its own internal firmware and logic circuits for processing instructions, it does not rely upon the operating system and is not exposed to external software vulnerabilities.
Click to expand...
Click to collapse
Just something to start the wheels rolling: http://wmpoweruser.com/trusted-platform-modulethe-secret-of-microsofts-attack-on-rim/
Didn't Macs use TMP, which was promptly bypassed to allow windows and OSX to use hardware it wasn't completely designed for? MS has done a very good job on the OSs so I have my doubts about how easy this will be but historically the OEMs have always screwed up when it comes to WP so perhaps, at least on first gen hardware, we may have more luck with them
Sent from my Samsung Focus S using XDA Windows Phone 7 App
I highly doubt anyone will easily bypass secure boot...
Sent from my HTC One X using Tapatalk 2
As there has been little progress made, I thought I could get the ball rolling myself. The purpose of this is to find a way to execute AT commands either on the device or via USB (for internet tethering purposes/general phone modification), and to discover how the bootloader works to devise a method to install a custom rom, or just installing unbranded/different roms for the same device, but different product code.
As a note before starting this, is my first device that's a Nokia, I'm taking this as a shot completely in the dark.
I haven't had any experience with Navifirm nor any of the Nokia utilities used in the past to flash either Symbian or WP7 devices, but I'm quickly learning.
PREREQUISITES:
http://www.seidea.com/2013/08/10/how-to-download-nokia-firmware-with-nokia-care-suite/ (the edited usergroupsconfiguration.cfg file)
http://www.seidea.com/2013/07/14/nokia-care-suite-pst-5-0-2013-27-1-3/ (the latest version of the Nokia Care Suite - 5.0 2013.27.1.3)
The USB drivers need to be installed first. The WinUSB drivers that were included are the only drivers that seem to apply to this device, but I went ahead and installed all the drivers in D:\Program Files (x86)\Nokia\Nokia Care Suite\Drivers
Driver Level Stuff
There are still a few devices shown without a driver. Here's the list
Code:
USB\VID_0421&PID_0660&REV_0100&MI_03 + USB\VID_0421&PID_0660&MI_03
USB\VID_0421&PID_0660&REV_0100&MI_06 + USB\VID_0421&PID_0660&MI_06
USB\VID_0421&PID_0660&REV_0100&MI_02 + USB\VID_0421&PID_0660&MI_02
USB\VID_0421&PID_0660&REV_0100&MI_01 + USB\VID_0421&PID_0660&MI_01
USB\VID_0421&PID_0660&REV_0100&MI_00 + USB\VID_0421&PID_0660&MI_00
I have no idea whats the purpose of these devices and using the driver update inside of Device Manager, it couldn't find anything.
Using my google-fu gave no results either.I could use some help in this department.
The following two are listed as Nokia USB Connectivity (which pst uses to run diagnostics)
Code:
USB\VID_0421&PID_0660&REV_0100&MI_04 + USB\VID_0421&PID_0660&MI_04
USB\VID_0421&PID_0660&REV_0100&MI_05 + USB\VID_0421&PID_0660&MI_05
which have the following files listed: winusb.sys WdfCoInstaller01009.dll and winusbcoinstaller2.dll
EDIT: found what the following devices functions are
ultrashot said:
Test mode devices:
MI_1 = MODEM
MI_2 = NMEA
MI_3 = TRACE
MI_4 = NOKIA_JSONRPC
MI_5 = NOKIA_ISI
MI_6 = DIAG
Click to expand...
Click to collapse
ultrashot said:
[Mi_4] uses a generic remote control protocol used by NCS (All the data shown in NCS is retrieved using JSONRPC). Contains functions like WriteNvData, WriteEfsFile, ReadManufacturerModelName, SetDeviceMode etc. Commands are in json form.
There is an old post with example of command: http://forum.xda-developers.com/showpost.php?p=35256188&postcount=8
Same protocol is supported in MainOS device mode. Some of operations have different names, but in general it is the same.
Click to expand...
Click to collapse
The following is a walk-through for initiating these protocols
ultrashot said:
How to Access a USB Device by Using WinUSB Functions
Click to expand...
Click to collapse
NOTE: The link above is not for the faint of heart. Its a link to a MSDN library. The walk-through assumes that you understand Windows already and have some background in programming.
The following process is the diagnostics TEST mode. It mostly relates to various hardware tests, like color pallets and tone generators.
So far, I have installed it on Win8Pro and started the Product Support Tool For Store. I then switched the product mode from Normal to Test and reboots into something that looks like a bootloader menu.
Since the text is blurry, It says:
NOKIA
ENOSW
RM680 1232.5957./9200.10211
181341 2013/02/28
RF INACTIVE
When it has reconnected in the phone information tab, this is shown.
Code:
Software Version (Test) RM860 1232.5957.9200.10211 181341 2013/02/28 //alpha_engine/ENO_LASER_F3
Software Version (Normal) 1532.5957.1318.3021
Product Code 059R224
Software Status Up-to-date
NCSd Version (Normal) 1.24
Module Code 0205229
Basic Product Code 059N5M4
PSN Number CGQ790279
Hardware Version 1000
Bluetooth Id ************
Public Id ****************************************
Wlan Mac Address ************ ************ ************ ************
Label App Version (Test) Security LabelSW 4.24.0.55964
Hardware info
===========
MAIN ASIC
Main Asic Version 4.1
POWER ASIC
Pmic Model 1
Pmic Number 0
Pmic Revision 4
NFC
Firmware Version 1.26
Hardware Version 0.3
Model Id 0.1
DISPLAY
Manufacturer 0xFE
Display Type 0x90
Display Consecutive Number 0xBC
Display Horizontal Resolution In Pixels 768
Display Vertical Resolution In Pixels 1280
MAIN CAMERA
Model Id 18497
Revision 0.2
Serial Number 0A0101AE00000000
Manufacture Id 16
Sensor Id 10484100
FRONT CAMERA
Model Id 27184
Revision 3.0
Serial Number 0115323500000000
Manufacture Id 10
Sensor Id 0A6A3003
CAMERA FLASH
Hardware Design 18
Hardware Version 4
Flash Info 1 46
Flash Info 2 17
ACCELEROMETER
Manufacturer KIONIX
Model KXTNK-1000
ALS
Manufacturer AVAGO
Model QPDS-T900
PROXIMITY
Manufacturer AVAGO
Model QPDS-T900
Test Tab
When in this mode, the following options may be performed in NCS.
Self Test:
Test audio components, the accelerometer (gives positioning), gyroscope (same), the magnometer(gives positioning as well), the proximity sensor (pass/fail for if it works or not), nfc and its antenna, wlan, bt interface, temperatures (in Celsius) for Bluetooth, pa and osc (whatever those parts are), the display interface, the touch interface, camera interface and ois (idk what these are besides odd x,y values) and miscellaneous flash tests (which include a xenon charging time and its lifetime counter.
Touch Display Test:
Gives x and y coordinates for a single touch point.
Display Test:
Displays a white pattern, a black pattern, a checkerboard pattern, and different rgb shades with black.
Vibra Test:
Vibrates the phone based on percentage.
SIM Test:
Checks if a SIM card has been inserted. (fails with Verizon shipped sim EDIT: Now succeeds since PST update) It also is supposed to perform something else, but can't validate.
Mic Test:
Records and plays audio back through various inputs and outputs.
Accelerometer Test:
Gives "gravity" data in x,y,z format.
Audio Output Test:
Plays four tones through various outputs at three different volumes.
Another interesting thing: When powering off the phone and turning it back on, Windows attempts to find drivers for "Nokia BOOTMGR", but it occurs too quickly to install.
Can someone with experience with Nokia other phones contribute assistance? It seems like I'm just meddling with NCS and I could possibly brick my main phone. (I was told to only install the ffu it was designed for.)
Flashing ffus from the same device, but using a different product code
I haven't been around to know enough, and its unknown if the Lumia 928 will be launched on any different carrier or in a different country.
Anyways I'll quote snickler's post to summarize.
snickler said:
Hi All,
I've spent the past 4 days looking for a solution to get the Amber Update on my AT&T Branded Lumia 920 without installing a European ROM and changing to RM-821. After searching endlessly, I've found my solution that works!
Prerequisites
* Nokia WP8 Drivers
* Nokia Care Suite 2013.13.4.4
* WperHelper v1.2 Note: This is in Chinese. I don't know Chinese AT ALL, but I've been able to figure my way around the app
* Rogers Pre-Poritco ROM. Download the last group of files for Roger, not the AT&T ones.
Steps:
* DONT PLUG IN YOUR PHONE YET TO THE COMPUTER.
* Extract/Install Nokia Care Suite. Open Care Suite when it's done installing and just put it to the side
* Install WperHelper. It's all in chinese, but the buttons should be easy to navigate through
* Download the last group of files for the pre-portico ROM if you haven't done so already.
* Go to the Run menu on your system and go to "C:\programdata\nokia\Packages\Products". Create a new folder named "RM-820". If you already have files in here from a previous ROM installation, move them somewhere else. The group of files you downloaded for the Pre-Portico ROM will need to be moved inside of this folder.
* Rename the pre-portico files removing the checksum from beginning of the file name.
Here's what you should have as files
* RM820_1232.2109.1242.1002_RETAIL_nam_canada_200_02_100347_prd_signed.ffu
* RM-820_RM-821_RM-822_TypeLabel_Group1_DM_5.33x5.33_CoO_Eng__001.xml
* CustomerNvi_31019d17537fb461136cdf3481825681_12421_100343_8410.nvi
* RM820_059R2L8_1232.2109.1242.1002_039.vpl
* 112545v3.pcx
* RM820_059R2L8_1232.2109.1242.1002_039.dcp
* RM820_059R2L8_1232.2109.1242.1002_039_signature.bin
* RM820_059R2L8_ccc_v039.bin
* RM820_059R2L8_hwt_v039.bin
* NWP8_WP8_Rogers_Fido_simlock_crcFCB5.bin
* DC_template_development_v4.bin
* Go back to NCS and double click on the Product Support Tool. If you don't see the little menu with the choices of apps to install, go to "C:\Program Files (x86)\Nokia\Nokia Care Suite\Product Support Tool For Store 5.0" and click on ProductSupportToolForStore.exe (Make sure the icon is an arrow. We don't need to open the .MANIFEST file).
* When the Sign in popup comes on the screen. click Work offline.
Click File -> Open Product and type in RM-820 in the filter then press Open
* At the bottom left panel, click on Programming -> Recovery.
* In the Properties listing, you should see 059R2L8 RM-820_Rogers_Canada_VAR240202_V2_Yellow 1232.2109.1242.1002
* Click on that line that shows the data that I listed above then click the Start button.
* Plug in your phone to the USB now, hold the Vol-Down + Power buttons until the phone restarts and you hear a vibration.
* When you hear the vibration, press Retry.
* You should see a little menu saying that the Product Code doesn't match, press Okay to continue.
* Let it flash.
* After the phone has flashed, set it up, but don't login to your Microsoft account yet (It's pointless at this point). Configure Wi-Fi though.
* Go to Settings -> Phone update and check for updates. The first round of updates will put you on to Portico.
* After these updates go through (It will take forever for it to finish Preparing to Install), you'll have to check for updates two more times in order to install Nokia Updates.
* After these two extra updates, your phone will be up to date.
* Now comes the fun part. Open up the WperHelper that you installed earlier.
* On the Top group of text links(The bigger text), chose the second one from the left. It should bring up a screen with 4 drop downs.
* From left to right, choose the following as values: Nokia, Lumia 920, RM-820, 3047.0000.1326.2001.
* Click on the 059R2L5 button that is located under the first dropdown. At the bottom right part of the screen, you'll see a download icon (downward facing arrow with a line underneath of it). Click it.
* This will start to download the ROM. When complete, Click on the Top group of text links, click on the third one then click on the second smaller text link underneath of it.
* You should see bbs.wper.com_059R2L5.7z. Click on it then click the lightning bolt on the bottom left corner. This will extract the FFU package.
* After it's complete, you'll see a new screen with a picture of a Windows phone and a bunch of Chinese text (I wish I had a translation). At this point you'll want to click the button that is listed directly under ( Step ).
* This will automatically begin the ROM updating process. You'll be able to see a little log running at the bottom of the screen on whether the Flashing is working or not.
* The place where the Windows Phone is showing will display the actual progress of flashing as it appears on your phone. You should be seeing the red screen with the progress bar on your windows phone by now. If this happens for you, then you're on your way to having the Amber Update.
A few things to note
After fully flashed, it'll bring you back to the typical phone set up screen. After you get to the main homescreen, wait a minute or so because it will require a reboot. After you bring the phone back up, go to Settings -> Access Point and choose AT&T - LTE 2 - Lumia. This will set up the MMS and Data settings correctly.
Have fun!
Click to expand...
Click to collapse
Photos/Screenshots will be posted later.
Thanks for reading the long post!
Nokia Software Updater for Retail
This is a SIMPLE tool that will allow a user to reflash/update his device. It has a checkbox that can be unchecked to prevent it to erase user data.
It can be downloaded from seidea.com
To be covered:
Nokia Data Package Manager
Test mode itself isn't really interesting AFAIK. There are plenty of other bootloader modes which may sound more interesting.
ultrashot said:
Test mode itself isn't really interesting AFAIK. There are plenty of other bootloader modes which may sound more interesting.
Click to expand...
Click to collapse
Well, the purpose is a catch all tutorial, to access features of the phones not normally available to all. My first venture was the NCS, but as more is discovered, it will be covered in the things to do.
I updated the OP with the new Nokia Care Suite that's been available for a while. Also, I'm going to start to look into some of the Qualcomm MSM Mode soon. Hopefully someone has documented info how that whole process works. I'm looking at you AdvanceBox (the "first" external software/hardware that will flash the Lumia 928...)
Well, it isn't hard to trigger different USB modes. "Nokia USB Connectivity" device is WINUSB compatible. But Qualcomm Diagnostics Mode device available in Test mode (there are no drivers, but you may edit existing ones...) isn't working well since it is restricted. Although, SPC seems to be 000000, but it isn't enough.
Useful addon for you. Test mode devices:
MI_1 = MODEM
MI_2 = NMEA
MI_3 = TRACE
MI_4 = NOKIA_JSONRPC
MI_5 = NOKIA_ISI
MI_6 = DIAG
as for
Another interesting thing: When powering off the phone and turning it back on, Windows attempts to find drivers for "Nokia Bootloader", but it occurs too quickly to install.
Click to expand...
Click to collapse
you're definitely talking about Nokia BOOTMGR. It has commands to boot into different modes, and it is indeed possible to make phone stay in this mode. However, overall it isn't interesting.
ultrashot said:
MI_4 = NOKIA_JSONRPC
Click to expand...
Click to collapse
ultrashot, do you know what is that mode for? The mode name sounds interesting ("remote procedure call via JSON requests"?)
sensboston said:
ultrashot, do you know what is that mode for? The mode name sounds interesting ("remote procedure call via JSON requests"?)
Click to expand...
Click to collapse
It is generic remote control protocol used by NCS (All the data shown in NCS is retrieved using JSONRPC). Contains functions like WriteNvData, WriteEfsFile, ReadManufacturerModelName, SetDeviceMode etc. Commands are in json form.
There is an old post with example of command: http://forum.xda-developers.com/showpost.php?p=35256188&postcount=8
Same protocol is supported in MainOS device mode. Some of operations have different names, but in general it is the same.
ultrashot said:
It is generic remote control protocol used by NCS (All the data shown in NCS is retrieved using JSONRPC). Contains functions like WriteNvData, WriteEfsFile, ReadManufacturerModelName, SetDeviceMode etc. Commands are in json form.
There is an old post with example of command: http://forum.xda-developers.com/showpost.php?p=35256188&postcount=8
Same protocol is supported in MainOS device mode. Some of operations have different names, but in general it is the same.
Click to expand...
Click to collapse
How do we initiate these protocols? (Yes, epic noob question here, but you know your stuff)
snickler said:
How do we initiate these protocols? (Yes, epic noob question here, but you know your stuff)
Click to expand...
Click to collapse
Its not a noob question. If I asked, it would be a noob question (I can read code, but writing code is an uphill battle)
Sent from my RM-860 (Lumia 928) using the OFFICIAL Tapatalk app.
snickler said:
How do we initiate these protocols? (Yes, epic noob question here, but you know your stuff)
Click to expand...
Click to collapse
http://msdn.microsoft.com/en-us/library/windows/hardware/ff540174(v=vs.85).aspx
ultrashot said:
http://msdn.microsoft.com/en-us/library/windows/hardware/ff540174(v=vs.85).aspx
Click to expand...
Click to collapse
You are a hero. This needs added to one of the main posts.
snickler said:
You are a hero. This needs added to one of the main posts.
Click to expand...
Click to collapse
Added. I wish I could understand the process a little better; I only had one course in programming and I hated to start with vanilla java. Trial by fire, I guess.:silly:
thals1992 said:
Added. I wish I could understand the process a little better; I only had one course in programming and I hated to start with vanilla java. Trial by fire, I guess.:silly:
Click to expand...
Click to collapse
I'm going to attempt to make a program that will kick the device into those multiple modes.
snickler said:
I'm going to attempt to make a program that will kick the device into those multiple modes.
Click to expand...
Click to collapse
http://goodmovieslist.com/movie-quotes/There is no try - Yoda.jpg
Code:
data = "Test", "Flash", "Normal", "PowerOff", "PowerOffImmediate";
strcpy(buffer, "{\"jsonrpc\":\"2.0\",\"id\":55,\"method\":\"SetDeviceMode\",\"params\":{\"MessageVersion\":0,\"DeviceMode\":\"");
strcat(buffer, data);
strcat(buffer, "\",\"ResetMethod\":\"HwReset\"}}");
+
WriteToBulkEndpoint
I'll check if anything from my research on this thread is worth sharing - i have lots of snippets, but it is not that useful atm.
ultrashot said:
http://goodmovieslist.com/movie-quotes/There is no try - Yoda.jpg
Code:
data = "Test", "Flash", "Normal", "PowerOff", "PowerOffImmediate";
strcpy(buffer, "{\"jsonrpc\":\"2.0\",\"id\":55,\"method\":\"SetDeviceMode\",\"params\":{\"MessageVersion\":0,\"DeviceMode\":\"");
strcat(buffer, data);
strcat(buffer, "\",\"ResetMethod\":\"HwReset\"}}");
+
WriteToBulkEndpoint
I'll check if anything from my research on this thread is worth sharing - i have lots of snippets, but it is not that useful atm.
Click to expand...
Click to collapse
You are way too awesome to be human.
ultrashot said:
http://goodmovieslist.com/movie-quotes/There is no try - Yoda.jpg
Code:
data = "Test", "Flash", "Normal", "PowerOff", "PowerOffImmediate";
strcpy(buffer, "{\"jsonrpc\":\"2.0\",\"id\":55,\"method\":\"SetDeviceMode\",\"params\":{\"MessageVersion\":0,\"DeviceMode\":\"");
strcat(buffer, data);
strcat(buffer, "\",\"ResetMethod\":\"HwReset\"}}");
+
WriteToBulkEndpoint
I'll check if anything from my research on this thread is worth sharing - i have lots of snippets, but it is not that useful atm.
Click to expand...
Click to collapse
Any research is good research. If the right people see it, they will come and possibly contribute.
Sent from my RM-860 (Lumia 928) using the OFFICIAL Tapatalk app.
Can anyone compile this? I'm having a hard time following the MSDN article... :crying:
hi, I was hoping that you are able to help .... i am permanently mounting my my wince6 Apical AT12X gps within a replica sunvisor in my car ... i want the igoPrimo program on the gps to start as soon as the engine is running, without any interaction from me or pressing any menu buttons on the touchscreen ... so essentially, unlike most people i want to lock my device ... i do not need file or video viewers, mp3 players or games, just iGo Primo which has detailed raster maps ... youtube[dot]com/watch?v=urX3rERYZf4
looking at the MioPocket4fv installation script, a section codes adding an entry into the "init" section of the registry to detect whether an SD card is inserted, and if it is, autorun a program
this would be a good way to directly run Primo, without hacking the GPS software too much, and removal of the SD would return the GPS device's operation to factory default
can you advise what the registry settings should be if i were to do this manually ... i do not fully understand the index number concept... a screenshot of my registry is attached, i am quessing the ceSd2577 program should be stored on the NandFlash partition, and the SDMMC / sd card would have the autorun / mortscript calling primo.exe
thanks in advance from New Zealand
antdavison said:
hi, I was hoping that you are able to help .... i am permanently mounting my my wince6 Apical AT12X gps within a replica sunvisor in my car ... i want the igoPrimo program on the gps to start as soon as the engine is running, without any interaction from me or pressing any menu buttons on the touchscreen ... so essentially, unlike most people i want to lock my device ... i do not need file or video viewers, mp3 players or games, just iGo Primo which has detailed raster maps ... youtube[dot]com/watch?v=urX3rERYZf4
looking at the MioPocket4fv installation script, a section codes adding an entry into the "init" section of the registry to detect whether an SD card is inserted, and if it is, autorun a program
this would be a good way to directly run Primo, without hacking the GPS software too much, and removal of the SD would return the GPS device's operation to factory default
can you advise what the registry settings should be if i were to do this manually ... i do not fully understand the index number concept... a screenshot of my registry is attached, i am quessing the ceSd2577 program should be stored on the NandFlash partition, and the SDMMC / sd card would have the autorun / mortscript calling primo.exe
thanks in advance from New Zealand
Click to expand...
Click to collapse
Adding an SD-Autorun feature to your GPS (which is running WinCE 6.0) indeed makes sense, because the app you start via "Autorun" simply overlaps default app as was intended by OEM. Means, it doesn't hurt anything.
Now to your questions:
1. ceSD2577.exe (extracted from MioPocket 4.0 FV package) must be installed on your GPS's nandflash in <nandflash-folder>.
2. With a Windows registry editor ( use CeRegEditor ) you simply import to your GPS's registry a .REG-file you created with Notepad with contents as following:
Code:
Windows Registry Editor Version 5.00
[COLOR="Red"]<-CR Carriage Return[/COLOR]
[HKEY_LOCAL_MACHINE]
[HKEY_LOCAL_MACHINE\init]
"Launch255"="<nandflash-folder>\ceSD2577.exe" [COLOR="Red"] <- <nandflash-folder> here is placeholder for the folder you created[/COLOR]
[COLOR="Red"]<- CR Carriage Return[/COLOR]
[COLOR="Red"]<- CR Carriage Return[/COLOR]
3. On SD-card in its root create folder 2577, and put there the package containing "Autorun.exe","Autorun.mscr" & Mortscript.exe
4. If SD-card is left in GPS, everytime GPS is booted and SD-card gets initialzed, then Autorun.exe present in folder \2577 of SD-card will be executed.
thank you so much
for taking time to reply soooo quickly ... i did not really understand the launch and dependency indices, but your MP4fv code was, and suggested regedit will, be very useful ...
check out my raster maps on youtube if you have time ... new zealand government have just released hi-res (< 1m) aerial orthophotos for 95% of the country for the cost of the hard drive they send it to you on, so could be porting these to iGo Primo for years
thanks again, I am very grateful
works flawlessly, you are a genius ... thank you
the OEM menu is now totally invisible until i exit iGoPrimo
just need to make some matching green-theme splash screens for power up and iGoPrimo loading screen, and my life will be perfect
so i am looking for some "green theme" Apical menu bitmaps, the menu looks like the attached image
the 800x480 menu files i am looking for are
residentflash2-bin-Main-Fore2-*.bmp
residentflash2-bin-Main-Animate2-*.bmp
residentflash2-bin-Main-MainLayer2-*.bmp
and maybe any *.ini file relating to GPSAni*.bmp
mine (AT12/atlasVI) are all archived into a single *.bin file, which i cannot unarchive, but in earlier versions of this shell (maybe AT10/atlasV), they are separate files ... these files will give me enough menu elements to make some matching splash screens for power-on and igoPrimo load .... i don't need to modify the apical menu itself
davison[dot]antony[at]gmail[dot]com
----
hi-res aerial orthophotos in igoPrimo (150km x 130km area, <1m per pixel resolution)
youtube[dot]com/watch?v=urX3rERYZf4
understanding the launch and dependancy indices
from
austech[dot]info/gps/31080-gps-launching-program-6.html
source is
blogs[dot]msdn[dot]com/b/mikehall/archive/2007/01/04/ce-6-0-booting-processes-with-command-line-options.aspx
==================================================================================
CE based devices have a couple of options for booting applications at startup.
1. The Registry.
The first option is to use the registry to launch processes during the boot process of the device, the registry key for launching applications is HKEY_LOCAL_MACHINE\Init - the registry approach has a couple of drawbacks - the first issue is that there is a dependency chain within the boot process, processes are started and need to signal back to the o/s that the process has launched (using the SignalStarted API) so that other dependent processes can also start - here's how this looks in a snippet from a device registry.
[HKEY_LOCAL_MACHINE\init]
"Launch20"="device.dll"
"Depend20"=hex:0a,00
"Launch30"="gwes.dll"
"Depend30"=hex:14,00
"Launch50"="explorer.exe"
"Depend50"=hex:14,00, 1e,00
Take a look at the "Launch50" line, this launches "explorer.exe", the standard Windows CE shell that looks somewhat similar to the Windows desktop shell - The Explorer process has dependencies on hex:14 (20 decimal) and hex:1e (30 decimal), this maps directly to the Launch20 and Launch30 processes - explorer.exe will not be started until the processes associated with Launch20 and Launch30 are started and have signaled the o/s that that have started, an application started through the registry must call SignalStarted to allow any dependent applications to also launch - an application launched through the registry gets its launch number (50 in the case of the Explorer shell) passed as a command line parameter - this is of course passed as a string, not a number, the SignalStarted API needs to pass a DWORD value as its parameter, so a process would use SignalStarted similar to the following.
int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
{
// Do some work here...
SignalStarted(_wtol(lpCmdLine));
The second drawback is that processes launched through the HKLM\init registry key cannot be passed any additional command line options beyond the launch key value which is then passed to SignalStarted by the launched application.
2. Startup Folder
The second option is to drop your application (or a shortcut to an application) in the operating system Startup folder (this is only implemented in the Windows Explorer shell) - The code that walks the Startup folder looking for processes to start can be found here - C:\WINCE600\PUBLIC\SHELL\OAK\HPC\EXPLORER\MAIN\exp lorer.cpp - take a look at the ProcessStartupFolder() function, it should be fairly easy to lift this code and implement your own startup folder code.
The advantage of using the Startup folder is that the applications don't need to know about the boot sequence of the o/s, don't need to be aware of the launch dependency chain, and could (if a shortcut is used) be passed command line options.
The downside of using the Startup folder is that all processes within the startup folder are launched at the same time - there isn't a dependency chain, or time delta betweeen processes launching - this could be an issue in some circumstances - let me give you an example - you may want to boot a CE device image and then connect to that device image from VS 2005 (so you can deploy/debug some managed or native applications), if you were to launch ConManClient2 and CmAccept from the startup folder you would have three minutes to configure VS 2005 with the correct IP address and then connect VS 2005 to the device - you might want to delay the launch of ConmanClient2 and CmAccept until the device has a valid and active IP address.
3. (did I say there were a couple of options?) SvcStart Services Sample.
John Spaith posted on the launch issue back in December 2004 - John wrote a sample called SVCSTART whose sole purpose in life is to start other applications with a delay period that can be configured through the registry - this sample was initially added to the CE product back at CE 4.1 and is still available today in CE 6.0 - C:\WINCE600\PUBLIC\SERVERS\SDK\SAMPLES\SERVICES\SV CSTART - it could be a little fiddly to get this built/added to your o/s image if you are just getting started with CE 6.0 development.
4. Project Socrates - AutoLaunch
To assist students taking part in the ImagineCup 2007 competition (and also to make it easier for any developer to launch applications on their device with delay, command line options, and also waiting until the device has a valid IP address) Jim Wilson and I have developed a simple application called AutoLaunch - the AutoLaunch application comes in a handy Sub-Project form so can easily be added to an existing CE 6.0 workspace. The functionality is similar to the SvcStart sample written by John Spaith but does have a couple of minor differences - the first is that the AutoLaunch program is launched through the HKLM\Init registry keys (much like any typical startup process) - the registry keys for adding AutoLaunch to the startup sequence are included in the sub-project .reg file, so you don't need to worry about this.
The second difference is that the AutoLaunch process waits until the device has a valid IP address before launching any processes - the reason why this is useful is that we wanted students to use their reference boards without needing a second monitor, keyboard or mouse (in effect the device is booting headless even though the CE desktop or launch application is being displayed) - in this case we want to launch the CE Remote Display application (CERdisp.exe) on the device with the command line "-c" (connect) which then broadcasts the device IP address/name to a listening desktop CE Remote Display application.
The CE Remote Display application can be found in the CE 6.0 catalog by searching for "cerdisp", the SYSGEN for the component is (strangely enough) SYSGEN_CERDISP. The desktop CE Remote Display application can be found here - C:\WINCE600\PUBLIC\COMMON\OAK\BIN\I386\cerhost.exe [NOTE: The CE Remote Display application is not the same as RDP/Remote Desktop, although RDP is supported as a client side application on CE 6.0 (SYSGEN_RDP)].
In the sample below we're launching the CE device side Remote Display application (cerdisp) with the command line "-c" to start connected, with a timeout of 0x1388 (5000ms, 5 seconds), and also starting the CE command prompt (cmd.exe) with a delay of 0x1f40 (8000ms, 8 seconds) - it would of course be trivial to also add ConmanClient2 and CmAccept to the launch process list.
[HKEY_LOCAL_MACHINE\Startup]
"Process1"="cerdisp -c"
"Process1Delay"=dword:00001388
"Process2"="cmd"
"Process2Delay"=dword:00001f40
Here's how the desktop CERHost.exe application looks when the device boots and runs the "cerdisp -c" command - notice the name of the device and the device IP address are both displayed in the Remote Host application (the IP address being displayed here is very useful for plugging into the VS 2005 Device Properties dialog!).
And to round off the blog post here's the Remote Display application running on my Vista desktop showing the CE 6.0 desktop - note that I can now use my desktop mouse and keyboard to remotely control the CE 6.0 device!
Using AutoLaunch and the CE Remote Display for hands on labs/training that use reference boards instead of the Device Emulator may be quite useful!
antdavison said:
works flawlessly, you are a genius ... thank you
Click to expand...
Click to collapse
Glad to hear this. Thank you.