Everything to know about Nokia Care Suite and Flashing Lumias - Windows Phone 8 Development and Hacking

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:

Related

Yet Another CellID Application

yes, but based on a flexible set of methods
-Using RIL (GSMTestMode)
-Using RIL_GetCellTower
-Using RIL Notifications
-Using RIL (fieldtest) -> reply structure has to be found
-Using offset method (few structures included)
-Using COM port
The project is based on:
-cellguardian.dll and cellguardian.xml : How to get CELLID on devices
-cell2latlon.dll and cellDb.xml : Calculate lat/lon using CELLID
-gsmcelluloz.exe : the main exe
-gsmcellulozCF.exe : the same, as PoC, in CF, but very simple
http://usuc.dyndns.org/tv/gsm/gsmcelluloz/
DEBUG mode creates a lot of log in \Temp
The device method configuration is in a file called "cellGuardian.xml"
Offset version works only with the "ALL" parameter (I don't know what defines the offset, which component version?)
Many things should be incomplete (like documentations )
Here is a google map (result from logging) made using a GSMTestode compatible device:
http://usuc.dyndns.org/tv/gsm/releve_poly.php
I'll write a quick documentation on how using cellguardian.dll (the brain from the cellid-getting), and cellguardian.xml.
I'm also working in antenna position interpolation but it's an harder process... (for now the cell2latlon works but uses a very simple barycentric algorithm)
Sample walk:
http://usuc.dyndns.org/tv/gsm/testParcours.php
Have fun, I hope to have some fieldtest compatible device log in order to decrypt the structure
If your device is still not working... Tell me!
The source will be released as soon as the modaco challenge will be finished (I hope to win a device with cellguardian.dll... or a sticker )
Did not work for me Tornado with Crossbow-Rom, i think you may ask maniac for the Offsets, he created CellProfileSwitcher, an very useful SmartPhoneTool with a huge list of compatible devices.
In Combination with your Tool it may be useful to create my own "CellMap", to see my Homezone or some other kind of zones, switched by CPS,yea.
But the Screenshots looks nice,...
Thank your for another nice way to waste my time with my lovely Phone,hehe...but i need the offsets...dont know how...
Have you tried "Find offset" in the 8FFB0000-8FFC0000 range?
8FDC0000-8FDD0000
8F1D0000-8F1E0000
8A3B0000-8A3C0000
8A4B0000-8A4C0000
8C0D0000-8C0E0000
Are other possible ranges.
The result will be contained in a file located on \Temp
Possible structures (if you define your configuration in cellguardian.xml)
TORNADO
TYPHOON
IPAQ
MPX220
WIZARD
Offset method will be activated once you'll have removed other options (COMPORT...) from the config file.
Remember that as long as I don't know what defines the offset, the only version that works is "ALL". This field will be used once I'll be quite sure the component version defines really the offset.
I hope to improve it, but also to let a chance to the user to configure it by himself.
Quick help page
I made a quick help page to help ppl finding the offset until I find some cleaner way to find it...
http://usuc.dyndns.org/tv/gsm/help/
After this, just modify \Program Files\cellguardian.xml
and replace
<device name="HTC Tornado">
<OEMID>Qtek 8310</OEMID>
<method type="RILHTC1"></method>
<method type="RILTOWER"></method>
<method type="COMPORT"><port>COM9:</port></method>
</device>
Click to expand...
Click to collapse
by
<device name="HTC Tornado">
<OEMID>Qtek 8310</OEMID>
<method type="OFFSET">
<offset version="ALL" structure="TORNADO">YOUROFFSET</offset>
</method>
</device>
Click to expand...
Click to collapse
Where YOUROFFSET is the offset you found (try the adresse ranges I suggested above)
Let me be your tester
Hello!
I have found your excellent project and I am going to test it and share with you results. My phone is smartphone - HTC S310 (know also as HTC Oxygene, SPV C100).
When I am launching the application I get error:
Cannot load \Program Files\GSMCelluloz\CellGuardian.dll:0x7e126
Is your app suitable for smartphones? I have downloaded the
GSMCelluloz_SP5_R.CAB.
Maybe I should use:
GSMCelluloz_WM5_R.CAB?
What offsets sould I put to test my phone and which method?
Best greetings and congratulations for your job!
RA
Solved
abramq said:
When I am launching the application I get error:
Cannot load \Program Files\GSMCelluloz\CellGuardian.dll:0x7e126
Click to expand...
Click to collapse
Hi again!
The problem was because I've installed app on card, not on device memory.
Cell searching works excellent, on my phone works GSMTestMode method (I am going to find out the differences between methods, but don't know where).
By the way - user interface for smartphone (non-touch display) looks like not fnished - 'backspace' keys doesn't work and it is difficult to leave edit mode too.
Will test it more and make some enhancement
Best greetings and please keep working
JA
P.S.
What Compact Framework needs the CellulozCF? I have the 2.0 and the app doesn't work (I get the unexpected error: Microsoft.AGI.CommonMISC.HandleAr() in System.Windows.Forms.Control._InitInstance.
I think the best cell id application from all times ever would be that which can change phone profile depending from location. I saw someone here is trying to do it, but will not be free, so no use. An app like that will eclipse all other... it will be like the next step in mobile evolution. Probably japanese already have it.
You are outDated...this idea is really old...lookat maniacs Homepage;
Maniacs SmartPhoneTools
...but for now not useable on devices without TiOmapProcessor
But PhoneAlarm by PocketMax supports different [email protected],too.. but cost money and hard to configure,no learningfunction,no neighbourcells and you have to add every Cell one by one...
but youre right,too; Actions by Locations are always missed in Apps with Notifications or ProfileChangingFunction.

[Updated November 09] Route Tracker

Route Tracker
With Route Tracker you can create routes and add several route points containing text and/or images from your current position. If gps is available it will take the current longitude, latitude and altitude. Without a gps module information of the current cell id and the location area code are saved.
For each route a report can be created which can be saved as a html file.
prerequisites:
PocketPC with .net compact framework 2.0 and SQL Compact Server 2005 (already installed in WM6 professional)
(tested on a WM6 professional device without gps)
known issues:
after uninstall the db and the images will not be deleted
getting MyLocation can time out
timer greater than ~15 seconds doesn't word when device is in suspend mode
in the view form only the map type for default route maps is working
next features:
automatic point adding by distance (every x meters)
more robust MyLocation
geo game (show taken image and try to find the place on the map)
Any comments are appreciated.
version 1.0.5
new view showing the whole route in one image using Google Maps (markers or path)
this view can be saved to an image file
check its settings form for parameters
version 1.0.4
new setting: Use Google's MyLocation for report GMaps and for exporting to kml. On devices without gps the cell id information will be used to get an approximate location. (default on and will use internet connection!)
version 1.0.3
new report "GMaps" using google maps (will try to use internet connection!)
updated date set to last saved route point
additional setting: Flash on Saving (flash on main screen)
version 1.0.2
additional settings: check gps, vibrate on saving
saving settings: seconds, minutes and vibrate on saving
show time with date in the grid
version 1.0.1
A report can be saved to kml for viewing in google maps.
In Menu/Auto Report... timed saving can be activated.
Thanks,
heliosdev
Anybody tried?
Would be interesting to know if the gps information gets stored and if there are any issues on devices with qwerty hardware keyboard (regarding screen rotation).
Thanks!
New version is up. If you have difficulties with the gps data, try to start gps with another app and after having enough sat fixes try Route Tracker.
Nice now this app work, but here some ideas:
A Sign that shows a record was made
Start Time on the main screen
Show Cell ID or GPS is used
Other Ideas will follow
Thanks for the input! New version is up.
very cool! i will be certainly using it.
nir36 said:
very cool! i will be certainly using it.
Click to expand...
Click to collapse
me too. will report back feedback. thanks.
heliosdev said:
Anybody tried?
Would be interesting to know if the gps information gets stored and if there are any issues on devices with qwerty hardware keyboard (regarding screen rotation).
Thanks!
Click to expand...
Click to collapse
It works on my Diamond without any problem.
Great but here some Ideas:
Show the last position time in the grid (Last position time saved at
Vibrate is good, but better would it if you make a flashing dot on the main screen because if you use it in a carholder its not so go.
(Or you can add vibrate too under settings)
And Upload direct the cab file, its easier to use!
Thx and work on!
didn't work on my vogue - got a net framework error.
@all
thanks for your input!
@fredcatsmommy
what is the error message saying? Can you go to menu/settings and press the 'Check GPS' button?
heliosdev said:
@fredcatsmommy
what is the error message saying? Can you go to menu/settings and press the 'Check GPS' button?
Click to expand...
Click to collapse
okay, here's the message I get when trying to run RouteTracker (which does not open at all):
Error
RouteTracker.exe
MissingMethodException
File or assembly name
'System.Data.SqlServerCe,
Version=3.0.3600.0, Culture=neutral,
PublicKeyToken=3BE235DF1C8D2AD3',
or one of its dependencies, was not
found.
Well, it looks like sql is not installed on your device! I've seen cooked roms which removed this to save some space...
What .net version do you have installed? (run /Windows/cgacutil.exe)
heliosdev said:
Well, it looks like sql is not installed on your device! I've seen cooked roms which removed this to save some space...
What .net version do you have installed? (run /Windows/cgacutil.exe)
Click to expand...
Click to collapse
I'm using the ppckitchen to cook a custom rom and have included both sql, 3.5 supposed to be included and I also select .netcf 2. Maybe that's a problem, but I've not ever gotten that message with any of the other programs I use that require .netcf. When I run /Windows/cgacutil.exe it says 2.0.7045.0
Will this work with .NET 3.5 or only 2.0?
I get this error using the ROM in my sig and SQLce 3.5 added.
Code:
An unexpected error has occurred in RouteTracker.exe.
Select Quit and then restart this program, or select Details for more information.
File or assembly name 'System.Data.SqlServerCe, Version=3.0.3600.0, Culture=neutral, PublicKeyToken=3BE235DF1C8D2AD3', or one of its dependencies, was not found.
Here a new Idea
Make a Today Plugin that shows CELL ID, LAC, MCC, MNC or GPS and a count down. It shows new recorde made in xx.xx.xx (ex. 00:00:10 = 10 sek.)
Well, I'm using C# .net and I'm not sure if this can be used for today plugin development.
Btw, new version is up!
new version is up!
Tests with devices without gps are appreciated! (internet connection needed)
(report GMaps and save report (in Report form) to kml and view it with google maps/earth on desktop)
Nice,
works fine!
But can you set a dot on mylocation?
Like here http://cellid.schlapa.net
Also show the cellID data on the Gmaps Screen.
Thx wait for next versions ...
Dtrieb
Hi thanks for this app!!!!
Is it possible to get bigger screen shots ?
Thanks dude

Fouond Some Test Codes

FYI These codes have been obtained by decoding various .apk files present in the phone firmware.
*#*#4636#*#*
This code can be used to get some interesting information about your phone and battery. It shows following 4 menus on screen:
Phone information
Battery information
Battery history
Usage statistics
*#*#7780#*#*
This code can be used for a factory data reset. It'll remove following things:
Google account settings stored in your phone
System and application data and settings
Downloaded applications
It'll NOT remove:
Current system software and bundled applications
SD card files e.g. photos, music files, etc.
PS: Once you give this code, you get a prompt screen asking you to click on "Reset phone" button. So you get a chance to cancel your operation.
*2767*3855#
Think before you give this code. This code is used for factory format. It'll remove all files and settings including the internal memory storage. It'll also reinstall the phone firmware.
PS: Once you give this code, there is no way to cancel the operation unless you remove the battery from the phone. So think twice before giving this code.
*#*#34971539#*#*
This code is used to get information about phone camera. It shows following 4 menus:
Update camera firmware in image (Don't try this option)
Update camera firmware in SD card
Get camera firmware version
Get firmware update count
WARNING: Never use the first option otherwise your phone camera will stop working and you'll need to take your phone to service center to reinstall camera firmware.
*#*#7594#*#*
This one is my favorite one. This code can be used to change the "End Call / Power" button action in your phone. Be default, if you long press the button, it shows a screen asking you to select any option from Silent mode, Airplane mode and Power off.
You can change this action using this code. You can enable direct power off on this button so you don't need to waste your time in selecting the option.
*#*#273283*255*663282*#*#*
This code opens a File copy screen where you can backup your media files e.g. Images, Sound, Video and Voice memo.
*#*#197328640#*#*
This code can be used to enter into Service mode. You can run various tests and change settings in the service mode.
WLAN, GPS and Bluetooth Test Codes:
*#*#232339#*#* OR *#*#526#*#* OR *#*#528#*#* - WLAN test (Use "Menu" button to start various tests)
*#*#232338#*#* - Shows WiFi MAC address
*#*#1472365#*#* - GPS test
*#*#1575#*#* - Another GPS test
*#*#232331#*#* - Bluetooth test
*#*#232337#*# - Shows Bluetooth device address
*#*#8255#*#*
This code can be used to launch GTalk Service Monitor.
Codes to get Firmware version information:
*#*#4986*2650468#*#* - PDA, Phone, H/W, RFCallDate
*#*#1234#*#* - PDA and Phone
*#*#1111#*#* - FTA SW Version
*#*#2222#*#* - FTA HW Version
*#*#44336#*#* - PDA, Phone, CSC, Build Time, Changelist number
Codes to launch various Factory Tests:
*#*#0283#*#* - Packet Loopback
*#*#0*#*#* - LCD test
*#*#0673#*#* OR *#*#0289#*#* - Melody test
*#*#0842#*#* - Device test (Vibration test and BackLight test)
*#*#2663#*#* - Touch screen version
*#*#2664#*#* - Touch screen test
*#*#0588#*#* - Proximity sensor test
*#*#3264#*#* - RAM version
NOTE: All above codes have been checked on Google Android phone Samsung Galaxy I7500 only but they should also work in other Google Android phones.
Nice..!
Sent from my HTC Desire using XDA App
Thanks bro for the good info.
Sent from my HTC HD2 using XDA App
i have been testing them on different builds but only some seem to work ...like the gtalk one give great stats
You've straight plagarised all this information from one of my old internet buddies, Vishal Gupta. At least give some credit.
Proof: http://www.askvg.com/google-android-hidden-secret-codes/
actually i got it from ipmart forums and as i said found i didn't say create
Proof: http://www.askvg.com/google-android-hidden-secret-codes/[/QUOTE]
that was actually a better guide you should of posted that instead of mis-spelling plagiarized
thanks for the infos ^_^
-------------------------------------
My FroyoStone is Non-Sense
thatruth132 said:
that was actually a better guide you should of posted that instead of mis-spelling plagiarized
Click to expand...
Click to collapse
You're a senior member. You should know that giving credit to those who produce is an important part of this community. Also your title has a typo if we're going to go down that road.
marixsmith said:
You're a senior member. You should know that giving credit to those who produce is an important part of this community. Also your title has a typo if we're going to go down that road.
Click to expand...
Click to collapse
as i said i got it from another software site and as i see they got it from some where
themselves, but as for the typo thing ...lol you got me
@thatruth132,
If you are not the creator of such guide, even if you don't know who the original source is, you should credit the source where you obtained it from. In this case, you should point out that you are reposting this guide created by user (insert username here) from ipmart. That is the correct way of reposting guides. Please fix your first post to include this information.
@RJackson,
He may not know the actual origin of the guide, so plagiarism may be a bit of an overkill when accusing him.
i didnt want to post the site because its a warez site so how do i go about doing that , please and thank you
thatruth132 said:
i didnt want to post the site because its a warez site so how do i go about doing that , please and thank you
Click to expand...
Click to collapse
I appreciate your support and don't blame you and don't care others who blame you. Keep going and thankyou sir.
thank you but i am loyal to this site so i follow the rules ...its not
a biggie i was just a little certain i would of got in trouble for linking the site
thatruth132 said:
i didnt want to post the site because its a warez site so how do i go about doing that , please and thank you
Click to expand...
Click to collapse
Good point. Maybe you can simply thank the user on that site without mentioning the site itself...
ie,
Thanks xyw for the information.... or something along these lines...
Thank you for complying with the rules... this is refreshing to see once every now and then

[Q] What debug and log tools are available?

Hi,
I'm interested to know which debugging/logging tools are available.
I'd like to get more information about the processes at startup, and specially logs of the CPU usage by each application over a period of time.
I've been searching for some time and the only I've found are the old Htc Test applications, but can't get what I want.
Noted that HTC devices have a builtin debug tool (debuglog.dll). Anyone knows how to use it?
Also found the following the following post describing the HTCDiagDriver and the possibility to analyze the device using QUALCOMM eXtensible Diagnostic Monitor.
http://forum.xda-developers.com/showpost.php?p=12624471&postcount=2
Anyone uses it?
Global debuglog can be enabled via DebugTool.exe (available in Htc Test Applications). It depends on debuglog.dll, yeah. Read manual, it works quite well.
Then, if you want to get log for selected app, launch it via IDA.
Also we have CeLog available, I will post needed launchers soon. I can hardly call it useful as we have retail/ship SYS builds. The only useful purpose for us is page faults chart.
EDIT: CeLog attached.
Some of the builds come with the Perfman package. That s.o.b. will really slow down your device, though, and it creates a massive log file, which I could never find the tools to analyze. I think celog does it, though, which is pretty sweet.
The htc debugger works better. You just change one of the debug flags and reset, and the device starts writing the log file. It doesn't slow down the device nearly as much as perfman. I think celog may work on that log file, too. You can royally eff up your device with that tool, though, if you mess with the radio flags. It's pretty cool how it writes to flash memory. Too bad you can't change other things with it like the page pool size.
ultrashot said:
Also we have CeLog available, I will post needed launchers soon. I can hardly call it useful as we have retail/ship SYS builds. The only useful purpose for us is page faults chart.
EDIT: CeLog attached.
Click to expand...
Click to collapse
I have been playing with the tool on my Tornado and observed the following (usage related):
Use it while the device is disconnected from PC. The overhead of repllog.exe (connected to ActiveSync on XP PC) and syncing is just filling your log. For my installation (no further MS Mobile development tools on the PC) kerneltracker.exe does not connect to the device anyway.
Though obvious, the files CeLog*.exe have to run on the device, so copy them to a convenient place there.
The CeLogAttach.exe seems to start the kernel logging and it slows down the device (kind of obvious). There is no way to stop this logging. Something like CeLogDetach would be needed, if it exists, to restore the state before CeLogAttach.exe was run.
The CeLogFlush.exe will flush the existing log but also immediately start the logging again.
The CeLogStopFlush.exe does just what the name tells - it stops the flush to file of the (still ongoing) logging.
After transfering the celog.clg file (from \Release\ directory of the device) it can be opened in kerneltracker.exe. Then you see all the kernelactivities logged and aligned per process/thread on a zoom-able timeline (10ms - 10s) including the labels of the logged primitives. With event filtering you can sort out what you are not interested in. Here you may need advice on what to look after when you want to hunt down a certain device behaviour.
I have checked for page-faults, Virtual Memory related actions (Allocate, Copy, Free) and also Module actions (load, free) to get a clue if and how modules and paging (or better said: the use of the Page-Pool) is correlated. Nothing eye-striking coming up here, but it may just be for the unknowing observer like myself.
@ultrashot: I could not find anything I would call a "page faults chart" - where is that - or what is that?
Looking further: If I change certain device properties (like increase the pagepool or playing with OSB advanced options) I fear that the logged information here is just far too detailed for a useful compare. For that you would have to create identical conditions for the action under scrutiny - something that cannot be done with a disconnected device.
So I have to admit that all objective compare of such tuning and tweaking is far above my head and I just have to join the many that make more or less clever assumptions trusting on their model of actions in their heads. I hope that the better knowing heads continue to spread their wisdom without only telling RTFM or guide with LMGTFY (which can help if the results really point to right places).
tobbbie said:
@ultrashot: I could not find anything I would call a "page faults chart" - where is that - or what is that?
Click to expand...
Click to collapse
Use Event filter->Miscellaneous->Page fault.
I am not too advanced user of this tool. If we had builds with extra celog instrumentation, we could have take much more from this tool. However, there are some articles in the internets about celog, so anyone who wants to be get more info may just try to google it. I don't want
ultrashot said:
Use Event filter->Miscellaneous->Page fault.
Click to expand...
Click to collapse
That is what I did already when telling about the items I cared below. Page faults are however part of generic virtual memory management and they do also apply for any normal loaded executables. As you know I seek for traces of module related paging and the use of the page-pool.
So it will stay with the trial and error and side-by-side compare with two devices having different settings. Not a big thing doing that...
Some interesting articles on MSDN regarding the paging pool (aka "pagepool"):
Kernel Blog article explaining the fundamentals (highly recommended): http://blogs.msdn.com/b/ce_base/archive/2008/01/19/paging-and-the-windows-ce-paging-pool.aspx
Pagepool Variable explained and simple methods to measure impact: http://msdn.microsoft.com/en-us/library/aa451041.aspx
-> this is what kitchentools are patching in the kernel
Then some more backup on virtual memory - just to complete on that:
http://blogs.msdn.com/b/ce_base/archive/2006/10/30/what-is-virtual-memory.aspx
http://blogs.msdn.com/b/hegenderfer/archive/2007/08/31/slaying-the-virtual-memory-monster.aspx
http://blogs.msdn.com/b/hegenderfer...aying-the-virtual-memory-monster-part-ii.aspx
And to get back to the debug tools topic of this thread, linked form the first article an introduction to the Remote Kernel Tracker to explain what you can actually see there (and why you cannot see certain things as we have shipped ROM builds and not profiling builds to deal with): http://blogs.msdn.com/b/sloh/archive/2005/05/17/introduction-to-remote-kernel-tracker.aspx
Great insight if you want to get a glimpse of how Windows CE operates under the hood.
...reading a little deeper in the MSDN articles, Sue Loh mentions there when talking about the paging pool size determination:
The best tool I know is that readlog.exe will print you a page fault report if you turn on the “verbose” and “summary” options. If you get multiple faults on the same pages, your pool may be too small (you may also be unloading and re-loading the same module, ejecting its pages from memory, so look for module load events in the log too). If you don’t get many repeats, your pool may be bigger than you need.
Click to expand...
Click to collapse
To avoid dealing with a full setup of the Mobile Development toolsets, could any one (ultrashot - you have been so helpful - could you??) post that mentioned "readlog" tool? If there is something like "CeLogDetach.exe", please add it too.
BTW: you may notice that the paging pool is a central part of the Windows CE memory management when it comes to running executable code from "memory mapped files" (as Sue Loh calls them). In my understanding these are simply what we know as "modules".
A lot of tweaking strategies go around that when building ROMs with OSBuilder. There are several ways how to avoid or optimize the use of the paging pool for certain or all modules in OSB. I think these options deserve an own thread and I am not sure if the one OSB thread we have should be cluttered with discussing this.
don't have any of those.

Developing Auto-DisableRefresh-When-Dragging App [New Video Added]

I know some people have already discussed this in the noRefresh App thread.
But I got a new idea
I don't wanna create a module and embed that to applications
Instead, I created a new Input Device in the kernel
After that, I set the device ( dev/input/event3 ) permission to allow read / write for others.
Then, write an app using JNI to catch the Input Device and set the mode of refreshing.
The prototype proved that this idea works, as i worked out it already, but not very perfect, still in experiment
I am just in some problems of threading, as I am not a professional programmer
This is wt i have now:
http://www.youtube.com/watch?v=GkFyvRR6In8
NEW!! : http://www.youtube.com/watch?v=cucG03rg3tg
I know that my method is a bit dirty,
but at least it works XD
I hope that someone would like to help
Upload those code soon
By the way, why can't i change content of init.rc ?
It removes my changes after reboot..... How to solve?
wheilitjohnny said:
By the way, why can't i change content of init.rc ?
It removes my changes after reboot..... How to solve?
Click to expand...
Click to collapse
You need to modify uRamdisk to change init.rc.
Would you like to tell me how to unpack the uRamdisk? I use both Windows and Ubuntu, any methods on these two platform is ok. Thanks!
Try the script from this post http://forum.xda-developers.com/showpost.php?p=24135886&postcount=72
This is simply amazing. Since you already have it working, polishing it shouldn't take too long (I think, I'm still a beginner programmer).
I don't think /dev/input is a good place to park that.
There are any number of things that could show up there and affect order.
Why not put it in its own directory?
Maybe I'm missing something, but if we use your method you still expect applications to have to be modified to read/write from event3 to control display mode?
As it is now, you only need a single function call to switch display modes. Yes, there is a little bit of housework to do before that, but what could be simpler than a single function?
I think no place else is more suitable than /dev/input.
As /dev/input is the linux kernel's input system.
In the driver, I would only use the input report system but not use the I/O system.
Maybe even setup a input/event searching function to solve the problem later.
The case now is that, the touch screen originally just provide event2,
but if we need to extract move and fingerup information on upper level, it may waste some time.
In order to make the whole algorithm easier and faster, I added 1 more event in the zForce driver,
to only output FingerMove and FingerUp state.
As the reporting system is starting from the kernel, this hack would need to change uImage + uRamdisk + Add an App. The project is quite huge.
My final target is to make the application remembering your choice on what mode u need for the focusing application.
AlwaysOn / OnlyWhenDragging / AlwaysOff, so on.
Of coz the click-to-call function still work.
Isn't it a better workflow and more intuitive, isn't it the thing that we would expect?
I already have an dev/input/event3 on my system and sometimes event4, 5, 6.
That's why I don't think that whatever it is you are doing belongs there.
Is the point to allow coders for user applications to interface with your driver?
Is this supposed to work without modifying user applications?
What information would be going in/out of event3?
Clearly I am missing something here.
Actually not necessary to be event3, the system will auto-ly create a new eventx, just in normal case, without any extra USB devices, a nook should only have up to event2. So, I use event3 as an example here.
We can later make the program auto-ly search back which is the needed eventx.
Yes, u r right, we no need to modify any other applications and this is exactly the point y i am creating this!
Anyone know how to call a FullScreen Refresh in a service?
always on?
Look really great. Since blinking after scrolling is incomfortable is it possible to have also "always on " mode using your new ideas?
My final target is to make the application remembering your choice on what mode u need for the focusing application.
AlwaysOn / OnlyWhenDragging / AlwaysOff, so on.
Of coz the click-to-call function still work.
Also an Over-Ride mode, for more flexible using.
But the most basic part need to be handled well now, as it is not very perfect now.
I still don't figure out how to call the e-ink driver to refresh the screen =-=
wheilitjohnny said:
I still don't figure out how to call the e-ink driver to refresh the screen =-=
Click to expand...
Click to collapse
Have you tried
Code:
echo 1 > /sys/class/graphics/fb0/epd_refresh
?
wheilitjohnny said:
Yes, u r right, we no need to modify any other applications and this is exactly the point y i am creating this!
Click to expand...
Click to collapse
Are you saying that your idea does not require modifying user applications?
If it doesn't, then there is no need to have a public interface.
It will be only your code talking to your code.
What is the point of this /dev/input/event3? You say that it will be writable. What's going in and out?
Some apps will be using gestures, some dragging. How are you going to keep track of that all?
I have one application that works perfectly fine now, one activity uses swipe gestures to page up/down while another activity uses drag with a user choice of A2 and display while dragging or else only panning at ACTION_UP.
All this requires less than 10 lines of code.
With multitouch, many applications don't even need A2. Even normal panning in Opera Mobile works much better now that Opera doesn't try to display while panning.
Maybe my english is too bad, cannot express the idea well.
I know, we can make such an application with noRefreshDrag working on its own well.
But how about other applications, it is impossible for us to change all applications.
So, my idea is making it system based.
My prototype is very good now, after several adjustment.
Not limited to only 1 application, but the whole system.
The approach is like this:
1. zForce driver provide extra information to InputEvent
2. A JNI catch the InputEvent
3. A service get the data and set the update mode
We only need to write 1 application to handle the setting of this chain.
This is what i mean, hope that u get what i mean now.
mali100 said:
Have you tried
Code:
echo 1 > /sys/class/graphics/fb0/epd_refresh
?
Click to expand...
Click to collapse
Let me try it now!
wow, it works great
wheilitjohnny said:
zForce driver provide extra information to InputEvent
Click to expand...
Click to collapse
I guess that this is the part that I don't understand.
What is this extra information?
Renate NST said:
I guess that this is the part that I don't understand.
What is this extra information?
Click to expand...
Click to collapse
It created an extra Event, l called it Event3 before.
Driver reports only move and finger_up to Event3.
Just providing a channel to pass an information from driver to user-space.
You may ask why not directly using the existing Event, need to create another one.
That is because, the original one only have touch and position information, parsing them back to move information need a bit of work. As the hardware provided the move information, then don't waste it.
Code:
public boolean dispatchTouchEvent(MotionEvent event)
{
switch(event.getAction())
{
case MotionEvent.ACTION_DOWN:
break;
case MotionEvent.ACTION_MOVE:
break;
case MotionEvent.ACTION_UP:
break;
}
return(true);
}
}
Isn't that everything that you could ask for?

Categories

Resources