Home

Awesome

<!-- define variables -->

POGOProtos Python script Discord Sponsor Donate

alt text <strong><em>The contents of this repo are a proof of concept and are for educational use only</em></strong>alt text<br/>


This repository contains the ProtoBuf .proto files needed to decode the PokémonGo RPC.


Versioning

We are following semantic versioning for POGOProtos-Private. Every version will be mapped to their current PokémonGo version.

VersionBaseNotesExtra
2.56.6v0.241.0Proto2 Compilable (Mixed)Protocol Buffers v3.21.1
2.56.6v0.241.0Proto3 Compilable (Mixed)Protocol Buffers v3.21.1
2.54.1v0.205.xlast 100% clean (/base/v0.205.x.proto)Protocol Buffers v3.15.8

Addons

Additional resources as *.json filesSourceStatus
v2_GAME_MASTER.jsonRootBAD
GAME_MASTER.jsonRootBAD
ASSET_DIGEST.jsonRootBAD
Additional resources as *.txt files (Decode mode by script)SourceStatus
v2_GAME_MASTER.txtRootBAD
ASSET_DIGEST.txtRootBAD
Additional resources as *.xml filesSourceStatus
v2_GAME_MASTER.xmlRootBAD
ASSET_DIGEST.xmlRootBAD

Usage

If you want to figure out the current version in an automated system, use this file. .current-version Note: This file will contain pre-release versions too.

usage: compile_base.py [-h] [-gm GENERATE_GAME_MASTER]
                       [-ga GENERATE_ASSET_DIGEST] [-l LANG] [-v VERSION]
                       [-o OUT_PATH] [-m] [-g] [-b] [-k] [-gf]

optional arguments:
  -h, --help            show this help message and exit
  -gm GENERATE_GAME_MASTER, --generate_game_master GENERATE_GAME_MASTER
                        Generates v2_GAME_MASTER.txt form PATH/v2_GAME_MASTER.
  -ga GENERATE_ASSET_DIGEST, --generate_asset_digest GENERATE_ASSET_DIGEST
                        Generates ASSET_DIGEST.txt form PATH/ASSET_DIGEST.
  -l LANG, --lang LANG  Language to produce proto single file.
  -v VERSION, --version VERSION
                        Set version out ex:. (0.205.x)
  -o OUT_PATH, --out_path OUT_PATH
                        Output path for proto single file.
  -m, --java_multiple_files
                        Write each message to a separate .java file.
  -g, --generate_only   Generates only proto compilable.
  -b, --generate_new_base
                        Generates new proto base refs.
  -k, --keep_proto_file
                        Do not remove .proto file after compiling.
  -gf, --generate_proto_files
                        Generates base/last_files/*.proto.
                        

Preparation

Current recommended protoc version: "Protocol Buffers v3.21.1". You can find download links here.

Windows

Be sure to add protoc to your environmental path.

*nix

Ensure that you have the newest version of protoc installed.

OS X

Use homebrew to install protobuf with brew install --devel protobuf.

Compilation

The compilation creates output specifically for the target language, i.e. respecting naming conventions, etc.
This is an example of how the generated code will be organized:

Compile vx.xxx.x.proto depending on the version chosen, or uses -v 0.205.x (or other version present into base folder >= 0.175.x)
python compile_base.py -l cpp -k -v base:
 - vbase.proto -> out/single_file/cpp/POGOProtos.Rpc.desc
 -                -> out/single_file/cpp/POGOProtos.Rpc.pb.cc
 -                -> out/single_file/cpp/POGOProtos.Rpc.pb.h
 -                -> out/single_file/cpp/POGOProtos.Rpc.proto
Same similar outputs up but others langs:
  python compile_base.py -l csharp -k
  python compile_base.py -l java -k
  python compile_base.py -l js -k
  python compile_base.py -l python -k
  python compile_base.py -l php -k
  python compile_base.py -l objc -k
  python compile_base.py -l ruby -k
  * python compile_base.py -l swift -k
  * python compile_base.py -l go -k
  * python compile_base.py -l lua -k
  * python compile_base.py -l dart -k

* = Needs plugins

Decode Game Master or Asset Digest:
  python compile_base.py -gm [./v2_GAME_MASTER] (out as same bin name *.txt)
  python compile_base.py -ga [./ASSET_DIGEST] (out as same bin name *.txt)

Initial