Facebook iOS Client - Section fbsessiongks
Phenomenon
MachOView viewing Facebook’s executable file, found FBInjectable and fbsessiongks data segments, this article explores fbsessiongks data segment’s generation and usage.
Generation
Reference previous article about FBInjectable.
Initial Exploration
fbsessiongks partial content:
@["ios_share_extension_hashtags_enabled","ios_share_extension_mentions_disabled","ios_share_extension_360_upload_enabled","ios_share_extension_delegate_cleanup","ios_hemingway_limit_sections","aldrin_qr_code_experiment","ios_set_badge_count_on_init","ios_side_feed_show_newsfeed_units_gk","fb_app_zero_rating","fb_app_zero_rating_bad_url_errors","ios_zero_rating_header_request","ios_checkpoints_logged_in_blocking","uber_app_integration","nearby_friends_self_view","ios_nearby_friends_dashboard_invite","ios_nf_replace_pls_with_message","ios_nearby_friends_profile_style","nearby_friends_dashboard_checkins_hometown","nearby_friends_self_view","ios_nearby_friends_dashboard_reaction","ios_friends_nearby_bookmark_alert","ios_friends_nearby_bookmark_upsell","ios_nearby_friends_inv
....omitting...
Simple Conclusion
Experimental feature switches. gks is Gate Keepers abbreviation. For testing assistance.
Facebook employee mentions Gate Keepers: (search gate keeper in article) https://www.facebook.com/notes/facebook-engineering/building-and-testing-at-facebook/10151004157328920/
Different from FBInjectable, here features are all experimental, and all are BOOL type (FBInjectable has specific configuration functionality, can provide detailed parameter values). Has dedicated FBExperimentManager class to manage, statistics, report various logs.
Related Methods
void * +[FBFeatureGatingConfigFactory applicationSpecificFeatureGatingConfig](void * self, void * _cmd) {
+[FBExperimentGatekeepers allSessionGatekeeperKeys]
+[FBExperimentManager _getSupportedConfigurationsFromPolicy:]:
-[FBExperimentManager initWithPolicy:experimentDiskFetcher:jsonOverrides:mobileConfigContextManager:]:
Summary
Specific exploration process similar to previous article Exploring Facebook iOS Client - Section FBInjectable
Demo will supplement when there’s time