Pokemon Go PokeMiners’ In-Depth APK Teardown of 0.189.0 By: martycochrane

0
13
PokeMiners' In-Depth APK Teardown of 0.189.0 : TheSilphRoad

Hello everyone!

0.189.0 is starting to roll out and there are quite a few goodies for the upcoming Halloween event and some other behind the scenes additions. We need to spend more time on it, but it appears that the obfuscation has been eased up just a tad. It’s not removed, but it is slightly easier to work with now. So thank you Niantic for that! Anyway, let’s dive in!

Official Release Notes

Download Link

Highlights

  • Runerigus and its shadow form added

  • Sableye Costume added

  • Incinerate and Dark Void (Darkrai’s signature move) added

  • AR Scanning Quest type additions (as confirmed in the release notes)

  • Halloween Event logo and boxes

  • Sticker Inventory

  • Gift sticker status

  • Face slot officially added for the upcoming masks

  • Avatar items can display if they are sponsored or not

  • Filtering can have a default filter for your Pokemon storage

  • New icons added to event boxes in the shop, including something called a Trade Ball

  • Friends List improvements, including queuing up Friend Profiles

  • Location permission updates for Android 11 and iOS 14

  • Encounter Summary Screen bonuses updated, including a Mega Bonus View for some reason

  • Geofencing, geofenced quests, and AR Mapping Stop directions

    • Looks like depending on where you are, you will get quests to go scan a specific PokeStop

    • Additions to guide you through scanning the stop for the quest including directions there

    • Quests will display the Pokestop’s image, icon, etc

  • Niantic Real World Platform Adventure Sync library

    • It looks like another RWP Library at least, but we might be wrong

    • Contains expected things like steps, distance

    • More interestingly, it contains geofencing and location; perhaps Adventure Sync could support location-based updates in the future?

  • Several Firebase libraries added, most notably for push notifications and crash handling (more stable push notifications perhaps?)

  • OkHttp and deep linking support, unclear what this is used for, but OkHttp requires Android 5 or later which is probably why they had to drop support for older Android versions

New Pokemon and Forms

.V0867_POKEMON_RUNERIGUS
RUNERIGUS_NORMAL
RUNERIGUS_SHADOW
RUNERIGUS_PURIFIED

These aren’t suspicious that they are added right before Halloween. Not at all.

SABLEYE_COSTUME_2020

Sableye wearing a costume for Halloween perhaps?

New Moves

.V0346_MOVE_INCINERATE_FAST
.V0347_MOVE_DARK_VOID

Two new moves! Dark Void is the signature move of Darkrai. Probably doesn’t mean anything though. 😛

New Quests

QUEST__AR_SCAN

We saw hints of this before, but as they say in the release notes there are going to be quests to do AR mapping. More on that below.

remove_OnQuestOpened
add_OnQuestOpened
poiChallengeItemViewPrefab
TAGGED
QuestArrowClick

Throwing this in here just because it’s semi-related. Some additional quest tagging and opening.

Halloween Event

r/TheSilphRoad - PokeMiners' In-Depth APK Teardown of 0.189.0

The Halloween logo was added to the game with other avatar group sections, so it’ll probably show up in the style shop

r/TheSilphRoad - PokeMiners' In-Depth APK Teardown of 0.189.0

Pumpkin box!

r/TheSilphRoad - PokeMiners' In-Depth APK Teardown of 0.189.0

Spooky box!

r/TheSilphRoad - PokeMiners' In-Depth APK Teardown of 0.189.0

Fancy spooky box!

No, these are not their official names. But looks like we’ll get getting some new boxes for the event.

Sticker Inventory

r/TheSilphRoad - PokeMiners' In-Depth APK Teardown of 0.189.0

Sticker Inventory

stickerInventoryGuiPrefab
stickerInventoryDetailsGuiController

StickerInventoryDetailsGuiController
Niantic.Holoholo.UI.GuiWindows.StickerInventoryGui
HelpIcon
StickerInventoryGuiController
ClickStickerInventoryInfo
OpenShopGui
helpDialogUrl
StickerInventoryItemEntryWidget

We’ve seen this before, but there is for sure a Sticker Inventory coming (don’t believe me, just download 189 and look at your inventory haha). The Sticker inventory doesn’t appear to do anything at the moment, however.

Gift Sticker Status

r/TheSilphRoad - PokeMiners' In-Depth APK Teardown of 0.189.0

Gift Sticker Icon

When you receive a gift that has a sticker on it, it’ll have this icon in your friend’s list now.

Face Slot

r/TheSilphRoad - PokeMiners' In-Depth APK Teardown of 0.189.0

Face slot for the avatar section

A new avatar section which will be used for masks. We are aware of a Halloween mask, Verizon mask, and a basic mask that we have previously datamined so far.

Avatar Updates

isSponsored

The Avatar’s customization group button now has a new field for if the item is sponsored specifically.

dynamicOrderGroupButtons

In addition, there appears to be a better / dynamic way of sorting the group buttons (maybe for the sponsor section).

Filter

ShowInventoryWithDefaultFilter

Small update to the filters we’ve been finding, looks like there will be a default filter that can be loaded when looking at your storage. It’s unclear right now if you will be able to set the default however.

Event Bonus Box Icons

LOCATION
EVENT
MYSTERY_BOX
TRADE_BALL

These are new icons added to the Event Bonus Box’s icons (that appear in the shop). Wonder what a trade ball is?

Friends List Improvements

ShowFriendProfile
remove_OnRemoveFriend
add_OnRemoveFriend
QueueFriendProfile

Looks like they might be queuing up your friend’s profiles at some point (maybe during swiping?).

GBL Pokemon Rule Views

leagueRuleTutorialPokemonIconsCellViewPrefab
LeagueRuleTutorialPokemonIconsCellView

This is most likely for viewing the ban list in a GBL cup. The flying cup list (when pushed) will probably be extremely long as it’s a ban list, not an allow list. So this might make it easier to show (if this is what this actually is).

Gym Motivation

pokemonMotivationUIPositionOverrides

An override for moving the motivation heart next to your gym defender.

Location Permissions/Instructions

AndroidInUseLocationDevicePermission

Android 11 permission for location services.

iOS14GenericLocationInstructions
iOS14AdventureSyncLocationInstructions

iOS 14 reminders (as said in the release notes) about enabling Precise Location. Also a new Adventure Sync instruction for iOS 14.

Download All Assets Update

The Download All Assets catalog was updated with GBL Combat Rank photoshop files (yes PSD files are referenced in this catalog). The catalog contains what assets should be included in the download all feature for reference.

Encounter Summary Screen

weatherBonusView
megaBonusView
BonusView
FadeInTime
FadeInYDelta

These were added to the catch summary screen. Interesting that Mega bonus there though, you can’t catch Megas… Or can you?

Geofence Additions

AreGeotargetedQuestsEnabled
GeotargetedQuestValidation
ERROR_EXCEEDED__SUBMISSION_LIMIT
ERROR_VALIDATION_FAILED

So a lot was added about geofencing quests in this update. It appears that these are specifically related to the Titan updates (more on that below, and confirmed in the release notes). This would mean you can get specific quests based on where you are physically (probably using S cells of some sort to determine this). These quest types were actually added in a previous APK.

geoQuestPoiImage
geoQuestIcon
geoQuestDisplayObject

Geo Quests can have their own icon, an object to display and an image (the POI and its image most likely).

GeotargetedQuestService
arScanIcon
editIcon
photoIcon
categorizationIcon
defaultIcon
playerService
rpcHandler
arMappingDataTracker

Geo quests appear to have shortcuts for scanning, editing, taking a photo, etc.

LocationAwarenessActionsReflection
LocationPingProto
.get_GeofenceIdentifier
.set_GeofenceIdentifier
.get_Reason
Reason
PingReason
ENTRANCE_EVENT
EXIT_EVENT
DWELL_EVENT
VISIT_EVENT
FITNESS_WAKEUP
OTHER_WAKEUP

Just some network calls for the feature.

Titan Updates

.get_IsArRecorderV2Enabled
.set_IsArRecorderV2Enabled

Titan (AR Mapping) is getting a new recorder by the looks of it. Probably will be enabled with the geo quests from above.

RefreshTooDark
WaitForMinimumRecordingTimeMet
OnRecordingCancelRequest

Some errors for scanning.

AR_MAPPING_SCAN_VALIDATION_CANCELLED
ITitanArRecorderServiceProvider
ArRecorderService
TitanArRecorderServiceProvider
TitanArRecorderServiceFactory
CreateEncodingInfoWithV1Data
CreateArEncodingInfoWithVpsData
TEST_WEBM_PATH
TEST_METADATA_PATH
TEST_UNPACK_PREVIEW_PATH
TEST_V2_DATA_PATH
ArMappingSessionTelemetry
arScanLandingGuiPrefab
arScanInfoGuiPrefab

The service itself, landing pages, telemetry, more fun stuff.

AR Mapping Directions

arMappingTag
ClickArMappingTag

As previously found, the game will start directing you towards stops that need to be scanned. Stops that need to be scanned will be tagged with a special tag that you can apparently click on.

ARScanLandingStateShim
Niantic.Holoholo.Pokestop
ARScanInfoGuiController
add_ViewDirections
remove_ViewDirections
add_ViewScanInfo
remove_ViewScanInfo
add_StartArScan
remove_StartArScan
ARScanLandingGuiController
OnInfoButtonClick
OnDirectionsButtonClick
OnScanButtonClick
checkRangeFrequencySeconds
poiImageBackground
poiImageCircle
poiNameText
scanButtonImage

Here you can see you can get info, the image, name, background, get directions, starting the scan, etc. These might be tied to the quest themselves perhaps.

Niantic Real World Adventure Sync

.get_AdventureSyncDeviceService
adventureSyncDeviceService
DeviceInfo
Niantic.Platform.AdventureSync.Util
.get_AndroidApiLevel
.get_AndroidTar
.getSdkVersion
AndroidApiLevel
AndroidTar
.getSdkVersion
DebugApiServiceImpl
Niantic.Platform.AdventureSync.DebugApi
awarenessService
.get_EventRecordTimestampMs
GetEventRecords
ClearEventRecords
.get_GeofenceUpdateTimestampMs
GetGeofenceEnclosure
GetGeofences
.get_DebugNotifications
.set_DebugNotifications
steps
distanceM
caloriesKCal
SendFitnessUpdate
didEnter
geofence
SendGeofenceLocationPing
SendLocationPing
RequestGeofenceUpdate
get_AdventureSyncProvider
HasPreciseLocationAccess

So there is a lot here, and it appears this might be another Niantic Real World Platform library. There are things like the Android API level, SDK version, debugging information, getting distance and calories, etc.

Also notable is the ability to change the Adventure Sync provider. This might just be between iOS and Android but perhaps it may be expanded.

There is also geofences in here, which would be interesting if Adventure Sync could take advantage of your location in addition to your steps.

POI Edits

N_KEY_TEMPLATE
N__DISABLED_KEY
DISTANCE_LIMIT_KEY
REPORT_SPONSOR_CONTENT_KEY
REPORT_SPONSOR_LOCATION_KEY
MIN_PLAYER_LEVEL_RAW_KEY
N_LIMIT_RESET_RAW_KEY
IPoiEditRequirementCheckService
poiData
IsPoiEditFeatureEnabled
IsPlayerAtMinimumLevelReq
IsPlayerWithinDistanceReq
IsPlayersSubmissionCountExhausted
PoiEditRequirementCheckService
IsSubEditFeatureShownForType
_arFeatureService
_arMappingSettingService
EDIT_DISTANCE_VALIDATION_FAILED

Some more updates to POI editing, additional checking for level requirements, and something called an N Key (Niantic Key?).

Misc Pokemon / Ball Updates

ReleasePokemonAssets

A new method for releasing pokemon assets, perhaps to clear out old assets when downloading new ones specifically?

PlayPokeballOpen
PlayPokeballClose
PlayPokeballSpawn

Additional animations for Pokeball opening and closing in the Trade Stage. This is most probably to fix the trade bug they highlighted in the release notes.

Possible Telemetry Updates?

DL_ACTION
DL_CATEGORY
DL_TAB
DL_SKU
DL_ICON
DL_ID
OPEN_SHOP
OPEN_NEWS
OPEN_BATTLE_LEAGUE
OPEN_SETTINGS
OPEN_PLAYER_PROFILE
OPEN_BUDDY
OPEN_AVATAR_ITEMS
OPEN_QUEST_LIST
OPEN_POKEMON_INVENTORY
OPEN_NEARBY_POKEMON
OPEN_POKEDEX
OPEN_EVENTS
OPEN_JOURNAL
OPEN_TIPS
OPEN_ITEM_INVENTORY
NEARBY_POKEMON
RAIDS
COMBAT_PARTY
POKEMON
EGGS
TODAY_VIEW
FIELD_RESEARCH
SPECIAL_RESEARCH

This is heavily obfuscated so we’ll take another crack at it in our Digging Deeper, but these are all actions that appear to be logged/tracked. They are basically the different sections of the UI and how you can interact with them we are thinking it’s telemetry related but can’t say for sure.

Firebase Library Updates

Firebase.App.dll
Firebase.Platform.dll
Firebase.TaskExtension.dll
Firebase.Crashlytics.dll
Firebase.InstanceId.dll
Firebase.Messaging.dll
Google.MiniJson.dll
libFirebaseCppMessaging.so
libFirebaseCppInstanceId.so
libFirebaseCppCrashlytics.so
libFirebaseCppApp-6_15_2.so
libFirebaseCppAnalytics.so

FirebaseEditorDispatcher
.get_EditorApplicationType
.get_EditorIsPlaying
.get_EditorIsPlayingOrWillChangePlaymode
StartEditorUpdate
StopEditorUpdate
ListenToPlayState
PlayModeStateChanged
PlayModeStateChangedWithArg
eventField
AddRemoveCallbackToField
EditorApplicationType
EditorIsPlaying
EditorIsPlayingOrWillChangePlaymode
FirebaseHandler

FirebaseApp_CreateInternal__SWIG_0
FirebaseApp_ReleaseReferenceInternal
FirebaseApp_GetLogLevelInternal
FirebaseApp_RegisterLibraryInternal
FirebaseApp_AppSetDefaultConfigPath
FirebaseApp_DefaultName_
CrashlyticsInternalPINVOKE
StackFrames_Add
StackFrames_size
new_StackFrames__SWIG_0
StackFrames_
.getitem
delete_StackFrames
new_FirebaseCrashlyticsFrame
delete_FirebaseCrashlyticsFrame
FirebaseCrashlyticsInternal_GetInstance__SWIG_0
FirebaseCrashlyticsInternal_Log
FirebaseCrashlyticsInternal_SetCustomKey
FirebaseCrashlyticsInternal_SetUserId
FirebaseCrashlyticsInternal_LogException

Firebase.Messaging
FirebaseMessaging
add_TokenReceivedInternal
remove_TokenReceivedInternal
CreateOrDestroyListener
add_TokenReceived
remove_TokenReceived
SetListenerCallbacks
message_callback_enabled
token_callback_enabled
SetListenerCallbacksEnabled
SendPendingEvents
MessageReceivedInternal
TokenReceivedInternal
TokenReceived
Listener
MessageReceivedDelegateMethod
TokenReceivedDelegateMethod
messageReceivedDelegate
tokenReceivedDelegate
MessageReceivedDelegate

Firebase is a platform with a set of libraries from Google for Android app development. They were using Firebase libraries before, but they added a few additional ones. We just put the most interesting updates above (there was a lot), but the most interesting library additions are:

Perhaps this could mean we start seeing more stable push notifications? We probably won’t notice any immediate change off the bat.

APP_TRACKING_OPTIN_REQUIRED_TUTORIAL
APP_TRACKING_OPTIN_DIALOG

Threw this in here as it’s semi-related, but you will need to opt-in for app tracking. This was added under the Tutorial completion interestingly enough.

OkHttp

https://square.github.io/okhttp/

This is a pretty basic library for URL handling. This might be added to go along with the deep linking updates below, but what’s interesting is the note below:

OkHttp works on Android 5.0+ (API level 21+) and on Java 8+.

This might be the reason why they had to drop support for previous Android versions.

Deep Linking

get_DeepLinkingSettings
.get_OnDeferredDeepLinking
.set_OnDeferredDeepLinking
.get_GameObjectName
.set_GameObjectName
DeepLinkingTelemetry

There are a few reasons why Deep Linking might be added, but it appears linked to game objects in some way. Deep Linking is simply directing the user to a specific piece of content on a website for example.

.get_PlayerIsMinLevelDeepLinkedNotification
.get_PlayerIsMinLevelForDeepLinkedUrl
.get_PlayerIsMinLevelForArPhoto

What’s odd, however, is there is a minimum level for deep linking notifications. So what is this feature possibly linked to that requires a level requirement and one that will give us a push notification?

We also threw in the minimum level for AR Photo here because it might not be specific to AR Mapping but it is with the deep link additions as they are in the same class.

-PokeMiners

Leave a Reply