AeonLucid / POGOProtos

A central repository for all proto files of PokémonGO.
MIT License
726 stars 280 forks source link

LocationFix timestamp_snapshot is signed? #219

Closed vosk closed 7 years ago

vosk commented 7 years ago

I have dumped these requests from my Android 0.33 client. It seems the MSB of the snapshots is wrong? Could it be the zigzag representation of a signed int?

`Request Envelope Signature { timestamp_since_start: '42693', location_fix: [ { timestamp_snapshot: '15135', }, { timestamp_snapshot: '15699', }, { timestamp_snapshot: '17691', }, { timestamp_snapshot: '19688', }, { timestamp_snapshot: '21689', }, { timestamp_snapshot: '23685', }, { timestamp_snapshot: '25686', }, { timestamp_snapshot: '27686', }, { timestamp_snapshot: '29687', }, { timestamp_snapshot: '31693', }, { timestamp_snapshot: '33691', }, { timestamp_snapshot: '35689', }, { timestamp_snapshot: '37685', }, { timestamp_snapshot: '28858', }, { timestamp_snapshot: '9223372036854818231', } ], timestamp: '1472295403124' } Request Envelope Signature { timestamp_since_start: '72978', location_fix: [ { timestamp_snapshot: '9223372036854823234', }, { timestamp_snapshot: '9223372036854828243', }, { timestamp_snapshot: '9223372036854833244', }, { timestamp_snapshot: '58596', }, { timestamp_snapshot: '9223372036854838252', }, { timestamp_snapshot: '9223372036854843255', }, { timestamp_snapshot: '9223372036854848265', } ], timestamp: '1472295433409' } Request Envelope Signature { timestamp_since_start: '103013', location_fix: [ { timestamp_snapshot: '9223372036854853272', }, { timestamp_snapshot: '78574', }, { timestamp_snapshot: '9223372036854858275', }, { timestamp_snapshot: '9223372036854863288', }, { timestamp_snapshot: '9223372036854868295', }, { timestamp_snapshot: '9223372036854873310', }, { timestamp_snapshot: '98600', }, { timestamp_snapshot: '9223372036854878316', } ], timestamp: '1472295463444'}

[@] Request Envelope Signature { timestamp_since_start: '133281', location_fix: [ { timestamp_snapshot: '9223372036854883402', }, { timestamp_snapshot: '9223372036854888415', }, { timestamp_snapshot: '9223372036854893417', }, { timestamp_snapshot: '118604', }, { timestamp_snapshot: '9223372036854898420', }, { timestamp_snapshot: '9223372036854903428', }, { timestamp_snapshot: '9223372036854908434', ], timestamp: '1472295493712'} `

iGio90 commented 7 years ago

Nope. I faced it the last week. The long timestamps are just negative timestamps. If you edit the protos and you parse them as an int64 instead of uint64 you will get the negative value :D

the snapshot is referenced to the last time the provider receive the update.

Grover-c13 commented 7 years ago

"LocationFix timestamp_snapshot is signed?" means he thinks they should be negative too @iGio90 :P

iGio90 commented 7 years ago

I didn't read his first part. I just red the timestamps and I immediatly got everything since you can remember i spent like 4 days on this damn 👯

vosk commented 7 years ago

So, if negative, negative wrt to what? Game start? Obviously no...

iGio90 commented 7 years ago

of course it start. Negative values is related to the last time the provider receive an update, and this could be even before the game starts and you sees these values only on the first getplayer because later on PoGo will manage to update the providers

vosk commented 7 years ago

Providers you mean android.provider class?

Most of the first request, is from gps and a couple from network. So are the rest. Why would it have negative tstamp on subsequent requests.

AeonLucid commented 7 years ago

Closing this issue, let me know if this is still relevant.