Fact-checked by Grok 2 weeks ago

OBject EXchange

OBEX (OBject EXchange), also known as IrOBEX, is a compact, binary session protocol developed by the (IrDA) for the efficient exchange of binary objects, such as files, vCards, contacts, and folders, between devices like personal computers, personal digital assistants (PDAs), and cameras. Originally designed for (IrDA) connections, it has evolved to support multiple transport layers including , TCP/IP, and others, enabling simple, spontaneous data transfers, synchronization, and command/control operations in a client-server model. The protocol operates on a request-response basis using opcodes for operations such as CONNECT (to establish sessions), PUT and GET (for sending and retrieving objects), SETPATH (for folder ), DISCONNECT, and ABORT, with support for via MD5 hashing and session resumption via unique identifiers to handle interruptions reliably. Key features include negotiable packet sizes up to 64 KB (default 255 bytes), extensible headers for metadata (e.g., Name, Type, Length, ), and Single Response (SRM) to batch operations and reduce overhead, making it suitable for resource-constrained environments. OBEX's history traces back to IrDA specifications, with version 1.5 released on August 14, 2009, incorporating enhancements like improved session management and XML-based object representations for advanced folder listings, while maintaining compatibility across platforms. It maps closely to HTTP for familiarity but prioritizes efficiency in binary form, facilitating applications like (e.g., Object Push Profile in ) and phone book access without requiring complex implementations.

Overview and History

Definition and Purpose

OBEX (Object Exchange) is a session-oriented designed for the transfer of objects, such as vCards, vCalendars, images, or files, between devices. It operates as a compact, , client/ request-response that enables the exchange of objects and associated control information in an efficient manner. The primary purpose of is to facilitate spontaneous and interoperable data exchange among a wide range of devices without the need for complex file systems or structures. By supporting through descriptive elements, it allows for the representation and transfer of object , promoting simplicity and efficiency in communications. This general-purpose framework ensures reliability and adaptability, making it suitable for quick, ad-hoc interactions like those in mobile or portable device environments. At its core, employs a format to minimize overhead and enhance performance, particularly over resource-constrained links. It is transport-agnostic, functioning atop various layers such as those used in (e.g., TinyTP), (e.g., RFCOMM), or even , thereby enabling seamless integration across different wireless technologies. Originally maintained by the (IrDA), has been widely adopted by organizations including the (SIG) and the (OMA) to standardize object transfer in mobile interoperability scenarios. OBEX emerged in the as a solution for enhancing between mobile devices and personal digital assistants (PDAs), addressing the growing need for standardized, efficient in emerging wireless ecosystems.

Development and Adoption

OBEX originated as the Infrared Object Exchange (IrOBEX) protocol, developed by the (IrDA) to enable efficient binary object transfers over short-range infrared links. The initial specification, IrOBEX version 1.0, was released in January 1997, defining a lightweight session protocol for exchanging objects like vCards and files between devices without requiring complex application-level negotiations. This standard addressed the need for interoperable in early portable , building on IrDA's core physical and link layers established since 1994. The became dormant in the as radio-based technologies like gained prominence. In 1999, the (SIG) adopted as a foundational element for its application profiles, recognizing its simplicity and transport-agnostic design. This integration facilitated seamless object exchange over radio, with the Object Push Profile (OPP) released as part of the 1.0 specification in July 1999, allowing devices to push items like business cards or images. 's popularity surged in the late 1990s through implementations in PDAs, such as the Palm III introduced in 1998, which used IrDA beaming powered by to enable quick, line-of-sight transfers between handhelds—a feature that became synonymous with early mobile productivity. By the early 2000s, the Open Mobile Alliance (OMA) incorporated OBEX bindings into SyncML, the standard for device synchronization, with the SyncML OBEX Binding version 1.1 published in February 2002 to support data sync over transports like Bluetooth and TCP/IP. Extensions to other transports followed, including USB mappings defined in OMA Device Management OBEX Binding specifications (version 1.0 circa 2010) for device management and content delivery. As IrDA's influence waned in the 2010s amid the rise of radio-based wireless standards, OBEX's focus shifted predominantly to Bluetooth, where it persists in legacy profiles for file transfer and object push in devices like feature phones and wearables. These developments were driven by OBEX's role in enabling intuitive, low-overhead exchanges in resource-constrained mobiles, influencing broader synchronization ecosystems like SyncML while ensuring backward compatibility in modern Bluetooth ecosystems.

Technical Specifications

Core Objects and Headers

OBEX packets, which form the core objects exchanged in the protocol, follow a compact designed for efficiency over low-bandwidth links. Each packet begins with a 1-byte , where the most significant bit (bit 7) indicates the final packet in a multi-packet (1 for final, 0 otherwise), bits 6-5 are reserved (except for ABORT), and the lower 5 bits specify the command. This is followed by a 2-byte length in network byte order, representing the total packet size in bytes (up to 65535 bytes). The remainder of the packet consists of optional headers in type-length-value (TLV) , followed by any for the . Headers are encoded such that the high 2 bits of the 1-byte header identifier (HI) denote the value type—00 for null-terminated text, 01 for byte sequences, 10 for 1-byte values, and 11 for 4-byte integers in network order—while the low 6 bits identify the header type. This structure enables flexible, extensible metadata attachment without fixed fields, supporting object exchange in resource-constrained environments. The protocol defines several commands via opcodes, each initiating a specific within an session. CONNECT (0x80) establishes a session, negotiating parameters like maximum packet size. DISCONNECT (0x81) terminates the session. PUT (0x02 for non-final packets, 0x82 for final) uploads an object to the , potentially in chunks. GET (0x03 for non-final, 0x83 for final) requests and downloads an object from the . SETPATH (0x85) navigates the 's by setting the current path. ABORT (0xFF) cancels the ongoing , regardless of its state. Additional commands include (0x86) for operations like copy or move on the target, and SESSION (0x87) for advanced session management, such as creating or suspending sessions. These commands are always sent with the final bit set for single-packet operations, except in multi-packet scenarios like large object transfers. Key headers provide metadata essential for object interpretation and handling. The Name header (HI 0x01, Unicode string) specifies the object's filename or identifier, such as "vcard.vcf". The Type header (HI 0x42, byte sequence) indicates the media type, for example "text/vcard" for data. The Length header (HI 0xC3, 4-byte ) denotes the total object size in bytes, aiding in progress tracking. The Connection ID header (HI 0xCB, 4-byte ) uniquely identifies the session for multiple connections over the same transport. Other notable headers include (HI 0x48, byte sequence) for non-final object chunks and End-of-Body (HI 0x49) for the final chunk, ensuring reliable multi-packet transfers. These headers are optional but commonly used to convey critical context during exchanges. For instance, a PUT operation transferring a might begin with a non-final packet: 0x02 (PUT, non-final), length 0x0424 (1060 bytes total), followed by Name header (HI 0x01, length 0x0010, value "vcard.vcf\0"), Type header (HI 0x42, length 0x000B, value "text/vcard"), Length header (HI 0xC3, length 0x0004, value 0x00000400 for 1024 bytes), and Body header (HI 0x48, length 0x0400, value initial 1024 bytes of vCard data). The server responds with a success code like 0x90 (Continue). The client then sends a final packet with 0x82, including an End-of-Body header for any remaining data, concluding with the server's 0xA0 (Success) response. This example illustrates how headers integrate with commands to enable structured, typed object pushes, as seen in applications like contact sharing over IrDA or .

Session Operations

OBEX manages stateful sessions to facilitate reliable object exchange between devices, allowing multiple operations within a single connection while maintaining context through identifiers and negotiated parameters. A session begins with the CONNECT operation (opcode 0x80), which negotiates key parameters such as the OBEX version, flags, and maximum packet length, with the server responding using code 0xA0 () to confirm the session and return its own parameters, including a unique Connection ID header for subsequent requests. This Connection ID, a 4-byte value, is included as the first header in all directed operations to preserve session state across packets. Once established, the session supports a sequence of operations, primarily PUT (opcodes 0x02 or 0x82 for final packets) for sending objects and GET (opcodes 0x03 or 0x83) for retrieving them, enabling multiple transfers without reconnection. Each operation uses the Connection ID to reference the active session, and servers respond with intermediate code 0x90 (Continue) for ongoing multi-packet exchanges or 0xA0 upon completion. Errors during operations trigger specific responses, such as 0xC0 (Bad Request) for invalid requests or malformed packets. The session concludes with the DISCONNECT operation (opcode 0x81), which includes the Connection ID and elicits a 0xA0 response if successful, cleanly terminating the exchange. Directory handling within a session is managed via the SETPATH command ( 0x85), which allows navigation to parent directories (using ".." in the Name header) or child folders, with a flags byte specifying backup behavior (bit 0 set for parent navigation). This operation must fit within a single packet and returns 0xA0 on success or an error code if the path is invalid or unsupported. For large objects exceeding the negotiated packet size (up to 64K-1 bytes, default 255), employs packet fragmentation using (0x48) and End-of-Body (0x49) headers, with the Final bit set on the concluding packet to signal completion. Common response codes across operations include 0xA0 for success, 0xC1 (Unauthorized) for authentication failures requiring credentials, and 0xC6 (Not Acceptable) for unsupported media types or operations.
Response CodeHex ValueDescription
Success0xA0Operation completed successfully.
Continue0x90Additional packets expected.
Bad Request0xC0Invalid or incomprehensible request.
Unauthorized0xC1 required or failed.
Not Acceptable0xC6Unsupported or .

Comparison to HTTP

OBEX employs a session-oriented architecture, establishing and maintaining state through explicit CONNECT and DISCONNECT operations, which allows multiple requests within a persistent session and contrasts with HTTP's fundamentally stateless request-response model. This statefulness in OBEX supports features like path navigation via SETPATH commands and session suspension/resumption, enabling efficient handling of ongoing interactions without re-establishing connections for each operation. In terms of layering, OBEX operates directly over lightweight transports such as IrLAP/TinyTP for or L2CAP for , bypassing the heavier / stack required by HTTP, which reduces and resource demands in short-range scenarios. OBEX's message format utilizes compact type-- (TLV) headers, where each header consists of a 1-byte tag identifier followed by a byte and variable- value, minimizing overhead compared to HTTP's verbose, human-readable text-based headers (e.g., "Content-Type: text/plain\r\n"). Operations in OBEX are encoded with fixed 1-byte opcodes, such as 0x03 for GET requests, further streamlining packet structure and reducing parsing complexity relative to HTTP's method strings like "GET /path HTTP/1.1". For , OBEX implements a challenge-response mechanism using digests in dedicated headers, providing secure with low computational overhead, whereas HTTP's basic transmits credentials in cleartext , though both share conceptual roots in digest-style challenges. These design choices emphasize efficiency for resource-constrained environments, with OBEX negotiating packet sizes (default 255 bytes) to optimize for small, ad-hoc transfers of objects like files or vCards, in contrast to HTTP's orientation toward larger, text-heavy delivery over persistent connections. While inspired by HTTP methods—mapping OBEX's PUT and GET to analogous and retrieval semantics—OBEX diverges by prioritizing non-IP transports and spontaneous device-to-device exchanges, such as object pushing between nearby mobiles, rather than client-server web browsing.

Transport Layers

IrDA Integration

OBEX was originally designed and specified for integration with the (IrDA) protocols to enable short-range optical wireless object exchanges between devices such as personal digital assistants (PDAs), mobile phones, and personal computers. Defined in the IrOBEX 1.2 specification released on March 18, 1999, this integration positioned as a session-layer protocol atop the IrDA protocol stack, facilitating "beam" transfers of binary objects like vCards, vCalendars, or files without requiring physical cables. In terms of layering, operates directly over the IrDA Link Management Protocol (IrLMP) for and connection management, with TinyTP providing reliable transport capabilities including flow control and segmentation for larger objects. The underlying utilizes IrDA's transceivers, supporting data rates from the Serial Infrared () mode at 9.6 kbps to 115.2 kbps, up to Very Fast Infrared (VFIR) at 16 Mbps, depending on the hardware implementation. Connection setup begins with IrLMP discovering available services, targeting identifiers such as "OBEX:IrXfer" for general object push or , or "IrMC-SYNC" for applications, establishing point-to-point links typically effective over distances of 1 to 2 meters in line-of-sight conditions. Authentication in IrDA-integrated OBEX is optional and handled at the session level through OBEX-specific AuthChallenge and AuthResponse headers, employing hashing with a for challenge-response verification, without transmitting sensitive data over the link. This setup supported IrDA's model but relied on device implementations for enforcement. Limitations inherent to the infrared medium include the strict requirement for unobstructed line-of-sight, sensitivity to ambient light interference, and practical constraints on object sizes, with maximum packet payloads around 64 KB limited by TinyTP buffers and IrLMP sizes, though total object transfers could span multiple packets up to several gigabytes in theory.

Bluetooth Integration

OBEX integrates with the protocol stack by operating over RFCOMM, a transport protocol that emulates functionality and is layered atop L2CAP for multiplexing and the baseband for asynchronous data transfer. This architecture enables OBEX's session-based object exchange to leverage 's communications for short-range transfers, distinct from its original roots. The Generic Object Exchange Profile (GOEP) standardizes this mapping, ensuring compatibility across devices supporting object push, pull, and other operations. Service discovery in Bluetooth OBEX relies on the Service Discovery Protocol (SDP), which allows clients to query servers for available OBEX services using standardized UUIDs. For instance, the Object Push service is identified by the UUID 0x1105, while file transfer uses 0x1106; these UUIDs are registered in SDP records alongside the assigned RFCOMM channel number. Channel setup involves dynamic assignment of RFCOMM server channels (often starting from channel 1 or higher), with L2CAP utilizing a fixed Protocol/Service Multiplexer (PSM) value of 0x0003 for RFCOMM multiplexing—enabling spontaneous connections without predefined port mappings. This SDP-driven approach facilitates ad-hoc discovery and connection establishment between Bluetooth devices. Security for OBEX over Bluetooth combines link-layer protections with application-level mechanisms. Bluetooth pairing generates a shared link key through processes like legacy pairing or Secure Simple Pairing, authenticating devices and encrypting the ACL link to prevent eavesdropping. On top of this, OBEX supports optional authentication via the GOEP-defined challenge-response protocol, where servers can require clients to provide credentials (e.g., realm-specific passwords) before granting access to operations like object push. This dual-layer security ensures robust protection for sensitive object exchanges, such as vCard or vCal data. The adoption of in Bluetooth occurred with the release of version 1.1 in February 2001, marking its transition from IrDA to radio-based wireless environments and enabling early profiles like Object Push. This integration has persisted in Classic, evolving to support modern use cases; for example, the Message Access Profile (), introduced in 2010, builds on OBEX for secure messaging in hands-free and automotive scenarios, demonstrating its ongoing relevance in profile-dependent applications.

Other Transports

OBEX supports bindings to various auxiliary and legacy transports beyond its primary wireless integrations, enabling broader compatibility in tethered and network environments. The USB binding for OBEX is specified within the (CDC) framework, where OBEX operates as subclass 0x0B for object exchange functionality. This binding, introduced in the CDC 1.2 specification released in 2001, utilizes USB bulk endpoints to transport OBEX packets reliably over a host-device connection, supporting bidirectional data streams for control and payload transfer. It is commonly employed in tethered device synchronization scenarios, serving as an alternative to protocols like (MTP) for exchanging files and objects between mobile devices and hosts. OBEX can also be adapted over TCP/IP networks using socket-based connections or HTTP tunneling mechanisms, facilitating object exchange in internet-connected environments. The (IANA) has designated /UDP port 650 for OBEX transport over IP protocols. This adaptation was integral to the (WAP) ecosystem, where OBEX enabled mobile web services such as object push and between clients and servers. Ports may be fixed at 650 or dynamically negotiated depending on the implementation. For legacy systems, supports serial transports like , allowing object exchange over direct wired connections in older embedded or diagnostic setups. These non-primary transports extend 's applicability beyond short-range scenarios, supporting wired and networked use cases in and data transfer. However, they introduce drawbacks such as increased due to overhead and medium characteristics compared to optimized short-range bindings.

Application Protocols

Object Push

The Object Push mechanism in enables simple, one-way transmission of objects from a client to a without requiring directory browsing or complex session management. This subprotocol is designed for quick exchanges over short-range links, leveraging the core OBEX PUT operation to send data payloads. It establishes a lightweight session via a CONNECT request, followed by one or more PUT commands carrying the objects, and concludes with a DISCONNECT if needed. The process confirms receipt through specific response codes, ensuring reliable delivery for small files or data blobs. In Bluetooth implementations, the client initiates the push by sending an OBEX CONNECT packet targeted at the UUID 0x1105, which identifies the Object Push service. Upon successful connection (response code 0xA0), the client issues PUT requests, each containing the object body along with descriptive headers. For instance, a for exchange uses the Type header set to "text/x-vcard" and a Name header like "contact.vcf", while might specify "image/" with an appropriate filename. Multiple objects can be pushed sequentially within the same session, with the responding to each PUT with 0xA0 for success or error codes such as 0xC3 for unauthorized access. This flow supports use cases like sharing contacts between mobile devices or pushing photos to printers, emphasizing efficiency over bidirectional interaction. The Object Push Profile (OPP), which formalizes this protocol for Bluetooth, was initially specified in version 1.1 in 2001 and updated to version 1.2 with enhancements for interoperability. It mandates support for common object types including vCards, vCalendars, and basic images, while restricting operations to push-only to simplify device requirements. In IrDA environments, the equivalent functionality is provided through the Point and Shoot Profile (version 1.1, 2000), which uses OBEX over Tiny TP for infrared links. Here, the flow mirrors Bluetooth but omits UUIDs, starting with a direct OBEX CONNECT (opcode 0x80) to the push server, followed by PUT operations (opcode 0x02) with headers like Type (e.g., "image/jpeg") and Name for objects such as business cards or JPEG photos. Responses include 0xA0 for confirmation, and the profile supports pushing to devices like PDAs or cameras without authentication overhead. This IrDA variant aligns with the IrOBEX standard (version 1.2), facilitating rapid exchanges in ad-hoc scenarios.

File Transfer

The OBEX Protocol (FTP) provides a for bidirectional operations, enabling devices to , navigate directories, and perform basic tasks over short-range transports. It builds on the core session by defining specific headers and operations tailored for filesystem access, distinguishing it from simpler mechanisms by allowing clients to pull and browse remote directories. The protocol identifies the service using the 128-bit UUID F9EC7BC4-953C-11D2-984E-525400DC9E09, referred to as the File Browsing UUID, which is specified in the header of the initial CONNECT request to establish a dedicated session. This UUID ensures compatibility with -aware services, and the session supports standard operations including GET for retrieval, PUT for sending objects, and SETPATH for path manipulation. Full type support allows precise identification of transferred files, such as application/pdf or image/jpeg, via the Type header. Directory navigation and listing are core features, with a GET request using an empty body and Type header set to "x-obex/folder-listing" prompting the to respond with an XML-formatted body detailing folder contents, including file names, sizes, permissions (e.g., 'D' for deletable), and types. and renaming utilize the operation (opcode 0x06), where action ID 0x01 specifies move or rename, paired with a DestName header indicating the target path or filename; the confirms with response code 0xA0 (Success) or 0xC4 (Not Found) as needed. These operations treat the remote filesystem as a hierarchical structure, with permissions enforced to prevent unauthorized access. A representative transfer flow starts with a CONNECT packet containing the Target UUID to initiate the session, followed by a SETPATH request to the root directory (Name header: "/") for navigation. The client then issues a GET for directory listing, receiving chunked XML responses until an End-of-Body header signals completion. For uploading, a PUT request includes Name and headers plus the file body in chunks (typically 1 KB each), with the final chunk marked by the Final bit or End-of-Body; the server acknowledges each with 0xA0 or 0x90 (Continue). The Bluetooth File Transfer Profile, first specified in 2003, formalizes OBEX FTP for Bluetooth Classic environments, mandating support for these operations over RFCOMM channels and extending basic OBEX to ensure reliable, authenticated file access between devices like mobile phones and PCs. This profile emphasizes security through optional OBEX authentication and compatibility with diverse file systems.

Synchronization Services

OBEX supports synchronization services through protocols that enable the bidirectional merging of structured data, such as calendars, contacts, and tasks, between devices. These services leverage OBEX operations to exchange formatted objects or markup payloads, ensuring state-aware updates rather than simple file transfers. Key protocols include IrMC for infrared-based mobile synchronization and SyncML-OBEX for broader device management. IrMC (Infrared Mobile Communications), developed by the (IrDA), provides a framework for phonebooks and calendars over infrared links using . The protocol targets the "IRMC-SYNC" header in the OBEX CONNECT request to initiate a session with an IrMC server. employs GET operations to retrieve change logs or entire object stores (e.g., telecom/pb/luid/.vcf for phonebook entries) and PUT operations to update or delete items (e.g., empty PUT body for deletions). Data is formatted in for contacts and (vCalendar 1.0) for calendar events, with unique Local Unique Identifiers (LUIDs) ensuring accurate matching. IrMC supports slow-sync mode for full comparisons during initial or extensive changes, and incremental modes using change logs and counters to transfer only modified items since the last sync anchor. SyncML-OBEX, standardized by the (OMA) with version 1.1 approved in 2002, extends synchronization to XML-based payloads for more granular control. It uses the "SYNCML-SYNC" target header in CONNECT to establish sessions for , supporting delta updates that handle additions, modifications, and deletions across databases like contacts and calendars. SyncML messages are encapsulated in PUT requests from client to server and GET requests from server to client, with large payloads split across multiple operations and a final request signaling completion; authentication occurs via challenge-response headers during CONNECT. This binding enables efficient merging of structured data over transports like or IrDA, with the SyncML protocol layer managing item-level operations. The typical OBEX synchronization flow begins with a CONNECT request specifying the target header, followed by optional SETPATH operations to navigate to a synchronization folder (e.g., /sync). Subsequent PUT and GET exchanges transfer database contents or change sets, with the session concluding via DISCONNECT. Conflict resolution relies on timestamps embedded in SyncML or IrMC objects, where the more recent modification (based on client or server anchors) prevails, or manual merging is applied for ambiguities. This timestamp-based approach ensures during bidirectional updates. Extensions to OBEX synchronization include the Bluetooth Message Access Profile (MAP), adopted in version 1.0 in 2009, which facilitates SMS and email synchronization over OBEX. MAP employs OBEX services like Message Access Service (MAS) for folder navigation via SETPATH and message retrieval via GET, with PUT for updates and notifications via event reports in XML format. It supports filtering by message type (e.g., SMS_GSM or EMAIL) to enable delta-like syncing of notifications and content between devices, such as automotive hands-free systems and phones.

Profiles and Standards

IrDA Profiles

The IrDA profiles for define standardized ways to exchange binary objects over links, leveraging the compact session protocol originally developed by the (IrDA) to enable efficient, short-range data transfers between devices such as PDAs, mobile phones, and peripherals. These profiles specify object formats, operations, and behaviors tailored to 's line-of-sight constraints, building on the core commands like CONNECT, PUT, GET, and SETPATH to support use cases from simple pushes to full . The Point and Shoot profile facilitates quick, spontaneous transfers of small objects, such as business cards () or images (), by using a single PUT operation in a connectionless mode over the IrDA stack, targeting files up to 255 bytes without requiring explicit CONNECT or DISCONNECT phases. This profile, defined in version 1.1 released on March 20, 2000, emphasizes minimal user intervention—devices simply point at each other to initiate a push—making it ideal for ad-hoc exchanges in environments like printing or basic , and it mandates support for common data types like 2.1 and vCalendar 1.0 to ensure interoperability across device classes including PCs, printers, and cameras. The IrMC (Infrared Mobile Communications) profile provides comprehensive for (PIM) data, enabling bidirectional exchange and updates of notebooks (), calendars (), and phonebooks () between devices like handsets and PDAs. Specified in version 1.1 on March 1, 1999, it operates across four levels of capability—from basic push/pull (Level 1) to advanced incremental (Level 4) using change logs, sync anchors like timestamps or counters, and unique indexing—to handle full or partial data merges efficiently via GET and PUT operations over a connection-oriented session with the "IRMC-SYNC" target header. IrOBEX serves as the generic foundation for object exchange in these profiles, allowing flexible through IrDA link keys established during the initial connection, while additional services like Object Push extend it for inbox-based deliveries of files or notes without specifying storage paths, relying on the server to manage placement. These profiles integrate with the IrDA , which provides the underlying Tiny TP and IrLMP multiplexing for reliable delivery. By the 2010s, IrDA OBEX profiles saw declining adoption in favor of alternatives, though they persisted in legacy applications such as older printers and for tasks like direct photo or .

Bluetooth Profiles

The Generic Object Exchange Profile (GOEP), version 1.1 adopted in 2001, provides the foundational framework for OBEX-based object exchange over , specifying interoperability requirements for protocols, procedures, and mechanisms that enable higher-level application . It mandates the use of as the core protocol layered over RFCOMM for reliable transport, with optional via challenge-response headers to secure connections beyond pairing. GOEP does not define a unique service class UUID but serves as the base for that advertise specific UUIDs during , ensuring consistent object operations like connect, put, get, and disconnect across devices. The , version 1.3 finalized in 2006, builds directly on GOEP to enable simple, one-way pushing of small objects such as business cards, vCalendar events, or images between devices without requiring a full filesystem view. It uses the PUT operation for transfers and advertises the service class UUID 0x1105, typically over RFCOMM server channel 10 or a dynamically assigned channel discovered via . OPP supports as defined in GOEP and is commonly implemented in mobile devices for quick sharing scenarios, with the pusher role initiating connections and the receiver handling incoming objects. The File Transfer Profile (FTP), version 1.3 adopted in 2003, extends GOEP to provide bidirectional access to a device's filesystem, allowing users to browse, pull, and push files or folders using operations like GET and PUT over a session-based connection. It employs the service class UUID 0x1106 and operates over RFCOMM, supporting features such as directory listing via OBEX headers and optional for secure access. FTP is designed for more comprehensive data exchange than , enabling scenarios like transferring music files or documents between phones and PCs. The Synchronization Profile (SYNC), version 1.1 from 2001, leverages GOEP for (PIM) synchronization, integrating with IrMC-like operations to exchange and update , , and data between devices. It uses the class UUID 0x1104 and supports slow and fast sync modes via CONNECT and SETPATH operations, with authentication to protect sensitive PIM data. This profile facilitates two-way syncing, such as merging address books, and is foundational for early PIM applications. Additional profiles based on GOEP include the Basic Imaging Profile (BIP), introduced in 2003 (version 1.0), which enables photo and image exchange using for operations like image push, get capabilities, and control, with the service class UUID 0x111B for the imaging responder. Similarly, the Basic Printing Profile (BPP), version 1.2 adopted in 2006, supports direct document pushing to printers via , incorporating job control and status reporting, and uses UUIDs such as 0x1118 for direct printing services. These profiles expand 's utility into imaging and printing domains while inheriting GOEP's authentication and transport requirements.

OMA and Other Standards

The (OMA) standardized bindings for SyncML over to facilitate XML-based of (PIM) data, such as calendars and contacts, across devices using transports like IrDA and . The SyncML OBEX Binding specification, first published in version 1.0 in December 2000 and updated to version 1.2 in June 2004, encapsulates SyncML representation protocol messages within OBEX sessions, leveraging OBEX operations like CONNECT, PUT, and GET for reliable object exchange during synchronization sessions. This binding supports (DM) functionalities by mapping SyncML DM commands to methods, enabling remote configuration and software updates via PUT for uploading management objects and GET for retrieving device information. The OMA DM Binding, initially aligned with SyncML DM in early releases and revised to version 1.3 in May 2016, ensures compatibility with 's session-oriented nature, allowing the DM client to act as either an OBEX client or server depending on the initiation direction. In , the binding targets the SYNCML-SYNC capability, which handles various modes including slow sync for initial full dataset alignment, full sync for complete replacements, and incremental (fast) sync for efficient updates based on change logs, thereby optimizing in resource-constrained mobile environments. Additional OMA standards incorporating include the DM Push Binding from December 2010, which enables asynchronous notifications from DM servers to clients over , such as for alerting devices to pending management sessions, often triggered via Push mechanisms for service indications. No significant updates to bindings occurred in the , though the protocol remains referenced in 5.x core specifications for application profiles involving object transfer.

Implementations

Java-Based Implementations

The Java-based implementations of primarily stem from the Java APIs for Wireless Technology, standardized as JSR-82 in 2002 by the . This specification defines the javax.obex package, which provides a set of classes and interfaces for handling operations over and other transports, enabling developers to create portable applications for device-to-device object exchange. The abstracts the underlying details, allowing Java applications to initiate connections, send requests like PUT or GET, and manage headers without direct manipulation of low-level stacks. Key components in javax.obex include the ClientSession and ServerSession interfaces for establishing and managing sessions, as well as the HeaderSet interface for constructing and parsing request/response headers such as Type, Name, and Length. For instance, a typical involves creating a ClientSession via the Generic Connection Framework (Connector.open("btgoep://...")), populating a HeaderSet with the object data, and invoking the put() method to transmit the payload. These APIs support transport abstraction through URLs like btgoep:// for , facilitating interoperability across compliant devices. The specification also includes the Operation interface for handling asynchronous transfers and the ResponseCodes class for error management. In Java ME environments, JSR-82 implementations were widely adopted for mobile devices and PDAs, where enabled features like file pushing and synchronization in resource-constrained systems. Oracle's Java ME SDK, for example, provides full compliance with JSR-82 version 1.1, including emulator support for testing over simulated connections. This made it common for early 2000s PDAs and feature phones to use these for -based profiles, such as Object Push Profile (OPP), though adoption waned with the rise of more integrated OS-level stacks. For SE desktop applications, direct support is absent, limiting native JSR-82 usage; however, the open-source BlueCove library bridges this gap by implementing javax.bluetooth and javax.obex on top of native stacks like BlueZ (), WIDCOMM, and (Windows). BlueCove version 2.1.1, for instance, allows seamless operations in cross-platform Java environments, such as file transfers via ClientSession. On , which evolved from ME roots, OBEX functionality is handled through the android.bluetooth package, including legacy classes like BluetoothObexTransport for internal transport abstraction, though direct user-facing OBEX APIs such as those for object push have been phased out in favor of higher-level intents (e.g., ACTION_SEND) since API level 30 in 2020. Developers seeking JSR-82 compatibility on Android often resort to BlueCove integrations, despite challenges with the platform's security model. Overall, while JSR-82 laid the foundation for OBEX in Java, its usage has shifted toward specialized libraries in modern contexts due to evolving platform constraints.

Open-Source Implementations

OpenOBEX is a prominent open-source C library implementing the OBject EXchange () protocol, originally developed in the late and early 2000s as a free alternative for binary object transfers over various transports. It supports IrDA, , USB, and connections, providing comprehensive APIs for both client and server operations to facilitate file pushes, transfers, and other OBEX-based interactions. The library is actively integrated into environments, including the , enabling OBEX functionality in embedded systems like those built with . PyOBEX serves as a pure wrapper around functionality, first released around 2005 to enable scripting and prototyping without relying on low-level C bindings. Designed for ease of use in cross-platform scripts, it implements key aspects of the protocol for tasks like file exchange over , though its interpreted nature results in limited performance compared to compiled alternatives. Recent ports and updates, including Python 3 compatibility released in 2015 and PyPI availability as of 2022, maintain its utility for lightweight applications. nOBEX provides another open-source implementation in , emerging in the to emulate OBEX-related profiles for testing purposes, such as vehicle infotainment systems. It supports the Hands-Free Profile (HFP) alongside Phone Book Access Profile (PBAP) and Message Access Profile (MAP), with client and modes for operations like cloning contacts and messages, though it lacks explicit asynchronous features tailored for web applications. Regarding maintenance, OpenOBEX's last major release (version 1.7.2) occurred in 2017, but it receives ongoing patches through distribution maintainers, with updates as recent as 2025 ensuring compatibility with modern systems, including advancements. Community forks on , such as zuckschwerdt/openobex, remain available for contributions, reflecting sustained interest despite the core repository's slower pace.

Commercial and Embedded Implementations

In commercial and embedded systems, is implemented through integrated protocol stacks that support object exchange over , often tailored for device-specific applications like and synchronization. These implementations prioritize efficiency in resource-constrained environments, such as hardware and mobile operating systems, while adhering to profiles like Object Push Profile () and File Transfer Profile (FTP). The BlueZ in distributions features an integrated OBEX daemon called obexd, which handles sessions for communications. obexd supports core profiles including for simple object pushing and FTP for directory-based file transfers, making it suitable for embedded devices like routers and smart appliances. In , the BlueZ stack received security updates in distributions, such as , to address vulnerabilities in handling, including out-of-bounds reads and potential buffer overflows during object parsing, enhancing robustness in production deployments. As of 2025, usage in new embedded systems has declined in favor of BLE-based protocols like GATT for applications, though legacy support persists in Classic profiles. Microsoft's Windows includes functionality, particularly in legacy embedded variants such as Windows CE and , through dedicated APIs for client operations enabling object exchanges in scenarios like device pairing and basic file pushes over . In contemporary and later editions, support persists through the native Bluetooth profile drivers, facilitating interoperability with peripherals in enterprise and consumer embedded applications. Embedded chipsets from vendors like and incorporate proprietary stacks optimized for and wearable devices. 's QCC and CSR series SoCs, used in modules for industrial sensors and smart home gadgets, embed within their 5.x protocol implementations to support low-latency object transfers, reducing power consumption in battery-operated systems. 's BCM43xx family similarly integrates for FTP and in embedded controllers, powering applications in automotive and health monitoring devices where seamless data syncing is essential. Prior to 2020, the in mobile and devices natively supported through its BlueDroid implementation, allowing OPP-based file pushes and FTP sessions via system services. This enabled direct sharing in early versions (up to API level 28), commonly used in custom firmware for tablets and wearables. Apple's does not natively support standard profiles over , instead using frameworks like GameKit for data exchange with proprietary protocols that do not adhere to specifications. In wearables like devices, custom protocols are used for data syncing, such as fitness logs, integrated into proprietary stacks for low-power transfers, rather than standard or forked implementations.

Modern Usage and Security

Current Applications and Devices

In contemporary applications, OBEX continues to facilitate file and object exchanges over Bluetooth Classic in scenarios requiring reliable, higher-bandwidth transfers, such as Android-based file sharing between devices. Applications like Bluetooth File Transfer leverage OBEX through the Object Push Profile (OPP) and File Transfer Profile (FTP) to enable users to browse, send, and receive files, including vCards for contact sharing, directly via Bluetooth without internet dependency. This remains relevant for peer-to-peer data exchange in environments with limited connectivity. OBEX also supports legacy integrations in automotive systems, where it underpins hands-free functionalities like push for phonebook synchronization in car kits. The , built on OBEX, is tailored for automotive hands-free use cases, allowing seamless exchange of messages, contacts, and calendar data between smartphones and vehicle infotainment systems. In contexts, OBEX enables file transfers to devices, including potential updates in resource-constrained setups like medical equipment, though vulnerabilities in these transfers have prompted defensive measures such as OBEX proxies to filter malicious payloads in BlueZ-based systems. Devices supporting OBEX are predominantly legacy or specialized hardware. Pre-2015 smartphones from manufacturers like and commonly implemented for Bluetooth file transfers and exchanges via OPP, enabling direct sharing without additional software. Bluetooth-enabled printers, such as certain models with adapters, utilize the Basic Printing Profile (BPP), which operates over to handle document and image pushes from mobile devices. Wearables like the Livescribe Echo smartpen employ as a server protocol for transferring handwritten notes and data files to connected applications over . In the 2020s, OBEX usage has declined relative to (BLE) and GATT-based protocols, which prioritize power efficiency for modern and wearables, but it persists in embedded Linux environments through frameworks like , where tools such as obexftp (version 0.24.2) support OBEX file operations in Yocto-based builds as of 2024. Industrial applications, while shifting toward BLE for scanning, retain OBEX in Bluetooth Classic for bulk data exchanges in compatible legacy scanners. OBEX maintains backward compatibility in recent standards, with the Bluetooth 6.x series (versions 6.0 in 2024, 6.1 in May 2025, and 6.2 in November 2025) fully supporting profiles including those reliant on , ensuring with older devices. Similarly, 15 (2024) retains implementation requirements for relevant profiles like in its Definition Document, deprecating no core functionalities but emphasizing them for accessory support in hands-free and file-transfer scenarios. As of November 2025, 16's preview Definition Document continues this support for -dependent profiles.

Security Considerations

OBEX lacks built-in mechanisms, relying entirely on the features of underlying transport protocols such as pairing or / for and protection. This design choice exposes data exchanged via OBEX to if the is not properly secured, as the protocol itself provides no native cryptographic protections. Authentication in OBEX employs an optional challenge-response mechanism based on the hash function, where a and (such as a password) are used to generate a digest for during establishment. This -based approach is vulnerable to modern attacks, including collision exploits and preimage attacks, rendering it insufficient for contemporary security requirements; experts recommend layering TLS over / transports for OBEX sessions to provide stronger and . Notable vulnerabilities include exploits via the Push profile, which has facilitated worm propagation since the early . For instance, the Cabir worm, first reported in 2004, used OBEX Push over to self-replicate by sending infected files to nearby devices, draining battery life through continuous scanning. More recently, in 2023, researchers highlighted exploits targeting the BlueZ implementation's OBEX service, where attackers could transfer malicious files to Linux-based devices, enabling data theft from sectors like banking and healthcare. To address these risks, developments in 2023 introduced the Bluetooth OBEX Proxy (BOP), a service-level filter integrated with BlueZ that intercepts and scans OBEX messages to block malicious file transfers, achieving 100% detection accuracy with zero false positives in evaluations across Linux distributions. In 2024, BlueZ received patches via updates like Red Hat's RHSA-2024:9413, mitigating buffer overflow and out-of-bounds read vulnerabilities in the OBEX library (e.g., CVE-2023-51594), which allowed network-adjacent attackers to disclose sensitive information through improper parameter validation. Best practices for securing implementations include enforcing authenticated pairing with strong link keys to protect the , restricting services to trusted devices only, and implementing monitoring for unauthorized CONNECT requests to detect potential intrusions. Additionally, administrators should apply timely patches to underlying stacks like BlueZ and consider proxy-based filtering tools like BOP for environments with high exposure.

References

  1. [1]
    [PDF] OBEX - NET
    OBEX is a compact, efficient, binary protocol that enables a wide range of devices to exchange data in a simple and spontaneous manner. OBEX is being defined by ...
  2. [2]
    OBEX Object EXchange Protocol - Mpirical
    OBEX is an Object Exchange Protocol for data exchange, originally over infrared, now used for file and vcard transfer over various transport layers.
  3. [3]
    OBEX through OSU-NMS - Cisco
    OBject EXchange. Description. OBject Exchange (OBEX) is a communications protocol that facilitates the exchange of binary objects between devices.
  4. [4]
    Page not found | Bluetooth® Technology Website
    No readable text found in the HTML.<|control11|><|separator|>
  5. [5]
    [PDF] IrOBEX
    Jan 22, 1997 · • Certification of Products Requires Specific Authorization from IrDA after Product Testing for IrDA Specification. Conformance. IrDA ...
  6. [6]
    [PDF] IrDA Past, Present And Future - IEEE Personal Communications
    The IrDA was formed in June 1993 to develop an interopera- ble, low-cost and easy-to-use, short-range, infrared, wireless communications technology. The ...
  7. [7]
    Bluetooth Adopts IrDA OBEX Protocol - Wireless Design
    Jun 8, 1999 · IrDA's OBEX specification consists of a protocol and application framework. It is a session-level protocol that specifies the structure for the ...Missing: history 1.0
  8. [8]
    A History of Palm, Part 2: Palm PDAs and Phones, 1996 to 2003
    Jul 19, 2016 · A year later, in March 1988, the Palm III arrived with built-in infrared (IrDA) communication. The third generation model shipped with Palm OS ...Missing: OBEX beam 1990s
  9. [9]
    [PDF] SyncML OBEX Binding, version 1.1 - Open Mobile Alliance
    Feb 15, 2002 · Copyright © 2000-2002 Ericsson, IBM, Lotus ... The following sections define the requirements for the binding of SyncML to OBEX.Missing: OMA | Show results with:OMA
  10. [10]
    [PDF] Device Management OBEX Binding - Open Mobile Alliance
    Mar 6, 2012 · To enable an OBEX connection over IrDA, the OBEX protocol stack needs to provide IAS setting information to the IAS protocol stack. The DM ...Missing: development 1996<|control11|><|separator|>
  11. [11]
    [PDF] Message Access Profile - Bluetooth
    The Message Access Profile (MAP) specification defines a set of features and procedures to exchange messages between devices. It is especially tailored for the ...
  12. [12]
    [PDF] IrOBEX - Netwinder
    Mar 18, 1999 · Major changes from Version 1.0 to 1.1 draft: •. Incorporate the “OBEX Errata v.3” approved at the July 1997 IrDA meeting.
  13. [13]
    IrDA and RS-232: A Match Made in Silicon - Analog Devices
    Jul 22, 2004 · IrDA includes several different physical layers: SIR (115kbps), MIR (1Mbps), FIR (4Mbps), and VFIR (16Mbps).
  14. [14]
    Using the Java APIs for Bluetooth Wireless Technology, Part 1 - Oracle
    On Bluetooth, object exchange occurs over RFCOMM. OBEX was originally introduced by ... UUID is the UUID value used when setting up a service on a server.
  15. [15]
    [PDF] OBEX OPP AND OBEX FTP PROFILES iWRAP APPLICATION NOTE
    Apr 6, 2017 · This application note discusses Bluetooth Object Push Profile (OPP) and Bluetooth File Transfer Profile (FTP) their advantages and how these ...Missing: date | Show results with:date
  16. [16]
    [PDF] Assigned Numbers - Bluetooth
    Dec 20, 2023 · This document, regardless of its title or content, is not a Bluetooth Specification as defined in the Bluetooth Patent/Copyright. License ...
  17. [17]
    Part B Service Discovery Protocol (SDP) Specification - Bluetooth
    The Service Discovery Protocol (SDP) allows applications to discover available services and their characteristics, including service type and access protocols.
  18. [18]
    K10 - Generic Object Exchange Profile
    The initialization of the OBEX authentication requires user intervention on both the Client device and the Server device. Authentication is done using an OBEX ...Missing: integration | Show results with:integration
  19. [19]
    [PDF] Bluetooth™Security White Paper
    Apr 19, 2002 · [11] Bluetooth SIG, Bluetooth Security Architecture White Paper, Version 1.0, ... [17] Infrared Data Association, IrDA Object Exchange Protocol ( ...
  20. [20]
    [PDF] Specification of the Bluetooth System
    Feb 22, 2001 · This is the Bluetooth System Specification, Version 1.1, dated February 22, 2001, and can be found at http://www.bluetooth.com.
  21. [21]
    Class definitions for Communication Devices 1.2 - USB-IF
    May 28, 2025 · Class definitions for Communication Devices 1.2. 05/28/2025 Specification. Device Class Specification. CDC1.2_WMC1.1_012011_0.zip. 3.82 MB.
  22. [22]
    Overview of Enumeration of Interface Collections on USB Composite ...
    Apr 17, 2025 · The USB Wireless Mobile Communication Device Class (WMCDC) specification establishes a standard for connection, control, and content exchange ...
  23. [23]
  24. [24]
    [PDF] SyncML OBEX Binding - Open Mobile Alliance
    Jun 1, 2004 · The following sections define the requirements for the binding of SyncML to OBEX. ... Initial version converted to the new OMA template. Extended ...Missing: 2000s | Show results with:2000s
  25. [25]
    [PDF] SyncML OBEX Binding - Open Mobile Alliance
    1.0. 2000-12-07. The candidate version for the final release. Bluetooth UUID details included. 1.0.1a. 2001-05-23. Errata rolled in. 1.0.1.
  26. [26]
    Object Push Profile | Bluetooth® Technology Website
    Missing: protocol | Show results with:protocol
  27. [27]
    [PDF] OBJECT PUSH PROFILE
    Feb 22, 2001 · Service Discovery ... • Specifies how OBEX is mapped over RFCOMM and TCP. • Defines the application profiles using OBEX over Bluetooth.<|control11|><|separator|>
  28. [28]
    [PDF] Infrared Data Association Point and Shoot Profile - IRDA.org
    Mar 20, 2000 · The purpose of defining a standard set of data object types is to establish a baseline such that some level of interoperability can be ...
  29. [29]
  30. [30]
    [PDF] ETSI TS 127 103 V3.1.0 (2000-10)
    The purpose of this document is to describe how to apply IrMC and OBEX on the Internet, using 3GPP. This requires tunneling of OBEX in 3GPP and reversing the ...
  31. [31]
    [PDF] Infrared Data Association Specifications for Ir Mobile ...
    Mar 1, 1999 · IrDA Object Exchange Protocol, IrOBEX, Version 1.0, Infrared Data Association. OBEX-AUTH. OBEX Authentication Errata approved in January 1999 ...
  32. [32]
    K13 - Synchronization Profile
    In the Initialization Sync mode, the IrMC Server is in the Limited discoverable (or the General discoverable mode), Connectable, and Pairable modes. The IrMC ...
  33. [33]
    SyncML - Open Mobile Alliance
    Please note: The SyncML BoD granted final approval of the SyncML Specifications, V1.1 on April 2, 2002 upon the successful completion of the required 45-day ...
  34. [34]
    [PDF] Data Synchronization and Conflict Resolution for Mobile Devices
    This paper defines types of data conflict that occurs in synchronization process of replicated data between the multiple client devices and a server along with.
  35. [35]
  36. [36]
    [PDF] OMA-TS-DM_OBEXBinding-V1_3-20160524-A.pdf
    May 24, 2016 · [OMA-Template-Spec-20160101-I]. 5. OBEX Introduction. OBEX [OBEX] is a protocol for exchanging objects. It was initially designed for infrared ...
  37. [37]
    [PDF] Device Management Push Binding - Open Mobile Alliance
    Dec 7, 2010 · “OMA Device Management OBEX Binding”, Open Mobile AllianceTM,. OMA-TS ... This document defines the binding requirements for pushing DM Messages ...
  38. [38]
    [PDF] Java APIs for Bluetooth Wireless Technology (JSR-82) - Ebixio
    Apr 5, 2002 · The following are valid client connection strings for OBEX over TCP/IP: ... The second string creates a server that listens on port 650.<|control11|><|separator|>
  39. [39]
    javax.obex (JSR 82 Bluetooth API and OBEX API)
    Package javax.obex ; Operation, This interface is defined by the JSR-82 specification Java™ APIs for Bluetooth™ Wireless Technology, Version 1.1.
  40. [40]
    17 JSR 82: Bluetooth and OBEX Support
    The Java ME SDK emulator supports JSR 82, the Java APIs for Bluetooth. The emulator is fully compliant with version 1.1 of the specification.
  41. [41]
    bluecove - Documentation.wiki - Google Code
    BlueCove is a JSR-82 implementation on Java Standard Edition (J2SE) that currently interfaces with the Mac OS X, WIDCOMM, BlueSoleil and Microsoft Bluetooth ...
  42. [42]
    BlueCove download | SourceForge.net
    Rating 5.0 (9) · Free · CommunicationDownload BlueCove for free. BlueCove is a JSR-82 implementation on Java ... The server can send any OBEX message you want to. Bluvert uses hcitool and ...
  43. [43]
    OpenOBEX download | SourceForge.net
    Apr 7, 2016 · This project is to make an open source implementation of the Object Exchange (OBEX) protocol. OBEX is a session protocol and can best be described as a binary ...Missing: history | Show results with:history
  44. [44]
    OpenOBEX - GitLab
    May 28, 2015 · OpenOBEX is an Open-source library for the OBject EXchange protocol. Read more. 768 Commits · 1 Branch · 19 Tags.Missing: history features
  45. [45]
    meta-oe - OpenEmbedded Layer Index
    The Openobex project is an open source implementation of the Object Exchange (OBEX) protocol. openocd, 0.12+git, Free and Open On-Chip Debugging, In-System ...
  46. [46]
    stuck with PyOBEX | Python - Coding Forums
    Apr 28, 2009 · Is there a OBEX module for Python on windows? Click to expand... You could try lightblue http://lightblue.sourceforge.net/ and next time ...
  47. [47]
    pyobex port for Python 3 - GitHub
    Jan 22, 2015 · This package provides a simple Python_ implementation of aspects of the OBEX protocol based on the information available in freely available Bluetooth ...
  48. [48]
    PyOBEX - PyPI
    A package implementing aspects of the Object Exchange (OBEX) protocol. Navigation. Project description; Release history; Download files. Verified details.Missing: library | Show results with:library
  49. [49]
    nccgroup/nOBEX - GitHub
    nOBEX/PyOBEX contain standalone implementations of the OBEX specification for client and server roles. Both Python 2 and 3 are supported. In client mode ...Missing: Node. js
  50. [50]
    OpenOBEX-1.7.2 - Linux From Scratch!
    Aug 28, 2017 · Introduction to OpenOBEX. The OpenOBEX package contains a library that implements Object Exchange Protocol used for binary file transfers ...Missing: history | Show results with:history
  51. [51]
    libopenobex - Debian Package Tracker
    Created: 2023-04-20 Last update: 2025-11-10 21:31. The VCS repository is not up to date, push the missing commits. high. vcswatch reports that this package ...
  52. [52]
    zuckschwerdt/openobex - GitHub
    OpenOBEX - Free implementation of the Object Exchange protocol. Copyright (C) 1998-2000 Dag Brattli <dagb@cs.uit.no>
  53. [53]
  54. [54]
    RHSA-2024:9413 - Security Advisory - Red Hat Customer Portal
    Nov 12, 2024 · An update for bluez is now available for Red Hat Enterprise Linux 9. Red Hat Product Security has rated this update as having a security impact of Moderate.
  55. [55]
    Universal Apps - Equip Your Apps with OBEX - Microsoft Learn
    OBEX is also used in profiles other than OPP, as it's a generic protocol for transferring objects between devices. For developers looking to use OBEX within ...OBEX and OPP · The OBEX Library
  56. [56]
    Bluetooth | Android Open Source Project
    The default Bluetooth stack is provided in AOSP and is located in packages/modules/Bluetooth/system . The stack implements the generic Bluetooth HAL and ...
  57. [57]
  58. [58]
    Connecting to a FitBit over Bluetooth and getting data.
    Jan 3, 2024 · The only way to get data off the watch is using the file transfer or messaging APIs. Peter McLennan. Gondwana Software.Read data from FitBit with my PC over BluetoothSending Data from companion to device Transfer speedMore results from community.fitbit.comMissing: OBEX | Show results with:OBEX
  59. [59]
  60. [60]
    Defending IoT Devices against Bluetooth Worms with ... - MDPI
    In this paper, we propose a Bluetooth OBEX Proxy (BOP) to filter malicious files transferred to devices via the OBEX system service in BlueZ.Missing: Broadcom | Show results with:Broadcom
  61. [61]
    OBject EXchange - Wikipedia
    OBEX (abbreviation of OBject EXchange, also termed IrOBEX) is a communication protocol that facilitates the exchange of binary objects between devices.Comparison to HTTP · Objects · Session · Protocols
  62. [62]
    mobile receipt printing with J2ME via Bluetooth - Stack Overflow
    Nov 24, 2009 · JSR-82 Bluetooth API support L2CAP protocol, RFCOMM and OBEX profile. I don't know detail of Bluetooth basic printing profile (BPP) but, if ...
  63. [63]
    Livescribe Echo Custom Application - Stack Overflow
    Dec 5, 2016 · Livescribe's original pens, the Livescribe Pulse and Livescribe Echo, used a HTTP-like protocol called OBEX over USB to transfer .aac audio ...
  64. [64]
    obexftp - OpenEmbedded Layer Index
    Name, obexftp. Version, 0.24.2. Summary. Description, A tool for transfer files to/from any OBEX enabled device. Section, base.Missing: support 2024
  65. [65]
    [PDF] Bluetooth® Core 5.4
    Feb 7, 2023 · The Electronic Shelf Label (ESL) profile defines the standardized use of Bluetooth LE in the control of and communication with electronic shelf ...
  66. [66]
    Android 15 Compatibility Definition
    SHOULD implement relevant Bluetooth profiles such as A2DP, AVRCP, OBEX, HFP, etc. as appropriate for the device. If device implementations include support ...
  67. [67]
    [PDF] On Mobile Viruses Exploiting Messaging and Bluetooth Services
    The Cabir worm drains the power of the infected phone as it continually scans for other Bluetooth devices nearby. An outbreak of Cabir was reported at the 2005 ...
  68. [68]
    (PDF) Defending IoT Devices against Bluetooth Worms with ...
    Sep 24, 2023 · The number of Internet of Things (IoT) devices has increased dramatically in recent years, and Bluetooth technology is critical for ...
  69. [69]
    CVE-2023-51594 Detail - NVD
    May 2, 2024 · This vulnerability allows network-adjacent attackers to disclose sensitive information on affected installations of BlueZ.