WHAT IS CLAIMED IS:
1. A method of retrieving cell-phone related data by a host device from a peripheral cell phone device that is coupled to the host device via a USB port, the method comprising:
a. receiving USB endpoint descriptor data by the host device from the peripheral cell phone device that is coupled to the host device via the USB port;
b. analyzing the received USB endpoint descriptor data by the host device; and c. in a manner determined by the results of the analysis of the USB endpoint descriptor data, retrieving by the host device from the peripheral cell phone device at least one:
A. one or more SMS message(s);
B. a cell phone log or a portion thereof;
C. one or more cell phone-address-book entries; and
D. retrieving an IMEI or ESN or MEID hardware identifier.
2. A method of determining device property(ies) of a peripheral device by a host device that is coupled to the peripheral device via a USB port, the method comprising:
a. receiving USB endpoint descriptor data by the host device from the peripheral device that is coupled to the host device via a USB port;
b. analyzing the received USB endpoint descriptor data by the host device; and c. in a manner determined by the results of the analysis of the USB endpoint descriptor data, determining at least one of:
A. a memory capacity of the peripheral device;
B. a cellular network type(s) supported by the peripheral device;
C. a presence or absence of an onboard keyboard on the peripheral device;
D. an SMS repository capacity and/or an cellphone address book capacity of the peripheral device; and
E. a SMS and/or cellular phone log and/or cell phone address book and/or cellular phone hardware identifier retrieval scheme.
3. A method of sending a command from a host device to a composite peripheral device that is coupled to the host device via a USB port, the method comprising:
a. receiving USB endpoint descriptor data by the host device from the composite peripheral device that is coupled to the host device via the USB port, the composite peripheral device having a plurality of interface descriptors;
b. analyzing the received USB endpoint descriptor data by the host device; and c. according to the results of the analysis of the USB endpoint descriptor data, selecting a target interface descriptor selected from the plurality of interface descriptors; and d. routing a command sent to the peripheral device to the interface specified by the target interface descriptor.
4. A method of encoding a peripheral device command by a host device that is coupled to a peripheral device via a USB port, the method comprising:
a. receiving USB endpoint descriptor data by the host device from a peripheral device coupled to the host device via a USB port;
b. analyzing the received USB endpoint descriptor data by the host device;
c. according to the results of the analysis of the USB endpoint descriptor data, effecting a binary protocol-text protocol selection that prefers a text protocol over candidate binary protocol(s) or a binary protocol over candidate text protocol(s) ; and
d. encoding a command using the selected text or binary protocol.
5. A method of encoding a peripheral device command by a host device that is coupled to a peripheral device via a USB port, the method comprising:
a. receiving USB endpoint descriptor data by the host device from the peripheral device that is coupled to the host device via a USB port;
b. analyzing the received USB endpoint descriptor data by the host device; and c. for a candidate protocol set that includes all members of protocol set A =
{PROTOCOLS, PROTOCOL_2, PROTOCOL_5, PROTOCOL_6 } , selecting a protocol from the candidate protocol set in accordance with the results of the analysis of the USB descriptor endpoint descriptor data, the selected protocol being a member of protocol set A ; and
d. encoding one or more commands using the selected protocol that is a member of protocol set A.
wherein PROTOCOLS is an AT protocol,
PROTOCOL_2 is a Nokia fflus Protocol,
PROTOCOL_5 is a Qualcom BREW OS protocol,
PROTOCOL_6 is a mediate transfer protocol (MTP) of Microscoft®.
6. A method of encoding a peripheral device command by a host device that is coupled to a peripheral device via a USB port, the method comprising:
a. receiving USB endpoint descriptor data by the host device from the peripheral device that is coupled to the host device via a USB port;
b. analyzing the received USB endpoint descriptor data by the host device; and c. for a candidate protocol set that includes all members of protocol set B = {
PROTOCOLS, PROTOCOL_2, PROTOCOL_3, PROTOCOL_4, PROTOCOL_5, PROTOCOL_6, PROTOCOL_8, PROTOCOL_9, PROTOCOL_10, PROTOCOL_l l, PROTOCOL_12, }, selecting a protocol from the candidate protocol set in accordance with the results of the analysis of the USB descriptor endpoint descriptor data, the selected protocol being a member of protocol set B; and
d. encoding one or more commands using the selected protocol that is a member of protocol set B,
wherein PROTOCOL_l is an AT protocol,
PROTOCOL_2 is a Nokia fBus Protocol,
PROTOCOL_3 is a OBject EXchange (OBEX) protocol,
PROTOCOL_4 is a block-type mass-storage protocol,
PROTOCOL_5 is a Qualcom BREW OS protocol,
PROTOCOL_6 is a mediate transfer protocol (MTP) of Microscoft®, PROTOCOL_8 is a Android Debug Bridge (ADB) protocol,
PROTOCOL_9 is an Apple® IOS proprietary protocol,
PROTOCOL_10 is a Synchronization Markup Language (SyncML) protocol,
PROTOCOL_l 1 is a remote application programming interface (RAPI) over Remote
Network Driver Interface Specification (RNDIS) protocol),
PROTOCOLS 2 is a SIM card protocol.
7. A method of encoding a peripheral device command by a host device that is coupled to a peripheral device via a USB port, the method comprising:
a. receiving USB endpoint descriptor data by the host device from the peripheral device that is coupled to the host device via a USB port;
b. analyzing the received USB endpoint descriptor data by the host device; and c. for a candidate protocol set that includes all members of protocol set C =
{PROTOCOLS, PROTOCOL_2, PROTOCOL_5, PROTOCOL_7, PROTOCOL_9, }, selecting a protocol from the candidate protocol set in accordance with the results of the analysis of the USB descriptor endpoint descriptor data, the selected protocol being a member of protocol set C; and
d. encoding one or more commands using the selected protocol that is a member of protocol set C,
wherein PROTOCOL_l is an AT protocol,
PROTOCOL_2 is a Nokia fflus Protocol,
PROTOCOL_5 is a Qualcom BREW OS protocol,
PROTOCOL_7 is a RIM OS proprietary protocol,
PROTOCOL_9 is an Apple® IOS proprietary protocol.
8. A method of encoding a peripheral device command by a host device that is coupled to a peripheral device via a USB port, the method comprising:
a. receiving USB endpoint descriptor data by the host device from the peripheral device that is coupled to the host device via a USB port;
b. analyzing the received USB endpoint descriptor data by the host device; and c. for a candidate protocol set that includes all members of protocol set D =
{PROTOCOLS, PROTOCOL_2, PROTOCOL_3, PROTOCOL_4, PROTOCOL_5, PROTOCOL_6, PROTOCOL_7, PROTOCOL_8, PROTOCOL_9, PROTOCOL_10, PROTOCOL_l 1, PROTOCOL_12}, selecting a protocol from the candidate protocol set in accordance with the results of the analysis of the USB descriptor endpoint descriptor data, the selected protocol being a member of protocol set D; and
d. encoding one or more commands using the selected protocol that is a member of protocol set D,
wherein PROTOCOL_l is an AT protocol,
PROTOCOL_2 is a Nokia fBus Protocol,
PROTOCOL_3 is a OBject EXchange (OBEX) protocol,
PROTOCOL_4 is a block-type mass-storage protocol,
PROTOCOL_5 is a Qualcom BREW OS protocol,
PROTOCOL_6 is a mediate transfer protocol (MTP) of Microscoft®, PROTOCOL_7 is a RIM OS proprietary protocol,
PROTOCOL_8 is a Android Debug Bridge (ADB) protocol,
PROTOCOL_9 is an Apple® IOS proprietary protocol,
PROTOCOL_10 is a Synchronization Markup Language (SyncML) protocol,
PROTOCOL_l 1 is a remote application programming interface (RAPI) over Remote
Network Driver Interface Specification (RNDIS) protocol),
PROTOCOLS 2 is a SIM card protocol.
9. A protocol switch method by a host device that is coupled to a peripheral device via a USB port, the method comprising:
a. receiving USB endpoint descriptor data by the host device from the peripheral device that is coupled to the host device via a USB port;
b. analyzing the received USB endpoint descriptor data by the host device; and c. contingent upon results of the analyzing of the received USB endpoint descriptor data, effecting a protocol switch by the host device from a first protocol to a second protocol different from the first protocol such that:
i. both the first and second protocols are members of protocol set A = {PROTOCOLS, PROTOCOL_2, PROTOCOL_5, PROTOCOL_6} ; ii. the last host-encoded command before the protocol switch is encoded using the first protocol; and
iii. the first host-encoded command after the protocol switch is encoded using the second protocol,
wherein PROTOCOL_l is an AT protocol,
PROTOCOL_2 is a Nokia fflus Protocol,
PROTOCOL_5 is a Qualcom BREW OS protocol,
PROTOCOL_6 is a mediate transfer protocol (MTP) of Microscoft®.
10. A protocol switch method by a host device that is coupled to a peripheral device via a USB port, the method comprising:
a. receiving USB endpoint descriptor data by the host device from a peripheral device coupled to the host device via a USB port;
b. analyzing the received USB endpoint descriptor data by the host device; and c. contingent upon results of the analyzing of the received USB endpoint descriptor data, effecting a protocol switch by the host device from a first protocol to a second protocol different from the first protocol such that:
i. both the first and second protocols are members protocol set B = { PROTOCOLS, PROTOCOL_2, PROTOCOL_3, PROTOCOL_4, PROTOCOL_5, PROTOCOL_6, PROTOCOL_8, PROTOCOL_9, PROTOCOL_10, PROTOCOLS 1, PROTOCOL_12} ;
ii. the last host-encoded command before the protocol switch is encoded using the first protocol; and
iii. the first host-encoded command after the protocol switch is encoded using the second protocol,
wherein PROTOCOL_l is an AT protocol,
PROTOCOL_2 is a Nokia fflus Protocol,
PROTOCOL_3 is a OBject EXchange (OBEX) protocol,
PROTOCOL_4 is a block-type mass-storage protocol,
PROTOCOL_5 is a Qualcom BREW OS protocol,
PROTOCOL_6 is a mediate transfer protocol (MTP) of Microscoft®, PROTOCOL_8 is a Android Debug Bridge (ADB) protocol,
PROTOCOL_9 is an Apple® IOS proprietary protocol,
PROTOCOL_10 is a Synchronization Markup Language (SyncML) protocol,
PROTOCOL_l 1 is a remote application programming interface (RAPI) over Remote
Network Driver Interface Specification (RNDIS) protocol),
PROTOCOLS 2 is a SIM card protocol.
11. A protocol switch method by a host device that is coupled to a peripheral device via a USB port, the method comprising:
a. receiving USB endpoint descriptor data by the host device from the peripheral device that is coupled to the host device via a USB port;
b. analyzing the received USB endpoint descriptor data by the host device; and
c. contingent upon results of the analyzing of the received USB endpoint descriptor data, effecting a protocol switch by the host device from a first protocol to a second protocol different from the first protocol such that:
i. both the first and second protocols are members protocol set C = {PROTOCOLS, PROTOCOL_2, PROTOCOL_5, PROTOCOL_7, PROTOCOLS} ;
ii. the last host-encoded command before the protocol switch is encoded using the first protocol; and
iii. the first host-encoded command after the protocol switch is encoded using the second protocol,
wherein PROTOCOL_l is an AT protocol,
PROTOCOL_2 is a Nokia fflus Protocol,
PROTOCOL_5 is a Qualcom BREW OS protocol,
PROTOCOL_7 is a RIM OS proprietary protocol,
PROTOCOL_9 is an Apple® IOS proprietary protocol.
12. A protocol switch method by a host device that is coupled to a peripheral device via a USB port, the method comprising:
a. receiving USB endpoint descriptor data by the host device from the peripheral device that is coupled to the host device via a USB port;
b. analyzing the received USB endpoint descriptor data by the host device; and c. contingent upon results of the analyzing of the received USB endpoint descriptor data, effecting a protocol switch by the host device from a first protocol to a second protocol different from the first protocol such that:
i. both the first and second protocols are members protocol set D = as {PROTOCOLS, PROTOCOL_2, PROTOCOL_3, PROTOCOL_4, PROTOCOL_5, PROTOCOL_6, PROTOCOL_7, PROTOCOL_8, PROTOCOL_9, PROTOCOL_10, PROTOCOL_l l, PROTOCOL_12}, ii. the last host-encoded command before the protocol switch is encoded using the first protocol; and
iii. the first host-encoded command after the protocol switch is encoded using the second protocol,
wherein PROTOCOLS is an AT protocol,
PROTOCOL_2 is a Nokia fflus Protocol,
PROTOCOL_3 is a OBject EXchange (OBEX) protocol,
PROTOCOL_4 is a block-type mass-storage protocol,
PROTOCOL_5 is a Qualcom BREW OS protocol,
PROTOCOL_6 is a mediate transfer protocol (MTP) of Microscoft®, PROTOCOL_7 is a RIM OS proprietary protocol,
PROTOCOL_8 is a Android Debug Bridge (ADB) protocol,
PROTOCOL_9 is an Apple® IOS proprietary protocol,
PROTOCOL_10 is a Synchronization Markup Language (SyncML) protocol,
PROTOCOL_l 1 is a remote application programming interface (RAPI) over Remote
Network Driver Interface Specification (RNDIS) protocol),
PROTOCOLS 2 is a SIM card protocol.
13. A protocol switch method by a host device that is coupled to a peripheral device via a USB port, the method comprising:
a. receiving USB endpoint descriptor data by the host device from the peripheral device that is coupled to the host device via a USB port;
b. analyzing the received USB endpoint descriptor data by the host device; and c. contingent upon results of the analyzing of the received USB endpoint descriptor data, effecting a protocol switch by the host device from a first protocol that is one of a binary protocol and a text protocol to a second protocol that is different from the first protocol and that is the other from a text protocol and a binary protocol such that:
A. the last host-encoded command before the protocol switch is encoded using the first protocol; and
B. the first host-encoded command after the protocol switch is encoded using the second protocol.
14. The method as in any of claims 1-13 wherein steps (b) and (c) are carried out in accordance with the combination of the USB endpoint descriptor data and data of higher levels in the USB descriptor hierarchy.
15. The method as in any of claims 1-13 wherein steps (b) and (c) are carried out in accordance with the USB endpoint descriptor data without influence by data of higher levels in the USB descriptor hierarchy.
16. The method as in any of claims 1-13 wherein the analysis of step (b) includes analyzing the bEndpointAddress field and wherein step (c) is carried out in a manner that is contingent upon the results of the analyzing of the bEndpointAddress field.
17. The method as in any of claims 1-13 wherein the analysis of step (b) includes analyzing the bmAttributes field and wherein step (c) is carried out in a manner that is contingent upon the results of the analyzing of the bmAttributes field.
18. The method as in any of claims 1-13 wherein the analysis of step (b) includes analyzing the wMaxPacketSize field and wherein step (c) is carried out in a manner that is contingent upon the results of the analyzing of the wMaxPacketSize field.
19. The method as in any of claims 1-13 wherein the analysis of step (b) includes analyzing the blnterval field and wherein step (c) is carried out in a manner that is contingent upon results of the analyzing of the blnterval field.
20. A method of operating a host device on which operating system (OS) software is executing, the method comprising:
contingent upon the host device being in a first mode, responding to a coupling between a peripheral device and a host device so that the peripheral device passes hardware identifier information to the host device directly or indirectly specifying device driver(s) by preventing the hardware identifier information from reaching an executing plug-and- play-manager of the OS executing on the host side,
wherein the method is carried out on a host device that provides mutually-exclusive first and second modes, and wherein the method is carried out contingently on the host device being in the first mode and not in the second mode.
21. The method of claim 20 further comprising:
responding into a user log-in event or user attempted-log-in event by transitioning the host device mode from one of the first and second modes to the other of the first and second modes.
22. The method of claim 20 further comprising:
In accordance with content of user input received from a user into the host device, transitioning the host device mode from one of the first and second modes to the other of the first and second modes.
23. A method of operating a host device on which operating system (OS) software is executing, the method comprising:
a. responding, by soliciting user input, to a coupling between a peripheral device and a host device so that the peripheral device passes to the host device hardware identifier information that directly or indirectly specifying device driver(s);
b. in response to the user input soliciting, receiving the user input into the host device from the user;
c. in accordance with the contents of the user input, operating the host device in a first mode or in a second mode, the first and second modes being mutually exclusive;
d. only if the host device is operating in the first mode, preventing the device-driver- specifying hardware identifier information from reaching an executing plug-and-play- manager of the OS executing on the host side, thereby preventing the loading of the device driver(s) specified by the hardware identifier; and
e. otherwise, refraining from the preventing so that the OS executing on the host device or component(s) thereof forwards the hardware identifier to the plug-and-play-manager of the OS.
24. A method of operating a host device on which operating system (OS) is executing, the host device configured to receive input via a plurality of USB ports divided into first and second nonempty complementary disjoint subsets, the method comprising:
in response to a coupling, via one of the USB ports, between a peripheral device and a host device so that the peripheral device passes to the host device, via the one of the USB ports, hardware identifier information that directly or indirectly specifying device driver(s);
if the coupling is via a USB port that is a member of the first
subset, preventing the device-driver-specifying hardware identifier information from reaching an executing plug-and-play-manager of the OS executing on the host side, thereby preventing the loading of the device driver(s) specified by the hardware identifier; and
otherwise, refraining from the preventing so that the OS executing
on the host device or component(s) thereof forwards the hardware identifier to the plug-and-play- manager of the OS.
25. The method of claim 24 wherein at least one of the USB ports are built-in ports of the host device.
26. The method of claim 24 wherein at least one of the USB ports is an auxiliary external port.
27. A host device apparatus configured to carry out any method of any previous claim.
28. A method of retrieving cell-phone related data from a peripheral device by a host device on which operating system (OS) software executes, the method comprising:
a. in response to a coupling between the peripheral device and the host device via a USB port so that passes hardware identifier information to the host device directly or indirectly specifying device driver(s), executing code to prevent the executing OS software from loading the specified device driver(s) on the host device;
b. analyzing peripheral-device-descriptive data received from the peripheral device by the host device via the USB port; and
c. in a manner determined by the results of the analysis of the peripheral-device- descriptive data, determining at least one of:
A. a memory capacity of the peripheral device;
B. a cellular network type(s) supported by the peripheral device;
C. a presence or absence of an onboard keyboard on the peripheral device;
D. an SMS repository capacity and/or an cellphone address book capacity of the peripheral device; and
E. a SMS and/or cellular phone log and/or cell phone address book and/or cellular phone hardware identifier retrieval scheme.
29. A method of retrieving cell-phone related data from a composite peripheral device by a host device on which operating system (OS) software executes, the method comprising:
a. in response to a coupling between the composite peripheral device having a plurality of USB interface descriptors and the host device via a USB port so that passes hardware identifier information to the host device directly or indirectly specifying device driver(s), executing code to prevent the executing OS software from loading the specified device driver(s) on the host device;
b. analyzing peripheral-device-descriptive data received from the peripheral device by the host device via the USB port; and
c. according to the results of the analysis of the peripheral-device-descriptive data, selecting a target interface descriptor selected from the plurality of interface descriptors; and
d. routing a command sent to the peripheral device to the interface specified by the target interface descriptor.
30. A method of retrieving cell-phone related data from a peripheral device by a host device on which operating system (OS) software executes, the method comprising:
a. in response to a coupling between the peripheral device and the host device via a USB port so that passes hardware identifier information to the host device directly or indirectly specifying device driver(s), executing code to prevent the executing OS software from loading the specified device driver(s) on the host device;
b. analyzing peripheral-device-descriptive data received from the peripheral device by the host device via the USB port; and
c. according to the results of the analysis of the peripheral-device-descriptive data, effecting a binary protocol-text protocol selection that prefers a text protocol over candidate binary protocol(s) or a binary protocol over candidate text protocol(s); and d. encoding a command using the selected text or binary protocol.
31. The method of any preceding claim wherein the host device communicates with the peripheral device by means of a substitute driver that is different from a driver specified directly or indirectly by the hardware identifier information passed from the peripheral device to the host device.
32. A host device apparatus configured to carry out any method of any previous claim.
33. A system comprising a host device apparatus configured to carry out any method of any previous claim and the peripheral device coupled to the host device apparatus.
34. A host device comprising:
a) a USB interface operative for inter-device coupling with a peripheral cell phone device; and
b) a electronic circuitry configured to:
i. receive, via the USB interface and from the peripheral cell phone device that is coupled to the host device via the USB port, USB endpoint descriptor data;
ii. analyzing the received USB endpoint descriptor data; and
iii. in a manner determined by the results of the analysis of the USB endpoint descriptor data, retrieve via the USB interface, from the peripheral cell phone device, at least one:
A. one or more SMS message(s);
B. a cell phone log or a portion thereof;
C. one or more cell phone-address-book entries; and
D. retrieving an IMEI or ESN or MEID hardware identifier.
35. A host device comprising:
a) a USB interface operative for inter-device coupling with a peripheral device; and b) a electronic circuitry configured to:
i. receive, via the USB interface and from the peripheral cell phone device that is coupled to the host device via the USB port, USB endpoint descriptor data;
ii. analyze the received USB endpoint descriptor; and
iii. in a manner determined by the results of the analysis of the USB endpoint descriptor data, determine at least one of:
A. a memory capacity of the peripheral device;
B. a cellular network type(s) supported by the peripheral device;
C. a presence or absence of an onboard keyboard on the peripheral device;
D. an SMS repository capacity and/or an cellphone address book capacity of the peripheral device; and
E. a SMS and/or cellular phone log and/or cell phone address book and/or cellular phone hardware identifier retrieval scheme.
36. A host device comprising:
a) a USB interface operative for inter-device coupling with a peripheral device; and b) a electronic circuitry configured to:
i. receive, via the USB interface and from the peripheral cell phone device that is coupled to the host device via the USB port, USB endpoint descriptor data;
ii. analyze the received USB endpoint descriptor; and
iii. according to the results of the analysis of the USB endpoint descriptor data, selecting a target interface descriptor selected from the plurality of interface descriptors; and
iv. routing a command sent to the peripheral device to the interface specified by the target interface descriptor.
37. A host device comprising:
a) a USB interface operative for inter-device coupling with a peripheral device; and b) a electronic circuitry configured to:
i. receive, via the USB interface and from the peripheral cell phone device that is coupled to the host device via the USB port, USB endpoint descriptor data;
ii. analyze the received USB endpoint descriptor; and
iii. according to the results of the analysis of the USB endpoint descriptor data, effect a binary protocol-text protocol selection that prefers a text protocol over candidate binary protocol(s) or a binary protocol over candidate text protocol(s); and
iv. encode a command using the selected text or binary protocol.
38. A host device comprising:
a) a USB interface operative for inter-device coupling with a peripheral device; and b) a electronic circuitry configured to:
i. receive, via the USB interface and from the peripheral cell phone device that is coupled to the host device via the USB port, USB endpoint descriptor data;
ii. analyze the received USB endpoint descriptor; and
iii. for a candidate protocol set that includes all members of protocol set A = { PROTOCOL.1, PROTOCOL_2, PROTOCOL_5, PROTOCOL_6, } , select a protocol from the candidate protocol set in accordance with the results of the analysis of the USB descriptor endpoint descriptor data, the selected protocol being a member of protocol set A ; and
iv. encode one or more commands using the selected protocol that is a member of protocol set A.
wherein PROTOCOLS is an AT protocol, PROTOCOL_2 is a Nokia fflus Protocol, PROTOCOL_5 is a Qualcom BREW OS protocol, PROTOCOL_6 is a mediate transfer protocol (MTP) of Microscoft®.
38. A host device comprising:
a) a USB interface operative for inter-device coupling with a peripheral device; and b) a electronic circuitry configured to:
i. receive, via the USB interface and from the peripheral cell phone device that is coupled to the host device via the USB port, USB endpoint descriptor data;
ii. analyze the received USB endpoint descriptor; and
iii. for a candidate protocol set that includes all members of protocol set B = { PROTOCOLS, PROTOCOL_2, PROTOCOL_3, PROTOCOL_4, PROTOCOL_5, PROTOCOL_6, PROTOCOL_8, PROTOCOL_9, PROTOCOL_10, PROTOCOL_l l, PROTOCOL_12}, select a protocol from the candidate protocol set in accordance with the results of the analysis of the USB descriptor endpoint descriptor data, the selected protocol being a member of protocol set B; and
d. encode one or more commands using the selected protocol that is a member of protocol set B,
wherein PROTOCOL_l is an AT protocol,
PROTOCOL_2 is a Nokia fBus Protocol,
PROTOCOL_3 is a OBject EXchange (OBEX) protocol,
PROTOCOL_4 is a block-type mass-storage protocol,
PROTOCOL_5 is a Qualcom BREW OS protocol,
PROTOCOL_6 is a mediate transfer protocol (MTP) of Microscoft®, PROTOCOL_8 is a Android Debug Bridge (ADB) protocol,
PROTOCOL_9 is an Apple® IOS proprietary protocol,
PROTOCOL_10 is a Synchronization Markup Language (SyncML) protocol,
PROTOCOL_l l is a remote application programming interface (RAPI) over Remote
Network Driver Interface Specification (RNDIS) protocol),
PROTOCOLS 2 is a SIM card protocol.
39. A host device comprising:
a) a USB interface operative for inter-device coupling with a peripheral device; and b) a electronic circuitry configured to:
i. receive, via the USB interface and from the peripheral cell phone device that is coupled to the host device via the USB port, USB endpoint descriptor data;
ii. analyze the received USB endpoint descriptor; and
iii. for a candidate protocol set that includes all members of protocol set C = {PROTOCOLS, PROTOCOL_2, PROTOCOL_5, PROTOCOL_7, PROTOCOL_9, }, select a protocol from the candidate protocol set in accordance with the results of the analysis of the USB descriptor endpoint descriptor data, the selected protocol being a member of protocol set C; and
iv. encoding one or more commands using the selected protocol that is a member of protocol set C,
wherein PROTOCOL_l is an AT protocol,
PROTOCOL_2 is a Nokia fflus Protocol,
PROTOCOL_5 is a Qualcom BREW OS protocol,
PROTOCOL_7 is a RIM OS proprietary protocol,
PROTOCOL_9 is an Apple® IOS proprietary protocol.
40. A host device comprising:
a) a USB interface operative for inter-device coupling with a peripheral device; and b) a electronic circuitry configured to:
i. receive, via the USB interface and from the peripheral cell phone device that is coupled to the host device via the USB port, USB endpoint descriptor data;
ii. analyze the received USB endpoint descriptor; and
iii. for a candidate protocol set that includes all members of protocol set D = { PROTOCOL.1, PROTOCOL_2, PROTOCOL_3, PROTOCOL_4, PROTOCOL_5, PROTOCOL_6, PROTOCOL_7, PROTOCOL_8, PROTOCOL_9, PROTOCOL_10, PROTOCOL_l l, PROTOCOL_12, }, select a protocol from the candidate protocol set in accordance with the results of the analysis of the USB descriptor endpoint descriptor data, the selected protocol being a member of protocol set D; and
iv. encode one or more commands using the selected protocol that is a member of protocol set D,
wherein PROTOCOLS is an AT protocol,
PROTOCOL_2 is a Nokia fflus Protocol,
PROTOCOL_3 is a OBject EXchange (OBEX) protocol,
PROTOCOL_4 is a block-type mass-storage protocol,
PROTOCOL_5 is a Qualcom BREW OS protocol,
PROTOCOL_6 is a mediate transfer protocol (MTP) of Microscoft®, PROTOCOL_7 is a RIM OS proprietary protocol,
PROTOCOL_8 is a Android Debug Bridge (ADB) protocol,
PROTOCOL_9 is an Apple® IOS proprietary protocol,
PROTOCOL_10 is a Synchronization Markup Language (SyncML) protocol,
PROTOCOL_l l is a remote application programming interface (RAPI) over Remote Network Driver Interface Specification (RNDIS) protocol),
PROTOCOLS 2 is a SIM card protocol.
A host device comprising:
a) a USB interface operative for inter-device coupling with a peripheral device; and b) a electronic circuitry configured to:
i. receive, via the USB interface and from the peripheral cell phone device that is coupled to the host device via the USB port, USB endpoint descriptor data;
ii. analyze the received USB endpoint descriptor; and
iii. contingent upon results of the analyzing of the received USB endpoint descriptor data, effect a protocol switch by the host device from a first protocol to a second protocol different from the first protocol such that:
i. both the first and second protocols are members of protocol set A = {PROTOCOLS, PROTOCOL_2, PROTOCOL_5, PROTOCOL_6, }; ii. the last host-encoded command before the protocol switch is encoded using the first protocol; and
iii. the first host-encoded command after the protocol switch is encoded using the second protocol,
wherein PROTOCOL_l is an AT protocol,
PROTOCOL_2 is a Nokia fflus Protocol,
PROTOCOL_5 is a Qualcom BREW OS protocol,
PROTOCOL_6 is a mediate transfer protocol (MTP) of Microscoft®.
42. A host device comprising:
a) a USB interface operative for inter-device coupling with a peripheral device; and b) a electronic circuitry configured to:
i. receive, via the USB interface and from the peripheral cell phone device that is coupled to the host device via the USB port, USB endpoint descriptor data;
ii. analyze the received USB endpoint descriptor; and
iii. contingent upon results of the analyzing of the received USB endpoint descriptor data, effect a protocol switch by the host device from a first protocol to a second protocol different from the first protocol such that:
i. both the first and second protocols are members of protocol set B = { PROTOCOLS, PROTOCOL_2, PROTOCOL_3, PROTOCOL_4, PROTOCOL_5, PROTOCOL_6, PROTOCOL_8, PROTOCOL_9, PROTOCOL_10, PROTOCOLS 1, PROTOCOL_12, };
ii. the last host-encoded command before the protocol switch is encoded using the first protocol; and
iii. the first host-encoded command after the protocol switch is encoded using the second protocol,
wherein PROTOCOL_l is an AT protocol,
PROTOCOL_2 is a Nokia fBus Protocol,
PROTOCOL_3 is a OBject EXchange (OBEX) protocol,
PROTOCOL_4 is a block-type mass-storage protocol,
PROTOCOL_5 is a Qualcom BREW OS protocol,
PROTOCOL_6 is a mediate transfer protocol (MTP) of Microscoft®, PROTOCOL_8 is a Android Debug Bridge (ADB) protocol,
PROTOCOL_9 is an Apple® IOS proprietary protocol,
PROTOCOL_10 is a Synchronization Markup Language (SyncML) protocol,
PROTOCOL_l l is a remote application programming interface (RAPI) over Remote
Network Driver Interface Specification (RNDIS) protocol),
PROTOCOLS 2 is a SIM card protocol.
43. A host device comprising:
a) a USB interface operative for inter-device coupling with a peripheral device; and b) a electronic circuitry configured to:
i. receive, via the USB interface and from the peripheral cell phone device that is coupled to the host device via the USB port, USB endpoint descriptor data;
ii. analyze the received USB endpoint descriptor; and
iii. contingent upon results of the analyzing of the received USB endpoint descriptor data, effect a protocol switch by the host device from a first protocol to a second protocol different from the first protocol such that:
i. both the first and second protocols are members of protocol set C = {PROTOCOLS, PROTOCOL_2, PROTOCOL_5, PROTOCOL_7, PROTOCOLS, };
ii. the last host-encoded command before the protocol switch is encoded using the first protocol; and
iii. the first host-encoded command after the protocol switch is encoded using the second protocol,
wherein PROTOCOL_l is an AT protocol,
PROTOCOL_2 is a Nokia fflus Protocol,
PROTOCOL_5 is a Qualcom BREW OS protocol,
PROTOCOL_7 is a RIM OS proprietary protocol,
PROTOCOL_9 is an Apple® IOS proprietary protocol.
44. A host device comprising:
a) a USB interface operative for inter-device coupling with a peripheral device; and b) a electronic circuitry configured to:
i. receive, via the USB interface and from the peripheral cell phone device that is coupled to the host device via the USB port, USB endpoint descriptor data;
ii. analyze the received USB endpoint descriptor; and
iii. contingent upon results of the analyzing of the received USB endpoint descriptor data, effect a protocol switch by the host device from a first protocol to a second protocol different from the first protocol such that:
i. both the first and second protocols are members of protocol set D = as {PROTOCOLS, PROTOCOL_2, PROTOCOL_3, PROTOCOL_4, PROTOCOL_5, PROTOCOL_6, PROTOCOL_7, PROTOCOL_8, PROTOCOL_9, PROTOCOL_10, PROTOCOL_l l, PROTOCOL_12, }, ii. the last host-encoded command before the protocol switch is encoded using the first protocol; and
iii. the first host-encoded command after the protocol switch is encoded using the second protocol,
wherein PROTOCOL_l is an AT protocol,
PROTOCOL_2 is a Nokia fflus Protocol,
PROTOCOL_3 is a OBject EXchange (OBEX) protocol,
PROTOCOL_4 is a block-type mass-storage protocol,
PROTOCOL_5 is a Qualcom BREW OS protocol,
PROTOCOL_6 is a mediate transfer protocol (MTP) of Microscoft®, PROTOCOL_7 is a RIM OS proprietary protocol,
PROTOCOL_8 is a Android Debug Bridge (ADB) protocol,
PROTOCOL_9 is an Apple® IOS proprietary protocol,
PROTOCOL_10 is a Synchronization Markup Language (SyncML) protocol,
PROTOCOL_l l is a remote application programming interface (RAPI) over Remote Network Driver Interface Specification (RNDIS) protocol),
PROTOCOLS 2 is a SIM card protocol.
ost device comprising:
a) a USB interface operative for inter-device coupling with a peripheral device; and b) a electronic circuitry configured to:
i. receive, via the USB interface and from the peripheral cell phone device that is coupled to the host device via the USB port, USB endpoint descriptor data;
ii. analyze the received USB endpoint descriptor; and
iii. contingent upon results of the analyzing of the received USB endpoint descriptor data, effect a protocol switch by the host device from a first protocol that is one of a binary protocol and a text protocol to a second protocol that is different from the first protocol and that is the other from a text protocol and a binary protocol such that:
A. the last host-encoded command before the protocol switch is encoded using the first protocol; and
B. the first host-encoded command after the protocol switch is encoded using the second protocol.
46. The system as in any of claims 34-45 wherein the electronic circuitry is configured to carry out the steps (ii) and (iii) in accordance with the combination of the USB endpoint descriptor data and data of higher levels in the USB descriptor hierarchy.
47. The system as in any of claims 34-45 wherein steps (b) and (c) are carried out in accordance with the USB endpoint descriptor data without influence by data of higher levels in the USB descriptor hierarchy.
48. The system as in any of claims 34-45 wherein the analysis of step (b) includes analyzing the bEndpointAddress field and wherein step (c) is carried out in a manner that is contingent upon the results of the analyzing of the bEndpointAddress field.
49. The system as in any of claims 34-45 wherein the analysis of step (b) includes analyzing the bmAttributes field and wherein step (c) is carried out in a manner that is contingent upon the results of the analyzing of the bmAttributes field.
50. The system as in any of claims 34-45 wherein the analysis of step (b) includes analyzing the wMaxPacketSize field and wherein step (c) is carried out in a manner that is contingent upon the results of the analyzing of the wMaxPacketSize field.
51. The system as in any of claims 34-45 wherein the analysis of step (b) includes analyzing the binterval field and wherein step (c) is carried out in a manner that is contingent upon results of the analyzing of the binterval field.
52. A host device comprising:
a) a USB interface operative for inter-device coupling with a peripheral device; and b) electronic circuitry configured to execute operating system (OS) software code, the electronic circuitry having mutually-exclusive first and second modes so that the host device has mutually-exclusive first and second modes, the electronic circuitry being further configured to carry out the following while the operating system (OS) software code executes:
contingent upon the host device being in a first mode, responding to a coupling between the peripheral device and the host device so that the peripheral device
passes hardware identifier information to the host device directly or indirectly specifying device driver(s) by preventing the hardware identifier information from reaching an executing plug- and-play- manager of the OS executing on the host side,
wherein the method is carried out contingently the host device being in the first mode and not in the second mode.
53. The host device of claim 52 wherein the electronic circuitry is further operative to carry out the following:
responding into a user log-in event or user attempted-log-in event by transitioning the electronic circuitry mode from one of the first and second modes to the other of the first and second modes.
54. The host device of claim 52 wherein the electronic circuitry is further operative to carry out the following:
In accordance with content of user input received from a user into the host device, transitioning the host device mode from one of the first and second modes to the other of the first and second modes.
55. A host device comprising:
a) a USB interface operative for inter-device coupling with a peripheral device; and b) electronic circuitry configured to execute operating system (OS) software code, the electronic circuitry having mutually-exclusive first and second modes so that the host device has mutually-exclusive first and second modes, the electronic circuitry being further configured to carry out the following while the operating system (OS) software code executes:
i. in response to the user input soliciting, receive the user input into the host device from the user;
ii. in accordance with the contents of the user input, operate the host device in a first mode or in a second mode, the first and second modes being mutually exclusive;
iii. only if the host device is operating in the first mode, prevent the device-driver- specifying hardware identifier information from reaching an executing plug-and-
play-manager of the OS executing on the host side, thereby preventing the loading of the device driver(s) specified by the hardware identifier; and
iv. otherwise, refrain from the preventing so that the OS executing on the host device or component(s) thereof forwards the hardware identifier to the plug-and- play- manager of the OS.
56. A host device comprising:
a) a plurality of USB ports divided into first and second non-empty complementary disjoint subsets,; and
b) electronic circuitry configured to execute operating system (OS) software code, the electronic circuitry being further configured to carry out the following while the operating system (OS) software code executes:
in response to a coupling, via one of the USB ports, between a peripheral device and a host device so that the peripheral device passes to the host device, via the one of the USB ports, hardware identifier information that directly or indirectly specifying device driver(s);
A) if the coupling is via a USB port that is a member of the first subset, preventing the device-driver-specifying hardware identifier information from reaching an executing plug-and-play-manager of the OS executing on the host side, thereby preventing the loading of the device driver(s) specified by the hardware identifier; and
B) otherwise, refraining from the preventing so that the OS executing on the host device or component(s) thereof forwards the hardware identifier to the plug-and-play-manager of the OS.
57. The host device of claim 56 wherein at least one of the USB ports are built-in ports of the host device.
58. The host device of claim 56 wherein at least one of the USB ports is an auxiliary external port.
59. A method of encoding a peripheral device command by a host device that is coupled to a peripheral device via a USB port, the method comprising:
a. receiving USB endpoint descriptor data by the host device from the peripheral device that is coupled to the host device via a USB port;
b. analyzing the received USB endpoint descriptor data by the host device; and c. for a candidate protocol set E that includes any two or more members of protocol set X = {PROTOCOLS, PROTOCOL_2, PROTOCOL_3, , PROTOCOL_4,PROTOCOL_5, PROTOCOL_6, PROTOCOL_7, PROTOCOL_8,PROTOCOL_9,PROTOCOL_10, PROTOCOLS 1, PROTOCOL_12, PROTOCOL_13„ PROTOCOL_14} selecting a protocol from the candidate protocol set in accordance with the results of the analysis of the USB descriptor endpoint descriptor data, the selected protocol being a member of protocol set E and
d. encoding one or more commands using the selected protocol that is a member of protocol set E.
wherein PROTOCOL_l is an AT protocol,
PROTOCOL_2 is a Nokia fflus Protocol,
PROTOCOL_3 is a OBject EXchange (OBEX) protocol,
PROTOCOL_4 is a block-type mass-storage protocol,
PROTOCOL_5 is a Qualcom BREW OS protocol,
PROTOCOL_6 is a mediate transfer protocol (MTP) of Microscoft®, PROTOCOL_7 is a RIM OS proprietary protocol,
PROTOCOL_8 is a Android Debug Bridge (ADB) protocol,
PROTOCOL_9 is an Apple® IOS proprietary protocol,
PROTOCOL_10 is a Synchronization Markup Language (SyncML) protocol,
PROTOCOL_l 1 is a remote application programming interface (RAPI) over Remote
Network Driver Interface Specification (RNDIS) protocol),
PROTOCOLS 2 is a SIM card protocol.
PROTOCOL_13 is an android fastboot protocol and
PROTOCOL_14 is an LG binqary object exchange proprietary protocol.
60. A protocol switch method by a host device that is coupled to a peripheral device via a USB port, the method comprising:
a. receiving USB endpoint descriptor data by the host device from the peripheral device that is coupled to the host device via a USB port;
b. analyzing the received USB endpoint descriptor data by the host device; and
c. contingent upon results of the analyzing of the received USB endpoint descriptor data, effecting a protocol switch by the host device from a first protocol to a second protocol different from the first protocol such that:
i. both the first and second protocols are members of protocol set X= {PROTOCOLS, PROTOCOL_2, PROTOCOL_3, ,
PROTOCOL_4,PROTOCOL_5, PROTOCOL_6, PROTOCOL_7, PROTOCOL_8,PROTOCOL_9,PROTOCOL_10, PROTOCOL_l 1, PROTOCOL_12, PROTOCOL_13„ PROTOCOL_14}'
ii. the last host-encoded command before the protocol switch is encoded using the first protocol; and
iii. the first host-encoded command after the protocol switch is encoded using the second protocol,
wherein PROTOCOL_l is an AT protocol,
PROTOCOL_2 is a Nokia fflus Protocol,
PROTOCOL_3 is a OBject EXchange (OBEX) protocol,
PROTOCOL_4 is a block-type mass-storage protocol,
PROTOCOL_5 is a Qualcom BREW OS protocol,
PROTOCOL_6 is a mediate transfer protocol (MTP) of Microscoft®, PROTOCOL_7 is a RIM OS proprietary protocol,
PROTOCOL_8 is a Android Debug Bridge (ADB) protocol,
PROTOCOL_9 is an Apple® IOS proprietary protocol,
PROTOCOL_10 is a Synchronization Markup Language (SyncML) protocol,
PROTOCOL_l 1 is a remote application programming interface (RAPI) over Remote Network Driver Interface Specification (RNDIS) protocol),
PROTOCOLS 2 is a SIM card protocol.
PROTOCOL_13 is an android fastboot protocol and
PROTOCOL_14 is an LG binary object exchange proprietary protocol.
ost device comprising:
a) a USB interface operative for inter-device coupling with a peripheral device; and b) a electronic circuitry configured to:
i. receive, via the USB interface and from the peripheral cell phone device that is coupled to the host device via the USB port, USB endpoint descriptor data;
ii. analyze the received USB endpoint descriptor; and
iii. for a candidate protocol set E that includes any two or more members of protocol set X = { PROTOCOL.1, PROTOCOL_2, PROTOCOL_3, PROTOCOL_4, PROTOCOL_5, PROTOCOL_6, PROTOCOL_7, PROTOCOL_8, PROTOCOL_9, PROTOCOL_10, PROTOCOL_l l, PROTOCOL_12, PROTOCOL_13, PROTOCOL_14} , select a protocol from the candidate protocol set in accordance with the results of the analysis of the USB descriptor endpoint descriptor data, the selected protocol being a member of protocol set E; and
iv. encode one or more commands using the selected protocol that is a member of protocol set E,
wherein PROTOCOL_l is an AT protocol,
PROTOCOL_2 is a Nokia fflus Protocol,
PROTOCOL_3 is a OBject EXchange (OBEX) protocol,
PROTOCOL_4 is a block-type mass-storage protocol,
PROTOCOL_5 is a Qualcom BREW OS protocol,
PROTOCOL_6 is a mediate transfer protocol (MTP) of Microscoft®, PROTOCOL_7 is a RIM OS proprietary protocol,
PROTOCOL_8 is a Android Debug Bridge (ADB) protocol,
PROTOCOL_9 is an Apple® IOS proprietary protocol,
PROTOCOL_10 is a Synchronization Markup Language (SyncML) protocol,
PROTOCOL_l 1 is a remote application programming interface (RAPI) over Remote Network Driver Interface Specification (RNDIS) protocol),
PROTOCOLS 2 is a SIM card protocol.
PROTOCOL_13 is an android fastboot protocol and
PROTOCOL_14 is an LG binary object exchange proprietary protocol.
62. A host device comprising:
a) a USB interface operative for inter-device coupling with a peripheral device; and b) a electronic circuitry configured to:
i. receive, via the USB interface and from the peripheral cell phone device that is coupled to the host device via the USB port, USB endpoint descriptor data;
ii. analyze the received USB endpoint descriptor; and
iii. contingent upon results of the analyzing of the received USB endpoint descriptor data, effect a protocol switch by the host device from a first protocol to a second protocol different from the first protocol such that:
i. both the first and second protocols are members of protocol set X = {PROTOCOLS, PROTOCOL_2, PROTOCOL_3, PROTOCOL_4, PROTOCOL_5, PROTOCOL_6, PROTOCOL_7, PROTOCOL_8, PROTOCOL_9, PROTOCOL_10, PROTOCOL_l l, PROTOCOL_12, PROTOCOL_13, PROTOCOL_14}
ii. the last host-encoded command before the protocol switch is encoded using the first protocol; and
iii. the first host-encoded command after the protocol switch is encoded using the second protocol,
wherein PROTOCOL_l is an AT protocol,
PROTOCOL_2 is a Nokia fflus Protocol,
PROTOCOL_3 is a OBject EXchange (OBEX) protocol,
PROTOCOL_4 is a block-type mass-storage protocol,
PROTOCOL_5 is a Qualcom BREW OS protocol,
PROTOCOL_6 is a mediate transfer protocol (MTP) of Microscoft®, PROTOCOL_7 is a RIM OS proprietary protocol,
PROTOCOL_8 is a Android Debug Bridge (ADB) protocol,
PROTOCOL_9 is an Apple® IOS proprietary protocol,
PROTOCOL_10 is a Synchronization Markup Language (SyncML) protocol,
PROTOCOL_l 1 is a remote application programming interface (RAPI) over Remote
Network Driver Interface Specification (RNDIS) protocol),
PROTOCOLS 2 is a SIM card protocol.
PROTOCOL_13 is an android fastboot protocol and
PROTOCOL_14 is an LG binary object exchange proprietary protocol.
64
63. A host device apparatus configured to carry out any method of any previous claim.
64. The host device of any preceding claim wherein the electronic circuitry includes any combination of one or more microprocessor(s) and computer memory.
65. The host device of claim 64 wherein the computer memory includes volatile and/or nonvolatile memory.
66. The host device of any preceding claim wherein the electronic circuitry includes any combination digital circuitry, software and firmware.
67. A computer readable medium comprising storage media having stored thereon computer readable program code for performing any method of any previous claim.