[APP] XroM_Switch - Windows Mobile Development and Hacking General

A small app to switch a wireless devices with additional functions.
In resource you can customize the layout of buttons, background color and the name and font size.
The program supports the launch with the parameters (without displaying the main window)
Sorry for my English, Thank's google translator...

Can you create QVGA version of this application. I tried on my HTCMagician but can't full names of buttons.

Can you post sources for switcher?

For the ones interested in replacing the resources, as that's the fun part of this little app right here.
Super-Quick-Guide
To change the lay out of the Buttons use Resource Hacker.
Resource Hacker won't export the gif's correctly.
Use CFF Explorer and export to raw then add .png
(you can see it in the resource clearly).
Edit the png, flatten all layers save and remove extension, re-import back into CFF explorer.
Rebuild Header and Save, should do the trick.
Resign file.
Attached s Quick example of Modification

Hey Noonski , i could be wrong but your example seems to be a QVGA....why dont you just share it ?
Noonski said:
For the ones interested in replacing the resources, as that's the fun part of this little app right here.
Super-Quick-Guide
To change the lay out of the Buttons use Resource Hacker.
Resource Hacker won't export the gif's correctly.
Use CFF Explorer and export to raw then add .png
(you can see it in the resource clearly).
Edit the png, flatten all layers save and remove extension, re-import back into CFF explorer.
Rebuild Header and Save, should do the trick.
Resign file.
Attached s Quick example of Modification
Click to expand...
Click to collapse

i can only say спасибо xrom for this; i <3 you for this

af974 said:
Hey Noonski , i could be wrong but your example seems to be a QVGA....why don't you just share it ?
Click to expand...
Click to collapse
Sorry it's VGA.
But theoretically you can change the Button Values and the Graphics to fit QVGA.

here the first german version.

Noonski said:
Sorry it's VGA.
But theoretically you can change the Button Values and the Graphics to fit QVGA.
Click to expand...
Click to collapse
Would you mind posting the VGA version? Does it scroll or are the bottom buttons cut-off? Looks great XroM.

mwalt2 said:
Would you mind posting the VGA version? Does it scroll or are the bottom buttons cut-off? Looks great XroM.
Click to expand...
Click to collapse
Buttons where cut of i didn't re position of the Buttons.
Give me a minute.
Unsigned VGA version by popular request.
Just open the exe in http://www.angusj.com/resourcehacker/
on the left side you will find the item where you can change button size.
(Dialog 104)
Code:
104 DIALOG 0, 0, 140, 198
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "XroM_Switch GUI"
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
FONT 8, "System"
{
CONTROL "Toggle WiMax", 1001, BUTTON, BS_OWNERDRAW | BS_MULTILINE | WS_CHILD | WS_VISIBLE, 7, 16, 62, 18
CONTROL "Switch off\n GPRS", 1007, BUTTON, BS_OWNERDRAW | BS_MULTILINE | WS_CHILD | WS_VISIBLE, 70, 16, 62, 18
CONTROL "Toggle WiFi", 1002, BUTTON, BS_OWNERDRAW | BS_MULTILINE | WS_CHILD | WS_VISIBLE, 7, 36, 62, 18
CONTROL "Flight mode", 1008, BUTTON, BS_OWNERDRAW | BS_MULTILINE | WS_CHILD | WS_VISIBLE, 70, 36, 62, 18
CONTROL "Toggle\nBluetooth", 1003, BUTTON, BS_OWNERDRAW | BS_MULTILINE | WS_CHILD | WS_VISIBLE, 7, 55, 62, 18
CONTROL "Reset PPC\nsilent", 1009, BUTTON, BS_OWNERDRAW | BS_MULTILINE | WS_CHILD | WS_VISIBLE, 70, 55, 62, 18
CONTROL "Bluetooth in\nvisible", 1004, BUTTON, BS_OWNERDRAW | BS_MULTILINE | WS_CHILD | WS_VISIBLE, 7, 74, 62, 18
CONTROL "Reset PPC", 1010, BUTTON, BS_OWNERDRAW | BS_MULTILINE | WS_CHILD | WS_VISIBLE, 70, 74, 62, 18
CONTROL "Toggle phone", 1005, BUTTON, BS_OWNERDRAW | BS_MULTILINE | WS_CHILD | WS_VISIBLE, 7, 94, 62, 18
CONTROL "Power Off", 1011, BUTTON, BS_OWNERDRAW | BS_MULTILINE | WS_CHILD | WS_VISIBLE, 70, 94, 62, 18
CONTROL "Disconnect\nGPRS", 1006, BUTTON, BS_OWNERDRAW | BS_MULTILINE | WS_CHILD | WS_VISIBLE, 7, 114, 62, 18
CONTROL "Suspend", 1012, BUTTON, BS_OWNERDRAW | BS_MULTILINE | WS_CHILD | WS_VISIBLE, 70, 114, 62, 18
CONTROL "Restart Manila", 1015, BUTTON, BS_OWNERDRAW | BS_MULTILINE | WS_CHILD | WS_VISIBLE, 7, 132, 62, 18
CONTROL "Lock PPC", 1016, BUTTON, BS_OWNERDRAW | BS_MULTILINE | WS_CHILD | WS_VISIBLE, 70, 132, 62, 18
}
Change the Font in
In (String Data 2502)
Code:
STRINGTABLE
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
{
40016, "Tahoma"
40017, "22"
}

New German version incl. new skin.
Can't translate reset confirmation text and shortcut description in "about"!
Hint: Screen capture looks bad, better download

Vibrate toggle would also be good.

QVGA
Noonski said:
Sorry it's VGA.
But theoretically you can change the Button Values and the Graphics to fit QVGA.
Click to expand...
Click to collapse
camoooon ... share also a QVGA version
I'm not so smart with resource hacker and so on....
pleeeease

S-Line said:
Vibrate toggle would also be good.
Click to expand...
Click to collapse
I try to do this...

Thank XroM
It's a great and necessary soft, i need and try to translate to french but some text like before Turn Off in Russian are in hard code with ressouce heacker i don't see these text; can you help me PL?

XroM made the new XroM Switch version for Touch HD. Removed buttons specific for HTC Max devices. I translated the program to English.
Enjoy.
Any feedback is welcome.

Too bad it doesn't have an option for vibrate. That would make it the perfect app for long right press. Yes, this is a feature request.

pizzaman79,
In last version (XroM_Switch_HD_eng) exist option for vibrate.

pizzaman79, version I uploaded vibrates by default

Sorry, i meant an option to disable volume (switch between volume on an vibrate), just like the fourth option from long key press.
Or is that what's included in the latest version?

Related

Trapping Hardware buttons

Hi,
anyone know how, or if it is possible to trap the green 'call' button on the xda ii. I can trap the camera, voice recorder and top 2 buttons, but i need to trap the call button
Thanks
Pete
use GetAsyncKeyState
Hi,
tried trapping it in a timer with getasynckeystate , but only seem to pick up the 'd' pad, not any of the other keys.
Using registerhotkey for the other 4 which works fine, just not for the call button
Thanks
Pete
Could you please let me know how you could trap the camera and the two top buttons.
Could you also trap the Red button ?
Many Thanks
Hi,
Paste the following code into a module, and call in in the form_load as follows:-
Dim messageWindow As Hwbuttons.hwMessageWindow
Me.messageWindow = New Hwbuttons.hwMessageWindow(Me)
RegisterHKeys.RegisterRecordKey(Me.messageWindow.Hwnd)
The original code for this comes from www.opennetcf.org - I modified it for my needs, so kudos to the original poster(s).
I have still not found a way to trap the 'green and red' keys
Pete
Imports Microsoft.WindowsCE.Forms
Imports System.Runtime.InteropServices
Public Enum KeyModifiers As Integer
None = 0
Alt = 1
Control = 2
Shift = 4
Windows = 8
Modkeyup = &H1000
End Enum
Public Enum KeysHardware As Integer
Hardware1 = 193
Hardware2 = 194
Hardware3 = 195
Hardware4 = 196
Hardware5 = 202
End Enum
Public Module RegisterHKeys
<DllImport("coredll.dll", Entrypoint:="RegisterHotKey", setLastError:=True)> _
Public Function RegisterHotKey( _
ByVal hWnd As IntPtr, _
ByVal id As Integer, _
ByVal Modifiers As KeyModifiers, _
ByVal key As Integer) As Boolean
End Function
<DllImport("coredll.dll")> _
Private Function UnregisterFunc1( _
ByVal modifiers As KeyModifiers, _
ByVal keyID As Integer) As Boolean
End Function
Public Sub RegisterRecordKey(ByVal hWnd As IntPtr)
UnregisterFunc1(KeyModifiers.Windows, CType(KeysHardware.Hardware1, Integer))
RegisterHotKey(hWnd, CType(KeysHardware.Hardware1, Integer), KeyModifiers.Windows, CType(KeysHardware.Hardware1, Integer))
UnregisterFunc1(KeyModifiers.Windows, CType(KeysHardware.Hardware2, Integer))
RegisterHotKey(hWnd, CType(KeysHardware.Hardware2, Integer), KeyModifiers.Windows, CType(KeysHardware.Hardware2, Integer))
UnregisterFunc1(KeyModifiers.Windows, CType(KeysHardware.Hardware3, Integer))
RegisterHotKey(hWnd, CType(KeysHardware.Hardware3, Integer), KeyModifiers.Windows, CType(KeysHardware.Hardware3, Integer))
UnregisterFunc1(KeyModifiers.Windows, CType(KeysHardware.Hardware4, Integer))
RegisterHotKey(hWnd, CType(KeysHardware.Hardware4, Integer), KeyModifiers.Windows, CType(KeysHardware.Hardware4, Integer))
UnregisterFunc1(KeyModifiers.Windows, CType(KeysHardware.Hardware5, Integer))
RegisterHotKey(hWnd, CType(KeysHardware.Hardware5, Integer), KeyModifiers.Windows, CType(KeysHardware.Hardware5, Integer))
End Sub
Public Class Hwbuttons
Inherits System.Windows.Forms.Form
Public Shared messageWindow As hwMessageWindow
Public Class hwMessageWindow
Inherits messageWindow
Public Const WM_HOTKEY = &H312
Dim example As frmComms
Public Sub New(ByVal example As frmComms)
Me.example = example
End Sub
Protected Overrides Sub WndProc(ByRef msg As Message)
Select Case msg.Msg
Case WM_HOTKEY
'ButtonPressed(msg.WParam.ToInt32())
Return
End Select
MyBase.WndProc(msg)
End Sub
Public Sub ButtonPressed(ByVal button As Integer)
Select Case button
Case KeysHardware.Hardware1
MessageBox.Show("Button 1 pressed!")
Exit Sub
Case KeysHardware.Hardware2
MessageBox.Show("Button 2 pressed!")
Exit Sub
Case KeysHardware.Hardware3
MessageBox.Show("Button 3 pressed!")
Exit Sub
Case KeysHardware.Hardware4
MessageBox.Show("Button 4 pressed!")
Exit Sub
Case KeysHardware.Hardware5
MessageBox.Show("Button 5 pressed!")
Exit Sub
End Select
End Sub
End Class
End Class
End Module
Many Thanks.
I will give it a go.
Please let me know if you could find a way to control the Green and Red Buttons.
Thanks Again
:lol:
the green+red keys are already registered to the cprog.exe phone app.
you can grab them, by killing cprog.exe and then registering them.
this will prevent the original phone app from starting up.
( it is automatically restarted every minute orso, by shell32.exe )
Hi,
thanks for that - but using PHM task manager I am unable to stop the process from running.
I will take the 'o2active' from the startup and generally poke around to see if i can get it to stop
Thanks
Pete
I mean you should stop it from your own program, using 'TerminateProcess'
see http://www.xs4all.nl/~itsme/projects/xda/tools.html itsutils.cpp
for how to use TerminateProcess
Hi,
thanks - pkill does terminate the process - I thought PHM task manager would work using 'end process' but it does not.
Right - when I kill it, I then start 'button finder' to trap the hardware buttons, but as soon as I hit the green button, cprog relaunches
Thanks for your help
Pete
you should program it your self:
Code:
#define VK_ANSWER 0x72
#define VK_HANGUP 0x73
TerminateProcess(...); // kill cprog.exe
RegisterHotKey(..., 1, 0, VK_ANSWER); // steal hotkey
RegisterHotKey(..., 1, 0, VK_HANGUP); // steal hotkey
Isn't there some win32 way to "steal" messages from another application? If you can do that, you could steal the WM_HOTKEY message from the phone app, that way, you wouldn't have to kill it. I am not sure if killing it would cause you to miss calls or not.
Has anyone posted a clear solution
I have been searching all over the net for a clear solution on hhow to trap these hardware keys and I just can't find anything. Does anyone have a nice clear solution yet?
I have to get the green call key and the red hang up key.
thanks,
Dan
Re: Has anyone posted a clear solution
I've seen several games that intercept "call" and "hang" buttons using GAPI. I have not tested this myself, but you can try.
You can unregister and register the buttons to your own app without killing the phone process, using the same functions as the code pete posted:-
UnregisterFunc1(KeyModifiers.None, CType(KeysHardware.Answer, Integer))
RegisterHotKey(hWnd, CType(KeysHardware.Answer, Integer), KeyModifiers.None, CType(KeysHardware.Answer, Integer))
UnregisterFunc1(KeyModifiers.None, CType(KeysHardware.Hangup, Integer))
RegisterHotKey(hWnd, CType(KeysHardware.Hangup, Integer), KeyModifiers.None, CType(KeysHardware.Hangup, Integer))
Where KeysHardware.Answer = &H72 and KeysHardware.Hangup = &h73
The difference between these two keys and the other hardware keys is they are not sent with the Windows key modifier.
Peter
sorry to bring back this old post, i have tried the code in this thread and successfully capture the green button, but after my application quit how can i restore back the button original function? anyone can help?

A Call To Lock/Hardware Button Experts

Hello,
Im currently working on a custom control in managed code(vb.net) and have decided to implement it in a lock application as its initial demo. I have written code which catpures the base hardware keys available to windows mobile(1-6) this captures all of the hardware buttons on my wizard except for the Phone Buttons, Volume/Vibrate Button, and power button. im not particularly worried about trapping the power button because i like the tap to standby feature but im up the creek on the phone/volume buttons.
I found the hardware buttons 1-6 in the registry under (HKLM\Software\Microsoft\Shell\Keys) but i cant seem to find the other keys anywhere including where this person says they are
http://www.mobipocket.com/forum/viewtopic.php?p=2367&sid=c3b2c704a729c2d6e5a47d0ee38ecb54
basically from my understanding of what he's saying the keys for these options(at least the phone ones) should have been listed under "HKEY_CURRENT_USER\Software\Microsoft\Today\Keys\"
I had one key there 112 pointng to my calendar(so that i thought confirmed him) I added a key called 114 with a path to calendar as well. but the button still directs to phone/ so im not sure what's up.
Here's some logic from the hardware button capturing... Any insight into the location of these items would be greatly appreciated
Code:
Dim hk As HardwareKeys = HardwareKeys.ApplicationKey1
Dim i As Integer = 0
While i < 6
Try
Dim hwb As HardwareButton = New HardwareButton
hwb.AssociatedControl = Me
hwb.HardwareKey = hk + i
Catch ex As Exception
Me.Label1.Text &= ex.Message
End Try
i += 1
End While
Dim regkey As RegistryKey =
Registry.LocalMachine.OpenSubKey("Software\Microsoft\Shell\Keys", True)
Me.Label1.Text = regkey.SubKeyCount
For Each skey As String In regkey.GetSubKeyNames
Me.Label1.Text &= skey.ToString & ","
Next
regkey.Close()
Thanks in advance for any insight anyone can provide
DrewG
Well ive found some russian page talking about the
Dated Post on russian site with Broken English Translation said:
HKEY_LOCAL_MACHINE\Software\Microsoft\Shell\KeyMaps]
"195"= - =-hitting "record" on the three pozic. phone (one that najmeshy story)
"196"= hitting "power" and "house"
"197"= Opening screen
"198" = "red tube"
dword:00000000 - nothing
dword:00000001- mobile phone
dword:00000002 - quick menu
dword:00000003 - lock (for the press release #)
dword:00000004 - 00000004 fast-locking
Click to expand...
Click to collapse
Do you guys think this is a good start? At that location i have dword 197 val of 5. Im adding entries now for the othr buttons to see if i can catch
Here's What I have so far for Cingular 8125 HTC Wizard as the hardware buttons/software key maps which i get from a call onkeypress. I believe im going to have to go an unmanaged route for the phone buttons/Volume.
Code:
'not code just looks better this way
SoftKey Left = Key Code 112
SoftKey Right = Key Code 113
Email Button(top left corner) = Key Code 193 (Cf Hardware Button 1)
Web Button(top right corner) = Key Code 194 (Cf Hardware Button 2)
Camera Button(bottom right side) = Key Code 195 (Cf Hardware Button 3)
Voice Button(top right side) = Key Code 196(Cf Hardware Button 4)
Record(hold voice) = Key Code 197(not firing well) (Cf Hardware Button 5)
Comm Button = Key Code 198 (Cf Hardware Button 6)
All of those I can catch and react to but i cant seem to find any info for the phone and volume buttons/ Is there a specific api call I can make thats related to button press or catching? Possibly a way of forcing an association to an app only while its running?
Thanks in advance for any help. Ill post the full app here if i can get over this hump

How to emulate keyclick?

My task is to exec file "settings.exe" on Smartphone 2003 after this make 2 emulations of button click "Down".
Program only starts Settings.exe, but don't emulates keyclicks.
Help, please
My code:
SHELLEXECUTEINFO sei = {0};
sei.cbSize = sizeof (SHELLEXECUTEINFO);
sei.fMask = SEE_MASK_NOCLOSEPROCESS;
sei.lpVerb = TEXT("open");
sei.lpFile = TEXT("Settings.exe");
sei.nShow = SW_SHOWNORMAL;
ShellExecuteEx(&sei);
if (ShellExecuteEx (&sei))
{
WaitForSingleObject (sei.hProcess, INFINITE);
}
HWND wh = ::GetForegroundWindow();
::SetFocus(wh);
::SendMessage(wh, WM_KEYDOWN, VK_DOWN, 0);
::SendMessage(wh, WM_KEYUP, VK_DOWN, 0);
::SendMessage(wh, WM_KEYDOWN, VK_DOWN, 0);
::SendMessage(wh, WM_KEYUP, VK_DOWN, 0);
Use 'keybd_event' function..
I can't use keybd_event because message must send to specified handle
If you mean 'Down' button as the hardware down (e.g. joystick), you can easy use keyb_event. It's a good function for emulation of the hw buttons
keybd_event(VK_DOWN,0,KEYEVENTF_SILENT,0);
keybd_event(VK_DOWN,0,KEYEVENTF_SILENT| KEYEVENTF_KEYUP,0);
2 saman-cz:
Yes, of course, if my task was to emulate keyklicks in active window then I can use keybd_event.
But:
I must emulate keyclicks for background window (not active). Handle of background window must be passed as parameter where I will emulate clicks.
2007fs said:
2 saman-cz:
Yes, of course, if my task was to emulate keyklicks in active window then I can use keybd_event.
But:
I must emulate keyclicks for background window (not active). Handle of background window must be passed as parameter where I will emulate clicks.
Click to expand...
Click to collapse
Use: PostKeybdMessage()

Optical Joystick In Opera

FIXED!!
Hi
I found out which settings are required to fix this. Basically, edit input.ini, find the following under [browser widget] and change it as shown below:
Change:
Left = navigate left
Right = navigate right
Up = navigate up
Down = navigate down
to:
Left = Scroll left, 1
Right = Scroll right, 1
Up = Scroll up, 10
Down = Scroll down, 10
This must be what my old Voda X1 had as its default. For me, it makes the optical joystick useful again in Opera cause you can scroll around the whole page, rather than being restricted to navigating between links.
Don't forget the huge array of Opera options available on the config page (enter opera:config into the address bar). Most of these are explained here:
http://www.opera.com/support/usingopera/operaini/
http://files.myopera.com/ResearchWizard/files/Opera-Mobile.html?1227183542#inputini1
Nigel
Hi
Having sent back my vodafone X1, i now have an HTC X1, and am noting the differences between the two.
On the voda X1, the optical joystick could be used to scroll around a page (without highlighting any links).
On the HTC X1, the optical joystick works more like A 4 way tab button, the page moves, but the links keep getting highlighted.
The highlighting od the linka means that smooth scrolling does not happen.
Anyone know how to make opera behave like it did on the voda X1? i want my smooth scrolling back!
Nigel
My no brand italian X1 works like your "htc" x1.
In IE instead works like "vodafone" x1.
Start > settings > System > Optical Joystick > Allow scrolling iirc
nice hint! thx
Would be nice if it brought up a little mouse... it does this in Opera Mini (probably because Mini is made to have a mouse for all phones using the d-pad).
Hi
All the options under 'optical joystick' in settings are turned on. This does not enable me to pan around the page in opera like I used to be able to with my previous X1 - rather, the optical joystick just moves a highlight between the links on the page.
Previously the links on the page were ignored, and the joystick just moved the page about.
Basically it is now working like a cursor key rather than offering the ability to freely pan about the screen like before.
Must be a registry setting somewhere... either that, or the voda X1 that I had had a newer version of opera installed.
Pain in the arse whatever it is - I had gotten used to using the joystick, now I am back to flicking the screen with the stylus.
Nigel
Hi
Here ia my opera.ini can someone with a voda x1 or an x1 on which the joystick works properly in opera post theirs? you'll find it under application data.
Nigel
Opera Preferences version 2.1
; Do not edit this file while Opera is running
; This file is stored in UTF-8 encoding
[Install]
Preference URL=http://xml.opera.com/spoof/
Browser First Time Launch=0
[User Prefs]
Default URL=file://\Windows\Sony%20Ericsson%20start%20page\index.html
Ignore Unrequested Popups=1
Minimum Font Size=12
Help URL=\Application Data\Opera9\help\en\
Warn Insecure Form=0
Maximum Allowed Tabs=3
User JavaScript=1
Always load User JavaScript=1
UAProf URL=http://www.sonyericsson.com/downloads/X1i-1.0.xml
Home URL=about:blank
URL Type=2
Rendering mode=0
[Adv User Prefs]
Conn Mgr Auto Detect Network=1
[Cache]
Document=7000
Figure=3000
[Disk Cache]
Size=4000
[Security Prefs]
Enable SSL v2=1
Enable SSL v3=1
Enable TLS v1.0=1
Enable TLS v1.1=0
[File Types]
application/vnd.ms-powerpoint=4,\Windows\ppt.exe,,,ppt,|
application/sdp=3,\windows\StreamingPlayer.exe,,,sdp,|
application/x-sdp=3,\windows\StreamingPlayer.exe,,,sdp,|
application/x-rtsp=3,\windows\StreamingPlayer.exe,,,sdp,|
application/mheg=3,\windows\wmplayer.exe,,,mheg,|
application/rstl=3,\windows\wmplayer.exe,,,rstl,|
text/vnd.sun.j2me.app-descriptor=9,,,,jad,|
application/java-archive=9,,,,jar,|
audio/x-wav=0,,,,wav,|
audio/midi=0,,,,midi,|
audio/mid=0,,,,mid,|
audio/wav=0,,,,wav,|
audio/x-ms-wma=4,,,,wma,|
video/3gpp=1,,,,3gp,|
[File Types Extension]
application/vnd.ms-powerpoint=,0
application/mheg=,0
application/rstl=,0
application/sdp=,0
text/vnd.sun.j2me.app-descriptor=\windows\appdb\,2
application/java-archive=\windows\appdb\,2
[Adaptive Zoom]
Maximum Zoom=200
Minimum Zoom=150
Virtual Screen Width=960
[Trusted Protocols]
rtsp=1,0,
[Network]
Check Local HostName=1
Conn Mgr Auto Detect Network=1
UA Post Platform=PPC
[Colors]
Highlighted Background=#23dc23
Highlighted Text=#ffffff
From my UK Vodafone X1
Opera Preferences version 2.1
; Do not edit this file while Opera is running
; This file is stored in UTF-8 encoding
[Install]
Preference URL=http://xml.opera.com/spoof/
Browser First Time Launch=0
[User Prefs]
Default URL=http://live.vodafone.com
Ignore Unrequested Popups=1
Minimum Font Size=12
Help URL=\Application Data\Opera9\help\en\
Warn Insecure Form=0
Rendering Mode=0
Maximum Allowed Tabs=3
User JavaScript=1
Always load User JavaScript=1
Custom User-Agent=Vodafone/1.0/SEX1i/R1AA Opera/9.5 (Microsoft Windows; PPC; Opera Mobi/2141; U; UK) UP.Link/6.3.1.20.0 Profile/MIDP-2.0 Configuration/CLDC-1.1
UAProf URL=http://www.sonyericsson.com/downloads/X1i-1.0.xml
Home URL=http://www.bbc.co.uk/mobile/pda/index.shtml?
URL Type=1
[Adv User Prefs]
Conn Mgr Auto Detect Network=1
[Cache]
Document=7000
Figure=3000
[Disk Cache]
Size=10000
[Security Prefs]
Enable SSL v2=1
Enable SSL v3=1
Enable TLS v1.0=1
Enable TLS v1.1=0
[File Types]
application/vnd.ms-powerpoint=4,\Windows\ppt.exe,,,ppt,|
application/sdp=3,\windows\StreamingPlayer.exe,,,sdp,|
application/x-sdp=3,\windows\StreamingPlayer.exe,,,sdp,|
application/x-rtsp=3,\windows\StreamingPlayer.exe,,,sdp,|
application/mheg=3,\windows\wmplayer.exe,,,mheg,|
application/rstl=3,\windows\wmplayer.exe,,,rstl,|
text/vnd.sun.j2me.app-descriptor=9,,,,jad,|
application/java-archive=9,,,,jar,|
audio/x-wav=0,,,,wav,|
audio/midi=0,,,,midi,|
audio/mid=0,,,,mid,|
audio/wav=0,,,,wav,|
audio/x-ms-wma=4,,,,wma,|
video/3gpp=1,,,,3gp,|
[File Types Extension]
application/vnd.ms-powerpoint=,0
application/mheg=,0
application/rstl=,0
application/sdp=,0
text/vnd.sun.j2me.app-descriptor=\windows\appdb\,2
application/java-archive=\windows\appdb\,2
[Adaptive Zoom]
Maximum Zoom=200
Minimum Zoom=150
Virtual Screen Width=960
[Trusted Protocols]
rtsp=1,0,
[Network]
Check Local HostName=1
Conn Mgr Auto Detect Network=1
UA Post Platform=PPC
[Colors]
Highlighted Background=#23dc23
Highlighted Text=#ffffff
Hi
Thanks for that, unfortunately is it not a setting in that file. I have a suspicion that the setting I want is hiding away in input.ini - would you be able to paste the contents of this file (from a voda X1)?
Cheers
Nigel
I have a HTC X1 (unbranded) and the dpad it works both ways in Opera, though I did not really figure out when it scrolls and when it is in "cursor mode".
One thing is for sure: If there is one link framed (pre-selected), than the dpad works in cursor mode, if you tab on an area without any link then the dpad works in scroll mode - sometimes.
It's really a litte bit weired.
Wanted input.ini from Vodafone X1
Hi
Can someone post the contents of their input.ini file from a (UK) Vodafone X1
Application Data\Opera9\input.ini
Pretty Please?!
Nigel
Sorted!
Worked out how to do this, see updated post on first page
Nigel
Hi bro.
With your settings works, but also normal pad works with scroll. So no metod for select links as it is.
Indeed
I cant remember if on my vodafone, the d-pad still moved the cursor around the links or not. To be honest, I tend to tap the links.
Something is still different from my voda - on that, I could pan to the right hand side of the screen, and then scroll down, while keeping to the right hand side. With what I posted, the screen view moved back towards the left as you panned down.
If I could persuade someone with a (UK) vodafone Xperia to post their input.ini file it would save me guessing!
Nigel
veletron said:
Indeed
I cant remember if on my vodafone, the d-pad still moved the cursor around the links or not. To be honest, I tend to tap the links.
Something is still different from my voda - on that, I could pan to the right hand side of the screen, and then scroll down, while keeping to the right hand side. With what I posted, the screen view moved back towards the left as you panned down.
If I could persuade someone with a (UK) vodafone Xperia to post their input.ini file it would save me guessing!
Nigel
Click to expand...
Click to collapse
Has the same problem, which keeps moving to left whenever moving up or down. So weird...
Thanks a lot for the tip on modifying the .ini file to make the optical pad navigate through the entire webpage rather than through the links. Makes the browsing experience a lot more pleasent. Now if only the would implement the formatting of text depending on how far in we zoom into the webpage like the Touch Pro...
From my branded Vodafone
Code:
[Button Widget]
Enter = Click button
Space = Click button
[Radiobutton Widget]
Space = Click button
[Checkbox Widget]
Space = Check item | Uncheck item
[Edit Widget]
Backspace = Backspace
Left = Previous character
Right = Next character
Left shift = Range previous character
Right shift = Range next character
Left ctrl = Previous word
Right ctrl = Next word
Left ctrl shift = Range previous word
Right ctrl shift= Range next word
Up = Previous line
Down = Next line | Show edit dropdown
Up shift = Range previous line
Down shift = Range next line
PageUp = Page up
PageDown = Page down
PageUp shift = Range page up
PageDown shift = Range page down
Home = Go to line start
End = Go to line end
Home shift = Range go to line start
End shift = Range go to line end
Home ctrl = Go to start
End ctrl = Go to end
Home ctrl shift = Range go to start
End ctrl shift = Range go to end
Del ctrl = Delete word
Backspace ctrl = Backspace word
z ctrl = Undo
y ctrl = Redo
z ctrl shift = Redo
a ctrl = Select all
b ctrl = Toggle style bold
i ctrl = Toggle style italic
u ctrl = Toggle style underline
Del = Delete
[Dropdown Widget]
Down alt = Show dropdown
Esc = Close dropdown
Right = Next item
Left = Previous item
Down = Next item
Up = Previous item
PageUp = Page up
PageDown = Page down
Home = Go to start
End = Go to end
[Browser Widget]
Tab = Focus next widget
Tab shift = Focus previous widget
Left Shift = Scroll left
Right Shift = Scroll right
Up Shift = Scroll up
Down Shift = Scroll down
Right = Navigate right
Left = Navigate left
Down = Navigate down
Up = Navigate up
PageUp = Page up
PageDown = Page down
Space = Page down
Home = Go to start
End = Go to end
Home ctrl = Go to start
End ctrl = Go to end
Esc = Stop
Enter = Activate element | Open link | Focus form | Click button
a ctrl = Select all
[Browser Window]
F1 = GOGI Command Menu or Cancel
F2 = GOGI Window Menu
F3 = GOGI Previous Page
F4 = GOGI Next Page
[Application]
Enter ctrl = Wand
GestureLeft = Back
GestureRight = Forward | Fast forward
GestureUp = Stop
GestureDown = New page
GestureDown, GestureRight = Close page
FlipBack = Back
FlipForward = Forward | Wand
n ctrl = New page
t ctrl = New page
w ctrl = Close page
F5 = Reload
Plus = Zoom in, 10
Plus ctrl = Zoom in, 100
Add ctrl = Zoom in, 100
- = Zoom out, 10
- ctrl = Zoom out, 100
Dec ctrl = Zoom out, 100
* = Zoom to, 100
z = Back
x = Forward
. = Find inline
F3 = Find next
F3 shift = Find previous
x ctrl = Cut
c ctrl = Copy
v ctrl = Paste
tab ctrl = Switch to next window
tab shift ctrl = Switch to previous window
Hi artesea
Cheers for posting that - its the same as in mine so it looks like the scrolling about on my old voda was not achieved by mods to input.ini performed by vodafone.
Guess I'll stick with that I have. Are you able to confirm that on your voda, like on my old one, the optical joystick lets you pan freely about the screen (w/o getting caught on links). I.e 'scrolling' rather than 'navigating' in Opera speak?
If so, when you scroll to the right hand side of a zoomed in page and then scroll down, does the view stay on the right, or does it revert back to the left as you scroll down?
Nigel
It's a UK Vodafone branded X1. When in Opera if I use to optical the page moves around in the direction I scroll. There is no panning to the left when moving down the right hand side of the page.
To move between links I can use the 4 way, although sometimes this doesn't work.
How do you open .ini files in X1?
I can't find any Text Editors. How about Word Mobile?

AppSwitcher v3 - smart SWC launcher (for Junsun, Xtrons and similar devices) incl. autostart

AppSwitcher v3​SWC (Steering Wheel Control) app launcher
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Stay focused on the street and don't touch the head units display to switch between apps.​
Your browser is not able to display this video.
Support the development of this free app via
ko-fi.com/appswitcher​
What is AppSwitcher?​
AppSwitcher enhances your steering wheel key to switch between apps.
Hereby you can select which apps should be offered and you can choose stock apps (e.g. the radio app) and 3rd party apps like your favorite mp3 or DAB player. You can switch between media and navigation app by only one key press.
Additionally AppSwitcher offers a lot of options:
- start the last used media app after boot and after sleep automatically.
- long button press to cancel (if dialog is shown) or to jump to home screen.
- reactivate accessibility service of Automate and start initial Automate Flow to realize your own automations
- enable/disable DuraSpeed to prevent the head unit from killing your apps
- change system property to make Android status bar visible (work as on other Android devices)
- automatic screen dimming based on sunset / sunrise information
- allows to start the (Junsun) equalizer app
- supports SWC key "mode" even if CAN box is in place (if modded MainUI gets used)
- ...
How it works​
AppSwitcher has two options to register for a SWC key. A basic understandinghow it works will help you to do the initial setup of AppSwitcher.
Option 1 - GPS​
The head units main app (MainUI) writes by default a log message on each key press. AppSwitcher can listen to the Android log and react on a log message.
This will not overwrite the standard behavior of the original key function but we can configure a SWC key and assigned it to "open navigation app". With a special app (AppSwitcherStarter) set as navigation app there is no need to modify system files or system apps.
This will only work if
a) a dedicated SWC key to start the navigation app is present. If no CAN box is used every SWC key can be configured
b) a dedicated SWC key to switch between apps (mode button) is present AND the radio app is not used/required
Option 2 - MainUI​
Replacing the head units main app (MainUI) with a modded version.
In this version, the SWC mode key is disabled so that its functionality can be overridden (replaced) by AppSwitcher.
Additionally the modded version starts AppSwitcher after boot / sleep and sends a broadcast on each key press. This allows AppSwitcher to register for the broadcasts to receive a trigger. Other apps (e.g. Automate) can also register for these broadcasts.
This will only work if
a) a modded version of MainUI is available
b) you are not afraid of replacing a system app and know how to flash a firmware in case of problems. You're replacing the system app at your own risk.
Installation​
Option 1 - GPS​
Please read previous post to check if this is the best installation type for you.
Spoiler
- Install AppSwitcher AND AppSwitcherStarter.
- Enable automatic start of navigation app in factory settings
and let your device reboot.
Please be aware that changing factory settings will reset some settings on your device like equalizer and radio station presets. This is not an issue of AppSwitcher(Starter).
- Open AppSwitcher and select your navigation and media apps. Additionally activate the log listener:
- Set 'AppSwitcher Starter' as navigation app:
Don't set AppSwitcher itself as navigation app.
- Configure one button of steering wheel to start navigation app (if not already done)
With this setup the head unit will start AppSwitcherStarter after each reboot/sleep whereby AppSwitcherStarter will start the service of AppSwitcher.
Pressing the SWC navigation key will also start AppSwitcherStarter but this will have no effect if the service is already running. Nevertheless the AppSwitcher service will recognize the log entry and can present the AppSwitcher dialog.
The log entry can vary from head unit to head unit so it may be required to adjust the log listener settings https://forum.xda-developers.com/t/...-devices-incl-autostart.4593865/post-88620913
​Option 2 - MainUI​
Please read previous post to check if this is the best installation type for you.
You choose this way of installation at your own risk. It may lead to a bootloop and you should be familiar how to flash a firmware to restore your device in case of problems.
Spoiler
- First you need to check if a suitable modded version of MainUI is available for your device.
You can find a list of modded versions here: https://forum.xda-developers.com/t/...-devices-incl-autostart.4593865/post-88620949
- Download the modded MainUI version, place it in the "Download" folder on the device and rename it to MainUI.apk
- Install MainUiUpdater and perform the replacement of MainUI system application. If the device freezes after the update simply use the reset hole to force a reboot.
- Install AppSwitcher
- Open AppSwitcher and select your navigation and media apps.
Ensure the log listener is disabled.
- Reboot your device. E.g. by using the Reboot.apk from here: https://forum.xda-developers.com/t/...r-aux-bt-music-carinfo-from-launcher.4237797/
Installation files​
Attached installation files are only for testing purposes.
V3 is still under construction and may be not stable. This version is not supported.
AppSwitcher: Core application
AppSwitcher Starter: Starter of AppSwitcher and dummy navigation app. Only needed for installation option "Option 1 - GPS".
MainUiUpdater: Helper tool to replace MainUI. Only needed for installation option "Option 2 - MainUI".
Reboot: Adds an icon to launcher for an easy reboot of the head unit. Can be found here.
Changelog
AppSwitcher
3.0.3
- Adjusted to new broadcast key
MainUiUpdater
0.7
- Changed backup dir to /sdcard/MainUIbackups
Adjust the log listener​
Installation type "Option 1 - GPS" may require to adjust the log listener settings. They are pre-configured for systems without CAN box and a SWC key assigned to the GPS function (see Installation instruction on previous posts).
First you have to identify which log entries get written as soon as you press the SWC key. I suggest to use "Logcat Reader" from Google Playstore to identify usable log messages.
The log listener settings​
Log tag: Tag of the log entry. On most systems this is "MainUI".
Short button press log entry: If this log entry occurs AppSwitcher will show the dialog or jump to the next app.
This is the most important entry.
If you get a set of log entries as soon as you push and release a SWC key "Short button press log entry" should be set to the log message which gets written as soon as you release the key after a short amount of time.
Optional:
On button press log entry: This log message gets written as soon as you push down the SWC key. AppSwitcher will stop the countdown as soon as this message gets detected. This allows to set a very short countdown time.
Long button press log entry: If you hold down the button you can cancel the AppSwitcher dialog or jump to the home screen / launcher if the dialog is currently not visible.
The log entries need not to contain the whole message. It's sufficient to enter a substring if this is unique and not part of other log messages.
Modded MainUI​
For MTK825X​
MainUI_825X_1.3.apk​Version 1.3 from 8259P_军灿UI02v1280x720-国外_v81_20230427
Changelog
23/6/18
- Allow remap of SWC keys even if CAN box is in place
For 8667​To bring this version on the same level as 825X I need your testing support!
MainUI_8667_1.1.apk​Version 1.1 from 8667Q军灿UI02-国外-1280x720_v28_20230302.zip
Remap SWC keys​
If a CAN box is in place Junsun devices doesn't allow to remap SWC keys and assign other functions to it. But if you install a modded MainUI it is possible to define a config file with a mapping according to your needs.
The mapping file must be called "keyMapping.ini" and must be stored on the top level of the memory next to the "Download" folder.
The file is a simple text file containing key code mappings:
Code:
[from value 1]:[to value 2]
[from value 2]:[to value 1]
[from value 3]:[to value 4]
This is an example to swap the volume keys:
Code:
19:20
20:19
The most used key codes:
Mode = 10
Vol + = 19
Vol - = 20
next track = 44
prev track = 45
All key codes:
Spoiler
0 = 31;
1 = 32;
2 = 33;
3 = 34;
4 = 35;
5 = 36;
6 = 37;
7 = 38;
8 = 39;
9 = 40;
AIR = 105;
AM = 53;
AMS = 58;
ANGLEDN = 74;
ANGLEUP = 73;
APPS = 100;
APP_LONG = 115;
APP_SHORT = 114;
AUDIO = 101;
AUX = 2;
AVIN = 3;
AVM = 107;
BKL = 6;
BT = 23;
BT_A2DP = 111;
CAMERA = 108;
CARINFO = 106;
CAR_DEVICE = 110;
CAR_PLAY = 103;
CLOCK = 5;
DEL = 109;
DELETE = 84;
DIM = 24;
DIMDN = 88;
DIMUP = 87;
DISP = 85;
DN = 67;
DTV = 1;
DVD = 13;
DVR = 27;
ECAR = 89;
EJECT = 71;
EJECT_L = 83;
ENT = 21;
EQ = 17;
FAV = 86;
FCAM = 26;
FEEL_BACKWARD = 198;
FEEL_CCW = 200;
FEEL_CW = 199;
FEEL_DOWN = 196;
FEEL_FORWARD = 197;
FEEL_LEFT = 194;
FEEL_RIGHT = 193;
FEEL_UP = 195;
FEEL_WAVE = 201;
FF = 46;
FM = 52;
FMAM = 51;
FR = 47;
HOME = 99;
INFO = 98;
IPOD = 25;
J = 41;
LEFT = 68;
LOC = 55;
LOUD = 18;
MEDIA = 28;
MEDIA_PP = 60;
MEDIA_RDM = 61;
MEDIA_RPT = 62;
MEDIA_SCAN = 63;
MEDIA_SEARCH = 65;
MEDIA_STOP = 64;
MENU = 8;
MODE = 10;
MODE_DN = 94;
MODE_UP = 93;
MUTE = 16;
NAVI = 11;
NEXT = 44;
OPEN = 72;
PAUSE = 91;
PHONE_SIM = 104;
PLAY = 90;
POWER = 70;
POWER_OFF = 82;
POWER_ON = 81;
PRE = 45;
RADIO = 12;
RADIO_1S = 75;
RADIO_2S = 76;
RADIO_3S = 77;
RADIO_4S = 78;
RADIO_5S = 79;
RADIO_6S = 80;
RADIO_BAND = 43;
RADIO_SCAN = 59;
RDS_AF = 48;
RDS_PTY = 50;
RDS_TA = 49;
RETURN = 22;
RIGHT = 69;
SD = 15;
SET = 7;
SPEAKER = 95;
SPEAKER_SW = 96;
ST = 54;
TELCALLOF = 30;
TELCALLON = 29;
TOGGLE_LEFT = 112;
TOGGLE_RIGHT = 113;
TOUCH = 9;
TPMS = 102;
TUNEDEC = 57;
TUNEINC = 56;
TV = 4;
UP = 66;
USB = 14;
VIEW360 = 92;
VIEW360_UP = 97;
VOLDN = 20;
VOLUP = 19;
X = 42;
reserved
reserved
TorstenH said:
Installation
Option 1 - GPS
Please read previous post to check if this is the best installation type for you.
- Install AppSwitcher AND AppSwitcherStarter.
- Enable automatic start of navigation app in factory settings
View attachment 5927899
and let your device reboot.
Please be aware that changing factory settings will reset some settings on your device like equalizer and radio station presets. This is not an issue of AppSwitcher(Starter).
- Open AppSwitcher and select your navigation and media apps
- Set 'AppSwitcher Starter' as navigation app:
View attachment 5927901
Don't set AppSwitcher itself as navigation app.
- Configure one button of steering wheel to start navigation app (if not already done)
View attachment 5927903
With this setup the head unit will start AppSwitcherStarter after each reboot/sleep whereby AppSwitcherStarter will start the service of AppSwitcher.
Pressing the SWC navigation key will also start AppSwitcherStarter but his will have no effect if the service is already running. Nevertheless the AppSwitcher service will recognize the log entry and can present the AppSwitcher dialog.
The log entry can vary from head unit to head unit so it may be required to adjust the Log listener settings.
Option 2 - MainUI
Please read previous post to check if this is the best installation type for you.
You choose this way of installation at your own risk. It may lead to a bootloop and you should be familiar how to flash a firmware to restore your device in case of problems.
Click to expand...
Click to collapse
Some models of a car - like mine , does not allow changing swc buttons and settings, is there a way to bypass that ?
Anton TNT said:
Some models of a car - like mine , does not allow changing swc buttons and settings, is there a way to bypass that ?
Click to expand...
Click to collapse
Sure. You can help to let the magic happen:
Junsun V1 - Codes
Code description from {Mod edit} Please note: Don't just try a code without to know what happens. E.g. 9191 will lead to the message "device not activated" and you need a file called license.dat. 8888 - restricted settings menu 8878 - full...
forum.xda-developers.com
TorstenH said:
Sure. You can help to let the magic happen:
Junsun V1 - Codes
Code description from {Mod edit} Please note: Don't just try a code without to know what happens. E.g. 9191 will lead to the message "device not activated" and you need a file called license.dat. 8888 - restricted settings menu 8878 - full...
forum.xda-developers.com
Click to expand...
Click to collapse
Thanks good to know
Here is working with mainui option
ramig said:
Here is working with mainui option
Click to expand...
Click to collapse
If you want to test the SWC key remapping via config file, let me know...
I can install MainUI on my unit (8667L), I need to know if the 8667L version is compatible or only for 8667. If it is compatible, is key mapping available for this version?
elalvaro19 said:
I can install MainUI on my unit (8667L), I need to know if the 8667L version is compatible or only for 8667. If it is compatible, is key mapping available for this version?
Click to expand...
Click to collapse
Could you please let me know which firmware you have currently installed by providing a link to the firmware zip file?
Key mapping can be made available but I need you to test because I don't have a 8667(L) unit.
TorstenH said:
Could you please let me know which firmware you have currently installed by providing a link to the firmware zip file?
Key mapping can be made available but I need you to test because I don't have a 8667(L) unit.
Click to expand...
Click to collapse
This is the firmware I currently have installed:
8227L 固件 - Google Drive
drive.google.com
elalvaro19 said:
This is the firmware I currently have installed:
8227L 固件 - Google Drive
drive.google.com
Click to expand...
Click to collapse
Unfortunately I can't extract the firmware with the same tools I use for 8867 and 825X.
Could you please install MainUiUpdater and perform replacement without a MainUI.apk in Download folder? This should create a backup of your MainUI.apk file you can share here.
Hello TorstenH, I have a Junsun 8667Q and I would like to reassign the steering wheel keys, I have a 2019 kia Sportage with CAN, does your MAINUI work for my radio?
The VOICE button opens the google search for me and I would like it to open the google assistant.
Thank you so much

Categories

Resources