Yelp
We retested this app on 19.02.2019. The app still exhibits the behaviour documented below.
Disclaimer: Additionally the tested app may still share data with other third parties. This is outside the scope of this work.
Yelp is an app for finding local amenities and services
From the Google Play Store page:
"Yelp has over 135 million restaurant and business reviews worldwide. Whether you’re looking for a new pizzeria, a great coffee shop nearby, a new salon, or the best handyman in town, Yelp is your city guide to finding the perfect places to eat, shop, drink, relax, visit and play. "
This documentation demonstrates actions taken by the test user and the apps subsequent responses.
Test user action 1: The user taps on the application icon, which opens the application
Response from app: The application is initialised and the following data is sent and received by the app:
Immediately after the app is opened, the following data is sent to graph.facebook.com (Graph)
The following GET request was made:
GET https://graph.facebook.com/v3.1/97534753161?fields=supports_implicit_sdk_logging%2Cgdpv4_nux_content%2Cgdpv4_nux_enabled%2Cgdpv4_chrome_custom_tabs_enabled%2Candroid_dialog_configs%2Candroid_sdk_error_categories%2Capp_events_session_timeout%2Capp_events_feature_bitmask%2Cauto_event_mapping_android%2Cauto_event_setup_enabled%2Cseamless_login%2Csmart_login_bookmark_icon_url%2Csmart_login_menu_icon_url&format=json&advertiser_id=474364c6-e9cf-4971-8dd2-b1dc3c605450&sdk=android HTTP/1.1
With the response
{
"supports_implicit_sdk_logging":true,"gdpv4_nux_enabled":false,"gdpv4_chrome_custom_tabs_enabled":true,"android_sdk_error_categories":[ {
"name":"login_recoverable","items":[ {
"code":102
}
, {
"code":190
}
],"recovery_message":"Please log in to this app again to reconnect your Facebook account."
}
],"app_events_session_timeout":60,"app_events_feature_bitmask":5,"auto_event_setup_enabled":false,"seamless_login":1,"smart_login_bookmark_icon_url":"https:\/\/static.xx.fbcdn.net\/rsrc.php\/v3\/yh\/r\/HyQ4Fq_iGUX.png","smart_login_menu_icon_url":"https:\/\/static.xx.fbcdn.net\/rsrc.php\/v3\/yR\/r\/xi3BPJ134MF.png","id":"97534753161"
}
Without any further user action, the app sends the following request to graph.facebook.com
format: json
sdk: android
event: MOBILE_APP_INSTALL
advertiser_id: 474364c6-e9cf-4971-8dd2-b1dc3c605450
advertiser_tracking_enabled: true
installer_package: com.android.vending
anon_id: XZ4e0f5a61-8cf9-40fe-93b4-67126270f77e
application_tracking_enabled: true
extinfo: ["a2","com.yelp.android",21030003,"10.31.0-21030003","8.1.0","Nexus 5","en_GB","GMT","",1080,1776,"3.00",4,13,8,"Europe\/London"]
application_package_name: com.yelp.android
The app receives the following response from graph.facebook.com:
{
"success":true
}
Test user action 2: The user makes further interaction with app
Response from app: No futher data is sent to graph.facebook.com
Test user action 3: The user closes the application
Response from app: No futher data is sent or received by the app from graph.facebook.com
Note 1: In the videos below, the clocks between the VirtualBox Virtual Machine and the Phone handset are not synchronised.
Note 2: The phone videos are split into multiple parts due to a 180 second limitation in Android Developer Bridge screenrecord command