Now we could try to catch Key Commands and more... with WinComm, see here:
http://forum.xda-developers.com/showthread.php?t=928170
First idea, collect Commands for Key pressing Commands like this:
Code:
OemKeyPressInd:pre[VK_HP_HOLD(s:0x495)] , now[VK_HP_HOLD(s:0x495)]
2811 0509.625 KEY_EVENT_SIG: Keycode = 0x53, STATUS = 0x0.
2812 0509.625 KEY_EVENT_SIG: Keycode = 0x8f, STATUS = 0x0.
I think we have only 7 Hardware Keys... so this should not take years.
Touchscreennavigation is little bit harder...
Second idea... Screencapture... if we find command to send to handset, then maybe possible to capture Video sequencies.
Attached short Logfile from Screenshot taking on S8500 JE7...
Best Regards
P.S.:
Also AT commands or Qualcomm commands exists also for such feature.
Yes. I saw this on QuB but also failed. Answer was something to patch Loader...
Also Key Simulator is in QuB...
Not work yet with S8500. But I think we should investigate in such things.
Because "Basic" features.
Long time ago for my other handsets I have all these Tools.
Video Capture Tool...
But NOT for S8500.
Time to change this.
Best Regards
P.S.:
Not sure AT+SUBLCD or something else with LCD is used by Kies... found via Portmon...
I've tried to log with WinComm to see more or better understnad AT commands.
4161 1018.432 P00.T11.D001.G-1.E-01:0000 EXCEPTION > [CPLog]: Sub 0022 1026.696 -1: EXCEPTION > __RbmCHGetUserMemory : do u need me? really? sure? huh?
Click to expand...
Click to collapse
This is shown if i try:
AT+USERMEM
About AT+SUBLCD or AT+SUBLCD? nothing... maybe wrong... maybe additional parameter needed.
Kies used this I thought... AT+LCDINFO=MAIN
Also AT+MAINLCD or AT+MAINLCD leads to nothing...
I think parameter missing...
Best Regards
Edit 1.
Maybe this is from Kies sniffed...
AT+GETDPIMG=0
WinComm shows also something...
Code:
1863 2691.134 OBEX_Report : 304[BPS], ratio=100, request=190, send=190
4414 2694.194 P00.T11.D001.G-1.E-01:0000 EXCEPTION > [CPLog]: Sub 0047 2702.537 -1: AGENT > __AgRbSendPacket: before send fifo, dataLen(7596), apiID(0x1000002f)
4415 2694.196 P00.T11.D001.G-1.E-01:0000 AGENT > __AgRbFifoCallback: Rcvd 7596 bytes(Type:268435503 Len:7580).
4416 2694.196 P00.T11.D001.G-1.E-01:0000 AGENT > __AgRbPacketReceiveCallback: packet id 0x1000002f
4417 2694.196 P00.T11.D001.G-1.E-01:0000 AGENT > __AgRbPacketReceiveCallback: Req Packet id is [1280], len is [11], cmd is [GetDpImg 0 ]
4418 2694.196 P00.T11.D001.G-1.E-01:0000 AGENT > *> cmd="GetDpImg 0 "
4419 2694.227 P00.T11.D001.G-1.E-01:0000 AGENT > __RbmCHSaveDisplayImg : Time to get Screen Buffer is [30ms]
4420 2694.227 P00.T11.D001.G-1.E-01:0000 AGENT > __RBUSBWrite : Sending Size is 768000, TotalPage is 8, LastPageSize is 79872
4421 2694.228 P00.T11.D001.G-1.E-01:0000 AGENT > __RBUSBWrite : Sending Packet Page is [0]
4422 2694.232 P00.T11.D001.G-1.E-01:0000 AGENT > __RBUSBWrite : Sending Packet Page is [1]
4423 2694.234 P00.T11.D001.G-1.E-01:0000 AGENT > __RBUSBWrite : Sending Packet Page is [2]
4424 2694.237 P00.T11.D001.G-1.E-01:0000 AGENT > __RBUSBWrite : Sending Packet Page is [3]
4425 2694.239 P00.T11.D001.G-1.E-01:0000 AGENT > __RBUSBWrite : Sending Packet Page is [4]
4426 2694.241 P00.T11.D001.G-1.E-01:0000 AGENT > __RBUSBWrite : Sending Packet Page is [5]
4427 2694.244 P00.T11.D001.G-1.E-01:0000 AGENT > __RBUSBWrite : Sending Packet Page is [6]
4428 2694.246 P00.T11.D001.G-1.E-01:0000 AGENT > __RBUSBWrite : Sending Packet Page is [7]
4429 2694.248 P00.T11.D001.G-1.E-01:0000 AGENT > __RbmCHSaveDisplayImg : Time to Write through USB is [21ms]
[COLOR="Red"]4430 2694.248 P00.T11.D001.G-1.E-01:0000 AGENT [/COLOR] > __RbmCHSaveDisplayImg: [B]Compressed Scrn Img Buf was sent to PC successfully[/B]
4431 2694.248 P00.T11.D001.G-1.E-01:0000 AGENT > __RbmCHSaveDisplayImg : Elapsed Time is [51ms]
4432 2694.248 P00.T11.D001.G-1.E-01:0000 AGENT > __RbmCHGetDisplayImg: GetDisplayImg Success. Return is 1
4433 2694.248 P00.T11.D001.G-1.E-01:0000 AGENT > *> return value = 1 (0x00000001)
4434 2694.248 P00.T11.D001.G-1.E-01:0000 AGENT > __AgRbPacketReceiveCallback: Res Packet result is [1], len is [7588], rsp buf is []
4435 2694.258 P00.T11.D001.G-1.E-01:0000 AGENT > __AgRbFifoCallback: Send 7604 bytes(Type:268435503 Len:7588).
4436 2694.258 P00.T11.D001.G-1.E-01:0000 EXCEPTION > [CPLog]: Sub 0048 2702.539 -1: AGENT > __AgRbSendPacket: write message, written data len(7596)
4437 2694.263 P00.T11.D001.G-1.E-01:0000 EXCEPTION > [CPLog]: Sub 0049 2702.606 -1: AGENT > __RbmCHReadDevConItemInfo:Success
Maybe this is our Power ON OFF Format... or QMG ...
I have problems to recieve full Data from handset...
Searching for working Tool with HEX...
AT+GETDPIMG=0
Yes, this is Screencapture... 0 seems for RAW, uncompressed...
You can use WinComm itself to catch the incoming Data... around 700 KB.
You can send AT commands also...
With other Tools I failed... maybe my fault.
I will try if I can use other compress settings...
Best Regards
Eagerly waiting for your developments! By the way that message in wincomm was funny!
waiting for you adfree to get out from all of this with something useful for ordinary users with little brain like me
@ Dokugogagoji
Very good Tool. Tested short on JE7 Firmware...
NOT your Tool, I mean before.
During my experiments I've noticed also Buffer overflow with 0... as I had problems to catch whole data. But your Tool is really great.
My Wishlist. If you have time. Please.
1.
"Video Capture"... maybe we could start with send command every 1 second?
Maybe every 2 seconds... I don't know how fast buffer can handle this...
2.
Maybe please set Standard folder for capture. Example:
c:\screencap...
Nice would be, we had access to Config XML or other Text file to edit this.
Thank you very much.
Best Regards
Thanx for fast progress.
After press stop, I see only waiting... nothing happens.
XP 32 Bit
But maybe my fault.
Maybe someone else can try and confirm.
Sometimes I'm not smart enough to manage task.
Best Regards
adfree said:
After press stop, I see only waiting...
Click to expand...
Click to collapse
I have the same WinXP SP3 32 bit
Another picture is reflected(mirrored). BMP is scanned from bottom to top
Yes! Works fine
1000 thanx. Yes success.
Other folder would be very nice...
C:\Dokumente und Einstellungen\topsecret\Desktop
Maybe something like set working Directory. Then add 2 folders:
...\PictureScreenshot
...\Videocapture
Or something similar.
My Desktop is full.
Thanx.
Best Regards
Strange. Not sure...
tested on JE7 and JL2. If I try to capture Video on Apps like Games or something like that.
No success.
JAVA Midlets yes...
Screencapture also possible.
So generally Command should work...
Any idea?
Best Regards
Edit 1.
Captured from JAVA Midlet...
Now the Question is also. How to get more Frames per second.
@ Dokugogagoji
How often is AT Command sent? Every second?
Thanx.
Hi Dokugogagoji,
i had stability problems with the serial port class in .NET Framework too when i started with WaveBackup, but it seems to be working quite good now. If you want, we could compare our codes and see what it needs for a good and fast connection ....
Patrick
Upgrading from .NET 2.0 to 3.5 seemed to help a little with stability for me. Funny enough, i never tried a other baudrate as 115200 so far ..... i see you're using a much higher value there .... will do some test with it.
Tested it with WaveBackup ... speed remains the same, wether you use my value or your value .... it's always round abound 120 Kb/s ....
Lock key
3602 0547.460 KEY_EVENT_SIG: Keycode = 0x8f, STATUS = 0x1.
3852 0741.977 KEY_EVENT_SIG: Keycode = 0x8f, STATUS = 0x1.
End call
4934 1102.926 KEY_EVENT_SIG: Keycode = 0x51, STATUS = 0x1.
6260 1597.151 KEY_EVENT_SIG: Keycode = 0x51, STATUS = 0x1.
Start call
6351 1646.721 KEY_EVENT_SIG: Keycode = 0x50, STATUS = 0x1.
6351 1646.721 KEY_EVENT_SIG: Keycode = 0x50, STATUS = 0x1.
Volume Up
7653 2056.734 KEY_EVENT_SIG: Keycode = 0x54, STATUS = 0x1.
7847 2160.000 KEY_EVENT_SIG: Keycode = 0x54, STATUS = 0x1.
Volume down
8096 2222.667 KEY_EVENT_SIG: Keycode = 0x55, STATUS = 0x1.
8200 2267.922 KEY_EVENT_SIG: Keycode = 0x55, STATUS = 0x1.
Menu
8424 2320.139 KEY_EVENT_SIG: Keycode = 0x53, STATUS = 0x1.
8593 2447.716 KEY_EVENT_SIG: Keycode = 0x53, STATUS = 0x1.
Camera mid
8636 2472.871 KEY_EVENT_SIG: Keycode = 0x8e, STATUS = 0x1.
8664 2508.513 KEY_EVENT_SIG: Keycode = 0x8e, STATUS = 0x1.
Camera full
8810 2563.697 KEY_PRESS_TIMER_SIG: Keycode = 0x8d, STATUS = 0x1.
0808 3689.790 KEY_EVENT_SIG: Keycode = 0x8d, STATUS = 0x1.
On release key
STATUS = 0x0
Click to expand...
Click to collapse
headset button
0491 8305.228 KEY_EVENT_SIG: Keycode = 0x8a, STATUS = 0x1.
Click to expand...
Click to collapse
Taken from here:
http://forum.xda-developers.com/showpost.php?p=18960187&postcount=1330
Thanx.
Maybe some day usefull...
Best Regards
SetText
Nice Command, you can send Text to handset...
For instance long Link from PC... into Dolfin/Browser or SMS.
Short tested.
Best Regards
1 way for Key Input are AT Commands...
Digits 0-9
Code:
AT+KEY=10
AT+KEY=1
AT+KEY=2
AT+KEY=3
.
.
AT+KEY=9
Call Button
Code:
AT+KEY=11
End Button
Code:
AT+KEY=12
#
Code:
AT+KEY=13
*
Code:
AT+KEY=14
Delete/back
Code:
AT+KEY=15
Best Regards
http://forum.xda-developers.com/showpost.php?p=21567479&postcount=1
I have totally forgotten this source...
My Wave 2 has broken glas... and I can't click on Display...
PC Tool for text input via AT Commands would be nice...
Perfect would be... Navigation via Mouse...
Best Regards
Need navigation on broken display...
WinComm Log
Code:
[TSP] ID = 2, State = 0x20, X = 309, Y = 375
[TSP] All Fingers released : Send touch_screen_release!
Later more...
Any ideas?
Best Regards
Related
Hi,
I have tried to enable Permanent Save through the following registry values:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\AdvancedCPL
CalendarPassColdBoot = 1
ConnectionPassColdBoot = 1
ConatctPassColdBoot = 1
TaskPassColdBoot = 1
But the entries in hh_cb.exe still are unchecked.
How can I get this etries checked through a selfmade program/registry entries?
This may be better served in the development and hacking forum. Mods please move?
I am trying to hook the keybd_event API in the keypad. I have found the address of the import entry for keybd_event in the keypad.dll's IAT. I have done so by disassembling the keypad.dll and finding the offset from an exported function to that IAT entry. At runtime, I have added my own service (in order to get my dll loaded into services.exe). When loaded, I use GetModuleHandle and GetProcAddress to find that exported function then use the known offset to find the IAT entry. I have verified that I have the right memory location by comparing the pointer to the module's location using remote process viewer.
The problem is that I cannot read from or write to the IAT. My code crashes when I try. IsBadReadPtr and IsBadWritePtr tell me that I cant read or write to this memory location. Even a call to VirtualProtect to set it to PAGE_EXECUTE_READWRITE will not work. The call fails. How can I get access to this memory?
This simple test code exe shows that all the memory in the code section of keypad.dll is writeable. As soon as I hit section 2 which contains the IAT The call starts failing. Once I hit section 3 it succeeds again (the hard coded PID and address come from remote process viewer and my service dll; I debugged to find where the read calls fail).
Code:
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)
{
DWORD PID = 239927214, addr = 2061766572, read = 0, sz = 0;
HANDLE pr;
BOOL ans1;
_SetKMode SetKMode;
SetKMode = (_SetKMode)GetProcAddress(GetModuleHandle(L"coredll.dll"), L"SetKMode");
ans1 = SetKMode(true);
pr = OpenProcess(0, 0, PID);
while(ReadProcessMemory(pr, (LPVOID)addr, &read, 4, &sz))
addr++;
while(!ReadProcessMemory(pr, (LPVOID)addr, &read, 4, &sz))
addr++;
while(ReadProcessMemory(pr, (LPVOID)addr, &read, 4, &sz))
addr++;
//ans4 = WriteProcessMemory(pr, ptr2, &mkep, 4, &p4);
CloseHandle(pr);
return 0;
}
What do I need to do to get access? Calls to VirtualProtect and SetKMode do nothing. Any ideas? Thanks!
Nevermind! It seems I was not modifying the correct location. I was trying to modify the table that simply lists imports. I found where the actual function pointer is stored.
Hi !
I'm trying to create an application based on location aware concept.
And I'm trying to do a simple query to update some records in my database but it isn't working..
I'm trying to do a simple query like "UPDATE markers set status = 0 WHERE id = 10"
This is giving me an error like this "[1,8,markers]". BUT WHAT THE HELL DOES THIS MEAN ?
If I try to run que query manually it does work ! So what i'm I doing wrong ? How can I activate a (MUCH) more verbose error information ?
This is my function :
Code:
Public Sub turnMarker(ByVal id As String, ByVal status As String)
cOpen()
Dim query As SqlCeCommand = myCon.CreateCommand
query.CommandText = "UPTADE markers set status = " + status + " WHERE id = " + id + ""
Try
'MsgBox(query.CommandText)
query.ExecuteNonQuery()
Catch ex As Exception
MsgBox("Error updating markers !" + query.CommandText + ex.Message)
End Try
cClose()
End Sub
thanks !
EDIT: Nevermind ... found out the problem.
Nevertheless, does anyone know how to make errors more verbose ?
Use SqlCeException as opposed to Exception, and then run through the errors collection....
strX = strX & ex.NativeError
For I = 0 To ex.Errors.Count - 1
strX = strX & "Index #" & I & vbCrLf & "Error:" & ex.Errors(I).ToString() & vbCrLf
Next
do a search for sr.dll. you need to deploy this as part of your app to be able to see exception data when debugging .net ce apps.
or go here -> http://forum.xda-developers.com/showpost.php?p=4862355&postcount=87 .That sample project has got a copy. you'll need to add it as part of whatever project you're making.
Us T-Mobile users cannot flash Roms at the minute because the download mode button combo has been disabled.
Maybe there is a way to do this programatically or use a resistor accross certain USB pins like the Galaxy S method.
What's your opinion on this?
Sent from my OMNIA7 using Board Express
Yesterday I wasted some time playing around with the USB diagnostic port (enable in the Diagnosis app, it's the third USB mode option). Both PSAS and QPST can connect to and mess with the phone, so I think if someone knows his way around, the phone can be kicked into Download Mode.
(I only managed to crash the phone in many different ways, but I was really just monkeying around.)
If this can be done it would be great as this is the first phone I have owned where I cannot flash firmware myself.
Might be worth while seeing if everyone with a tmobile uk branded omnia 7 has this issue?
FYI I have included my firmware versions etc so we can try and collate a list of working/non working ones to see what the differences are if any.
os version 7.0.7004.0
firmware revision number 2424.10.10.6
hardware revision number 3.15.0.4
radio software version 2424.10.10.6
radio hardware version 0.0.0.800
bootloader version 4.10.1.9
chip soc version 0.36.2.0
KarmaXXK said:
Yesterday I wasted some time playing around with the USB diagnostic port (enable in the Diagnosis app, it's the third USB mode option). Both PSAS and QPST can connect to and mess with the phone, so I think if someone knows his way around, the phone can be kicked into Download Mode.
(I only managed to crash the phone in many different ways, but I was really just monkeying around.)
Click to expand...
Click to collapse
Yes, I tried the *#7284# code and changed the USB Path Control to "Modem, USB Diag" and my phone was recognised by the ROM Downloader but the phone was not in download mode.
I have stumbled upon something which may be what we are looking for though, after reverse engineering the Samsung Diagnosis app I notice there are codes to access 'Operator Specific' Admin areas in the app. Take a look at the attached image.
Now as you can see, the values listed cannot be typed into the Diagnosis app as there is a formula to decipher them. I have the formula but cannot get it to work.
Code:
Private Overloads Function GetHashCode(ByVal str As String) As UInteger
Dim num As UInteger = 0
For i As Integer = 0 To str.Length - 1
[B]num = ((num << 5) + num) + str(i)[/B]
Next
Return num
End Function
Now the bit highlighted in bold is the bit I cant get to work.
It gives the following error:
Operator '+' is not defined for types 'UInteger' and 'Char'.
Once someone can help to get this working, reversing the formula should in theory show us the correct *#000# code combination for each area.
Fingers crossed you can crack it!
lyriquidperfection said:
Yes, I tried the *#7284# code and changed the USB Path Control to "Modem, USB Diag" and my phone was recognised by the ROM Downloader but the phone was not in download mode.
I have stumbled upon something which may be what we are looking for though, after reverse engineering the Samsung Diagnosis app I notice there are codes to access 'Operator Specific' Admin areas in the app. Take a look at the attached image.
Now as you can see, the values listed cannot be typed into the Diagnosis app as there is a formula to decipher them. I have the formula but cannot get it to work.
Code:
Private Overloads Function GetHashCode(ByVal str As String) As UInteger
Dim num As UInteger = 0
For i As Integer = 0 To str.Length - 1
[B]num = ((num << 5) + num) + str(i)[/B]
Next
Return num
End Function
Now the bit highlighted in bold is the bit I cant get to work.
It gives the following error:
Operator '+' is not defined for types 'UInteger' and 'Char'.
Once someone can help to get this working, reversing the formula should in theory show us the correct *#000# code combination for each area.
Click to expand...
Click to collapse
I worked on this few days ago, I couldn't reverse the hash function but we had some brilliant ideas how to do it (see the stackoverflow thread about it http://stackoverflow.com/questions/4523553/reversing-a-hash-function)
but I used brute force and extracted some 60 diagnosis codes that you can find here http://www.martani.net/2010/12/windows-7-hacks-all-diagnosis-codes-you.html
and here http://www.martani.net/2010/12/windows-7-hacks-all-diagnosis-codes-you_26.html
This is great stuff martani if there is any way to decipher these ones, they may be worth looking at:
g_ADMIN_GENERIC = 3370684588
g_ADMIN_TMOBILE = 469486183
g_ADMIN_VODAFONE = 474092301
These ones indeed look very interesting and may offer a way to enable ADC or even the Download Mode some people like me have been looking for.
lyriquidperfection said:
This is great stuff martani if there is any way to decipher these ones, they may be worth looking at:
g_ADMIN_GENERIC = 3370684588
g_ADMIN_TMOBILE = 469486183
g_ADMIN_VODAFONE = 474092301
These ones indeed look very interesting and may offer a way to enable ADC or even the Download Mode some people like me have been looking for.
Click to expand...
Click to collapse
Actually the code is a little misleading, if you see closely, the enum HashCodeTable is used nowhere.
The app waits for user input, after each "tap" on a number it calls the function ParseDial() that hashes the input with GetHashCode then calls the function GetEnumFromList() on this hashed value.
In GetEnumFromList, there is no use of HashCodeTable and even the codes you provided are not hard-coded in this function. I am not sure why they are there but as far as I can tell, to access these parts of the diagnosis app, you need another method than dialing a code it seems
martani said:
Actually the code is a little misleading, if you see closely, the enum HashCodeTable is used nowhere.
The app waits for user input, after each "tap" on a number it calls the function ParseDial() that hashes the input with GetHashCode then calls the function GetEnumFromList() on this hashed value.
In GetEnumFromList, there is no use of HashCodeTable and even the codes you provided are not hard-coded in this function. I am not sure why they are there but as far as I can tell, to access these parts of the diagnosis app, you need another method than dialing a code it seems
Click to expand...
Click to collapse
Damn it! Looks like we are back to square one!
Have you seen also on the Samsung Galaxy S the Download mode is disabled on some devices, but some users made a jig where you bridge 2 pins with a certain resistor and it knocks the phone into download mode. Maybe this would work on the Omnia 7 also????
I am hoping for a software based fix rather than hacking together something.
**ALL** diagnostic codes for SAMSUNG devices
I reverse engineered the Diagnostic Menu Application. It contains a list of configuration "Titles" with corresponding hash-codes. I made a tool to reverse the hash-codes to dial-codes. The dial-codes may not be the same as some codes that were already known, but the dial-codes are absolutely correct for these menu. Differences are due to hash-collisions (same hash-code may have multiple possible dial-codes). I just used the shortest dial-codes for every menu.
The list of menu's is very long and I discovered that not all menu-codes were not actually implemented. I guess this list of codes is used for all Samsung devices (possibly also for Galaxy S and older Windows Mobile devices). So not all dial-codes may actually work on your device.
WARNING!! The menu's can configure low-level settings of your phone. And if you don't know what you're doing you may brick your device or maybe hard-reset the device and loose all your data and settings. Or you may faulty calibrate your sensors. Be very, very careful with experimenting!! I will not take any responsibility for damaging your device in any way.
I would personally be very interested if anyone finds a way to get the device in download-mode by using these menu's (I have a bad bootloader which does not let my Samsung Omnia 7 go into download-mode to flash it to a newer firmware).
By the way: the admin menu's are NOT implemented on the Omnia 7 :-(
This is the list with menu-titles, dial-codes and their hashcode:
Code:
FTAMain = 15 (0x686)
QUALCOMM TEST = *09# (0x17DB96)
TMOServiceMenu = *74*# (0x31710C2)
SMDINFO = *#03# (0x30C0953)
SIMPLE FUNCTION TEST = *#05# (0x30C0995)
IMEI NUMBER = *#06# (0x30C09B6)
VIEWHISTORYNW = *#07# (0x30C09D7)
LCDTEST = *#0*# (0x30C082A)
QWERTYTEST = *#1*# (0x30C0C6B)
BATT TEST = *#2*# (0x30C10AC)
BRIGHTNESS TEST = *#3*# (0x30C14ED)
TouchDelta 80 = *#80# (0x30C2AF8)
LIGHTTEST = *#12*# (0x648DBCDD)
BTLOGDUMP = *#232# (0x648E4E87)
WIFI FACTORY TEST = *#526# (0x648FEFED)
RILNETLOG = *#638# (0x649080D1)
RILDUMP = *#745# (0x64911110)
VPHONE770 = *#770# (0x64911D2E)
VPHONE771 = *#771# (0x64911D4F)
VPHONE772 = *#772# (0x64911D70)
VPHONE773 = *#773# (0x64911D91)
VPHONE774 = *#774# (0x64911DB2)
VPHONE775 = *#775# (0x64911DD3)
VPHONE776 = *#776# (0x64911DF4)
VPHONE777 = *#777# (0x64911E15)
VPHONE778 = *#778# (0x64911E36)
VPHONE779 = *#779# (0x64911E57)
SR TEST = *#780# (0x6491216F)
VT DUMP = *#938# (0x649225F4)
Disable Testbed = #12358# (0xFC28BE89)
Enable Testbed = *12358# (0x170067D0)
DEBUGMODE1 = *#0011# (0xF63246F2)
BATTERYINFO = *#0228# (0xF63364DC)
PHONELOOPBACKTEST = *#0283# (0xF6337DBD)
AUDIOTEST2 = *#0289# (0xF6337E83)
FMRADIORX = *#0368# (0xF6340241)
LIGHTSENSORTEST = *#0589# (0xF63523A6)
RRCVERSION = *#0599# (0xF63527E7)
AUDIOTEST = *#0673# (0xF635AB00)
SOUNDTEST = *#0675# (0xF635AB42)
RTC = *#0782# (0xF6363B81)
DEVICETEST = *#0842# (0xF636B6DE)
ILLUMINATIONTEST = *#0843# (0xF636B6FF)
MultiTouch = *#0987# (0xF63754E8)
SWversionFTA = *#1111# (0xF644EBD4)
MOUSETEST = *#121*# (0xF645774E)
SWversionEx = *#1234# (0xF645811A)
MOUSECAL = *#123*# (0xF6457FD0)
MOUSECAL06 = *#126*# (0xF6458C93)
GPSTEST = *#1575# (0xF6473762)
MICROUSB TEST = *#1793# (0xF6485864)
HWversionFTA = *#2222# (0xF6579518)
BANDSELECTION = *#2263# (0xF657A63D)
PHONEDUMP = *#2454# (0xF658BADF)
CAMERAUPDATE = *#2470# (0xF658C2DD)
CAMERADISABLE = *#2480# (0xF658C71E)
NAVIKEY TEST = *#2486# (0xF658C7E4)
INTEGRITY = *#2580# (0xF659537F)
TouchFirmare 2663 = *#2663# (0xF659D7C1)
TouchDelta 2664 = *#2664# (0xF659D7E2)
TouchDelta 2665 = *#2665# (0xF659D803)
RILNETLOG OFF = *#6380# (0xF6A09CC1)
RILNETLOG ON = *#6381# (0xF6A09CE2)
NETLOCK NETWORK = *#6955# (0xF6A3DAE9)
USBPATHCHANGE = *#7284# (0xF6B22965)
POWERONATTACH = *#7298# (0xF6B22E2A)
SELF DIAGNOSTIC MODE = *#7353# (0xF6B2A8E2)
DebugOption = *#7450# (0xF6B334E0)
ERROR REPORT ON = *#7451# (0xF6B33501)
ERROR REPORT VERIFY = *#7452# (0xF6B33522)
NETLOCK SERVICE = *#7755# (0xF6B4DAA8)
VPHONE DISABLED = *#77*0# (0xF6B4AB38)
VPHONE ENABLED = *#77*1# (0xF6B4AB59)
UARTCHANGER = *#9090# (0xF6D54562)
DEBUGDUMP = *#9900# (0xF6DA0E82)
PILEDUMP = *#9901# (0xF6DA0EA3)
NETLOG LOG START = *#9905# (0xF6DA0F27)
DEBUG RIL DUMP = *#9906# (0xF6DA0F48)
ERRORREPCAB INSTALL = *#9907# (0xF6DA0F69)
GUMITEST3G CAB INSTALL = *#9908# (0xF6DA0F8A)
SUWON3G CAB INSTALL = *#9909# (0xF6DA0FAB)
UARTPATH = *#9910# (0xF6DA12C3)
BATTERYMONITOR = *#9911# (0xF6DA12E4)
CONNECTION SETTING = *#9920# (0xF6DA1704)
VERIFYCOMPARE = *#9990# (0xF6DA34CB)
YSSHINTEST = *#9999# (0xF6DA35F4)
VersionScript = 19104#2* (0xD21FC43E)
BLUETOOTH LOG DISABLE = 20652609 (0x1598F3DE)
BLUETOOTH LOG ENABLE = 20652619 (0x1598F3FF)
BT SSPDEbugModeEnable = 20652629 (0x1598F420)
BT SSPDEbugModeDisable = 20652639 (0x1598F441)
OMADMCLIENT LOG DISABLE = 20653609 (0x1599803F)
OMADMCLIENT LOG ENABLE = 20653619 (0x15998060)
CELOG LOG DISABLE = 20654609 (0x159A0CA0)
CELOG LOG ENABLE = 20654619 (0x159A0CC1)
TOTALCALLTIME = 2934331* (0xC35403F3)
RESET CUSTOM = 35180948 (0x77496B66)
RESET FACTORY = 35190718 (0x775B7B02)
ERASE IMEIITEM = 35190728 (0x775B7B23)
IMEI ADJUST = 35190738 (0x775B7B44)
BLUETOOTH RF TEST = 3##65*88 (0xECE73A9E)
BLUETOOTH AUDIO TEST = 3##65*98 (0xECE73ABF)
AutoSimSetting = 40*047#3 (0xD1C556DF)
PVKKey = 40*549#3 (0xD21FD9E6)
RESET FACTORY WITHDEFAULTLANGUAGE = 76264513 (0x777E1362)
NONSLEEPCALL OFF = *#069*0# (0xBCEBFF49)
NONSLEEPCALL ON = *#069*1# (0xBCEBFF6A)
LEDTEST = *#14789# (0xBF1C1ADD)
DMSessionInit = *#15428# (0xBF2C7494)
CIPHERING = *#32489# (0xC3A095FA)
CAMERAUPDATESVC = *#32589# (0xC3A1225B)
LOGDUMPMGR = *#33284# (0xC3B19514)
SR DISABLED = *#780*0# (0xCD5F5D49)
SR ENABLED = *#780*1# (0xCD5F5D6A)
NETLOCK SUBSET = *#78255# (0xCD60A57B)
LAUNCH UAEDIT = *#92782# (0xD1A12DFC)
PdaBuildTime = *#99820# (0xD2204C1C)
VersionTime = *#99821# (0xD2204C3D)
WIFI TEST = 0373385#6 (0xECE73BA6)
EN LOCK NW = 074578132 (0xBBF27D35)
GCFTESTMODE ENTER = 086#58023 (0x1807BAE3)
FILE SYSTEM TEST = 089559715 (0x28F3F681)
AUDIOGAINCONTROL = 08#766104 (0x902D68E3)
DIS LOCK SUB NW = 17#991#3* (0x1D45A6AE)
PVKFileName = 18*357#25 (0x161B193C)
EN LOCK SUB NW = 193582504 (0xBC073A15)
GPSTESTTOOL = 1#8865#55 (0xF61EC09C)
EN LOCK CORP = 1*0273411 (0xF62C007D)
EN LOCK SVC = 1*0278411 (0xF62EBE62)
DIS LOCK NW = 20789802* (0x1D30E9CE)
SellOutSMS = 2615#0922 (0xD04CA8DE)
TFlashUnPairing = 30334*733 (0x51B892C4)
DIS LOCK SVC = 38025*93# (0xCA957BDB)
GPSTESTTOOL2 = 400#40*08 (0xB9F6D60D)
GPSTESTXTRA = 400#40*18 (0xB9F6D62E)
SerialNumber = 5317*0648 (0x6E256D8C)
EN LOCK SIM = 5494585*3 (0xBC051995)
SERVERURL = 553378683 (0xD8389060)
SLIDECOUNT = 584644021 (0xF0BF3052)
SellOutSMSTestMode = 597#*224# (0x96E7B26D)
APPSLAUNCHER = 5**6244*3 (0x33B0B76)
SLOGSERIAL M2 = 66#6757#1 (0x7050E07C)
AutoReceive Enable = 7160*5088 (0xEF2C5E0D)
TESTMODE = 718071#49 (0x8A09ACC8)
RESET SERVICE = 72673#00# (0xEC5B4BEF)
ReactivateSellOutSMS = 74201#086 (0x807DB65F)
AUDIOCODEC = 7#16#1#37 (0x902D68C2)
ADMIN GENERIC = 838*5448* (0xC8E890AC)
SLOGSERIAL ALL ON = 8644*3081 (0x705107AC)
VT MANUALSETTING = 8802*7*5# (0x104384B5)
DISLOCK SIM = 98217*243 (0x1D43862E)
DMTESTMENU = 9#7357764 (0x414D9633)
SLOGSERIAL ALL OFF = #22#6214# (0x7050E03A)
SLOGSERIAL M1 = #22#6215# (0x7050E05B)
SLOGSERIAL M3 = #22#6217# (0x7050E09D)
SLOGSERIAL M4 = #22#6218# (0x7050E0BE)
SLOGSERIAL M5 = #22#6219# (0x7050E0DF)
ADMIN VODAFONE = #75471648 (0x1C42130D)
DisableSellOutSMS = *4587*676 (0x903477AF)
BLUETOOTH SEARCH TEST = *#232333# (0xECE73AE0)
RANDOM BT MAC = *#232336# (0xECE73B43)
BLUETOOTH MAC VIEWER = *#232337# (0xECE73B64)
WIFI MAC VIEWER = *#232338# (0xECE73B85)
PRECONFIGURATION = *#638738# (0x213EF313)
SELF DIAGNOSTIC MODE DISABLE = *#7353*0# (0x6E008D7C)
SLOGSERIAL M6 = *#745*06# (0x7050E100)
DIS LOCK CORP = 00*2*2#524 (0xCA92BDF6)
ADMIN TMOBILE = 0612824763 (0x1BFBCA67)
AutoReceive Disable = 09925572#3 (0xD4B8217D)
SWversionIn = 1309653522 (0xECB23FC4)
GPSTTFFTESTTOOL = 154*068271 (0xF61EBC7C)
SellOutSMSProductionMode = 1#3341#5#0 (0x96D7C68A)
LOCK STATUS INFO = 28##**23*0 (0x7D8C72E3)
SWversionNewIn = 32456464#7 (0xFD58D7FC)
Heathcliff74 said:
I reverse engineered the Diagnostic Menu Application. It contains a list of configuration "Titles" with corresponding hash-codes. I made a tool to reverse the hash-codes to dial-codes. The dial-codes may not be the same as some codes that were already known, but the dial-codes are absolutely correct for these menu. Differences are due to hash-collisions (same hash-code may have multiple possible dial-codes). I just used the shortest dial-codes for every menu.
Click to expand...
Click to collapse
Can you share how did you reverse the hash function? I worked on this some time ago but finally just brute forced it to extract the keys.
I would also like to know how he reversed the hash codes! I tried for hours and had no luck!
Haha.. Well, I first tried to calculate the original dial-codes, but that seems to work only for dialcodes shorter than 8 digits (5 bits per digit, 32 bits hash-code = 32 / 5 = 7 digits + 1 digit for the extra add):
Code:
uint hash = 0; // enter hash here
string DialCode = "";
while (hash > 0)
{
uint digit = (hash % 33) + 33;
if (digit > hash)
hash = 0;
else
hash = (hash - digit) / 33;
DialCode = Convert.ToChar(digit) + DialCode;
}
return DialCode;
But this does not work for long dial-codes. So after that I just made a little program to brute-force it. I copied the enum with menu-titles and hash-codes to my project. Then I used reflection to populate a sortedlist. Then I started to brute-force and check all dialcodes for their hashcode and see if it exists in the list. If it exists, I add it to a textbox and remove the item from the list. That's it. So it is not really reversed, but my program took about an hour to get dial-codes for all the hashcodes in the enum.
Code:
SortedList<uint, string> hashCodes = new SortedList<uint, string>();
int l = typeof(HashCodeTable).GetEnumNames().Length;
string[] menunames = typeof(HashCodeTable).GetEnumNames();
for (int i = 0; i < l; i++)
{
try
{
hashCodes.Add(Convert.ToUInt32(Enum.Parse(typeof(HashCodeTable), menunames[i])), menunames[i].Substring(2).Replace('_', ' '));
}
catch { }
}
char[] chars = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '#', '*' };
for (int length = 1; length <= 20; length++)
{
ushort[] digits = new ushort[length];
for (int i = 0; i < length; i++) digits[i] = 0;
while (true)
{
// calc hash
uint hashCode = 0;
for (int i = 0; i < length; i++)
{
hashCode = ((hashCode << 5) + hashCode) + chars[digits[i]];
}
if (hashCodes.ContainsKey(hashCode))
{
int m = hashCodes.IndexOfKey(hashCode);
string str = "";
for (int j = 0; j < length; j++)
str = str + chars[digits[j]];
textBox1.Text = textBox1.Text + hashCodes.Values[m] + " = " + str + " (0x" + hashCode.ToString("X") + ")" + Environment.NewLine;
hashCodes.RemoveAt(m);
}
// increase
digits[length - 1]++;
for (int k = length - 1; k >= 0; k--)
{
if (digits[k] >= 12)
{
if (k == 0)
break;
else
{
digits[k] -= 12;
digits[k - 1]++;
}
}
}
if ((digits[0] >= 12) || (hashCodes.Count == 0)) break;
}
if (hashCodes.Count == 0) break;
}
Excellent stuff! Thank you for this very interesting code snippit!
WP7 diag codes
martani said:
Actually the code is a little misleading, if you see closely, the enum HashCodeTable is used nowhere.
Click to expand...
Click to collapse
This is because the compiler optimized out the switch statement and compiled the constants into the IL code for the hash codes.
Within the main switch statement where keypad entries are evaluated there are ~112 codes and I've reversed all of them. Writing hash algorithms is not straightforward and it's quite a simple one, since my app captured 2-3-4 variants of keycodes for the same hash value.
Regarding the most interesting entries at the top of the enum the ADMIN_ entries...those hash values are not handled by the application, maybe Samsung has another diag app or a different app which is using the same method.
The other thing I can think of is there are APIs in the diag app which one is sending the hash of a keycode to the given driver...I tried that but the ADMIN stuff did not worked that way either :-((
If anyone is interested I can post the resolved codes, but not sure if I can post it in the forum or not ;-)
Regsitry entry to enable SLDR mode
I found this definition in B44C7A84-5068-4b43-A1E5-F870A80F6FF8.rgu:
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\UsbFn]
...
"OsMode"=dword:0 ; 0 for Main OS, 1 for SLDR
....
Is the download mode == SLDR mode?
Since maybe we can set this entry "somehow", and upon next reboot we will get into download mode so we can flash the device?
So the question is, what is SLDR mode? Secure Loader mode? I don't know this, a more pro in this area should help out ;-)
UPDATE
I was able to read the value (0) and write it back (0). Did not tried to write 1 there
Hey guys. I know this thread is about programmatically enter downloadmode, but I wanted to try the 301k resistor trick and I can confirm it works on Samsung Omnia 7.
I used this guide. If you're gonna do that too, then you should pay attention to these things:
- The guide refers to pin 4 and 5 being closest to the headphone socket. But on the omnia 7, the headphone and micro-usb sockets are the other way around if you compare it to the Galaxy S. The guide is for the Galaxy S, so you should really pay attention to which pins you solder the resistor(s). This is the best picture on how you should solder the resistor(s).
- Many micro-usb cables have no wire for pin 4. Some connectors don't even have a pin 4. You should first verify that your connector has all 5 pins. If you only have 4 wires, then you have to dismantle the connector and solder directly on the back of the connector.
I switched off my Omnia 7. I plugged in my jig and it went to downloadmode immediately.
It's late now, so I will see tomorrow what I will be going to flash on it. There quite a few roms and I'm not sure which one I should use. I have to figure that out first.
If anyone has questions about how to make a jig, just ask. I know how to make one now.
You should post pictures, how to make such a cable. Thanks
FromOuterSpace said:
You should post pictures, how to make such a cable. Thanks
Click to expand...
Click to collapse
The picture I linked to in my previous post look pretty clear to me. It shows what pins you have to use. The guide I linked to contain all the other necessary details. If you have any specific questions about something that is still not clear, you can ask me.
Nice and easy Tool:
http://www.softsea.com/review/Portmon.html
Maybe someone saw/know the yellow Message "UPLOAD data to pc"...
How to catch Data if "Bluescreen" comes and "UPLOAD data to pc" message appears?
It seems this nuke my Portmon...
Any suggestions please?
Maybe I'm blind or these are not stored in Debug folder...
Best Regards
Edit 1.
Changed title.
If you have a Windows XP machine left, try this to watch the serial port:
ups, i can't post links here. Google for serialmon dot com .....
It's output is a little easier to use than portmons. In general, using a serial port monitor to watch the communication between wave and pc, seems to be very unstable business.
Now I'm closer...
Taken info from Samsung GT-S8500L Wave Training Manual SW.ppt...
If someone needs the Settings to attach handset correct, ask me... in this Thread.
Best Regards
Could you post the settings, found this earlier, but couldn't do anything with it.
Thanks
I'll try to describe "short" steps.
1.
You have to be sure that Debug Level Middle is on. Please read here:
http://forum.xda-developers.com/showpost.php?p=10616930&postcount=3
Level Mode High shows more events...
2.
If you have access to Internal menu:
*#7092463*#
Maybe set to High or go to Debug Settings... described in ...Manual SW.ppt...
site 15
3.
Start WinComm and now check site 16 on *.ppt manual. All settings are on Picture.
4.
On handset I have choose Debug Mode instead Kies... this thingie if you plug cable into Wave... maybe go to Settings and set to ask by connection instead Kies
5.
Be sure you choose the "second" Port. Now Wave have 2 COM Ports activated.
Second one is for incoming Data.
Hope this helps an little bit.
If problems ask again.
Then I'll try to make some Screenshots or maybe some other hints...
Best Regards
Ehm have you found that Wincomm2010.exe
Click to expand...
Click to collapse
2010 no, but 2009 like in this Picture is attached.
WinComm2009.zip
Best Regards
Handset
Under Settings->Connectivity->USB->Ask on connection
To have chance to set USB Debugging
Wincomm
I will try later maybe Open or Close for connect to the port.
Important is to choose second COM Port...
Also important to activate UE Awake in settings like on Picture.
As it seems initial AT command is mandatory AT+WINCOMM...
Best Regards
P.S.:
I'm using XP 32 Bit... no other OS tested by me.
so now you can upload fw files from the phone or what???
so now you can upload fw files from the phone or what???
Click to expand...
Click to collapse
Now you could see internal process like Key press, which files involved... etc...
Many high technical stuff. But this could help to understand more.
For me it is very usefull.
I will soon attach few Log examples... maybe then more clear.
Best Regards
i don't suppose that anything can be done if *#7092463*#
doesn't get me a menu?
http://forum.xda-developers.com/showpost.php?p=12798896&postcount=5
Please read deeper this post and follow Links.
As Internal menu is disabled if you flashed ever Rsrc2_S8500_xxx(Low).rc2
Or if you not use Multiloader, then Kies did for you.
This is internal stuff, you have to "unlock" few things before... so read my instruction prior posted.
Please. This is more for advanced users. This is NO must have for all users.
At your own risk.
Best Regards
It seems also good idea to set Trace Level to High... in Internal Menu.
Best Regards
Edit 1:
Seems difference between Firmwareversions...
On JE7 I can see logging if handset is "off" if battery charge Animation is on.
Then if you press ON you can see parts of Booting sequence...
On JL2 I see first something, if Wave is fully on...
Maybe in higher Build some things disabled/removed...
Code:
3539 2255.054 [B]KEY_EVENT_SIG[/B]: [B]Keycode[/B] = 0x8f, STATUS = 0x0.
3540 2255.054 [LCD C]: INFO - FIMD_Drv_Resume()
3541 2255.054 S6E63M0 : LDI_Pentile_Set_Change Pentile_Value =6c
3542 2255.054 S6E63M0 : LDI_PortInit +
6217 2255.055 P00.T11.D001.G-1.E-01:0000 EXCEPTION > [CPLog]: Sub 0014 2263.372 -1: BOOTMGR > _BmPacketReceiveCallback: Boot command is [0x6]
6218 2255.055 P00.T11.D001.G-1.E-01:0000 EXCEPTION > [CPLog]: Sub 0015 2263.372 -1: EXCEPTION > OemTapiNetworkRadioInfoInd: RSSI refresh as AP's awaken
6219 2255.056 P00.T11.D001.G-1.E-01:0000 EXCEPTION > [CPLog]: Sub 0016 2263.372 -1: EXCEPTION > OemTapiNetworkCellInfoInd: Refresh cell Info as AP's awaken
6220 2255.063 P00.T10.D103.G22.E054:B25B EXCEPTION > SmsSvcRegGetSellOutToBeSent: bToBeSent = [0].
6221 2255.069 P00.T10.D103.G22.E054:B269 EXCEPTION > SmsTapiEventHandler: unknown tapi event type.
[B]3543 2255.085 S6E63M0 : LDI_PortInit -
3544 2255.085 S6E63M0 : LDI_S6E63M0_Power_On +
3545 2255.095 S6E63M0 : LDI_S6E63M0_Power_On [hwrev > [COLOR="Red"]S8200[/COLOR]_UNIV_B7]
3546 2255.095 S6E63M0 : LDI_Pentile_Set_Change Pentile_Value =6c
3547 2255.219 S6E63M0 : LDI_S6E63M0_Power_On -
3548 2255.219 Display_LSI : disp_Main_Wakeup [/B]
3549 2255.219 [TSP] reset acq atchcalst=0, atchcalsthr=0
3550 2255.220 [TSP] clear garbage data : Success!! [read 0 times]
3551 2255.220 [TSP] TSP Wakeup...........!
I was wondering why S8200... but now its more clear.
http://forum.xda-developers.com/showpost.php?p=12797112&postcount=249
What we can do...
Collect Key Events...
Monitoring processes like start JAVA Midlets...
Then we can see infos about Heap size...
Code:
9301 433.174 P00.T10.D094.G52.E103:2D83 EXCEPTION > KJxMemoryAvailable: [B]available memory heap[/B] size is 131268608
9302 433.178 P00.T10.D300.G52.E103:2D83 EXCEPTION > KJxSvcIsFileSystemValid: return TRUE!
9303 433.178 P00.T10.D300.G52.E103:2D83 EXCEPTION > KJavaGetMidletAttributeBySuiteID suiteID = 5 is not found
9304 433.179 P00.T10.D094.G52.E103:2D83 EXCEPTION > KJxSvcIsMemoryFull fmQuotaStat.availableSize(943128576), APP_MEMORY_STATUS_MX_MEMORY_FULL_LIMIT(0)
9305 433.180 P00.T10.D094.G52.E103:2D83 EXCEPTION > KJxSvcIsMemoryFull KJx execute limit size = 16384
9306 433.180 P00.T10.D300.G52.E103:2D83 EXCEPTION > KJxSvcIsFileSystemValid: return TRUE!
Many more things...
Best Regards
adfree said:
Code:
3539 2255.054 [B]KEY_EVENT_SIG[/B]: [B]Keycode[/B] = 0x8f, STATUS = 0x0.
3540 2255.054 [LCD C]: INFO - FIMD_Drv_Resume()
3541 2255.054 S6E63M0 : LDI_Pentile_Set_Change Pentile_Value =6c
3542 2255.054 S6E63M0 : LDI_PortInit +
6217 2255.055 P00.T11.D001.G-1.E-01:0000 EXCEPTION > [CPLog]: Sub 0014 2263.372 -1: BOOTMGR > _BmPacketReceiveCallback: Boot command is [0x6]
6218 2255.055 P00.T11.D001.G-1.E-01:0000 EXCEPTION > [CPLog]: Sub 0015 2263.372 -1: EXCEPTION > OemTapiNetworkRadioInfoInd: RSSI refresh as AP's awaken
6219 2255.056 P00.T11.D001.G-1.E-01:0000 EXCEPTION > [CPLog]: Sub 0016 2263.372 -1: EXCEPTION > OemTapiNetworkCellInfoInd: Refresh cell Info as AP's awaken
6220 2255.063 P00.T10.D103.G22.E054:B25B EXCEPTION > SmsSvcRegGetSellOutToBeSent: bToBeSent = [0].
6221 2255.069 P00.T10.D103.G22.E054:B269 EXCEPTION > SmsTapiEventHandler: unknown tapi event type.
[B]3543 2255.085 S6E63M0 : LDI_PortInit -
3544 2255.085 S6E63M0 : LDI_S6E63M0_Power_On +
3545 2255.095 S6E63M0 : LDI_S6E63M0_Power_On [hwrev > [COLOR="Red"]S8200[/COLOR]_UNIV_B7]
3546 2255.095 S6E63M0 : LDI_Pentile_Set_Change Pentile_Value =6c
3547 2255.219 S6E63M0 : LDI_S6E63M0_Power_On -
3548 2255.219 Display_LSI : disp_Main_Wakeup [/B]
3549 2255.219 [TSP] reset acq atchcalst=0, atchcalsthr=0
3550 2255.220 [TSP] clear garbage data : Success!! [read 0 times]
3551 2255.220 [TSP] TSP Wakeup...........!
I was wondering why S8200... but now its more clear.
http://forum.xda-developers.com/showpost.php?p=12797112&postcount=249
What we can do...
Collect Key Events...
Monitoring processes like start JAVA Midlets...
Then we can see infos about Heap size...
Code:
9301 433.174 P00.T10.D094.G52.E103:2D83 EXCEPTION > KJxMemoryAvailable: [B]available memory heap[/B] size is 131268608
9302 433.178 P00.T10.D300.G52.E103:2D83 EXCEPTION > KJxSvcIsFileSystemValid: return TRUE!
9303 433.178 P00.T10.D300.G52.E103:2D83 EXCEPTION > KJavaGetMidletAttributeBySuiteID suiteID = 5 is not found
9304 433.179 P00.T10.D094.G52.E103:2D83 EXCEPTION > KJxSvcIsMemoryFull fmQuotaStat.availableSize(943128576), APP_MEMORY_STATUS_MX_MEMORY_FULL_LIMIT(0)
9305 433.180 P00.T10.D094.G52.E103:2D83 EXCEPTION > KJxSvcIsMemoryFull KJx execute limit size = 16384
9306 433.180 P00.T10.D300.G52.E103:2D83 EXCEPTION > KJxSvcIsFileSystemValid: return TRUE!
Many more things...
Best Regards
Click to expand...
Click to collapse
Heap size can already be changed by accesing the jwc_properties.ini in the AppEx and the User>Exe folder.
astrotom said:
Heap size can already be changed by accesing the jwc_properties.ini in the AppEx and the User>Exe folder.
Click to expand...
Click to collapse
can you recommend a value for it??
give an example for the change??
thanks in advance
mylove90 said:
can you recommend a value for it??
give an example for the change??
thanks in advance
Click to expand...
Click to collapse
There are three jwc_properties.ini files. 1st one in Appex>SysDefault>Java>jwc_properties.ini, 2nd one in Exe>Java>jwc_properties.ini and 3rd one in SystemFS>User>Exe>Java>jwc_properties.ini. Use trix, TkFile explorer or Stune. Personally, I think the first ini file is fore the default java apps on the phone. I think the 2nd one is useless since I didnt see any java apps in that folder using stune. I think the 3rd file is for user installed java apps. I dont know since I am still in the process of modifying the whole bada firmware as far as possible and then I will later flash my phone with my custom firmware. Maybe you could help me tell which files are used for what? Ok, enough talk. Now here are settings for heap sizes that I used: (You can find heap settings at the end of each file)
## Limited MVM configuration
MAIN_MEMORY_CHUNK_SIZE = 82313216 # (78 * 1024 * 1024) + (500 * 1024), 78.5MB
JAVA_MAX_HEAP_SIZE = 65011712 # (62 * 1024 * 1024) + (0 * 1024), 62MB
JAVA_MIN_HEAP_SIZE = 10485760 # (10 * 1024 * 1024) + (0 * 1024), 10MB
MAX_ISOLATES = 4 # AMS Isolate + One application
The last setting, MAX_ISOLATES is the max number of java apps you can run simultaneously while paused. My setting allows 5 apps to run simultaneously. (Remember, Max_ISOLATES value should be one less than the desired value.) Earlier it wave could run only 3 apps.
I am surprised the Samsung provided low java heap sizes for such a good phone! Anyways enjoy!
Thanx astrotom
I'll try next days.
About WinComm... now I understand what this setting means...
I'll try to find combination to work with both, Qualcomm and WinComm.
To log also via QXDM...
Maybe BT is helpfull...
Best Regards
Uuupsi.
Not realized before. But now I have Modem Port connected with:
Upload data to pc
Hmm. But no idea how to catch Data now...
I've changed Port in WinComm...
Hmmmmmm, mabye 1 day in future.
Best Regards
I've played little bit with old SGH-U700...
It has also few similar things like Upload data to pc...
Via known code *#197328blabla... I can find Upload Funct.:
Enable Upload Funct
Disable Upload Funct
Enable Debug Mode in Low
If I try to enable... Can't enable as Dbg Lvl Low...
This U700 is damaged... (damn Touch keys)... maybe I can repair... maybe I can find out what Upload ... can do.
Best Regards
Edit.
I've set Debug Level to high, then also Enable Upload Funct is available...
But still no idea how to start Upload...
how to send AT commands to the phone? i have the first port of my phone as COM9 and the second one as COM10