OpenXbox / xcloud-python

21 stars 2 forks source link

Stream play request: timezoneOffsetMinutes #1

Open tuxuser opened 4 years ago

tuxuser commented 4 years ago

What is it, how is it determined?

Sure, timezoneOffsetInMinutes: 120 would relate to GMT +2. But WTF is timezoneOffsetInMinutes: 6088401280 => GMT +101473354.66 ?

Android https://github.com/tuxuser/xcloud/blob/8295d2c86bf8ece56dbbd02c1f749a4426955bcb/xcloud_api.py#L113

iOS https://github.com/tuxuser/xcloud/blob/8295d2c86bf8ece56dbbd02c1f749a4426955bcb/xhomestreaming_api.py#L62

Luke-k-dev commented 3 years ago

Another interesting point is that this changes across runs. Will continue investigating...

In the meantime I do have a couple theories about this: 1) Its a bug, the app is perhaps converting something it shouldn't and is getting something like a memory address as an Int instead of the proper value. 2) Its a telemetry/fingerprinting thing 3) It could be a timestamp but that doesn't make sense because the delta between the values changes sign.

Ran several days ago: 4319880000 Today at 3:51:18PM EST: 4313752384 Today at 3:59:42: 4323550016 Today at 4:03:07: 4318356288

tuxuser commented 3 years ago

This is input from @akahmet about it

// from the JS side
timezoneOffsetMinutes: S,
S = -(new Date).getTimezoneOffset(),

@luke-k-dev

Its a bug, the app is perhaps converting something it shouldn't and is getting something like a memory address as an Int instead of the proper value.

Actually they do that quite alot, sending a blob of private memory over the network, lol. For example the UDPConnectionProbing reveals some heap data from the android app.