[2010-05-17]SchedHandler 3.00 - scheduling application for email (INSTANT EMAIL) - Windows Mobile Apps and Games

[2010-05-17]SchedHandler 3.00 NonPublic - scheduling handling for email (INSTANT EMAIL) and recurring actions
(only for regged user, freeware version will be availible when i'm ready with manuals, videos, homepage)
(freeware version will be availible~ 25.05.2010 )
(if you don't have PayPal Account -> it's also possible to pay via credit-card on paypal link. -> look for: "Don't have a PayPal account?")
{
"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"
}
some default values you can see in pictures ....
.) Scheduler for:
Scanning for:
-> imap idle scanning for new emails (INSTANT EMAIL) + new power saving concept
-> network connection scanner (check the connection and if not valid reconnect again)
-> anti power suspend (sending power heartbeat every X-seconds, and so not going to suspend mode)
-> wheel time scanning (after X-seconds execute...)
--> + extra option for
---- checking if File Exist
---- checking if File Not Exist
---- checking if Application Running
---- checking if Application Not Running
Timeplans when Scanning events are valid
Execution if Scanning is valid:
-> Polling Emails (Pocket Outlook Mailboxes)
-> Kill Tasks
-> Play Sounds (all windows media supported files)
-> Switch Radio, GPRS, Wlan, Bluetooth via ON/OFF/Toggle
additional:
it supports:
+ multiple email profiles
+ multiple email FOLDERS
+ multiple scheduler profiles
+ multiple time plans
+ checking email via "Imap Idle" and/or via "Polling"
+ imap(143) and imaps(993) ssl
+ Polling in free defined time interval
+ Multiple Time Scheduling for:
+> switching on/off/toogle (RADIO, GPRS WLAN, BLUETOOTH)
Manual/Examples:
after install -> load example config -> register card "backup" > in listbox - long keypress -> "load example file"
see a short video for setup easily INSTANT EMAIL -> CLICK ME
see a short video for setup SET BT/GPRS with scheduler ON at morning and at night switch OFF -> comming soon ....(IN PROGRESS)
see on posting 6 -> Posting #6
[Special Thanks
@gmurray -> for creating the open source project "ImapPusher" and inspirating me with his project
@all person which are helping with testing, ideas, comments, etc ......
@SmartPhone - Users: the application have too much options to porting to SP, but the service will also run on SP devices.
only the configuration have to be done one time on a pocket pc or can also be done via an editor on every PC. If you need help on configuring, please let me know.
Different Versions: (since v2.x)
There will be now availible 3 versions:
1.) full version - only for regged users
2.) full version incl. logging to file - only for regged users
3.) light version - the only difference is the EXECUTE plan (it plays on execute event a hardcoded soundfile "trialversion").
(So, it can be fully configured in Schedhandler, and if installing the full version + registering you can use the same config)
DOWNLOAD
(if you don't have PayPal Account -> it's also possible to pay via credit-card on paypal link. -> look for: "Don't have a PayPal account?")
How to register: (v.2.xx)
1) Send "request" file for registering process, this can be done as following:
1.1) install Schedhandler (you can do this in the trail or full version).
1.2) start SchedHandler -> select register card "Register".
1.2.1) Save Path -> (optionally) on the top of this page, you see the path, where the register information will be stored.
1.2.2) Payment-ID -> this ID is very important, because you have to input this ID on the payment page (paypal, creditcard).
1.2.3) Nickname: -> <REQUIRED> choose one and fill in (this is only to know your nickname for support).
1.2.4) Email-Address: -> <REQUIRED> this will be used for registration, support requests.
1.2.5) Email-Account: -> select in the combo box your desired pocket outlook email account, which should be used for sending the request-key file to registration service.
1.3) click button "Create & Send RequestKey" and press "Yes" when you are asked if you want to send the file via your previous selected pocket outlook email account.
2) Payment -> please use the link which is on first page of this forum.
During your payment - don't forget to add your *Payment-ID* in the text field!(see point 1.2.2)
3.) After checking your payment, you'll get your personal registry-key files (reqkey + key)
Save these files into the installtion path of your SchedHandler.
4.) (Re)Start Schedhandler, and if no error or registering popups are shown - everthing is fine!

History: (see attachment for full-list)
3.00 NonPublic 17.05.2010 (only for regged user, freeware will be availible when i'm ready with manuals, videos, homepage)
+ there are now 3 versions.
a) Freeware Version - (no timebomb - only limited in EXECUTION events, inclusive logging to file)
b) Normal (speed) Version - (unlimited version - registered on device+sim card+device name, without logging to file)
c) Log Version - (unlimited version - registered on device+sim card+device name, inclusive logging to file)
+ new WIZARD:Email -> easy configuration for Email(Instant Email or time related Polling)
+ new WIZARD: Link Creator -> easy creating link for any application + special options to start a profile via a single click (executing of scheduler profiles)
+ new SCANNING events
a) Perform Scheduled Events
- -> Check PowerState
b) Perform System Events
- -> PC Card device changed
- -> The System Internet Proxy has changed
- -> The device discovered an infrared comm.
- -> The device connected to network
- -> The device discovered to network
- -> The user turned the AC power off
- -> The user turned the AC power on
- -> A full device data restore completed
- -> RNDISFN interface is instantiated
- -> A RS232 connection was made
- -> DATA syncronisation finished
- -> The system time changed
- -> The time zone changed
- -> The device woke up
- -> The machine name was changed
+ new EXECUTING events
a) Start Delay (before execution start)
b) Notification Message - incl:
- -> Flash LED
- -> Vibrate Device
- -> Shows a notification dialog box (+Title + Text + html code support)
- -> all sound options are having now a *Test* button
c) Polling method
- -> new polling queue system incl. checking if email was downloaded + automatic kill if repllog.exe is hanging
- -> PollQueueSound: if polling was successful -> play a sound
- -> alternative method for polling (would use tmail.exe)
- -> kill all hanging repllog.exe or tmail.exe (only on alternative method)
d) Set Registry Key
- -> GPRS (Always ON/OFF) + idle time
- -> Network Type(UMTS) (-1 no changes / 0=Auto / 1=GSM(2G) / 2=WCDMA)
e) Suspend Mode (can set device to SLLEP mode for a defined time)
+ IMAP SCANNING optimization
+ NETWORK SCANNING optimization
+ new option for *DON'T set to SLEEP mode* (under main-menu MISC)
a) if application are running
b) if file exist
+ new option for *NETWORK TYPE* (UMTS) (under main-menu ConnMgr)
(user are reporting, that 2G(GSM) is using less battery, and want an option to switch)
(the same could be done in EXECUTING event)
a) 0 = Auto / 1 = GSM / WCDMA = 2
+ new option for *SOCKET TESTING* (under main-menu DevSwitcher)
(user are reporting, that 2G(GSM) is using less battery, and want an option to switch)
+ tab *Register* show now if registered version + can send *registration request* via email-account to support
+ IMAP Mail configuration can be verified now (menu -> IMAP Mailbox -> Edit Mail Profile -> *Socket-Check*
+ PowerSaving: optimization for SLEEP mode(example: if HTC Audio Player is playing file -> don't switch to SLEEP mode)
+ bugfixing of all knowing bugs.
+ more support for different mail servers.
+ UIDNEXT (index of emails) will be done now via imap *STATUS* command + support for all server implemented
2.11 release is ONLINE
+ a lot of fixes for socket error handling
+ a lot of fixes for polling to poutlook
+ add new method for checking the emails during polling outlook.
+ fixed autostart time (was always set back to 90sec)
+ new "clean" compile
v2.11c(test version)
+ fixed some bugs on imap scanner - multiple accounts handling - better powersaving
+ fixed several bugs on queue system
+ fixed checking against several double entries in queue removing, because not necc. to dl the same account multiple times ...(ex: if much emails are arraiving in short time)
+ complete new system for communicate to pocket outlook to taken care of new dl emails and to be sure, that polling was working.
if several tries are not helping to get the new emails downloading, then :
- if not working - also check if tmail.exe is hanging and kill it if it is so ...
- if not working - also check if repplog.exe is hanging and kill it + restart it ...
+ graphical interface bugfixing
+ start-execution sound is integrated but not more needed, because polling wll be send to queue and so it will be very fast + the normal "playing sound" is
+ READ SOCKET + RESET SOCKET check, that READ SOCKET is not greater as RESET + correction in UI.
+ fixed bug: if password for SIM, and service startup -> waiting for RADIO signal ...(so on start the RDADIO MUST BE ON)
+ a lot of other things fixed ...
v2.10a
+ fixes on new POLLING SYSTEM
+ add auto filter to filebrowser
-> Log: log/txt
-> File(not)Exist: log/txt/pid
-> Sound: wav/wmv/mp3
-> Execute: bat/com/exe
v2.10
+ add new feature: "Wizard: Email-Config" (for new users i suggest to use this - you find it in menu (right soft menu)
+ add new feature: "file browsing" (for all text fields where a path or file name can be placed ..)
+ add new feature: auto resizing on focus in text fields(more space)
+ add new feature: if registered, then the tab on "register" will be disabled + your infos will shown in there ....
+ complete rewrote "english description" for all options to be more logical
+ add new logic method for normal Polling (handling for polling multiple accounts in ONE-SHOT)
+ add new method for Polling (via tmail.exe polling)
+ add new option for Polling (kill tmail before polling)
+ add new option for playing a start-execute sound
+ fixed a lot of small bugs, graphic, etc...
+ fixed backup listview - sorted now
v2.00
+ commercial version + light version (upload will be on 14.03.2010)
+ power initialize(on startup) and determine the best power saving methode for wm5,6,6.5
+ GPRS/CDMA initialize(on startup) for wm5,6,6.5
+ WLAN initialize(on startup) for wm5,6,6.5
+ easy registration + (optional email) & payment methode incl. automatic return key-file after payment
+ fixes and speed optimizations
v1.99
+ fix bug on first start of SH - IMAP scanning service
+ standalone version of SchedExecute.exe compiled
(last full working version which ends on ~20.03.2010)
v1.98
+ a lot of optimization - speedup
+ error handling fixed some small bugs
+ bug fixing for new mehtode of pausing on IMAP IDLE
+ fixed bug for HD2 User -> add alternative powersaving system (for HD2 which are using the Original ROM)
+ registering option changed - now can send (via email) directly registration file to registrator (you only must select pocket outlook account for sending)
+ download now also possible for unregistered XDA users(please don't mirror to another dl servers - speed is very fast there)
v1.97
+added new options
-> new extra scanning events for IMAP IDLE (file exist, file not exist, application running, application not running)
-> new extra execution events (create file, delete file)
v1.96
+ adjustments in SchedHandler - graphics - options rearrange, etc..
+ small fixes on Network checker + imap idle
v1.95
+ fix on SchedHandler -> timeplan - editing a existing timerange in timeplaner
+ fix on SchedService -> IMAP IDLE - existing emails + UIDNEXT raising...
+ fix on SchedService -> EXECUTE services wakeup settings
v1.94
+ redesign graphical part
+ fix for imap idle - poll in background disable (to wait for answer and play(if selected) sound file after positiv answer of polling)
+ now the new concept is: SchedHandler -> SCHEDULER PROFILE -> TIMEPLAN -> CHECK -> SCAN -> EXECUTE
SCHEDULER PROFILE: <include how the service shoudl be work>
TIMEPLAN: <when it is valid>
CHECK & SCAN:
<CHECK is the extra support for the SCAN> ex: network check for IMAP IDLE
<SCAN is the event which will be checked>
EXECUTE: <what should be execute when the SCAN happen>
v1.93
+ error handling for socket reading
+ add new command line application for starting a scheduler profile via command line..
SchedExecute.exe -exe=<Scheduler-Profile-Name>
ex: if you have a Scheduler Profile created with name: Sched_GPRS_Off -> then you can call it via command line:
use it in this kind: ex: \Program Files\SchedHandler\SchedExecute.exe -exe=Sched_GPRS_Off
(additional multiple Profiles can be called via one shot.)
ex: \Program Files\SchedHandler\SchedExecute.exe -exe=Sched_GPRS_Off -exe=Sched_BT_Off
v1.92
+ some bugs fixed (if a directory doesn't exist, create it, if phone analyse doesn't works, etc...)
+ some graphical bugs fixed (if a directory doesdn't exist, create it, if phone analyse doesn't works, etc...)
+ new option for Polling a mailbox- now will wait if PocketOutlook Mailbox can be polled or not ..
+ new start options for SchedSevice.exe
.) "-delay=90" => start delay with 90seconds
.) "-startup=1" => start the service (if it is running, it will kill the old one and will start it again.
.) "-startup=0" => stop the service (if it is running, it will kill the old one and will kill(exit) itself.
+ new seperate programm: TaskKiller.exe this can be used to kill tasks.
use it like:
1.) "\Program Files\SchedHandler\TaskKiller.exe" (without parameter will kill SchedHandler.exe + Schedservice.exe)
or with parameter
2.) "\Program Files\SchedHandler\TaskKiller.exe" Calc.exe Test1.exe .....
so multiple tasks can be killed via one call.
v1.91
+ add new option -> "SET DEVICE TO WAKEUP" (on EXECUTE PLAN)
for details -> see http://forum.xda-developers.com/showpost.php?p=5687332&postcount=1126
+ add new option -> "Do not send StopDataConnection -> on EXTRA _> NETWORK checker
for details -> see http://forum.xda-developers.com/showpost.php?p=5687332&postcount=1127
v1.90
+ cleanups
+ small changes on default values in SH
v1.89
+ fix for slow IMAP Server
+ debug info optimization
v1.88
+ small cleanups, fixes, speedups
+ extra intelligent imap idle handling added (ex:for kiemlo's mailserver)
+ new sound VOICE files added for all commands
+ new sound logging option: "Log Sound IMAP Traffic" + sound files added for:
.) IMAP connection (if connection to mailserer)
.) IMAP get data (if data comes in on imap socket)
.) IMAP send data (if data will send to imap socket)
v1.87
+ new exit scenario if error on a part of socket reading - then stop reading and try again...
+ new sound logging - for IMAP-IDLE-CONNECT-TO-SERVER
(add wav file "idleconnect.wav")
v1.86
+ cleanup of debugging messages
+ add new option for log level:
Log Level
---------
1 = Basic
2 = Basic Detail
4 = Info
8 = Info + Detail
16 = Error
32 = Error Detail
64 = Debug
128 = Debug Detail
example for logging: if you want: Basic + Basic Detail -> then you must add the values - like: 3
(for all log otions -> 255)
v1.85
+ add checking for SLEEP mode (not go to sleep mode, if EXECUTION PLAN is just processing..)
v1.84
+ fixed autostart - if lnk exist, but not set in config file
+ fixed IMAP logout/closing socket if socket is valid, but no reaction(special case)
+ cleanup of some double log messages
v1.83
+fixes for IMAP IDLE - error handling for bad socket connections and bad socket response on all cmds
+fixes for graphical issues on wm6.5.5
+fix for autostart option - if loading from empty to flagged option.
v1.82
+new log option for IMAP IDLE - error handling for bad socket connections and bad socket response on all cmds
v1.81
+ cleanup version
v1.80
+ add new feature - on EXECUTE PLAN -> setdevice to sleep mode + max sleep time (time should max. wheel time)
+ fixed a bug on Generic error on IMAP IDLE, where the socket doesn't recover - now fixed
v1.79
+ another bugfix for IMAP IDLE
+ fix for validtime checking on open IMAP IDLE check
+ add now option for killing multiple tasks
-> now you can add a list of "KILL TASK" ex:test1.exe;test3.exe;test2.exe;
(delimiter is
v1.78
+ new method of handling for logout + socket closing on IMAP IDLE
1.77
+ another fix on LOGOUT (sometimes LOGOUT can't be recognize)
+ extra debugging lines for timeplan check on IMAP IDLE
1.76
+ fix on LOGOUT for imap idle on gmail accounts
+ some small fixes on communication between NETWORK checker and IMAP idle
1.75
+ fixed double lines for write to file (logging)
+ more debug infos to find imap idle handling error on gmail mailboxes
1.74
+ extra handling for IMAP server gmail
+ extra handling NETWORK
+ extra handling for starting service if RADIO is down. on start it is important that RADIO is ON, because need some infos for GPRS, WLAN, RADIO, BT and on starting a read the devices...
if RADIO is not on on start, then you'll get a msgbox, where it is waiting for RADIO ON.
1.73
+ big changes on the whole sleep module
+ fixes on config tool schedhandler graphic + error handling
+ fixes on service schedservce (NETWORK checker, IMAP IDLE handling for wrong responses from mailserver, etc...)
+ scheduler profiles timecalculation optimization + start time correction
1.72
+ added extrachecking if timeplans are only few seconds diff. to next vaild timeplan( -> now it won't LOGOUT if now time leak to hop next vaild timeplan)
+ small changes on EXAMPLE file (sound for new-email)
+ fixed backup - forgot the sound options to save on backup
1.71
+ finetuning on RESET SOCKET (timeout of IMAP mailserver) will now calculated, so that "IDLE" will not send over this time (add READ SOCKET time to calculation)
so if you set now 1800sec (30min) then it is OK (whatever READ SOCKET value is)
1.70
+ cleanups von imap idle service
+ register card - bigger buttons, bigger fonts - for HD2
(full list see Seperate scheduler history file)
##################################
Todo: (whishlist) in order
+ [DONE 20.11.2009] autostart service
+ [DONE 20.11.2009] autostart checking mail profile
+ [DONE 22.11.2009] autostart logging in MailHandler via list
+ [DONE 22.11.2009] management of multiple user profiles
+ [DONE 23.11.2009] realtime log window in MailHandler
+ [DONE 23.11.2009] debug options with "time stamp" in tracer and log
+ [DONE 23.11.2009] imap idle error handling
+ [DONE 27.11.2009] password -> handling for special characters in password
+ [DONE 30.11.2009] imap (without ssl) support
+ [DONE 01.12.2009] multiple mail profiles checking via imap idle
+ [DONE 03.12.2009] folder support for imap idle checking
+ [DONE 03.12.2009] Rechecking for all options for scheduler plans
+ [DONE 03.12.2009] multiple mail profiles checking via polling
+ [DONE 10.12.2009] management of scheduler plans + Redesign for management input for "SchedHander"
+ [DONE 13.12.2009] activating scheduler for imapidle
+ [DONE 13.12.2009] activating scheduler for wheel time
+ [DONE 13.12.2009] execute polling mailboxes on time scheduler
+ [DONE 13.12.2009] execute start application on time scheduler
+ [DONE 13.12.2009] execute kill application on time schedule
+ [DONE 14.12.2009] execute play sound file on time scheduler
+ [DONE 14.12.2009] more detail + status of service on starting
+ [DONE 14.12.2009] drop box -> reading the mailbox accounts from poutlook for using it as drop list on editing profiles
+ [DONE 15.12.2009] reaching Beta stage, and first "useable version"
+ [DONE 16.12.2009] removing unneeded "Notifications\Named Events"
+ [DONE 17.12.2009] trace file selecting -> now a simple textbox, where you can input the path+filename -> should be enough(not often used)
+ [DONE 17.12.2009] adding function: if schedhandler will be started 2nd time(if running) -> then automatic stop service.
+ [DONE 17.12.2009] option to configure to setup "schedservice" to startup (automatic starting after reboot)
+ [DONE 17.12.2009] Scanning Events: activating events: "file exist or not", "appl. runnning or not"
+ [DONE 17.12.2009] for trace file open/new better dialog box for easier selecting/choosing a trace file
+ [DONE 21.12.2009] Smart Phone Version
+ [DONE 22.12.2009] reaching Release Candidate - creating Release 1.0
+ [DONE 25.12.2009] execute switching on/off/toggle for BLUETOOTH
+ [DONE 28.12.2009] new icons for 128,64,32,16
+ [DONE 28.12.2009] backup/restore option
+ [DONE 15.01.2010] context menu if long clicking an item in lists (ex: delete, edit, add)
+ [DONE 24.01.2010] more info on "STATUS" button (about running service, Scheduler Profiles, Status of current running Scheduler Profiles
+ [DONE 26.01.2010] all GPRS settings (nodata, gb-soft, hd tweak)
+ [DONE 26.01.2010] execute switching on/off of RADIO/GPRS/WLAN
+ [DONE 28.01.2010]RADIO, GPRS, WLAN disable/enable
+ [IN PROGRESS]quick manual for normal user
+ [IN PROGRESS]expert manual for finetuning
Special handling)
=============
.) ssl: no auto install of root cert -> if you have problems, then you HAD TO import the root cert from your certification provider
(in the thread you will also find a lot of information about imap with SSL
.) the kind of connection can be different to Poutlook, which can kill a valid connection, but Poutlook would take his own configured connection. todo: make an option to sync the kind connection from MailHandler to Poutlook
Extras:
VoiceSounds By barty22
DONATION
========
12.12.2009 - plustig50 (ratelutz)
18.12.2009 - druhill
22.12.2009 - kiemlo
28.01.2010 - laggflor
28.01.2010 - burkilos
20.02.2010 - barty22
20.02.2010 - dalavar
BUGS
====
FEATURE REQUEST: (priority in sort order)
===============
- easy register process (auto-email + sending request key file, after payment auto getting key file)
- update function (to see what is the current version )
- adding an icon in taskbar to see if service is running or not.
- file browser for selecting sound files, etc..
- removing opennet and try to use internal taskmanager handling for starting/killing/info of application[NOT PLANNED - cosmetic]
- Execute Event: "Notification message" with configurable message text + variables[NOT PLANNED - cosmetic]

Manual for SchedHandler v1.00 22.12.2009
Features:
.) Scheduler for:
Scanning for:
-> network connection scanner (check the connection and if not valid reconnect again)
-> anti power suspend (sending power heartbeat every X-seconds, and so not going to suspend mode)
-> imap idle scanning for new emails
-> wheel time scanning (after X-seconds execute...)
--> + extra option for
---- checking if File Exist
---- checking if File Not Exist
---- checking if Application Running
---- checking if Application Not Running
Timeplans when Scanning events are valid
Execution if Scanning is valid:
-> Polling Emails (Pocket Outlook Mailboxes)
-> Kill Tasks
-> Play Sounds (all windows media supported files)
-> Switch Radio, GPRS, Wlan, Bluetooth via ON/OFF/Toggle
Conecept/Idea:
There are 2 groups:
1.) SCANNING EVENTS
2.) EXECUTION EVENTS
if the *SCANNING EVENTS* is valid, then do *EXECUTION EVENTS*
*SCANNING EVENTS WITHOUT DOING AN EXTRA EXECUTION EVENT*:
there 2 exclusion: "Network Connection" & "Power Heartbeat"
(on Event Network Connection -> this is a service which will check that the connection + try to connect
and will tell "imap idle service" if connection is good o not.
If *off*, imap idle will think, that the connection is GOOD.This event will not be used for EXECUTION events.)
This service will only be started once. IF configures multiple times, only the first in the list will be used.
(on Event Power Heartbeat -> it will send only a "power on event every X-seconds. This event will not be used for EXECUTION events.)
This service will only be started once. IF configures multiple times, only the first in the list will be used.
*SCANNING EVENTS WITH DOING AN EXTRA EXECUTION EVENT*:
Scanning event: Imap Idle if new email arraived, then do EXECUTION PLAN
Scanning event: Wheel time checking if wheeltime is over, then do EXECUTION PLAN
wheeltime have some more options and will use it as "AND" checking:
-> FileExist
-> FileNotExist
-> AppicationRunning
-> AppicationNotRunning
(ex: WHEELTIME + FILEEXIST + APPL.RUNNING = if wheeltime is over + defined file exist + application is running, if all is true, then do EXECUTION PLAN
*SCANNING EVENTS CAN BE CHECK AGAINST A SCANNING TIMEPLAN*:
if timeplans are defined with crossover times, then the offline time is smaller - better explained as: if a valid timeplan is found, then it is "ONLINE TIME".
with timeplans you can define the time where the scanning event is valid - or better explained: in undefined time, the scanning services will be paused.
if timeplan is complete disabled - then the whole time is "ONLINE" time and scanning events won't be checked against timeplan and they will then always be running.
often we are talking of "ONLINE" and OFFLINE" time.
"ONLINE" time is the defined time, where the scanning events should be done.
"OFFLINE" time is the undefined time, where the scanning events will be sleep.
*EXECUTION EVENTS*:
if the scanning event is valid, then doing this execution events:
Execution Event Polling Mailboxes (Pocket Outlook polling).
if you want, that ex: on new emails arraived on scanning event *Imap Idle*, then you must choose this option
Execution Event Execute Command Execute the command in hidden mode (incl. parameter are allowed
Execution Event Kill Task Kill all of the defined task (If multiple running, then it kills all of them)
Execution Event Play Sound Play a sound file (all files which are supported from your windows media player are allowed)
Execution Event Switch Commands You can switch Radio, GPRS, Wlan, Bluetooth.
You can switch this via: ON / OFF / TOOGLE (toogle = if on then switch off // if ON then switch it OFF)
----------------------------------------------
----------------------------------------------
Explaination of all Parameter:
----------------------------------------------
1.) Main Window
SCHEDULER PROFILES:(list) Shows all Scheduler Profiles. If an item is disabled, then the name is shwon: name+(Sched-Dis) .
New(button) Create a new scheduler profile.
Edit(button) Edit an existing scheduler profile. You must select one scheduler profile in the list before clicking.
Delete(button) Delete an existing scheduler profile. You must select one scheduler profile in the list before clicking.
IMAP IDLE MAILBOXES:(list) Shows all Imap Idle Mailboxes. If an item is disabled, then the name is shwon: name+(Idle-Dis) .
New(button) Create a new imap idle mailbox.
Edit(button) Edit an existing imap idle mailbox. You must select one imap idle mailbox in the list before clicking.
Delete(button) Delete an existing scheduler profile. You must select one imap idle mailbox in the list before clicking.
TRACE FILE: The tracer is a seperate service, which will listen on a TCP port to catch trace informations from SchedService.
This option can be used for error finding, you can log a lot of details in extra log file.
(checkbox) There you can enable or disable it.
(Listbox) There you can input the full path+ filename for tracing (example: \Storage Card\SchedTracer.txt).
DEFAULT VALUE: \Storage Card\SchedTracer.txt
STATUSPORT FOR TRACER:(numfield) TCP Port on which the tracer service is listen.
DEFAULT VALUE: 51982
LOG SCREEN: Some informations can be print direct in logscreen (ex: Status, etc..).
Only system messages from SchedHandler can be displayed.
(button) If press you can switch between *maximized* or *minimized*.
----------------------------------------------
2.) Scheduler - Profile Settings
PROFILE NAME:(checkbox) If activated, then this Scheduler Profile will be active and will be checked.
The profile can be enabled or diabled via checkbox. If Disabled it will be shown in Main Menu: name+(Sched-Dis)
TIMEPLAN VALIDATION:(checkbox) If activated, then it will be check the scheduler profile against valid timeplans.
So you can define when your scheduler plan is active(ONLINE) and all not defined time is then "OFFLINE".
if you want to make a timeplans over midnight:
ex: 9:00 to 03:00 -> then make a plan from 00:00 to 03:00 + 9:00 to 23:59
If disabled, then it will be checked all the time (24hrs)
New(button) Create a new timeplan + display the extra (overlayed) editor for timeplan.
scheduler profile.
Edit(button) Edit an existing timeplan. You must select one timeplan in the list before clicking.
It will open the timeplan editor and will be delete the old timeplan. So, please you must click then *add* after changes.
Otherwise you will loose this one timeplan.
Before *hiding* the timeplan editor - check the timelist if all wanted lines in the list.
Delete(button) Delete an existing timeplan. You must select one timeplan in the list before clicking.
-->
2a.) Scheduler - Timeplan Editor
There you can select the time (starttime and endtime).
Additional you can select(checkboxes) the days which you want to be valid.
if you want to make a timeplans over midnight: (Friday 9:00 to 03:00), then you have to do:
-> 1line = 00:00 to 03:00 (Saturday) + 1line = 9:00 to 23:59 (friday)
Add(button) Add actual timeplan values to list. If no day8s) selected, then messge will be displayed), because it is not valid.
If you want a plan for the whole day, then select all days before.
Hide(button) Add actual timeplan values to list. If no day8s) selected, then messge will be displayed), because it is not valid.
If you want a plan for the whole day, then select all days before.
----------------------------------------------
3.) Imap Idle - Mailbox Settings
IDLE ACTIVE:(checkbox) If activated, then this Mailbox can be selected in the Scheduler Settings Menu and can be added to a scheduler profile.
The mailbox can be enabled or diabled via checkbox. If Disabled it will be shown in Main Menu: name+(Idle-Dis)
If Disabled, then it won't be disaplayed in the imap idle mailbox list under "Scheduler Profile - Settings".
POLLING ACTIVE: If activated, then this Mailbox can be selected in the Scheduler Settings Menu and can be added to a scheduler profile.
MAILBOX:[/B(textfield)] Here you can set a free definable name. This name must !not! the same as in pocket outlook account.
USER:(textfield) Here you have to input the username from imap idle mailbox (often it is the same as your email address).
PWD:(textfield) Here you have to input the password from imap idle mailbox.
PWD: Save(checkbox) If enabled, then password will be saved. I strongly prefer to do so.
Your password will be saved as strong encrypted password with an special unoff. 4096bit key.
SERVER:(textfield) Here you have to input the server domain name from imap idle mailbox (ex: imap.gmail.com).
Additional you can also input an valid ip-address, which can be also be used.
MAIL FOLDER:(textfield) Here you have to input the Mailbox folder from imap idle mailbox (ex: INBOX).
Addional you can here insert multiple folders sperated by ";" (ex: INBOX;INBOX/Drafts;INBOX/Sent
But only on new login all folders will be checked and last in the list will be checked all the valid time.
If you want to check multiple FOLDERS all the time, then you must create for every FOLDER a own Imap Idle Mailbox
PORT:(numfield) Here you have to input the port from imap idle mailbox.
DEFAULT VALUE:143 for imap(PLAIN) // 993 for imaps(SSL)
SSL:(checkbox) Here you can select to use SLL - or if disabled PLAIN tcp will be used.
RESET SOCKET:
this is the time, where the connected imap socket will be checked ACTIVE against the server - > active= sending "IDLE" status command to server.
if the server won't answer, then would logout. otherwise do "read socket".
Gmail make timeout of connected sockets all 300sec. so a longer time as 300 won't make sense for gmail account.
Also it seems to be, that the most PDA devices cannot hold a socket longer open as 300sec only listening (without traffic).
On other imap server there can be a higher timeout be configured(my own server has 60min)
-> also after every "socket reset", the network connection and the full timeplan will used to calculate the next valid timeplan and will be rechecked if valid or not ....
- - >If timeplan is offline, then it will be sleep til next vaild timeplan.
- - >if network connection is down, then logout from server and waiting for a valid network connection
DEFAULT VALUE: 300sec for gmail account and higher values for ohter server (related on config of imap server)
FYI: Data will be send to server (IP Traffic - send "IDLE" command and server send answer back)
READ SOCKET: this is the time how long listen on the tcp socket to get new data from server.
If this time is over, then the next round will just suddenly begin and it listen(reading socket) again.
If the time would be set to 1sec, then more cpu load, because and only 1sec will be listen and then timeout and try next round.
-> also after every "socket read", the network connection and timeplans will be rechecked if valid or not ....
- - >If timeplan is offline, then it will be sleep til next vaild timeplan.
- - >if network connection is down, then logout from server and waiting for a valid network connection
DEFAULT VALUE: i think a value 30 will be good enough
FYI: No data will be send to server (no IP Traffic output will be generated).
Settings for new power saving on IMAP IDLE:
Wheel // READ SOCKET // READ SOCKET POWER HEARTBEAT // WHEELTIME // READ // SLEEP // WAKEUP // Power Save
1min // 0 55 60 5 50 5 10:50
2min // 73 115 120 5 110 5 10:110
3min // 73 175 180 5 170 5 10:170
best value will be: 2min // READ SOCKET=73 // READ SOCKET POWER HEARTBEAT=115 // (= 120sec per read)

Nice work Camro thank you.
First one to post haha..
Grtz Leo

camro said:
Hi
Here the new tool:
MailHandler (v.63)
it based on ImapPusher 0.61 + (xmapPusher from fixup)
basic features:
# handling with original email programm (poutlook)
it will poll poutlook the send/receiver command if new messages are arraived via:
+ dealing with the profiles from poutlook
+ imap idle support
+ polling support (not ready yet)
+ scheduling of free time ranges
+ a lot of features ... more in short time ....
for more detail
see: posting
http://forum.xda-developers.com/showpost.php?p=4970174&postcount=69
http://forum.xda-developers.com/showpost.php?p=4985946&postcount=77
i worked the last 3 days on this tool - and now i'm tired.......
for now i go to sleep and then i will support you with more deails and a helpfile
cu camel
Click to expand...
Click to collapse
It does not seem to work here. I get an error when I try to add/edit an account. It tells me that "ensureconnmgrready" is trying to Pinvoke DLL "SSLLib" which was not found.
starting the service gives me a connection refused error.

some examples....
i want that:
EXAMPLE1: (can be done via only one "Scheduler Plan")
========
SCAN:
1.) check that i have a internet connection (like timeplan in Pt.3)
2.) checking emails from my imap idle BOX1 (like timeplan in Pt.3)
3.) scans are valid on timeplan 9:00 to 18:00 (Mo-Fr)
4.) scans are valid on timeplan 11:00 to 15:00 (Sa-So)
EXECUTE:
3.) if new emails arraiving on IMAPIDLE Box "BOX1" then do:
a) poll (Poutlook) emails from Mailbox "BOX1" + "BOX2" + "BOX3"
b) play sound file: "\Windows\Alert.Twitter.wav"
setup:
+ create scheduler plan ex: name: "IMAP-IDLE"
(now: Scanning plans ..)
+ add timeplan (click new "NEW"), then change the values as you want it and click "add"
after doing this, then click "Hide" (then the time editor is hidden again)
+ select "Network Connection"
+ add your "server address" which you want to use for checking (ex: google.com)
+ choose your wanted "Connection": "Auto" / Strict "Off" (so i let windows the logic desicion)
+ setup "Disconnection rechecking": "30" (i use this, then if the phone can't make a network connection (in my cellar), then it try to make a connection all 30sec again)
(FYI: The scanner for "Network Connection" does just suddenly see, if the connection is broken, and only try a connection if not vaild).
+ Activate "Imap Idle", then you can add from right list to leftlist via button "<<" or remove from left list via ">>"
(FYI: you must select before the wanted item in list and then click the button "<<")
(FYI: in the list are all Imap Idle Maiboxes which you created in SchedHandler)
(now: Execute plans ..)
+ Activate "Polling Mailboxes", then you can add from right list to leftlist via button "<<" or remove from left list via ">>"
(FYI: you must select before the wanted item in list and then click the button "<<")
(FYI: in the list are all Maiboxes from your "Pocket Outlook")
+ Activate "Play Sound", then you write in the textbox: \Windows\Alert.Twitter.wav
(FYI: You don't need to use sign: "" or something - only write the filename to the textbox)
That's it
----------------------------------------------------------------------------------
EXAMPLE2: (can be done via only one "Scheduler Plan")
========
SCAN:
1.) check all 20minutes (20x60=1200sec)
3.) scans are valid on timeplan 9:00 to 18:00 (Mo-Fr)
EXECUTE:
3.) if the "wheeltime" (Pt.1) is over then do:
a) poll (Poutlook) emails from Mailbox "BOX2" + "BOX3"
EXAMPLE3: (i want a hourly sound alarm..)
========
SCAN:
1.) check all 60minutes (=3600sec)
2.) scans are valid on timeplan 9:00 to 18:00 (Mo-Fr)
EXECUTE:
3.) if the "wheeltime" (Pt.1) is over then do:
a) play sound file: "\Windows\Alert.Twitter.wav"
(here is important, that you start the service before the timeplan is valid,
otherwise from beginning starting the service "schedservice" all 60minutes the sound will be played ....
and after first "oofline time" it would be correct again"
EXAMPLE4: (i want to poll emails only on: 9h 10h 11h 12h - Mo-Fr)
========
SCAN:
1.) check all 0sec (=0sec) (but activate wheel time for it !!!)
2.) scans are valid on timeplans:
a) 9:00 to 09:00 (Mo-Fr)
a) 10:00 to 10:00 (Mo-Fr)
a) 11:00 to 11:00 (Mo-Fr)
a) 12:00 to 12:00 (Mo-Fr)
EXECUTE:
3.) if time is reaced like timeplan(Pt.2), then do:
a) poll (Poutlook) emails from Mailbox "BOX2" + "BOX3"
this samples should only help you to see, what is possible.
howtosetup:
=========
1.) create you imap idle accounts (if wanted ..)
2.) create scheduler plan and there the logic is:
a) Scanning Events (Network connection / Imap idle / etc ...)
this are the events which will be checked (imap idle= email checking / wheeltime = scaning if time is over / etc...)
b) Timeplan for Scanning Events (which time should they are checked ? - if no plan then wholetheday is valid)
c) Execute Events -> when Scanning Event is valid (imap idle has found emails / or / wheeltime is over ..)
then do:
-> poll emails(choose your mailboxes in list)
-> execute a file(full path+filename)
-> kill a application(only the filename of application)
-> play a soundfile(full path+filename)
-> switch On/Off/Toggle Radio, GPRS, WLan, Bluetooth
that's it.
FAQ
Q:are there somewhere registry entries made?
A: NO/YES -> only Notifications are added (\\.\Notifications\NamedEvent\SchedHandler_*)
Q: Where is the settings file ?
A:see in Application Data\SchedHandler\ -> Filename is "SchedHandler.xml"
Q: can i uninstall/update with new version the programm ?
A: Yes
#####################################################################################
EXPLAINATION/CONCEPT/BACKSTAGE
hi,
well it seems to be, that Fixup made the core stable enough to think about some extra stuff....
thanks - great job...
and so i will think about to expand this project.
################################################## ################################
1) QUESTIONS: some questions to you:
1.1) who wants/can to help with development on this project ?
i don't want to devel on diff. ways on the same thing ... so - want teamwork for it
1.2) please write down your ideas and comments.
1.3) new name for the product ex: "MailHandler", "SchedulerPlaner" please come in with some ideas ...
before i start with changing code ... i thnk about and some ideas from my side....
What should the programm can do ?
--------------------------------------------------------------------------------------
2.)FEATURES
2.1) HANDLING FOR POLLING THE STANDARD EMAIL PROGRAMM (starting "send/receive" command from tmail.exe)
the idea behind is to set in poutlook always: "send/receive - manually"
and the request "send/receive" command will pushed via this tool
this can happen in 2 ways:
a) polling via periodic time (free choosing the time in sec)
b) imap idle -> only if a new email is arrived, and always hold the connection to imapidle
(or combination of both)
2.2.) MAIL SCHEDULING POLLING with time ranges
the idea behind is, that a lot of guys don'T want to get 24h the emails (sometimes sleeping)
and so the email checking/polling should not always be happen.
This should work on 1a) and 1b)
--------------------------------------------------------------------------------------
3.)EXPLAINATION/EXAMPLES:
The idea behind is: to set poutlook always to "Send/receive" to "manual"
and now there are 2 kind of cycling send/receiver
a) via IMAPIDLE: imapidleservice and checking the internet-connection all X minutes (value from "CYCLE")
b) via DEMAND: (i will call it "polling" later) imapidle will be disabled and from beginning of "Starttime" til "Endtime"
and all X minutes (value from "CYCLE") will send the "send/receive" command to poutlook
ex: Profile: DEMO1 -> option for:
Scheduler
=========
Days_________________|_Starttime_|_Endtime_|_(I)MA PIDLE_|_recheck time of connection in sec
Mo,Tu,We,Th,Fr,Sa,Su_|_HH:MM_____|_HH:MM___|_(P)OL LING__|_or periode time when sending polling command in sec
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
X__X__X__X__X__-__-__|_00:00_____|_03:00___|_P__________|_3600___(A)
X__X__X__X__X__-__-__|_09:00_____|_12:00___|_I__________|_900____(B)
X__X__X__X__X__-__-__|_12:30_____|_21:00___|_I__________|_900____(C)
X__X__X__X__X__-__-__|_21:00_____|_00:00___|_I__________|_3600___(D)
-__-__-__-__-__X_____|_08:00_____|_20:00___|_P__________|_7200_ __(E)
-__-__-__-__-__-__X__|_09:00_____|_18:00___|_I__________|_1800___( F)
(A) = monday til Friday from 00:00 to 03:00 -> check via polling and periode all 3600sec
(B) = monday til Friday check via Imap Idle 06:00 - 12:00 and recheck of socket all 900sec.
(C) = almost the same like (A) but other time range ..
you can see the time hole between (A) and (B) of 12:00 til 13:00 there will nothing happen (no imapilde, no polling)
(D) = like the same as (A) but other time range (A+D -> i think in this way it is easier for "over midnight handling"
(E) = on saturday from 08:00 to 20:00 -> check via polling and periode all 3600sec
for time range checking on imap idle will also be a good idea to use one extra paramter (is the actual time a valid time ?)
(so the application don't must check every second if the time range is valid, because this could cost battery)
so, therefore one extra option will be good: -> $TIMECHECKPERIDE = 60 sec
--------------------------------------------------------------------------------------
4) PARAMETER
4.1) Global parameter
- EnableTracing => (ON/OFF)
- DoTracing="True"
- TraceFileLocation="\Application\imappusher\imappus her.txt" (path + file name)
- SpecificConnection="0" (Auto, Internet, Work, etc...)
4.2) Box parameter
- MailboxName="Camel-Mobil" (String (!Be careful! Exact the same name of the poutlook profile)
- Username="[email protected]"
- Password="ABCDEFGHIJK" (decryted)
- Server="mail.xxxxx.com"
- Port="993" (1-65000) (automatic ssl check)
- StatusPort="51982" (1-65000)
- SpecificConnection="0" (get it from list internal list = Automatic, Internet, Work, etc...)
- TimePeriodeCheck="300" (0-86400 checking if the time is valid for imapidle checking or polling on time -> point 4.3)
4.3) Box time parameter (a array list of)
- Day="127"(1=Mo,2=Tu,4=We,8=Th,16=Fr,32=Sa,64=Su) so if you want Monday+Sunday then 64+1=65 / Mo-Su=127
- TimeStart="09:00 (HH:MM in 24h format, midnight = 00)
- TimeEnd="00:00 (HH:MM in 24h format, midnight = 00)
- MailMethod="P" (P=Polling / I=IMAP Idle / E=External command)
- ConnectionCheck="300" (on imap ilde the time for checking the internet-connection / on polling recyle time)
(only internal infos)
EDIT: => you don'T must change it per hand -> i'm making a manager for it.
additional informations on:
http://forum.xda-developers.com/showpost.php?p=4970174&postcount=69
http://forum.xda-developers.com/showpost.php?p=4985946&postcount=77
i worked the last 3 days on this tool - and now i'm tired.......
for now i go to sleep and then i will support you with more deails and a helpfile

From the previous thread:
camro said:
wau, thank you for the comments ....
yes, i will suddenly include this...
so i will make option for every "Scheduler Plan" options to:
in Offline time: switcher (off/on) RADIO /GPRS / WLAN / BLUETOOTH
in Online time: switcher (off/on) RADIO /GPRS / WLAN / BLUETOOTH
"Online" time is the defined time in scheduler plan
"Offline" time is the undefined time in scheduler plan
is it also neccesary to disable a "connection" (like appl. "NoData" ?)
or is enough to have an option to disable the whole "GPRS" in offline ?
if no scheduler plan, then all the time checking (via imapidle or polling)
--------------------------
well the full structure for scheduler plan is ready.
but, please if it is ok, please let us following on the other thread of "MailHandler".
cu camel
PLS: do somebody have additional whishes or comments ? -> please post it under "MailHandler" thread
Click to expand...
Click to collapse
To be honest, it is to stop someone waking me up at 3am or sending a text which does the same, may as well also close the GPRS connection too (or have to, getting into the realms of making the phone ringtone silent during set hours is more involved and there are commercial applications out there that attempt it)?
Hi Leo

well, ok, after a lot of hours work ....
next version ...
please test and try if you can get it crashing, so that i can handle all possible errors.
for now it should really good work
if the base is stable, that i will include the scheduler and polling
por now, please test multiple email account, imap idle is now stable, etc...
cu camel

does idle play nice with folders yet?

i'm not sure if you know what imap idle is ....
and how the communication between the mail server and client is ...
http://tools.ietf.org/html/rfc3501
and how do you get incommings mails in specila folders ?
you are working via sieve scripts = on port 2000 ?
anyhow ....
the mailhandler should makes the handling when a new email arrived, then send to poutlook "hey poutlook, there are new emails on server please call *send/receiver" command.
and so, ti makes sense to switch the mode in poutlook completly to "manually" period email checking and MailHandler will make the check via:
"imap idle" and/or polling and/or after time periode (cycling+scheduler plan)
SO, it is possilbe, to deactivate(no checking emails after midnight when you are sleeping ...)
This is the concept behind the whole plattform and to save battery and extra costs...
for IMAP IDLE dealing with folders .... haven't heard, that poutlook can do that.
maybe if you have information aor which command to send to mailserver -> please send info to me.
cu camel
cu camel

error
I get get error
Camel:Connected
Exceptio:Either the application has not called WSAStartup, or WSAStartup failed
any idea?

I get the following error, no matter if I use SSL/993 or no SSL/143:
Camel:IsConnected
Exception: Either the application has not called WSAStartup, or WSAStartup failed
There's another message in the log window:
!Warning-A02! It was not possible to start the service. No connection could be made because the target machine actively refused it.
The IMAP host is a Cyrus-IMAPd server I maintain and I couldn't spot any connection attempts in the log (Outlook works fine).
Also, what is "Status Port" for?

Camro, can this work with other mail programs, such as FlexMail?

finally someone who picked up where emailscheduler stopped. Great!
I'm getting however, the same error as above.
Should I install .NET messages or do you have enough debug info

plustig50 said:
I get get error
Camel:Connected
Exceptio:Either the application has not called WSAStartup, or WSAStartup failed
any idea?
Click to expand...
Click to collapse
Thanks for report, i woll look into ...
@all
i built in very much info messages, because imappusher doesn't have this and tried so long as iit was possible to connect, but i think it is important to make a "clean base", and therefore for now are too much infomations, which i will on next version only in log window.
additional - sorry for the graphic zooming on "log button", which is working perfect on the emulator (because my real HTC HD is in this moment deadflashed , and i can only test on emulator
i will now fix my pda at first.
Hopefully, the next version (0.65) should be useable for imap idle.
cu camel

kiemlo said:
I get the following error, no matter if I use SSL/993 or no SSL/143:
Camel:IsConnected
Exception: Either the application has not called WSAStartup, or WSAStartup failed
There's another message in the log window:
!Warning-A02! It was not possible to start the service. No connection could be made because the target machine actively refused it.
The IMAP host is a Cyrus-IMAPd server I maintain and I couldn't spot any connection attempts in the log (Outlook works fine).
Also, what is "Status Port" for?
Click to expand...
Click to collapse
therefore i will concentrate and will there make more log messages to get more detail.
what i see is, that it react on the ssl certs different to outlook. also i see problems on the old imappusher with special char passwords (ex: !"§$%&/())=? <- if one of them is inside, then there is an problem. this should be fixed but have to test this.
Password (String) -> convert to HEX -> encrypt it -> SAVE IT.
status port is for extra comm. on server. i have to verify it, that it also work without it.
i will at first remove the "normal messages" with "OK" confirm and will put it to tracer or/and log window, then it is better for testing ....
thanks for your comments.
cu camel

SimpTheChimp said:
Camro, can this work with other mail programs, such as FlexMail?
Click to expand...
Click to collapse
yes (not yet implemented, but very soon it is possible to execute commands.
and the idea to send an external command on imap idle -> this is brand new for me and i will add it to the TODO list.
this can then be done via:
1.) via scheduler plan with polling: sending a command on special time + recycle time via "external command"> so therefore you only need the command + parameter which MailHandler should execute. So we need this info from fleximail.
2.) via scheduler plan + imapidle service -> imap idle service is running and see, that there are messages on the mail server, and then (not call poutlook) send execute a special command which start fleximail + receiving emails.
so in both cases -> we need the information from fleximail devels:
a) which command should be executed for fleximail ?
b) which command paramter should be called to "receive" emails from account "X"
ex: "\Program Files\Fleximail\FlexiMail.exe <ACCOUNT> <GETMAIL>"
maybe one of you can call them and ask them to get this information.
thank you very much for the new idea.
cu camel

kaliman said:
finally someone who picked up where emailscheduler stopped. Great!
I'm getting however, the same error as above.
Should I install .NET messages or do you have enough debug info
Click to expand...
Click to collapse
yes, it think i have for now enough infos and i will create very fast a new version where:
.) that we got more detail in log window
.) removing the messages where the "OK" button is to press.
.) removing the bug if pressing "x" on creating a profile
.) WSA error bug fixing
.) password in plan in log window to be sure if it is correct, if there are special chars.
.) status port checking if 0 , then the automatic should work, which seems to be not working now
tomorrow i should be ready with the next version.

new version is up.
@devels
i saw, that imap idle is only valid in ssl, is there some devels which can help me to make some fiunctions to normal imap (socket) functions ? c++ coders
please let me know, because i want the basic clean before implementing the scheduler stuf.
please test this versio and let me know your comments
cu camel

Hi,
currently my Gmail account it set to send/receive every 60 minutes. Should I change this to manually before trying this tool?

Related

HButton - maps more apps on HW buttons

NEW VERSION 2.3
*** this application is no longer developed. Last version (2.3) is attached to this post ***
I didn’t find freeware application for assign more applications to one HW button using hold-button, so I decided to write my own. Here is result.
Application HButton can be used to assign more applications to one HW button. If you press the button, the first application is run. If you hold button till device vibrate, second app is run. If you hold button till second vibrate, third app…. And so on, and so forth.
Usage:
* Install attached cab.
* Run HBSetup (Programs - HButton - HBSetup), setup up to 5 applications to Button1
* Start Setting – personal – Buttons and assign HButton1 to any HW button.
Now you can run all selected applications using this one HW button.
Any topics welcome.
Hundera
[18.5.2007] UPDATE
I uploaded new version 1.2.
Contains new options for starting applications
* vibrate
* beep
* display name on screen
[22.5.2007]
Version 1.3
* "unlimited" num of apps on one button
* <None> application
* option to cycle thru applications
* option to notify first application
[25.5.2007]
Version 1.5 - please uninstall previous version (not necessary on WM5, WM6)
* Fix: Bugs in installation and setup on devices with localized ROMs
* Fix: Unable to remove first app in list
* Fix: Not working for some buttons on Universal
* Could be installed on Storage Card (Only HBSetup.exe)
* <Clock> application
* Positioning of info box.
[2.6.2007]
Version 1.6
* <Today> application
* HButtonTask - task switcher like alt+tab. (first app is always today)
[6.6.2007]
Version 1.7 - fixed bugs with PHM keys
* Possibility to start application with params
* HBSetup search for links in linked directories
* HBSetup doesn't assign .lnk file, but parse it and assign exe with params
Vesion 1.8 - added some "applications"
* <Ok/Close> (minimize app)
* <Quit> (terminates app)
* <Start Menu>
[7.6.2007]
Vesion 1.8.1 - Fixed bug with param parsing
[30.9.2007]
Version 1.9.1
* <Back> - switch to previously opened application
* HButtonTask - first item in list could be Today or previously opened application
* Fixed: Device reboots when <QUIT> is used on "Programs"
[23.10.2007]
Version 2.0
* <Rotate Left>
* <Rotate Right>
* assignment to HW buttons could be done directly in HBSetup
* Label configuration - size, font size, colors
* Fixed: install dir in localized ROMs
[29.10.2007] Version 2.1
* <Toggle BT>
* <Toggle SIP>
* Fixed: refreshing top window after Rotate
[10.1.2008] Version 2.2
* <Toggle Sound (only WM5,WM6)>
* <Toggle WiFi>
* Fixed: list of applications on PPC2003
* Fixed: directory browsing in HBSetup
[15.5.2008] Version 2.3
* Import / Export of settings
* 2 more buttons (HButton6 & HButton7)
* Browse... select any file to be started by HButton
.NET2.0 necessary
One more remark.
.NET 2.0 is necessary to use HBSetup. If you want to use HButtons without .NET, you can install it from cab and setup it manually using registry editor.
For Notify and flags use sum of numbers for options you want. for example notify=5 means vibrate and display name
Code:
[HKEY_CURRENT_USER\Software\HButton]
Delay : DWORD [I]delay in ms between applications start. (Optional, Deafult 500)[/I]
Notify : DWORD [I]type of notification. 1 - vibrate, 2 - Beep, 4 - display name. (Optional, default 1)[/I]
[HKEY_CURRENT_USER\Software\HButton\Button1]
flags : DWORD [I]flags for this button. 1 for cycle thru apps, 2 for notify even first app, 4 custom delay. (Optional, default 0)[/I]
Delay : DWORD [I]delay in ms between for this button. Only when custom delay is set. (Optional)[/I]
NItems : DWORD [I]number of applications assigned to HButton1[/I]
Item0 : STRING [I]first application[/I]
Item0_name : STRING [I]displayed name of first application. (Optional)[/I]
Item0_param : STRING [I]Parameters of first application. (Optional)[/I]
Item1 : STRING [I]second application[/I]
Item1_name : STRING [I]displayed name of second application. (Optional)[/I]
Item1_param : STRING [I]Parameters of second application. (Optional)[/I]
…
[HKEY_CURRENT_USER\Software\HButton\Button2]
[I].. same for others buttons[/I]
[HKEY_CURRENT_USER\Software\HButton\ButtonT]
flags : DWORD [I]flags for task. same as other flags + 8 for show next application + 16 for first item is last opened application. (Optional, default 8)[/I]
Delay : DWORD [I]same as for buttons[/I]
Special applications:
#t - <Today> (i.e. Item0="#t" )
#o - <Ok/Close>
#q - <Quit>
#w - <Start Menu>
#c - <Clock> (*_name must be set to "<Clock>")
#b - <Back>
Cycling
Hello there.
Its a nice tool. Thanks for that.
What about to cycle through defined applications till the button is released? If I do miss the application which I want to launch - it launches the last defined application. I do think there should be the way how to "cancel" the launching at all or something like this.
Sincerely David
dmisek said:
What about to cycle through defined applications till the button is released? If I do miss the application which I want to launch - it launches the last defined application. I do think there should be the way how to "cancel" the launching at all or something like this.
Click to expand...
Click to collapse
Thanks for remark.
My idea was to start last application immediately, when there is no application left – if you have two applications assigned to one button, second will run exactly after 500ms(or delay you have set).
In your situation, there is necessary to release button in proper time.
But I think, that it could be added as possibility – so user can choose, if
- it will works like now
- it will cycle thru defined applications
- last application will be "CANCEL". (or combination with previous one)
It unfortunately fails to install on my smartphone (VOX).
Can you build a version for smartphone?
Thanks!
Smartphone
I can't promise anything, because I have no experiences with Smartphones.
But I will try to compile it.
I have found the problem of missing the app I want to be a nag as well. As dmisek said, if you have 5 apps assigned to a button and you miss the app you want, you have to take one of the following.
As a quick work around, I created a link to the today screen and added it to the last app of each button. So, the worst case there is that if I miss my intended app, I will at least go back to the today screen.
As a suggestion for a fix, I would probably say to have the apps loop over and over in the list. I would also suggest adding a "Cancel" like you said in the list.
jockyw2001 said:
It unfortunately fails to install on my smartphone (VOX).
Can you build a version for smartphone?
Thanks!
Click to expand...
Click to collapse
As I said before, I have no smartphone. There is some version, but not tested. Use it at your's own risk.
Vibration is not vorking - I used functions that doesn't exists on smartphones. If everythink else will work, I will try to find substitute for this functions.
hopes that help
Hundera
Hundera: Thanks for your time. Unfortunately it still doesn't install ("The installation file is not intended for this device").
The WM6 standard edition on my VOX smartphone doesn't have a button changer in the settings menu.
Does anyone know which executable is responsible for this on a PPC?
Alternatively can anyone provide me the registry keys?
Thx!
Maybe smartphone has no button to map.
On PocketPC it is store in HKLM\Software\Microsoft\Shell\Keys\.
There are keys 40Cx for buttons...
If you havn't these keys, app will not work...
I've got one regkey 40C1 (voice record button) and that's exactly the button I'd like to use with HButton.
Can you write down the steps to install your app manually?
(files and reg keys)
Oh btw, is it the ResetCmd value in 40C1 key I need to change?
Currently it's set to "\Windows\AppButtons\Record.lnk -b"
Hi,
there are two exe files.
HBSetup is for settings HButtons. If it doesn't work, see post with registry description.
Into reg key "Default" add path to HButton with param 1 (or what HButton you will set).
for example "\Program Files\HButton\HButton.exe 1"
ResetCmd is origin value. It's not neccessary to change it.
Bad luck. I can't start button.exe in any way. Not via the 40c1 hw key and neither from fexplore.
I manually created the HButton reg key and the made the change to the 40C1 reg key:
[HKEY_CURRENT_USER\Software\HButton]
"Delay"=dword:000001f4
[HKEY_CURRENT_USER\Software\HButton\Button1]
"Item0"=""\Storage Card\Tools\Fakecursor\Fakecursor.exe""
"NItems"=dword:00000001
=============================================
[HKEY_LOCAL_MACHINE\Software\Microsoft\Shell\Keys\40C1]
@=""\Storage Card\Tools\HButton\Button.exe" 1"
"Flags"=dword:00000000
"Icon"="hotvoice.exe, 0"
"ResetCmd"=""\Windows\AppButtons\Record.lnk" -b"
=============================================
If I press the hw button it starts the voice tag recorder as usual.
Any clue?
Thx for your patience
Did you try HBSetup? works?
Settings in registry looks fine.
What Button.exe does, when you run it from fexplorer? Nothing, or throw some error?
Hundera said:
Did you try HBSetup? works?
Click to expand...
Click to collapse
unexpected error (NotSupportedException).
This is because I'm not running .NET 2.0
Settings in registry looks fine.
What Button.exe does, when you run it from fexplorer? Nothing, or throw some error?
Click to expand...
Click to collapse
nothing
This one will work... hopefully
Yes, it runs fine from fexplorer
But ... it doesn't start when pressing the voice record button
So close ...
Does HTC do something different with the HW keys on Smartphones
strange...
What voice record button does? Start recording as default or do nothing?
If start recording - try to rewrite another reg value in this registry key. Maybe ResetCmd?
If it do nothing - try to write only "\Storage Card\Tools\HButton\Button.exe" into "Default" key, without param 1.
Hundera said:
strange...
What voice record button does? Start recording as default or do nothing?
Click to expand...
Click to collapse
After pressing the button it beeps 3 times and first opens a window "Alert Speak after the audio prompt" followed for a short time by a window "Recognizing Voice Tag" where it says "there is no trained voice tag" and then exits. I never used this application and don't know yet how it works.
If start recording - try to rewrite another reg value in this registry key. Maybe ResetCmd?
If it do nothing - try to write only "\Storage Card\Tools\HButton\Button.exe" into "Default" key, without param 1.
Click to expand...
Click to collapse
Tried both, but to no avail
Perhaps I have to play around with reg keys like :MSVOICE or :MSHOTVOICE in HKLM\Software\Microsoft\Shell\Rai
No ideas :-(

WiFi not connecting at Work (home OK) on TMous HD2

Mark here.
Thanks in advance for any help offered.
Searched around here and elsewhere since last year & can't find a solution. (please don't copy whole message in reply)
Ideal solution either: 1. Able to store/save settings and password so it does not need to be entered every day (many times) or 2. Load certificate correctly.
I have a TMous HD2 running Energy ROM (Feb 2011 version)
Connects fine to home WiFi's without prompts. Also to about 10 others when traveling - no probs.
It does not connect easily to my work WiFi. I have worked out a method, but I need to re-enter settings and password many times a day. With high security p/w with various characters etc it's a real pain.
To do so, I have setup link to WLANSettings.exe on home screen. I use these settings: 1. Work (not internet), 2. WPA2/AES, 3. PEAP (not Smart card or cert). OK. Then asks for login, password (no domain needed). First time enter login etc it doesn't connect. Second time I've learned to hit OK again and after a few seconds it connects.
If I go though the 'normal' WiFi setup it asks for a Certificate. I enter the server for the cert, password as above and it will not find it. They gave me a cert file ('home grown' PEAP Authority certificate Thawte Premium Server CA) but it loads into Intermediate, not Personal and does not work. Apparently iPhone & iPad link to cert server and install it fine.
Tried:
1. I tried Odyssey (Odyssey Access Client for Windows MobileCE - Juniper Networks ). Helps, but not perfect, but it messes up my home connection. so uninstalled (updated ROM since then)
2. Tried programs to load cert. No go. (p12imprt, pfximprt; smartphoneaddcert). Various error messages - can't remember them - along the lines of not signed, not .pfx cert etc.
3. Exported cert. from PC's (WinXP) Firefox. Can't convert it to a .pfx to use the above.
Work does not support Win Mobile. So no support offered - though they've tried to help.
The settings for my mates Nokia which does work are:
PEAP and the fields are:
Personal certificate: not defined
Authority certificate: Thawte Premium Server CA User name in use: user defined User name: 'must leave blank'
Realm in use: user defined
Realm: 'must leave blank'
Allow PEAPv0: Yes
Allow PEAPv1: Yes
Allow PEAPv2: No
Under MSCHAPv2 within PEAP settings are
User name : your 'username'
Prompt password: no
Password: your 'password'
Have tried following also (rough notes):
HKEY_LOCAL_MACHINE\Comm\EAP\Extension\25.
"InvokePasswordDialog" and "InvokeUserNameDialog" value 1, switch to 0. Works till restart.
go to commMan/ menu/ settings set work & proxy or commMan/Conns/conns
changed to HKLM, gone to directory comm\EAP\extension\25. added a folder called validateservercert and added a key to this folder - DWORD. it asks me to edit the DWORD value - in value data i have added 00000000 and selected hexadecimal.
add the key [HKEY_LOCAL_MACHINE\Comm\EAP\Extension\25] and [HKEY_LOCAL_MACHINE\Comm\EAP\Extension\26]

			
				
Mmm... 'tis a difficult one.
>"Ideal solution either: 1. Able to store/save settings and password so it does not
>need to be entered every day (many times) or 2. Load certificate correctly."
Another alternative would be software to manage WiFi login - that saves passwords.
I tried Odyssey, but it messed up home connections. WiFi Monster does not do it.
Anything out there?
Mark

[A][SGS2][Serial] How to talk to the Modem with AT commands

This is a LIVE guide to communicating with your phones modem by AT commands. The information contained here is collected on a continuous basis from various places after having some trouble finding all relevant information in one place. Now this place is here, and if not please post a comment on what's missing and where to find it, if you do know.
All results in this guide have been obtained using a Samsung Galaxy S2 running a stock rooted GB 2.3.4 with PDA:XWKI4 and PHONE:XXKI1 on the 2.6.35.7 Kernel.
The key documents to have as a reference when working with the Android AT command set are found at the 3GPP site. In particular these 2 documents:
[1] The ETSI GSM 07.07 (3GPP TS 27.007) specifies AT style
commands for controlling a GSM phone or modem.
[2] The ETSI GSM 07.05 (3GPP TS 27.005) specifies AT style
commands for managing the SMS feature of GSM.
These documents exists in many different versions, so they are not all equal in content. Make sure to check what document version you are using.
Background
To better understand mobile phone modems and the underlying hardware I strongly recommend reading Harald Welte's "Anatomy of contemporary GSM cellphone hardware" [3] and Telica's "Challenges in integrating modems on Open Platforms" [4]. To summarize enormously, I can say this. On a modern Android based "smart phone", there are essentially two processors. The Application Processor (AP) where your Android operating system (AOS) and user interface (UI) lives, and the Baseband/Cellular Processor (BP/CP) where all the GSM and other high-tech communication magic happens, including the modem we wish to communicate with. In the most modern phones the BP and the AP and all possible other peripheral devices are integrated into one piece of hardware, loosely known as a Smartphone or System on a Chip (SoC). On this SoC there are a number of peripheral devices such as RTC, UARTs, SPI, I2C, USB ports, SD/MMC card controllers and an ISO7816 SIM card reader. However, to preserve the layered hardware structure, the AP and BP still communicates via UART (serial line), USB, SPI or through shared RAM and/or a combination of these. Therefore there will always be some path directly accessible from the outside that we should be able to use to communicate directly with the BP. Exactly how this is done, is mostly unknown due to the closed source and protectionisitc nature of the SoC manufacturers, to the great dismay of the developer community.
Although there are several methods for invoking and controlling modem services, the two most common are through the AT Commands (ATC) and/or through Remote Procedural Calls (RPC). The ATC method is by far the most popular and the ATC set can be categorized as follows.
Code:
Call Control: Commands for initiating and controling calls.
Data Call Control: Commands for controlling the data transfer and QoS.
Network Service: Commands for Supplementary services,ME, operator
selection, locking and registraction.
SMS Control: Commands for sending, notifying, setting SMS services.
ME Control & Status: Commands for ME power,keypad,display,phonebook,RTC's.
The AOS provide support for this framwork in the Radio Interface Layer (RIL), which acts as the interface between the radio HW and the Java Applicaiton Programming Interface (API). However, the RIL is divided into 3 parts or layers if you want. (These are just arbitrary, and not GSM layers!)
L3. The Java RIL (AOS API) accessible to all but with a limited set of commands.
L2. The RIL Daemon (RILJ) acting as an interface between AOS and the Vendor RIL.
L1. The Vendor RIL, which is a closed-source and HW-specific implemetation.
L0. The OEM/Vendor modem HW and firmware then acts on the L1 ATC's. (?)
Thus the job of the RIL is to translate all the telephony requests from the Android telephony framework and map them to the corresponding AT commands to the modem, and back again.
Here are two useful pictures that try to explain the various RIL layers.
Fig.1.
Fig.2.
Finding the correct serial device for the phone modem
In your phone you will find hundreds of devices listed under /dev. Knowing which one is the serial device(s) used for communicating with your Baseband Processor's (BP) Modem, is key in getting a useful AT communication going. Here it is also good to know that there are several serial devices connected to the BP. These connections are working in parallel through a MUX. So it is very likely you will be able to use several different devices to send AT commands with.
So how do we find an appropriate local serial device on the phone? One way is of course to try to connect via some terminal application to all devices and send some AT commands and look for a response, but that is not very scientific or practical. Different phones may use different default (Modem) serial devices. One way to find the serial devices is by listing available tty drivers.
Code:
# cat /proc/tty/drivers
...
rfcomm /dev/rfcomm 216 0-255 serial
g_serial /dev/ttyGS 253 0 serial
ttySAC /dev/s3c2410_serial 204 64-68 serial
serial /dev/ttyS 4 64-67 serial
...
So what are these doing and which one should we try?
After Googling around we suspect that:
rfcomm = Used by Bluetooth serial devices
ttySAC = Used by serial SAmsung Console
g_serial = "DataRouter" (also see dun: (10,123) )
In addition and thanks to the documentation in Adam Outler's info package [5], it can be inferred from the block diagram that perhaps:
Code:
s3c2410_serial0 - UART0 - Bluetooth (ttySAC)
s3c2410_serial1 - UART1 - GPS
s3c2410_serial2 - UART2 - AP PMIC - A/S1 ??
s3c2410_serial3 - UART3 - AP PMIC --> AP Level Shifter --> BP UART ??
s3c2410_serial4 - UART4 - not used?
(PMIC = Power Management IC)
The block diagram is this one, from the SGS-2 service manual.
Connecting using: a local terminal application or the ADB shell
So from our previous results, we would suspect that we could use /dev/ttyGS0. Since Busybox contain the microcom terminal program, we can simply do:
Code:
# busybox microcom -t 5000 /dev/ttyGS0
AT
ATI
<nothing> :(
However, although the connection is successful, there is no AT reaction on that line...
[EDIT] (See notes in a later post.)
Connecting using: Windows
If you are using Windows, you can go into Device Manager (DM) to find the correct port(s) used by your phone. However, depending on whether you set your phone to be used as a "USB mass storage" device or not, there may appear different devices in the DM. Here we assume that we just physically connect the phone and do nothing more. I.e. We're not using the device as a USB storage.
Next, under the device class listed as "Modems", you will probably find at least two modem devices. For example, I have one called "HDAUDIO Soft Data Fax Modem with SmartCP", which has nothing to do with Samsung and most likely came with the computer with some bloatware. The other one is called "SAMSUNG Mobile USB Modem", which is what we want. Then right-click to open Properties of the USB Modem device and navigate to the "Diagnostics" tab. Click on the "Query Modem" to send some test AT commands to your modem. If this doesn't work, you have a problem, and I don't have an answer. The result should look something like this:
Code:
ATQ0V1E0 - OK
AT+GMM - AT+GMM
GT-I9100
AT+FCLASS=? - (0,8)
AT#CLS=? - COMMAND NOT SUPPORTED
AT+GCI? - COMMAND NOT SUPPORTED
AT+GCI=? - COMMAND NOT SUPPORTED
ATI1 - Manufacturer: SAMSUNG
Model: I9100
Revision: I9100XXKI1
IMEI: xxxxx
ATI2 - Manufacturer: SAMSUNG
Model: I9100
Revision: I9100XXKI1
IMEI: xxxxx
...
See below for an explanation of these commands.
Now try this yourself with some terminal application. My personal favorite is the free and fully feature loaded "RealTerm". In the Display tab, use ANSI and check the "newLine mode" box, then in the Port tab, find your port as listed in Device Manager. For example, for me the modem port is located on COM port 12. This is listed as "12=\ssudmdm0000" in RealTerm.
Connecting using: Cygwin (on Windows)
First thing to know about using Cygwin, is that the windows COMn ports are addressed as /dev/ttyS[n-1], thus if you have connected your phone with a USB cable, and you find it is connected to COM port 12, then it will be accessible only through /dev/ttyS11 under Cygwin. Other terminal applications may use different ports. In addition you need to have installed/compiled some terminal program like: picocom, microcom or cu etc. Also make sure the COM port is not already occupied by another terminal program.
$ picocom /dev/ttyS11
...
This works as expected.
Some basic AT command structure
I'm not going to say much about the AT commands themselves, as they are almost as old as home computers themselves. However, let's have a brief look at the "Modem Query" above.
Code:
ATQ0V1E0
- This is actually a concatenation of the 3 commands:
(ATQ0 + ATV1 + ATE0) where:
ATQ0 - Disables echo suppression
ATV1 - Enables Verbose command results mode
ATE0 - Turns off local Echo
AT+GMM
- This one doesn't work in direct serial mode (!) and
is equivalent to AT+CGMM which shows the device model
identification. (I9100)
AT+FCLASS=?
- This queries the phone (TA) mode: (data, fax, voice etc.)
ATI
- This lists: Manufacturer, Model, Revision, IMEI
NOTE: AT commands can be concatenated on one line with each line starting with AT, and each command separated by ";". In some cases the semicolon is not needed. Typically a command without "=" or "?" is a general command, that sets or gets some parameters. But any command with "=" is a setting command, unless it is directly followed by "?", in which case you are querying the available/allowed parameters and their range. If the command is followed by "?" without a "=" it is a query, asking the values for something.
WARNING!​DO NOT SEND RANDOM COMMANDS/CHARACTERS TO YOUR PHONE MODEM
Many AT commands can easily wipe or brick your phone or SIM card!
I am in no way responsible for anyone bricking their phones, and
I cannot help you if you do so. So you better know exactly what you
send before you send anything at all.​
General AT command list extracted from 3GPP TS 27.007
Here is a list with general AT commands and a brief description of their functions and the document section they are found at. The document version I used for the info extraction is shown on the first line.
Note: Several of these commands are deprecated or simply not available on the Android/Samsung phone modems, at least not int he form shown in that document.
Code:
3GPP TS 27.007 Release 9 145 V9.4.0 (2010-06)
AT+CAAP 7.25 - Automatic answer for eMLPP Service
AT+CACM 8.25 - Accumulated call meter
AT+CAEMLPP 7.22 - eMLPP Priority Registration and Interrogation
AT+CAHLD 11.1.3 - Leave an ongoing Voice Group or Voice Broadcast Call
AT+CAJOIN 11.1.1 - Accept an incoming Voice Group or Voice Broadcast Call
AT+CALA 8.16 - Alarm
AT+CALCC 11.1.6 - List current Voice Group and Voice Broadcast Calls
AT+CALD 8.38 - Delete alarm
AT+CALM 8.20 - Alert sound mode
AT+CAMM 8.26 - Accumulated call meter maximum
AT+CANCHEV 11.1.8 - NCH Support Indication
AT+CAOC 7.16 - Advice of Charge
AT+CAPD 8.39 - Postpone or dismiss an alarm
AT+CAPTT 11.1.4 - Talker Access for Voice Group Call
AT+CAREJ 11.1.2 - Reject an incoming Voice Group or Voice Broadcast Call
AT+CAULEV 11.1.5 - Voice Group Call Uplink Status Presentation
AT+CBC 8.4 - Battery charge
AT+CBCAP 8.59 - Battery Capacity
AT+CBCHG 8.61 - Battery Charger Status
AT+CBCON 8.60 - Battery Connection Status
AT+CBCS 11.3.2 - VBS subscriptions and GId status
AT+CBKLT 8.51 - Backlight
AT+CBST 6.7 - Select bearer service type
AT+CCFC 7.11 - Call forwarding number and conditions
AT+CCHC 8.46 - Close Logical Channel
AT+CCHO 8.45 - Open Logical Channel
AT+CCLK 8.15 - Clock
AT+CCUG 7.10 - Closed user group
AT+CCWA 7.12 - Call waiting
AT+CCWE 8.28 - Call Meter maximum event
AT+CDIP 7.9 - Called line identification presentation
AT+CDIS 8.8 - Display control
AT+CEAP 8.47 - EAP authentication
AT+CEER 6.10 - Extended error report
AT+CEMODE 10.1.28 - UE modes of operation for EPS
AT+CEPTT 11.1.10 - Short Data Transmission during ongoing VGCS
AT+CEREG 10.1.22 - EPS network registration status
AT+CERP 8.48 - EAP Retrieve Parameters
AT+CFCS 7.24 - Fast call setup conditions
AT+CFUN 8.2 - Set phone functionality
AT+CGACT 10.1.10 - PDP context activate or deactivate
AT+CGATT 10.1.9 - PS attach or detach
AT+CGCLASS 10.1.17 - GPRS mobile station class
AT+CGCLOSP 10.1.13 - Configure local Octet Stream PAD parameters
AT+CGCMOD 10.1.11 - PDP Context Modify
AT+CGCONTRDP 10.1.23 - PDP Context Read Dynamic Parameters
AT+CGCS 11.3.1 - VGCS subscriptions and GId status
AT+CGDATA 10.1.12 - Enter data state
AT+CGDCONT 10.1.1 - Define PDP Context
AT+CGDSCONT 10.1.2 - Define Secondary PDP Context
AT+CGEQOS 10.1.26 - Define EPS Quality Of Service
AT+CGEQOSRDP 10.1.27 - EPS Quality Of Service Read Dynamic Parameters
AT+CGEREP 10.1.19 - Packet Domain event reporting
AT+CGLA 8.43 - Generic UICC Logical Channel access
AT+CGMI 5.1 - Request manufacturer identification
AT+CGMM 5.2 - Request model identification
AT+CGMR 5.3 - Request revision identification
AT+CGREG 10.1.20 - GPRS network registration status
AT+CGSMS 10.1.21 - Select service for MO SMS messages
AT+CGSN 5.4 - Request product serial number identification
AT+CGTFT 10.1.3 - Traffic Flow Template
AT+CGTFTRDP 10.1.25 - Traffic Flow Template Read Dynamic Parameters
AT+CHLD 7.13 - Call related supplementary services
AT+CHSC 6.15 - HSCSD current call parameters
AT+CHSD 6.12 - HSCSD device parameters
AT+CHSR 6.16 - HSCSD parameters report
AT+CHST 6.13 - HSCSD transparent call configuration
AT+CHSU 6.17 - HSCSD automatic user initiated upgrading
AT+CHUP 6.5 - Hangup call
AT+CIMI 5.6 - Request international mobile subscriber identity
AT+CIND 8.9 - Indicator control
AT+CKPD 8.7 - Keypad control
AT+CLAC 8.37 - List all available AT commands
AT+CLAE 8.31 - Language Event
AT+CLAN 8.30 - Set Language
AT+CLCC 7.18 - List current calls
AT+CLCK 7.4 - Facility lock
AT+CLIP 7.6 - Calling line identification presentation
AT+CLIR 7.7 - Calling line identification restriction
AT+CLVL 8.23 - Loudspeaker volume level
AT+CMAR 8.36 - Master Reset
AT+CMEC 8.6 - Mobile Termination control mode
AT+CMEE 9.1 - Report mobile termination error
AT+CMER 8.10 - Mobile Termination event reporting
AT+CMOD 6.4 - Call mode
AT+CMOLR 8.50 - Mobile Originated Location Request
AT+CMOLRE 9.1 - Report mobile originated location request error
AT+CMOLRE 9.3 - Mobile termination error result code
AT+CMTLR 8.57 - Mobile Terminated Location Request notification
AT+CMUT 8.24 - Mute control
AT+CMUX 5.7 - Multiplexing mode
AT+CNAP 7.30 - Calling name identification presentation
AT+CNUM 7.1 - Subscriber number
AT+COLP 7.8 - Connected line identification presentation
AT+COLR 7.31 - Connected line identification restriction status
AT+COPN 7.21 - Read operator names
AT+COPS 7.3 - PLMN selection
AT+COTDI 11.1.9 - Originator to Dispatcher Information
AT+CPAS 8.1 - Phone activity status
AT+CPBF 8.13 - Find phonebook entries
AT+CPBR 8.12 - Read phonebook entries
AT+CPBS 8.11 - Select phonebook memory storage
AT+CPBW 8.14 - Write phonebook entry
AT+CPIN 8.3 - Enter PIN
AT+CPLS 7.20 - Selection of preferred PLMN list
AT+CPNET 7.27 - Preferred network indication
AT+CPNSTAT 7.28 - Preferred network status
AT+CPOL 7.19 - Preferred PLMN list
AT+CPOS 8.55 - Positioning Control
AT+CPOSR 8.56 - Positioning Reporting
AT+CPPS 7.23 - eMLPP subscriptions
AT+CPROT 8.42 - Enter protocol mode
AT+CPSB 7.29 - Current Packet Switched Bearer
AT+CPUC 8.27 - Price per unit and currency table
AT+CPWC 8.29 - Power class
AT+CPWD 7.5 - Change password
AT+CR 6.9 - Service reporting control
AT+CRC 6.11 - Cellular result codes
AT+CREG 7.2 - Network registration
AT+CRLA 8.44 - Restricted UICC Logical Channel access
AT+CRLP 6.8 - Radio link protocol
AT+CRMC 8.34 - Ring Melody Control
AT+CRMP 8.35 - Ring Melody Playback
AT+CRSL 8.21 - Ringer sound level
AT+CRSM 8.18 - Restricted SIM access
AT+CSCC 8.19 - Secure control command
AT+CSCS 5.5 - Select TE character set
AT+CSDF 6.22 - Settings date format
AT+CSGT 8.32 - Set Greeting Text
AT+CSIL 6.23 - Silence Command
AT+CSIM 8.17 - Generic SIM access
AT+CSNS 6.19 - Single numbering scheme
AT+CSQ 8.5 - Signal quality
AT+CSSAC 7.32 - Service Specific Access Control restriction status
AT+CSSN 7.17 - Supplementary service notifications
AT+CSTA 6.1 - Select type of address
AT+CSTF 6.24 - Settings time format
AT+CSVM 8.33 - Set Voice Mail Number
AT+CTFR 7.14 - Call deflection
AT+CTZR 8.41 - Time Zone Reporting
AT+CTZU 8.40 - Automatic Time Zone Update
AT+CUAD 8.49 - UICC Application Discovery
AT+CUSD 7.15 - Unstructured supplementary service data
AT+CVHU 6.20 - Voice Hangup Control
AT+CVIB 8.22 - Vibrator mode
AT+CVMOD 6.4 - Voice Call Mode
AT+FCLASS C.2.1 - Select mode
AT+VBT C.2.2 - Buffer threshold setting
AT+VCID C.2.3 - Calling number ID presentation
AT+VGR C.2.4 - Receive gain selection
AT+VGT C.2.5 - Transmit gain selection
AT+VIP C.2.6 - Initialise voice parameters
AT+VIT C.2.7 - Inactivity timer
AT+VLS C.2.8 - Line selection
AT+VRX C.2.9 - Receive data state
AT+VSM C.2.10 - Select compression method
AT+VTD C.2.12 - Tone duration
AT+VTS C.2.11 - DTMF and tone generation
AT+VTX C.2.13 - Transmit data state
Questions and Help Needed
Q1: What is the correct device on the SGS2, for ATC communication to the modem?
Q2: How and where is this device selected/configured?
Q3: What do the various Proprietary AT commands (AT+X...) do?
Q4: Where can I find more documentation on the BP/CP?​References:
[1] http://www.3gpp.org/ftp/Specs/html-info/27007.htm
[2] http://www.3gpp.org/ftp/Specs/html-info/27005.htm
[3] Harald Welte's "Anatomy of contemporary GSM cellphone hardware"
http://laforge.gnumonks.org/papers/gsm_phone-anatomy-latest.pdf
[4] Telica's White Paper: "Challenges in integrating modems on Open Platforms"
http://teleca.com/Home/news_room/Whitepapers.aspx
[5] Adam Outler's "The all-in-one Galaxy S2 Hack Pack"
[6] Fabien Sanglard's non-blog: "Tracing the baseband":
http://fabiensanglard.net/cellphoneModem/index2.php
[7] "Android Application Development" (Android Telephony Internals, Ch.15.2),
R.Rogers/J.Lombardo, O'Reilly Media 2009
http://androidapps.org.ua/i_sect18_d1e18369.html
​Keywords: AT Commands, Modem, Terminal, CDC-ACM, RIL, Serial, UART
If you like this work, please hit the thank you button!
The GT-I9100 Baseband Processor (BP/CP) Specifications
Currently I have got two different specifications regarding what BP is used in the SGS2, most likely due to the different versions available of the SGS2 in Europe vs. USA. The ones I have are:
Intel/Infineon XMM6260 is the "platform" that consists of:
a) The X-GOLD 626 (ARM1176?, 40nm) baseband processor
b) The SMARTi UE2 RF-transceiver (65nm CMOS)
c) The 3GPP Release 7 HSPA+ protocol stack with:
Downlink: Category 14, Uplink: Category 7
d) Alternative Names*: Infineon IFX6260 = Intel IMC6260 = Intel XMM6260
e) Picture: http://www.infineon.com/export/sites/default/media/press/Image/press_photo/X-GOLD626.jpg
f) Datasheet: N/A
g) Most likely used in European phones
h) is apparently also present in the iPhone 4S.. (check!)
i) Closest available documentation:
XMM6160 (X-GOLD 616, ARM1176) which is also used in the SGS-1:
http://www.infineon.com/dgdl/X-GOLD...f0004&fileId=db3a30431ed1d7b2011f5bee88ef75eb
The biggest difference is in the SMARTi-UE RF-chip. BP remains similar.
XMM6180 (X-GOLD 618, ARM1176 @416 MHz) used in the iPhone4 & iPad2:
http://www.infineon.com/dgdl/X-GOLD...f0004&fileId=db3a30431ed1d7b2011f5bec418f75e6
.
Qualcomm QSC6085 (65nm,424 CSP, 12x12mm) contain:
a) BP: ARM926EJS @ 192 MHz
b) + QDSP @ 96 MHz (also on BP)
c) Modem: IS-95 A/B, 1X Rel.0, EVDOr0, EVDOrA
d) is apparently also present in the "Verizon Wireless USB760 Modem"
e) Picture: N/A
f) Datasheet: N/A
g) Most likely used in North American (US) phones (CDMA)
*It should be noted that Infineon Technologies (Wireless Division) has been acquired by Intel Mobile Communications, in early 2011.
In fact these two differences just made a whole lot of sense from the available AT command sets. Basically the modem specific AT commands immediately give up the manufacturer of the modem firmware. (Yes, competing OEM developers do work together!) Because the command sets usually consists of 3 types.
The old school "Hayes" AT standard given by ETSI GSM 07.07.
Vendor Proprietary AT commands, specific for each OEM.
Carrier Proprietary AT commands, specific to some service providers. (E.g. AT&T, Sprint, T-mobile, Verizon etc.)
So for our 2 modem cases above we have the obvious Proprietary AT extensions:Qualcomm QSCnnnn: AT$Q<something>
Intel/Infineon XMMnnnn: AT+X<something>​which indeed confirms the BP of my SGS2. Obviously there is a far easier way to reach this conclusion...---------------------------------------------------------------
TIPS!
To see what baseband processor you have,
you can enter into ServiceMode and check.
This should always work as many ServiceMode
functions are directly modem dependent.
---------------------------------------------------------------
Why? Because the ServiceMode application
actually reside in the modem firmware!​Do this:Dial: *#197328640#
Code:
MAIN MENU:
...
[2] VERSION INFO. -->
[1] SW VERSION -->
[5] READ ALL SW VERSION:
...
======>[COLOR=Red] IFX [/COLOR]SW VER: [COLOR=Red]SP6260[/COLOR]_U1_01.1135
...
This implies the phone is using software for the (Infineon) IFX 6260...​But the ServiceMode is just talking to the modem, so you can get the
same information by opening an (external) terminal shell and send
the following ATC:
Code:
[B]AT+XGENDATA[/B]
+XGENDATA: " [COLOR=Red]SP6260[/COLOR]_U1_01.1135_DB110831 2011-Sep-2 18:14:20
PDB_NOT_AVAILABLE
*SP6260_U1_01.1135_DB110831*"
"*"
OK
Here is the FBGA pin-out of that chip:
Fig.4.
A small addendum about the SMARTi UE2 chip
The BP is communicating with the RF-tranceiver chip called SMARTi UE2
(labelled "5712"), using a communication interface that corresponds to
the (MIPI) DigRF 3G (V.3.09) standard. Through this protocol the BP
(or other device) can also control some aspects of the RF to some
minor extent. But without the proper specifications of the 5712, it
may also contain other interfaces...
The DigRF connections:
Fig.5.
The SMARTi UE2 chip:
Fig.6.
Here are more link for the interested reader:
General DigRF info:
http://www.mipi.org/specifications/digrfsm-specifications
http://www.mipi.org/sites/default/files/Specification Overview final.pdf
http://electronicdesign.com/article/test-and-measurement/digrf-faqs19953.aspx
The DigRF protocol details:
http://www.siliconreleasesolutions.com/pdf/DigRF-TMWorld0509-FINAL.pdf
http://www.docstoc.com/docs/53386199/DigRF-BASEBAND-RF-DIGITAL-INTERFACE-SPECIFICATION
Complete AT command list for Samsung Galaxy S2 (GB 2.3.4, KI4)
These were obtained by sending the "list all available AT commands" request: AT+CLAC .
Their functions have been collected from many different sources, none of which originates
from Samsung. Thus many ATC's are marked with one or more "?" to signify the uncertainty.
The standard AT set as shown in the OP, I have not bothered to describe here.
Code:
ATA - Answer
ATD - Dial ...
ATE - Enable command echo (0=disable, 1=enable)
ATH - ??? Hangup/Hook
ATO ?? - Return to Online Data Mode
ATQ - Result code supression
ATS - Command line termination? S[3,4,5]
ATV - Command response format (0=Numerical, 1=Verbose)
ATX - Result code format for CONNECT Mfg!
ATZ - Reset Modem (...)
ATl -
ATm -
AT&C ? - (Received line signal detector) Behaviour
AT&D ? - (Data terminal ready) Behaviour
AT&F ? - Restore Factory Default Configuration
AT\Q ? - Local flow control selection
AT+CACM
AT+CAMM
AT+CAOC
AT+CBC
AT+CBST
AT+CCFC
AT+CCHC
AT+CCHO - Open Logical Channel
AT+CCID - SIM Serial Number
AT+CCLK - Realtime clock
AT+CCUG
AT+CCWA
AT+CCWE
AT+CEER
AT+CFUN * ? This command selects the level of functionality <fun> in the MS. Only some values of<fun> are allowed (see Defined values).
AT+CGACT -
AT+CGATT -
AT+CGAUTO -
AT+CGCLASS -
AT+CGCMOD -
AT+CGDATA -
AT+CGDCONT -
AT+CGDSCONT -
AT+CGEQMIN -
AT+CGEQNEG -
AT+CGEQREQ -
AT+CGEREP * - Packet Domain event reporting
AT+CGLA E - Generic UICC Logical Channel access
AT+CGMI - Request manufacturer identification
AT+CGMM - Request model identification
AT+CGMR - Request revision identification
AT+CGPADDR -
AT+CGQMIN -
AT+CGQREQ -
AT+CGREG * - GPRS network registration status AT+CGREG=2;+CGREG?
AT+CGSMS -
AT+CGSN * - Request product serial number identification (IMEI)
AT+CGTFT
AT+CHLD
AT+CHUP - Hangup call
AT+CIMI * - Request international mobile subscriber identity (IMSI)
AT+CLAC - List all available AT commands
AT+CLAN
AT+CLCC
AT+CLCK
AT+CLIP
AT+CLIR
AT+CMEE - Report mobile termination error (+CME) verbosity mode (0,1,2)
AT+CMGC
AT+CMGD
AT+CMGF
AT+CMGL
AT+CMGR
AT+CMGS
AT+CMGW
AT+CMMS
AT+CMOD
AT+CMSS
AT+CMUX - Set multiplexing protocol control channel mode(s)
AT+CNAP
AT+CNMA
AT+CNMI * - This command selects the procedure, how receiving of new SMS from network is indicated to the TE
AT+CNUM
AT+COLP
AT+COLR
AT+CONNECTPORT
AT+COPN
AT+COPS -
AT+CPAS
AT+CPIN
AT+CPIN2
AT+CPLS
AT+CPMS
AT+CPOL
AT+CPUC
AT+CPWD
AT+CPWROFF
AT+CR
AT+CRC
AT+CREG
AT+CRES
AT+CRLA ? - Restricted UICC Logical Channel access
AT+CRLP * - Radio link protocol
AT+CRSM
AT+CSAS
AT+CSCA
AT+CSCB
AT+CSCS
AT+CSDH
AT+CSIM
AT+CSMP
AT+CSMS
AT+CSQ - Signal Quality
AT+CSSN
AT+CSTA
AT+CSVM
AT+CTFR
AT+CTZR
AT+CTZU
AT+CUAD - UICC Application Discovery
AT+CUSD
AT+CVHU
AT+FCLASS - Select mode: put TA into mode: (data, fax, voice etc.)
AT+IPR - This command specifies the data rate at which the DCE will accept commands. The full range of data rate values may be reduced dependent on HW or other criteria.
AT+NEER
AT+TRACE * ? (see: +XSIO) This command controls the trace; it allows selecting the trace mode, method and the trace data transfer rate.
AT+VTD
AT+VTS
AT+XAACOPS ?
AT+XAPP * ! - Known buffer overflow in Iphone 4S (unsigned code execution): Probably used to send executable code (application) to BB!
AT+XBANDSEL ? This command allows to switch from automatic band selection to selection of one or more (up to four) bands.
AT+XCALLSTAT * ? Set reporting call status: This command allows enabling / disabling the reporting voice call status on DTE using an unsolicited result code +XCALLSTAT: <call_id><stat>.
AT+XCEER ?
AT+XCGCLASS ?? Changing the startup MS Mobile class ("B", "CC")
AT+XCONFIG + ?? This command allows the configuration of DLCs (Data Logical Channels). (see +XMUX)
AT+XCOPS ? Display of the most adapted name of the network.The command parameter <type> allows requesting the name type which shall be displayed.
AT+XCSP ? This command reads the customer service profile (CSP) from the SIM. The CSP indicates the services that are user accessible.
AT+XCSPAGING ? This command allows enable/disable the circuit switching paging. The command has an effect only when used before +COPS or +CGATT.
AT+XCSSMS ? Initiate Resending of SMS over CS if GPRS Fails
AT+XCTMS ? This command allows to set the TTY/CTM behavior. The selected setting is stored also in NVRAM and remains valid also after switch off the mobile
AT+XDATACHANNEL ? This command configures the channel over which CSD or GPRS data shall be routed.
AT+XDLCTEST ?
AT+XDNS ? This command enables / disables a dynamic DNS (Domain Name Service) request before context activation.
AT+XDTMF ? This command allows setting the value of SEND DTMF user setting that controls whether the DTMF tone generation on request from SIM-TK is allowed.
AT+XEER ?
AT+XEONS ? displays the list of available networks with details like long operator name, short operator name, MCC/MNC, Long EONS name, Short EONS name for each PLMN.
AT+XFDOR ? Trigger Fast Dormancy
AT+XFDORT ? Set Fast Dormancy Timer
AT+XGAUTH ? This proprietary command allows to enter the type of authentication for a user-name (using a password) for the specified PDP context
AT+XGENDATA ? This command requests the software version and generation data.
AT+XHOMEZR ? This Set command enables and disables the home zone change event reporting. If the reporting is enabled; the MT returns the unsolicited result code +XHOMEZR: <label> whenever the home zone is changed.
AT+XHSDUPA ? This command configures the mode of HSDPA and HSUPA (by changing the appropriate dynamic NVRAM parameter)
AT+XL1SET ? Call the L1-specific function
AT+XLEMA ??? Emergency number list (Ofono)
AT+XLIN ? This command sets the current line.
AT+XLOG * ! - Known buffer overflow in Iphone 4S (unsigned code execution) ? This command allows displaying the exceptions stored in NVRAM on DTE. The MS-error LOG is contained in a response code formatted as +XLOG: <num>,<code>,<file>,<line>,<count> or an other appropriate format as specified below.
AT+XMER ? Enables or disables sending of unsolicited result codes from the MS to the DTE when the battery charge level or the radio signal level crosses a defined threshold.
AT+XMUX + ? Multiplexing mode: This command configures the GSM 07.10 multiplexing protocol.
AT+XNOTIFYDUNSTATUS ??? (LG) This command is used to notify DNS setting status
AT+XNVMMCC ?
AT+XNVMPLMN ?
AT+XPINCNT - This command reads the remaining attempts for SIM PIN, SIM PIN2, SIM PUK and SIM PUK2.
AT+XPOW ? This command sets the powersaving-mode.
AT+XPROGRESS ? This command allows enabling / disabling the display of an unsolicited result code + XPROGRESS: <cin> (call number indication), <status> on DTE while a call is in progress.
AT+XRAT ? This command forces the selection of the Radio Access Technology (RAT) in the protocol stack.
AT+XREDIAL ? Enabling of automatic redialing if the called party was busy.
AT+XREG ! ? Involved in the iPhone unlock hacks...
AT+XRXDIV * ? This command is used to allow external control of the Rx Diversity feature during runtime.
AT+XSETCAUSE ?
AT+XSIMSTATE ? Display SIM and Phonelock Status (write at+xsimstate=1 to turn on, at+xsimstate=0 to turn off)
AT+XSIO * ? This command allows the configuration of the modem-interface (AT), trace-interface, IrDA interface and MUX-interface by setting the variant number.
AT+XSMS ? Detection of Signal DR_SM_FINISHED_IND
AT+XSVM ? This command allows to set the voice mail server number.
AT+XSYSTRACE ?
AT+XTESM ?
AT+XTRACECONFIG ?
AT+XUBANDSEL ?
AT+XUICC - Checks for UICC Card, whether the current SIM is a 2G or 3G sim.
AT+XVTS -
As you can see there are quite a few OEM commands here, whose functions I have not been able to
figure out yet. Please post if you know anything or have any documentation on these. They all
start with: AT+X<something>. There are also others that, that are not documented at all, AFAIK.
[2012-02-05]
On this list, the most interesting ATC's for our purposes are AT+XSIO and AT+XTRACE as described here:
Code:
[B]AT+XSIO[/B] This command allows the configuration of the modem-interface (AT),
trace-interface, IrDA interface and MUX-interface by setting the
variant number.
• Set command allows the configuration of the modem-interface (AT), trace-interface, IrDA interface and
MUX-interface by setting the variant number. The set variant number becomes active only after a reset
• Read command allows seeing which is the current variant and which is the requested variant. A star marks
the active variant.
• Test command returns the possible and customizable variants.
Defined values:
<requested> requested variant, which may be in range 0-255
<active> currently active variant, which may be in range 0-255
<AT-interface> NULL, UART0, …, UARTn
<Trace> NULL, UART0, …, UARTn
<MUX> 1-x
<IrDA> NULL, UART0, …, UARTn
Example:
[B]AT+XSIO=?[/B]
+XSIO: [SP62XX_es1] Variant=0: AT= USART2 USB[03]; BB-Trace= USB1; 3G-Trace= USB2; OCT= USB6;
+XSIO: Variant=1 : AT= USART2 USB[03]; BB-Trace= TADO0; 3G-Trace= TADO1; OCT= USB1;
+XSIO: Variant=2 : AT= USART2 USB[01]; BB-Trace= BG0; 3G-Trace= BG1;
+XSIO: Variant=3 : AT= USB[01]; BB-Trace= USART2; 3G-Trace= USIF5; OCT= USB6;
+XSIO: Variant=4 : AT= USART2 USB[01]; BB-Trace=/bbt/0; 3G-Trace=/3gt/0;
[B]AT+XSIO? [/B]
+XSIO: 0, *0
-------------------------------------------------------------------------------
[B]AT+TRACE[/B] This command controls the trace; it allows selecting the trace mode,
method and the trace data transfer rate.
• Set command switches the trace on or off. It allows the trace mode, method and the trace data transfer rate.
• Read command allows seeing the current set mode value along with the speed, i.e. data transfer rate. It also
allows knowing which traceable unit is on or off.
• Test command returns all the possible values of mode, data transfer rate, traceable unit, their mode and
power saving countdown.
Command Syntax:
AT+TRACE=[<mode>],[<speed>],[<unit>=<umode>],[<method>],[PowerSavingCountdown]
Defined Valuse:
<mode> may be
0 switch trace off
1 switch trace on (all kinds of traces are switched on)
128 This value can not be entered, it is only displayed via read
syntax if trace configuration is done by unitdefinitions
the last time. See <umode> & <unit> for trace configuration;
<unit>=<umode>
<unit> indicates a traceable unit as follows:
St stack
Pf printf
Bt Bluetooth
Ap apoxi
Db debug
Lt LLT (Low Level Trace)
Li LwIP (Lightweight TCP/IP Stack)
Ga GATE (3rd Party Software Decoding with a Windows DLL)
<umode> defines whether the unit related trace is on or off and can have the values:
0 unit-trace off
1 unit-trace on
<method> sting type indicating the trace method with possible values:
"BTM" byte stuffing trace method
"EBTM" extended byte stuffing trace method
<PowerSavingCountdown>
Integer value indicating the power saving countdown
value in units of milliseconds. The maximum valid value is
30000.
Example:
[B]AT+TRACE? [/B]
+TRACE: 1,921600,"ap=1;st=1;db=1;pr=1;bt=1,lt=1;li=1;ga=1;ae=1","DTM",0
[2012-02-14]
Additional hidden AT commands on the SGS-2
Runing strings on the stock /system/bin/drexe , you will find the following AT commands embedded.
These are probably not directly supported by Modem, but rather interpreted by drexe, as
they're not present in the +CLAC list. In addition, some of them just don't work and maybe only
provided for backward compatibility for other devices and modems.
Code:
AT+APPLIST
AT+AUTHKEY=
AT+BATGETLEVEL?
AT+CERTKEY
AT+CGMM
AT+CGSN
AT+CGTEMR=NewPCStudio
AT+DEVAUTH
AT+DEVCONINFO
AT+DISSTRNO=
AT+FOTALOC?
AT+FOTAREADY?
AT+FOTASTART
AT+FUS?
AT+GMM
AT+GSN
AT+HIDSWVER
AT+IMEINUM
AT+PASSWORDINPUT
AT+PRODUCTCODE
AT+PROF=
AT+SECUKEY
AT+SUDDLMOD=
AT+SUPPORTFUS
AT+SWVER
AT+SYNCML=MOBEXSTART
AT+SYNCML=MOBEXSTOP
[2012-02-09]
Very good to read, thanks for linking me that.
But just to correct - AT is abit deprecated interface in SGS, SGS2 and similiar models. It can be used to control modem directly from PC (not sure if PC is really directly talking to modem or to part of Android's HALs, which is then talking to modem, for eg. USB-UART multiplexer in I9000 and S8500/S8530 is capable to switch phone MicroUSB port between AP USB/UART and CP USB/UART.
The main controlling interface used in above models is RPC through oneDRAM shared-memory area. You can find devices like "dpram", "onedram", "modemctl" in kernel - these are critical for proper working of modem. Even if RIL is using AT commands, it does send them through RPC.
AP-CP UART connection seems to be used only for early booting stage (at least in I9000 and S8500, haven't analysed I9100 but guess that's similiar)
Ad1. There may be no real ability to communicate with modem directly on SGS2 and AT responses you are getting may be from Android, working on AP only, not AMSS (Advanced Mobile Subscriber Software - RTOS working on Qualcomm's CP)
Ad4. These datasheets are most guarded secrets of manufacturers. Only single, incomplete manuals leak from Qualcomm, not really useful. Also AP-CP RPC protocol is proprietary of Samsung, they got AMSS sources from Qualcomm and they are adding their own drivers there.
Oh yes, I gave Qualcomm as example, but is CP in SGS2 Qualcomm? It wasn't QC product on SGS1 but tbh it is also very closed source.
While AP-CP low level protocol is opensource (you can find it in dpram/onedram/modemctl drivers in kernel), higher level of that layer - compiled into sec-RIL, is not.
AP-CP protocol is different between I9000 and S8500 (general concept remains the same, just it has been rewriten so packet types and structures are different), but if you are interested - we're creating opensource RIL for S8000/S8500/S8530/S8600 device series, supposed to work with Android ports for them - http://code.google.com/p/bada-modemril/ (branch experimental-MochaIPC)
As I understand, SGS2 use intel's xmm6260 platform, which might also contain it's own interface/firmware etc.
As long as the modem works well, there is little need to dig into the details of how ril communicate with modem, but when the modem does not work as it should (In my case it refused to register on only one specific mobile operator), an AT command which can do a factory reset of the modem might be helpful
EDIT: 2012-02-01
Rebellos said:
... not sure if PC is really directly talking to modem or to part of Android's HALs, which is then talking to modem, for eg. USB-UART multiplexer in I9000 and S8500/S8530 is capable to switch phone MicroUSB port between AP USB/UART and CP USB/UART.
Click to expand...
Click to collapse
Hi, thanks for deep insight! I had to read your post 5+ times to take it all in.
That the AT is deprecated is no secret, but the fact (at least according to some firmware specialists) is that it will still be a while before the OEM's can get rid of the (AT) dependence of their secret and crappy proprietary firmware, that often need to be backward compatible...
Regarding whether I'm talking to AP or CP. You are probably correct that I am talking to AP through HAL. At least from SGS2 block diagram, UART-3 is in the AP, but connected to a level-shifter in the PMIC (still on the same SoC), which is in turn connected to the BP UART-X. (I don't have a clue why this is done so.) So in any case it seem that the AT's are reaching their destination, through some abstraction layer, which may explain why I can only talk ATC's from Samsung Drivers and not from a local (phone) terminal shells.
The question is, what happens if we try to use the Bada trick, to go into ServiceMode (SM) and enable the corresponding BP access? But the SM is different on SGS and that option is not clearly available. However, there is:
Code:
MAIN MENU --> COMMON --> DIAG CONFIG
[1] LOG VIA USB *
[2] LOG VIA UART
[3] LOG VIA IPC
[4] SPEED 115200
[5] SPEED 921600 *
[6] DBG MSG OFF (toggle)
[7] RAMDUMP OFF (toggle)
[8] DUMP ALL TRACE
But these do not seem related to AP/BP connections...[EDIT]
I found it! The selection of AP/BP connection behavior
when connecting your phone as a USB client, to a PC
host, can be manually set in the PhoneUtil (PU) menu.
This sets the behavior of your phone when connecting it
to a PC, so that you can select whether you like it to act
as a Modem or PDA, on the USB and/or UART port.
The PU menu is different from the ServiceMode menu.
Dial: *#7284#
Code:
UART:
[[B]o[/B]] MODEM[B]*[/B]
[ ] PDA
USB:
[ ] MODEM
[[B]o[/B]] PDA[B]*[/B]
* is default SGS2 setting.
However, after making the change to use USB in MODEM mode,
my host is asking for new drivers, which I cannot find... ​Now, if the modem controlling interface is using RPC, how is this reflected at the OS level? Still, any Linux based kernel is device based, so there have to be a way to talk to that device. (I have no idea how to work with RPC's...)
There may be no real ability to communicate with modem directly on SGS2 and AT responses you are getting may be from Android, working on AP only, not AMSS (Advanced Mobile Subscriber Software - RTOS working on Qualcomm's CP)
Click to expand...
Click to collapse
A: There is no AMSS, since we are not using a Qualcomm BP in this device...
... Only single, incomplete manuals leak from Qualcomm, not really useful. Also AP-CP RPC protocol is proprietary of Samsung, they got AMSS sources from Qualcomm and they are adding their own drivers there.
Click to expand...
Click to collapse
A: Agree, but HW hackers are often too much concerned with getting the exact datasheets. Rather try to get an old/similar one that is available... The old device drivers probably have not changed THAT much, but at least it would be a start.
While AP-CP low level protocol is opensource (you can find it in dpram/onedram/modemctl drivers in kernel), higher level of that layer - compiled into sec-RIL, is not.
Click to expand...
Click to collapse
Can you be more specific? (I'm starting to get lost here somewhere...)
AP-CP protocol is different between I9000 and S8500 (general concept remains the same, just it has been rewriten so packet types and structures are different), but if you are interested - we're creating opensource RIL for S8000/S8500/S8530/S8600 device series, supposed to work with Android ports for them - http://code.google.com/p/bada-modemril/ (branch experimental-MochaIPC)
Click to expand...
Click to collapse
Yes, I am. How/where can I find what these differences are?
PS. Regarding the BP on the SGS2, see my 2nd post...
E:V:A said:
A: There is no AMSS, since we are not using a Qualcomm BP in this device...
Click to expand...
Click to collapse
Doesn't matter that much at all, it's likely almost the same stuff.
E:V:A said:
Can you be more specific? (I'm starting to get lost here somewhere...)
Yes, I am. How/where can I find what these differences are?
Click to expand...
Click to collapse
Not hard to get lost, it took me literally few months to understand all these things. Sources are very messy - pay attention to Makefiles, some of drivers aren't even compiled in.
I9000 GB driver (it was reorganised, comparing to Froyo)
https://github.com/project-voodoo/l...erbread-samsung/drivers/misc/samsung_modemctl
I9100 driver is in I9100 kernel sources in /drivers/svnet/ and /drivers/dpram/ (maybe also somewhere else, couldn't find direct link)
You can find my implementation of SHP OneDram frames-protocol there, based on I9000 GB driver - http://code.google.com/p/bada-modemctl/ (it isn't working yet - noone tested it)
As you can see - it's only lowlevel interface of sending frames and few parsers.
Real parsers and senders of frames are in libsec-ril.so library of platform - you can open it with IDA (I suggest 6.0+, it does deal with GOT of linux DLLs much better than previous versions) and find booting modem, installing callbacks inside of dpram/modemctl, parsing and sending packets and so on. Have fun.
I have to say I'm pretty lost on the topic already. I've read about such stuff at the replicant project a while ago. Maybe you find some useful information there.
replicant.us (can't link yet)
Looks to me like they have free ril implementations for dream, n1 and nexus S.
XdxH62 said:
I have to say I'm pretty lost on the topic already. I've read about such stuff at the replicant project a while ago. Maybe you find some useful information there.
Click to expand...
Click to collapse
Copy that! I don't even know where to begin...
But I have collected (thanks to you guys) the following very interesting links:
Available Source Code:
XGOLD-RIL (Omapzoom):
http://dev.omapzoom.org/?p=modem-int/xgold-ril.git;a=tree
Voodoo SGS-1 GB modem:
https://github.com/project-voodoo/l...ung/drivers/misc/samsung_modemctl/modem_ctl.c
https://github.com/project-voodoo/l...erbread-samsung/drivers/misc/samsung_modemctl
General...
https://github.com/GalaxySII/samsung-kernel-galaxysii
bada-modemril: Android RIL library for communication with baseband processor using Samsung OneDram.
https://code.google.com/p/bada-modemril/
bada-modemctl: Android kernel driver for communication with baseband processor using Samsung OneDram.
http://code.google.com/p/bada-modemctl/
Samsung H1 / Nexus S RIL/Modem support:
http://replicant.us/
http://trac.osuosl.org/trac/replicant/wiki
https://gitorious.org/replicant
https://gitorious.org/replicant/samsung-ril
http://github.com/morphis/libsamsung-ipc
http://ftp.osuosl.org/pub/replicant/
Nice!
http://trac.osuosl.org/trac/replicant/wiki/How_to_port_Replicant
https://github.com/morphis/libsamsung-ipc/tree/master/samsung-ipc/device/aries
Unrelated?
Android USB-to-serial: IOIO API
https://github.com/ytai/ioio/wiki
Android App: android-serialport-api
https://code.google.com/p/android-serialport-api/
Great USB GSM/3G stick hacking:
http://blogs.gnome.org/dcbw/category/drivers/
ModemManager Hmm??
https://launchpad.net/modemmanager
http://cgit.freedesktop.org/ModemManager/ModemManager/tree/README
http://cgit.freedesktop.org/ModemManager/ModemManager/tree/libqcdm/src/dm-commands.h
I am the Replicant developer who worked on Nexus S port and also did the work on aries (galaxy s, galaxy tab) devices and wrote a big part of the free RIL.
Replicant is a fully free Android derivate running on some devices (mostly Google phones).
If you have any question regarding samsung modems in Android phones, i'd be happy to answer them!
I'll attach the mail I sent back to E:V:A next
---------- Post added at 08:27 PM ---------- Previous post was at 08:22 PM ----------
Modems on Android devices is a wide domain.
Phones differ on many things, like:
* modem chipset
* modem firmware
* transport modem <-> AP
* modem protocol
* user-space integration (Android RIL)
First thing is the modem chipset. There are quite a few. For instance on
HTC phones, you'll have the ones included in the MSM or QSD SoCs (which
is quite unusual, modems aren't often part of the SoC) IIRC.
On other devices, it'll be a separate chip connected to the SoC via
various transport methods.
I know better the case of recent Samsung phones, like Nexus S, Galaxy S,
Galaxy Tab (first gen), Galaxy S2, etc.
There, you have the modem, usually an intel x-gold 6xx, that is wired to
the SoC. So transport is done via serial line and/or some dedicated RAM
memory (not from the main sticks).
Even though a phone can have the same modem wired (at hardware level)
the same way, the kernel drivers can be different. That's the case of
nexus s and galaxy s. On the first one, modem Rx/Tx with AP is done via
ioctls while on galaxy s it's done via a PHONET network interface
(svnet0). SO it's not (and particularly on Samsung phones) only a serial
interface you can open with screen: you need to understand how it's done
and write dedicated software to reproduce this (cf. the code on
libsamsung-ipc/devices/ that is device-specific).
So once you have transport set up, you need to know about the protocol
the modem speaks. This depends on the firmware the modem is running.
I know that the modem used in Nexus S is also used in some iPhone (4G
IIRC) but it has a different firmware and so speaks a different
protocol. I suspect it to be AT on the iPhone while Nexus S speaks a
samsung-specific modem protocol. They invented that protocol and
rewritten the modem firmware to use it instead of AT or anything else.
This protocol is usually called "Samsung IPC Protocol" and we have a
free implementation of it in libsamsung-ipc and samsung-ril.
On the Nokia N900, transport is also a PHONET socket and the protocol is
neither AT nor Samsung IPC but some protocol made by nokia and
implemented in ofono.
So you have exemples of different transport methods and modem protocols.
I could give you more exemples.
Of course, on Android, you need to have the user-space programs (the RIL
mainly) to match both the transport scheme and the modem protocol to
have anything working.
> Please have a look at our XDA-forum thread:
>
> "How to talk to the Modem with AT commands":
> http://forum.xda-developers.com/showthread.php?t=1471241
Apparently you were able to contact the modem with some AT commands.
Either the modem has an AT mode that can run along with IPC (would
surprise me, but why not), but it may very well be uncompleted and is
anyway not used at all in official binaries, either this is Android
emulating and AT device while sending back stuff from and to the RIL,
either this is not the modem.
Anyway I can tell you for sure that this is absolutely not the way to
talk to the modem properly. The correct way is to use the IPC protocol
and appropriate transport handling (which is way more complex than only
opening a serial line).
I just started the work on galaxy s2, I'll soon have done the transport
layer and we already know the protocol.
PaulKocialkowski said:
..Anyway I can tell you for sure that this is absolutely not the way to
talk to the modem properly. The correct way is to use the IPC protocol
and appropriate transport handling (which is way more complex than only
opening a serial line).
I just started the work on galaxy s2, I'll soon have done the transport
layer and we already know the protocol.
Click to expand...
Click to collapse
So no way to talk with the modem in Nexus S? Also if I use the REPLICANT rom?
Thanks.
alextreme said:
So no way to talk with the modem in Nexus S? Also if I use the REPLICANT rom?
Thanks.
Click to expand...
Click to collapse
Oh Nexus S status is very good (actually the best). That's the device we initally created libsamsung-ipc for (before, it was for samsung H1 and wasn't called libsamsung-ipc).
State of the modem using libsamsung-ipc and samsung-ril is at: redmine.replicant.us/projects/replicant/wiki/SamsungModems
basically, we have calls, sms, network registration and much more. Data is working but it's unclean on the code and needs more work. Note that I'm the only active dev on samsung-ril, and we're 2 on libsamsung-ipc. I'm also the one who added support for galaxy s and galaxy tab devices.
So in Nexus S, you can talk with the modem very easily, using libsamsung-ipc (which is a lib, so you need to use a binary, like modemctrl that comes with libsamsung-ipc).
Also, note that the SHR GNU/Linux distribution supports Nexus S as well and uses libsamung-ipc.
PaulKocialkowski said:
I am the Replicant developer who worked on Nexus S port and also did the work on aries (galaxy s, galaxy tab) devices and wrote a big part of the free RIL. ... I just started the work on galaxy s2, I'll soon have done the transport layer and we already know the protocol.
Click to expand...
Click to collapse
Hi Paul!
Thank you very much for your important contribution,
which really helped sort out, clarify and confirm many things!
I have just prepared a long response, but while writing it, more
fog has cleared and I will just go straight to my questions.
The rest (which is now less relevant) will be posted later as
a reference to others following this thread.
So my Questions to you at this point are:
Given the above pictures of the various abstraction layers,
how/where does the PHONET network interface fit in?
.
How does the "Samsung IPC Protocol" fit into this picture, regarding the translation and transmission of external terminal AT commands and their interpretation. [Perhaps you have link to a good/easy explanation of this protcol?]
.
How could we use this, to send ATC's from a local terminal?
I guess the ultimate reason for wanting to do this, is to be able to get closer to the radio-interface-layer, and thus be able to get access to those radio parameters, not normally available to applications via the limited Java API.
.
Alternatively, how would you propose a better way to obtain the various low-level modem variables such as the ones shown here? (Freesmartphone.org)
.
From the (poor) OMAPedia RIL-layer picture and the GT-I9100 block-diagram, it seem that there might perhaps be other channels available to communicate with the BP/Modem. (I.e. Through the UART, GPIO, McSPI?) Any ideas on how/if this could be done?
.
How could we build our own RIL(s) with minimal effort and test it?
.
For example, here is a copy of this, which is an example how to build Replicant RIL and then replace the local rild from command line to test with. Would be great to be able to do the same on the SGS2...without having to flash new ROMs.
.
How does the Replicant "libsamsung-ipc" differ from that used in the "Project-Vodoo: samsung_modemctl" ?
That was a bunch...
However, I would be happy to help contribute to Replicant if possible,
although you should keep in mind that I am not a professional
programmer in any way.
Here is the direct link to Replicant's Samsung RIL status page:
http://redmine.replicant.us/projects/replicant/wiki/SamsungModems
Recap of recent results
After the last post by Paul, things have become more clear. The following are the results I got up until then.
On the first one [Nexus S], modem Rx/Tx with AP is done via
ioctls while on Galaxy S it's done via a PHONET network interface
(svnet0). SO it's not (and particularly on Samsung phones) only a serial
interface you can open with screen: you need to understand how it's done
and write dedicated software to reproduce this...
Click to expand...
Click to collapse
The problem is to understand why I can communicate with ATC's from
outside (USB connected) terminal, but not from a local (on phone)
terminal, like for example /dev/ttyGS0. At this point I do understand that
the "SAMSUNG Mobile USB Modem" interface, together with ADB drivers,
provides some kind of (USB to HCI-socket to Modem) protocol converter,
and probably speaks directly to RIL and not the CP or Modem. We now
know that this is the Proprietary protocol called "Samsung IPC Protocol".
But if this is the case I thought I should still be able to find (and intercept)
whatever internal sockets or protocols used, to be able to establish and
send ATC's to the modem. But so far I have only been able to do the
following.
The setup:
Code:
[MY-PC] [RealTerm] <-- USB-cable --> [I9100]
Sending ATC's here is working as expected. I then tried to find the
devices/sockets/processes that handle this communication, and suddenly
I found myself in very murky waters. Trying to connect to the various local
devices on the phone, and not to sockets, as I do not know how to do that.
I had partial success, when I earlier tracked down /dev/ttyGS0 as having
something to do with the DataRouter. As I used nc to connect to
the ttyGS0 device during a RealTerm session, like this:
# nc -f /dev/ttyGS0
I could send characters to
RealTerm side, but the Modem never got anything. And when I typed on
RealTerm, only a few characters appeared on ttyGS0, but the modem did
respond normally. So I concluded that /dev/ttyGS0 is somehow used for
receiving modem responses, while some other protocol or device is used
for transmitting to modem. (This is now confirmed by the previous posts!)
How did I do this?
Unlike on other/older Android phones, the ATC's are not shown in logcat
under the tag "D/AT" but rather under "E/DataRouter"! So open another
window (adb shell) session and run: # logcat DataRouter:E *:S
Then open your (PC) terminal and send a few ATC's.
When sending an "AT"command, they will appear as:
Code:
E/DataRouter( 2585): After the usb select
E/DataRouter( 2585): Before checking the modem suspend state
E/DataRouter( 2585): PDP is resumed now
E/DataRouter( 2585): After checking the modem suspend state
E/DataRouter( 2585): Path set is [B][COLOR=Black]DATA_PATH_CHAR_MODEM[/COLOR][/B]
E/DataRouter( 2585): Send [1] bytes to SMD. message:A
E/DataRouter( 2585): Sending data to SMD: Len = [1]
E/DataRouter( 2585): buffer = [A]
E/DataRouter( 2585): Wrote 1 chars to EXTERNAL PORT [B][COLOR=Red]fd=17 ch = 41[/COLOR][/B]
E/DataRouter( 2585): Before the usb select
E/DataRouter( 2585): After the Modem Read select
E/DataRouter( 2585): Read 1 chars from SMD Modem file fd = 17
E/DataRouter( 2585): buf = A
E/DataRouter( 2585): Wrote 1 chars to USB PORT fd=29
E/DataRouter( 2585): buf=A
E/DataRouter( 2585): Before the Modem Read select
E/DataRouter( 2585): After the usb select
E/DataRouter( 2585): Before checking the modem suspend state
E/DataRouter( 2585): PDP is resumed now
E/DataRouter( 2585): After checking the modem suspend state
E/DataRouter( 2585): Path set is DATA_PATH_CHAR_MODEM
E/DataRouter( 2585): Send [1] bytes to SMD. message:T
E/DataRouter( 2585): Sending data to SMD: Len = [1]
E/DataRouter( 2585): buffer = [T]
But I didn't know exactly what to make from this, for example;
a) What is the "ch = 41" specification? It is just the ASCII of an "A" sent to
a device/file called 17. But when writing, it is called "EXTERNAL PORT"
while on reading, it's from "SMD Modem file"...
b) What is the DATA_PATH_CHAR_MODEM variable? I cannot find any
reference to this anywhere! I then found the devices and sockets by
identifying the file handles (fd) in the (datarouter) process directory:
Code:
[B]# busybox ls -al --color=never /proc/2585/fd[/B]
fd=17 --> socket:[1904]
fd=29 --> /dev/ttyGS0
NOTE: I prefer to always use the busybox binaries, as I no longer trust
the Samsung ones to give the complete/proper information...
Given the more recent information from previous posts, I decided to look for svnet.
Code:
[B]# find / -iname "*svnet*"[/B]
/proc/sys/net/ipv4/neigh/svnet0
/proc/sys/net/ipv4/conf/svnet0
/proc/sys/net/ipv6/neigh/svnet0
/proc/sys/net/ipv6/conf/svnet0
...
/proc/[B][COLOR=SeaGreen]<process-id>[/COLOR][/B]/net/dev_snmp6/svnet0
...
/sys/devices/virtual/net/svnet0
/sys/bus/usb/drivers/cdc_svnet
/sys/class/net/svnet0
[B]
# ls -l /sys/devices/virtual/net[/B]
drwxr-xr-x root root 2012-02-03 05:56 lo
drwxr-xr-x root root 2012-02-02 12:34 svnet0
drwxr-xr-x root root 2012-02-02 12:34 sit0
drwxr-xr-x root root 2012-02-02 17:21 pdp0
These are all interesting and relevant , but I have no idea what
they all do... But /sys/bus/usb/drivers/cdc_svnet are all linked to
the HCI-USB devices under: /sys/devices/platform/s5p-ehci/usb1/1-2
and contain 4 of each of:
- "CDC Communication Interface"
- "CDC Data Interface"
PaulKocialkowski said:
Oh Nexus S status is very good (actually the best). That's the device we initally created libsamsung-ipc for (before, it was for samsung H1 and wasn't called libsamsung-ipc).
State of the modem using libsamsung-ipc and samsung-ril is at: redmine.replicant.us/projects/replicant/wiki/SamsungModems
basically, we have calls, sms, network registration and much more. Data is working but it's unclean on the code and needs more work. Note that I'm the only active dev on samsung-ril, and we're 2 on libsamsung-ipc. I'm also the one who added support for galaxy s and galaxy tab devices.
So in Nexus S, you can talk with the modem very easily, using libsamsung-ipc (which is a lib, so you need to use a binary, like modemctrl that comes with libsamsung-ipc).
Also, note that the SHR GNU/Linux distribution supports Nexus S as well and uses libsamung-ipc.
Click to expand...
Click to collapse
Okay but I would like to send AT Commands from Android terminal to the modem or from an APP in Android. Can I find using REPLICANT ROM the folder /dev/smd0?
I found this an interesting read. http://download.maritex.com.pl/pdfs/wi/GSM-TM2.pdf It has a lot of information in it.
AdamOutler said:
I found this an interesting read. ... It has a lot of information in it.
Click to expand...
Click to collapse
Sorry, but I just can't see how it is relevant. Did I miss something? It's just another GSM module without HW specs as usual... Thanks anyway.
E:V:A said:
Sorry, but I just can't see how it is relevant. Did I miss something? It's just another GSM module without HW specs as usual... Thanks anyway.
Click to expand...
Click to collapse
It has AT command descriptions which may assist in adding more descriptions to the first page. I noticed alot of yours were incomplete, so I posted that.
AdamOutler said:
It has AT command descriptions which may assist in adding more descriptions to the first page. I noticed alot of yours were incomplete, so I posted that.
Click to expand...
Click to collapse
Ahh, yes. I was just updating the AT+Xzzzz sets form various sources. (The best one by far was the Google available: "AMOD HSPA Modules_AT_Command Specification".) I had to move the list to post #3. Now there are only a very few missing. The others I did not bother to re-explain/merge with the already known and "standard" ones...
There are a lot of implementations of the AT set. There are official documents with all the standard commands. Take a look at wiki.openmoko.org page: Hardware:AT_Commands (links to ETSI and 3GPP documents).
---------- Post added at 09:15 PM ---------- Previous post was at 08:41 PM ----------
IIRC, there is an UART debug line that can be used to talk to the modem directly. On Nexus S, the ttyFIQ0 node was related to UART. Maybe you can route the modem to ttyFIQ0 by dealing with /sys/class/sec/uart_switch/UART_SEL/value
Important fact: note this on Galaxy S2 init.rc:
chown radio system /sys/class/sec/uart_switch/UART_SEL/value
Really try to look at that sys node and you'll perhaps succeed to get it (modem UART line) routed on ttyFIQ0 on the device.
Also, look at the FSA something component in the kernel sources: it's highly related to the UART line. It was FSA9480 on Nexus S. Look at NexusSBootloader#Serial-Console on Replicant Redmine wiki to see how we used it.
I seriously doubt there is any kind of protocol converter that converts Samsung IPC data to AT commands on this line. In my opinion the line you get is most probably the modem debug UART line.
It looks like this:
Modem <-> UART line <-> FSA9480 <-> USB <-> Host PC
|<-> kernel driver <-> RIL <-> Android framework
And the idea would be to redirect the modem uart line to ttyFIQ0. I don't know if you have to do the routing via the FSA component. I know someone who perhaps knows better about that.
---------- Post added at 09:21 PM ---------- Previous post was at 09:15 PM ----------
The logs with DataRouter are really interesting. These are not part of the RIL (I checked with strings) but there is definitely something *software* between the modem and your terminal on PC.

[Q] TAP/Bridge mode VPN in jellybean

Has anyone successfully established a bridge mode VPN connection (using TAP) in any version of Jellybean, stock or custom?
It seems that every vpn app in the play store suggests that this can't be done in JB. I'd really like to upgrade to JB, but I really don't feel like reconfiguring my whole VPN setup, just to log on to my home server every once in awhile.
Hoping I'm wrong about this...
ushlambad said:
Has anyone successfully established a bridge mode VPN connection (using TAP) in any version of Jellybean, stock or custom?
It seems that every vpn app in the play store suggests that this can't be done in JB. I'd really like to upgrade to JB, but I really don't feel like reconfiguring my whole VPN setup, just to log on to my home server every once in awhile.
Hoping I'm wrong about this...
Click to expand...
Click to collapse
Yes all you need to do is search Open VPN Tun [short for tunnel and the name OpenVPN gives the setting] in the Android Play Store to find the Open VPN Settings app created by: Friedrich Schäuffelhut
[Found Here: Open VPN Settings]
When you run it it will run some checks and may ask you to download the following to install the ifconfig binary and the Open VPN binaries in to the system [ifconfig is installed as part of busybox so you maybe good may not but app checks and runs well].
Installer Link [which can also be run on it's own and also checks things and will tell you if you are good to go or if it needs to install things for you.
Open VPN Settings Installer
IF UNSURE USE /system/xbin for install location [first question] and accept defaults or the rest.
THIS WILL REQUIRE A ROOTED ANDROID DEVICE [due to it being a tunnel and not a tap interface you need root to set the connection up and make it usable within android the android VPN client itself only accepts TAP style interfaces due to possible security risks "casual" or "non-technical" users may not understand and thus to protect you from yourself it doesn't do TUN interfaces.
You can use either blah.ovpn OR blah.cfg [Windows servers use .ovpn as extension whereas Linux favors .cfg but both are the same text based profile file]. if I remember right just create /sdcard/openvpn/<whatever> [whatever is whatever directory name [if you want one] I use the client name that way all the keys and profiles are organized and not all jumbled in one folder [or if files have same name or different content then you will be forced to do this for something like multiple OpenVPN server profiles]. THE OpenVPN app tells you this if you open it and there is no /sdcard/openvpn folder found it says to create it in the middle of the main window area]
Also, it is easiest to edit your profiles so there is no absolute directory structure pointing to the files [the ca.crt, client.crt and client.key files].
This is very easy just remove all directories so the line ONLY has the filenames [See example profile in code box below].
Here to make this easy here is an example profile file I use [your server and port as well as if you choose to have it persist the IP addresses of clients across multiple connections may be different, up to you].
Code:
.
# Specify that this is a client
client
# Bridge device setting
dev tun
# Host name and port for the server (default port is 1194)
# note: replace with the correct values your server set up
remote some.domain.or.IP.address.here <whatever port you use here>
# Client does not need to bind to a specific local port
nobind
# Keep trying to resolve the host name of OpenVPN server.
## The windows GUI seems to dislike the following rule.
## You may need to comment it out.
## This MAY NOT be a good choice
## for most folks I use a private server
## without many clients so it doesn't
## affect me if they connect a bunch of times but any security systems
## may not like it if you connect too many times to quickly and you don't
## want your own server blocking your IP when you want to connect now do you :)
resolv-retry infinite
# Preserve state across restarts
persist-key
persist-tun
# SSL/TLS parameters - files created previously
ca ca.crt
cert client.crt
key client.key
# Specify same cipher as server
cipher <choose your cipher>
# [same as you set on your server don't make it different]
## Default here is usually BF-CBC if I remember right
# Use compression
## again make sure you enabled compression in the server profile or comment it out here
comp-lzo
# Log verbosity (to help if there are problems)
## I set it a little higher but not totally verbose
## I like a little info when there are problems
## to help fix them, up to you what you choose
## Can be different from server setting
verb 3
Hopefully this helps. I am unsure of your or anyone else who may like this posts technical skills so trying to be thorough. You could also use this profile to work backward filling in the same settings asked for in the server profile.
ONCE YOU GET THE profile on to the SDCARD and connect the first time the app will always bring it up and all you have to do is tap a checkbox to turn on the VPN Settings app and then once more to enable the profile you want [yes even if just one you have to check it, BUT, IF YOU uncheck the OpenVPN enable/disable checkbox at top the next time you enable it it will auto enable last used connection !
IT REALLY IS A VERY EASY TO USE AN NICE APP [AND ONLY ONE TO SUPPORT OPEN VPN TUN [TUNNEL] INTERFACE SETUPS!

how to configure 1000 android devices ?

Hello, (1st sorry for my english)
I have to configure as you can read 1000 Samsung Galaxy Tab S2 for a project (i'm doing it actually)
but after a lot of work i've just made 200 of them, so i'm here to ask for help.
What i've to do (step by step in order to know all) :
- start the tab
- choose french Langage / next
- don't attach to a wifi ssid / next
- uncheck the first "consent to provide diagnostic and usage data" / next
- agree terms and conditions / agree
- set GMT+01:00 / next
- NO First and NO Last name / next
- uncheck "Use Google's location service" / uncheck "Help improve location services" / uncheck "Help improve your Android experience" / next
- ask to create a Samsung account / skip
- Are you sure / SKIP
- Add fingerprint / LATER
Now i'm on the desktop
go to "settings"
- Sounds and notifications -> Volume -> System to 0
- Display / uncheck Auto
- Display / set Screen timeout at 10 minutes
- Users replace You by CAMPG
- Lock screen and security / change Screen lock type swipe by PIN and put 0000
- Notifications on lock screen / Do not show notifications / done
- Lock screen and security / Show information / Owner information / put : CAMPG
- Lock screen and security / Secure lock settings / Lock automatically / change to 30 minutes
- Lock screen and security / allow unknown sources
after that i'm connecting an usb key with an OTG cable and i'he to install 15 apk.
and the last thing is to fill in some informations (always the same ) in each program i've installed before so if i could put these informations in the clipboard it will be perfect
I will really appeciate if someone can help me...
Merci beaucoup
informations
Galaxy Tab S2
SM-T810
android version 5.0.2
Kernel version 3.10.9-6572077
Build number LRX22G.T810XXU2AOL6

Categories

Resources