lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Mon, 25 Jul 2016 18:23:07 +0300
From:	Mikko Perttunen <mikko.perttunen@...si.fi>
To:	Antonio Ospite <ao2@....it>,
	Benjamin Tissoires <benjamin.tissoires@...hat.com>
Cc:	jikos@...nel.org, linux-input@...r.kernel.org,
	linux-kernel@...r.kernel.org,
	Mikko Perttunen <mperttunen@...dia.com>
Subject: Re: [PATCH] HID: sony: disable descriptor fixup for FutureMax Dance
 Mat

On 07/25/16 14:05, Antonio Ospite wrote:
> On Mon, 25 Jul 2016 11:14:04 +0200
> Benjamin Tissoires <benjamin.tissoires@...hat.com> wrote:
>
>> On Jul 21 2016 or thereabouts, Antonio Ospite wrote:
> [...]
>>> It would be interesting to understand why some (supposedly) compatible
>>> devices break, maybe they rely on the fact that the PS3 would use the
>>> original report?
>>
>> [just speculating]
>> I would be *really* surprised if the Sony software were to overwrite the
>> report descriptor of their own sony controllers. My guess is that their
>> HID stack or their Playstation driver is compatible with the original
>> report descriptors and so they can handle the differences between
>> original and weirdo controllers.
>>
>
> That's basically what I was thinking too, in my last sentence I meant
> to write report _descriptor_ :)
>
> Mikko, if you have some time, could you post the original report
> descriptor for your device?

Sure, here's the output from hidrd-convert:

0x05, 0x01, /*  Usage Page (Desktop),               */
0x09, 0x04, /*  Usage (Joystick),                   */
0xA1, 0x01, /*  Collection (Application),           */
0x09, 0x01, /*      Usage (Pointer),                */
0xA1, 0x00, /*      Collection (Physical),          */
0x05, 0x09, /*          Usage Page (Button),        */
0x19, 0x01, /*          Usage Minimum (01h),        */
0x29, 0x0A, /*          Usage Maximum (0Ah),        */
0x15, 0x00, /*          Logical Minimum (0),        */
0x25, 0x01, /*          Logical Maximum (1),        */
0x75, 0x01, /*          Report Size (1),            */
0x95, 0x0A, /*          Report Count (10),          */
0x81, 0x02, /*          Input (Variable),           */
0x95, 0x06, /*          Report Count (6),           */
0x81, 0x03, /*          Input (Constant, Variable), */
0xC0,       /*      End Collection,                 */
0x15, 0x00, /*      Logical Minimum (0),            */
0x15, 0x00, /*      Logical Minimum (0),            */
0x15, 0x00, /*      Logical Minimum (0),            */
0x15, 0x00, /*      Logical Minimum (0),            */
0x15, 0x00, /*      Logical Minimum (0),            */
0x15, 0x00, /*      Logical Minimum (0),            */
0x15, 0x00, /*      Logical Minimum (0),            */
0x15, 0x00, /*      Logical Minimum (0),            */
0x15, 0x00, /*      Logical Minimum (0),            */
0x15, 0x00, /*      Logical Minimum (0),            */
0x15, 0x00, /*      Logical Minimum (0),            */
0x15, 0x00, /*      Logical Minimum (0),            */
0x15, 0x00, /*      Logical Minimum (0),            */
0x15, 0x00, /*      Logical Minimum (0),            */
0x15, 0x00, /*      Logical Minimum (0),            */
0x15, 0x00, /*      Logical Minimum (0),            */
0x15, 0x00, /*      Logical Minimum (0),            */
0x15, 0x00, /*      Logical Minimum (0),            */
0x15, 0x00, /*      Logical Minimum (0),            */
0x15, 0x00, /*      Logical Minimum (0),            */
0x15, 0x00, /*      Logical Minimum (0),            */
0x15, 0x00, /*      Logical Minimum (0),            */
0x15, 0x00, /*      Logical Minimum (0),            */
0x15, 0x00, /*      Logical Minimum (0),            */
0x15, 0x00, /*      Logical Minimum (0),            */
0x15, 0x00, /*      Logical Minimum (0),            */
0x15, 0x00, /*      Logical Minimum (0),            */
0x15, 0x00, /*      Logical Minimum (0),            */
0x15, 0x00, /*      Logical Minimum (0),            */
0x15, 0x00, /*      Logical Minimum (0),            */
0x15, 0x00, /*      Logical Minimum (0),            */
0x15, 0x00, /*      Logical Minimum (0),            */
0x15, 0x00, /*      Logical Minimum (0),            */
0x15, 0x00, /*      Logical Minimum (0),            */
0x15, 0x00, /*      Logical Minimum (0),            */
0x15, 0x00, /*      Logical Minimum (0),            */
0x25, 0x01, /*      Logical Maximum (1),            */
0x25, 0x01, /*      Logical Maximum (1),            */
0x25, 0x01, /*      Logical Maximum (1),            */
0xC0        /*  End Collection                      */


>
> $ hexdump /sys/bus/hid/devices/XXXX\:YYYY\:ZZZZ.0001/report_descriptor
>
> or
>
> $ hidrd-convert -i natv -o code /sys/bus/hid/devices/XXXX\:YYYY\:ZZZZ.0001/report_descriptor
>
> You can also find out the length of the raw output report with trial and
> error, start with a line like this:
>
> $ sudo hexdump -v -e '49/1 "%02x " "\n"' /dev/hidraw0
>
> and increase/decrease the value (49 works with original controllers)
> until you see a regular pattern when comparing lines.
>

/dev/hidraw0 seems to be all zeroes straight from the beginning

> Anyways this is just for curiosity, we are not going to spend too much
> time on that... or are we? :)

At least it's some reference information.. :)

>
> Thanks,
>    Antonio
>

Cheers,
Mikko.

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ