0.191.1 APK Teardown: XL Candy and Pokémon HOME discoveries

Pokemon HOME
Pokemon HOME

0.191.1 is a small Pokémon GO update feature wise, but it seems to be a large one for the data mining community, as it contains a lot of code that has been de-obfuscated, allowing new findings and discoveries.

Our readers should first read these articles on the 0.191 family of updates to get the full picture:

As you can see, it’s a rather eventful family of updates, both on the surface and under the hood levels. With that being said, let’s dive into the newest data mine!


Rare XL Candy updates

Rare XL Candy is a newly data mined item that was first discovered in 0.191.0. By the looks of it, Rare XL Candy looks like bundles of regular sized Rare Candies, but the 0.191.0 data mine suggested that a conversion mechanism will be present as well.

Before 0.191.1, it was expected that it will be rewarded through standard loot avenues: PokéStop drops, GO Battle League rewards and others.

What’s new in 0.191.1 is that it looks like it can be rewarded from two new mechanics:

  • Feeding Pokémon in Gyms
  • Transferring Pokémon to HOME

Additionally, the new update hints that you should be able to use XL Candy to upgrade your Pokémon. It is very murky what “upgrade” means in this context, so we wouldn’t look into it too much.


Pokémon HOME updates

Pokémon HOME got a fairly substantial treatment with 0.191.1, and we now see some new mechanics and ideas that underpin GO’s connectivity to HOME. Again, we want to emphasize that this is data mined information, so it can always change down the line and it’s very prone to misinterpretation.

Firstly, earlier data mines suggest you will need a GO Transporter to perform transfers to Pokémon HOME, and that the Transporter requires Energy to make the transfer.

0.191.1 reinforces this by de-obfuscating various fields in the underlying network request (PokemonHomeProto):

PokemonHomeProto 
.get_TransporterEnergy 
.set_TransporterEnergy 
.get_TransporterFullyChargedMs 
.set_TransporterFullyChargedMs 
.get_LastPassiveTransporterEnergyGainHour 
.set_LastPassiveTransporterEnergyGainHour 
TransporterEnergyFieldNumber 
TransporterFullyChargedMsFieldNumber 
LastPassiveTransporterEnergyGainHourFieldNumber 
TransporterEnergy 
TransporterFullyChargedMs 
LastPassiveTransporterEnergyGainHour

We’ve written at great lengths about how Pokémon GO’s networking stack uses protobuf, a Google-developed networking protocol. Usually, fields that are discovered as part of a protobuf network request really do paint an accurate picture of an upcoming feature.

The initial 0.191.0 data mine contained a string that pretty accurately describes this mechanic, and the new fields reinforce this:

You can use the GO Transporter to send Pokémon from Pokémon GO to Pokémon HOME.  You’ll need to use the same Nintendo Account you use for Pokémon HOME. The GO Transporter requires GO Transporter Energy to send Pokémon to Pokémon HOME. GO Transporter Energy charges over time. Tap here to learn more about sending Pokémon to Pokémon HOME.

Data miners have also discovered that Energy costs for transferring a Pokémon are related to Pokémon’s Combat Power:

PokemonHomeEnergyCostsProto
.get_Base
.set_Base
.get_Cp0To1000
.set_Cp0To1000
.get_Cp1001To2000
.set_Cp1001To2000
.get_Cp2001ToInf
.set_Cp2001ToInf

Lastly, the previously discovered player level limitations and Energy gains have been verified as well:

PokemonHomeSettingsProto
.get_PlayerMinLevel
.set_PlayerMinLevel
.get_TransporterMaxEnergy
.set_TransporterMaxEnergy
.get_EnergySkuId
.set_EnergySkuId
.get_TransporterEnergyGainPerHour
.set_TransporterEnergyGainPerHour

Additional findings

Locked temporary evolutions and permanent mega evolutions

The code contains a handful of ramblings about “locking temporary evolutions” and “permanent mega evolutions”. We honestly have no idea what this is and we’re not keen to speculate, but we will attach the code that hints at this:

.get_TempEvolutionIsLocked
.set_TempEvolutionIsLocked
.get_LockedTempEvolution
.set_LockedTempEvolution
TemporaryEvolutionFinishMs
TempEvolutionIsLocked
LockedTempEvolution
MakeTempEvoPermanent

Optional and Mandatory Quests

Optional and Mandatory Quests have been spotted! Nothing much at this moment, but there is support in the code base for this.

Pokémon tags

A new tagging feature seems to be taking shape:

  • Players should be able to tag Pokémon in the future
  • Tag information include tag color and name
  • There’s a level requirement for using tags and there’s a maximum number of tags you can use
PokemonTagSettingsProto 
.get_MinPlayerLevelForPokemonTagging 
.set_MinPlayerLevelForPokemonTagging 
.get_ColorBinding 
.get_MaxNumTagsAllowed 
.set_MaxNumTagsAllowed 
.get_TagNameCharacterLimit 
.set_TagNameCharacterLimit

Minor findings

  • Unopened/Unset Gifts are tracked and sent back to Niantic for analysis
  • The game tracks how many Rocket Balloons you do specifically, possibly for a future badge

Datamining disclaimer ⛏️

Please be aware data miners have publicly reported everything in this article (PokéMiners). Information shared through these channels is not affiliated nor approved by Niantic, and is always subject to change.

Do not take it for granted, features change and get scrapped all the time. It is very important that you are aware that these things CAN and WILL CHANGE.