"What has happened is someone wrote an open-source driver for PCs that essentially opens the USB connection, which we didn't protect, by design, and reads the inputs from the sensor."
Correct me if I'm wrong here since I don't own an Xbox360, but if the USB port on the 360 is a PC-standard port, then the Kinect pretty much HAS to obey the standard USB spec to communicate, right? You can't pick a different way to enumerate or present endpoints.
Short of encrypting the actual data to/from the Kinect, saying that the device was "open by design" is kind of a semantic cop-out.
Apart from fact that for most devices USB specs do not specify exact format of data send/received by device, many manufacturers actually ignore specifications of standard formats (eg. HID) and invent their own/implement standard formats in various weirdly broken ways (see Wiimote for example, or any reasonably modern USB "modem-like" device)
An otherwise perfectly bog-standard anything-port (USB or otherwise) can be switched into being a non-standard port using an arbitrary electronic protocol simply by the two endpoints negotiating a switch. This negotiation may take place via the "core" protocol if that's necessary, or it can send something that is a known "error" case that complaint implementations will ignore but the secret implementations will use, or various things in between. Using an USB connector doesn't physically obligate a USB protocol.
For some examples, look at the high speed modem wars, with various proprietary protocols often running ahead of the standardized protocols by using various signals to indicate that two products of the same brand should switch to a specialized protocol. I recall a BBS I used that had a modem that was 2400bps, unless you had a Hayes 14.4 modem. Which nobody else ever did.
You almost never have USB link that directly connects two devices (host to function in USB parlance) except in case of PTP ("direct printing"). Any normal tree of USB links ("bus") contains some hubs in it, which have to understand your alternative protocol. And mayor reason why everybody uses USB is that there is large pool of silicon implementations of almost anything and well tested soft-IP so you don't have to spend large amounts of money on developing hardware dedicated to connecting two devices together, this essentially precludes anyone sane from coming up with some USB-like-but-not-quite-USB interface with same connectors. Actually, completely opposite thing happens now: many companies use completely standard high-speed interfaces (USB, PCIe...) on proprietary connectors (original XBox's controllers and memory cards, IBM/Lenovo's UltraPort/Bay, expansion ports of various mobile devices...) or with slightly stricter tolerances (to make it slightly cheaper, e.g. Intel's Direct Media Interface, which is essentially PCIe with less noise imunity).
I decided against mentioning the cost factor just because it didn't seem relevant. I certainly didn't mean that this was likely, but it certainly is possible, and if it's going to happen anywhere, on a console is where it will happen. If the Kinect did follow the original design and have onboard processing such that the stream coming out of it might actually have been considered proprietary by them, an inability to stick a USB hub between the Kinect and the XBox 360 may well have been considered by them to be a feature, not a bug.
The details of USB are mostly not germane to my point, which is that anything can pretty much do anything the designers want. (An exception for pointing out the hub issue, which doesn't affect all connectors.) Sure, there are cost/benefit tradeoffs, but that's always true.
there is an authentication scheme in the xbox/kinect. the authentication scheme is only required for the xbox to authenticate the camera, not the other way around (the camera only being usable with an xbox)
this is almost certainly not because microsoft loves us, but because their authentication scheme is done in hardware and the security of it is that the keys are in a chip that is a pain to decap and read. if they ever want to use the kinect with windows, they'll want to avoid any required authentication scheme where the keys are stored in software.
Well it makes sense, in a loose sense you could consider what has been done as hacking, but it seems Microsoft had a different stance on what they deemed hacking.
That being hacking the algorithms and code that make Kinect function on the Xbox itself, since the Kinect hardware just sends all the raw data to the Xbox.
Anyone that wants to use the hardware has to do a lot of the work that Microsoft has already done in making sense of the data, but that is a lot of the challenge that people seem to enjoy. I noticed not a lot of people aren't using the microphones. I believe that would give a lot of additional functionality when used for sonic mapping.
Yes. If MSFT really wanted the device to be open, it would have published the protocol specs along with some good Windows driver implementations and API bindings for C#, etc.
You know, I realized that while Microsoft sounds insane to us geeks, this might make sense if we consider their position and customers.
Microsoft, as best I can tell, tries to maintain a very hard line against cheaters to keep the quality of the Xbox Live service high. If we accept this, and the fact that most of their customers don't know a whole lot about technical things like USB, the initial push against people toying with the Kinect (for fear that they were actually trying to abuse it) and the current repetition about how it hasn't been hacked (because it hasn't been) both make sense.
Correct me if I'm wrong here since I don't own an Xbox360, but if the USB port on the 360 is a PC-standard port, then the Kinect pretty much HAS to obey the standard USB spec to communicate, right? You can't pick a different way to enumerate or present endpoints.
Short of encrypting the actual data to/from the Kinect, saying that the device was "open by design" is kind of a semantic cop-out.