media.ccc.de
Default settings in Facebook's mobile SDK transmit behavioral data and advertising IDs the second an app opens, enabling shadow profiling of non-users while offloading regulatory liability onto developers.
AI-assisted summary of 35C3 - How Facebook tracks you on Android — original source. Check the original for full context.
Source published:
Key ideas
- Privacy International tested 34 popular Android apps and found that 61% (21 apps) automatically transmit device telemetry and the Google Advertising ID to Facebook the instant they are opened, before any user consent can be requested. (6:22)
- Apps transmitting telemetry via the Facebook SDK leak sensitive context-specific data, including flight search parameters and internal scores from Kayak, and previously read Bible verses from the King James Bible app. (8:30)
- Opting out of ad personalization on Android does not stop data collection; in the case of Skyscanner, opting out actually increased the volume of telemetry data transmitted to Facebook. (20:45)
- None of the tested applications implemented SSL/TLS certificate pinning for Facebook SDK traffic, allowing transparent decryption and inspection of background data flows. (23:38)
Detailed notes
## Background Published on YouTube by media.ccc.de on December 30, 2018, this presentation from the 35th Chaos Communication Congress (35C3) features Frederike Kaltheuner and Christopher Weatherhead of Privacy International. The talk explores third-party tracking on Android, revealing how captured and decrypted network traffic shows that popular mobile apps routinely transmit device and usage data to Facebook the instant they are opened, even if a user does not have a Facebook account.
## TL;DR Researchers from Privacy International examined network traffic across 34 popular Android applications to assess the data-sharing behavior of the embedded Facebook Software Development Kit (SDK). They discovered that over 61% of tested apps immediately beam lifecycle telemetry and the Google Advertising ID (GAID) to Facebook upon launch without obtaining prior user consent, with some apps transmitting granular data like flight searches and religious readings. Although Facebook's terms place legal liability entirely on application developers to obtain consent under regulations like the GDPR, the SDK's default behavior makes pre-launch consent functionally impossible. The talk demonstrates that standard opt-out toggles fail to halt collection and emphasizes the urgent need for platform accountability and privacy by default rather than relying on flawed user workarounds.
## Atmosphere & style The presentation carries the ambiance of a cozy yet chilling late-night tech campfire story, delivered with conversational warmth, dry British humor, and rigorous investigative gravity. Christopher Weatherhead and Frederike Kaltheuner balance each other naturally, pairing technical network captures and MITM proxy demonstrations with sharp regulatory critique. The audience frequently reacts with chuckles of disbelief and supportive applause, creating a collegial hacker-conference environment united by a shared frustration over dark adtech patterns and the persistent myth of meaningful user consent.
## Bulletin - [06:22](https://www.youtube.com/watch?v=y0vlD7r-kTc&t=382s) Privacy International tested 34 popular Android apps and found that 61% (21 apps) automatically transmit device telemetry and the Google Advertising ID to Facebook the instant they are opened, before any user consent can be requested. - [08:30](https://www.youtube.com/watch?v=y0vlD7r-kTc&t=510s) Apps transmitting telemetry via the Facebook SDK leak sensitive context-specific data, including flight search parameters and internal scores from Kayak, and previously read Bible verses from the King James Bible app. - [20:45](https://www.youtube.com/watch?v=y0vlD7r-kTc&t=1245s) Opting out of ad personalization on Android does not stop data collection; in the case of Skyscanner, opting out actually increased the volume of telemetry data transmitted to Facebook. - [23:38](https://www.youtube.com/watch?v=y0vlD7r-kTc&t=1418s) None of the tested applications implemented SSL/TLS certificate pinning for Facebook SDK traffic, allowing transparent decryption and inspection of background data flows.
## Key takeaways - [01:47](https://www.youtube.com/watch?v=y0vlD7r-kTc&t=107s) Subject access requests to adtech brokers like Quantcast demonstrate that extensive behavioral and demographic dossiers are built from a single persistent browser cookie without consumer awareness. - [03:25](https://www.youtube.com/watch?v=y0vlD7r-kTc&t=205s) University of Oxford research established that 42% of free Android apps in the US and UK Google Play Stores integrate the Facebook SDK, positioning Facebook as the second-largest mobile tracker after Alphabet. - [08:30](https://www.youtube.com/watch?v=y0vlD7r-kTc&t=510s) Facebook builds shadow profiles on mobile device users regardless of whether they have a Facebook account, are logged out, or deliberately avoid the platform. - [06:22](https://www.youtube.com/watch?v=y0vlD7r-kTc&t=382s) The Facebook SDK automatically emits default lifecycle events (SDK Initialized, Activated App, Deactivated App), enabling Facebook to reconstruct exact usage timelines and session durations. - [11:40](https://www.youtube.com/watch?v=y0vlD7r-kTc&t=700s) Combining app usage data linked by the Google Advertising ID (GAID) allows trackers to infer intimate traits such as religion, parental status, and employment seeking. - [11:40](https://www.youtube.com/watch?v=y0vlD7r-kTc&t=700s) Aggregating SDK lifecycle telemetry across millions of Android installs provides Facebook with real-time strategic market intelligence on competitor apps and ecosystem trends. - [13:17](https://www.youtube.com/watch?v=y0vlD7r-kTc&t=797s) Facebook contractually designates app developers as sole data controllers under GDPR while providing an SDK that transmits personal data upon launch by default before consent can be gathered. - [13:17](https://www.youtube.com/watch?v=y0vlD7r-kTc&t=797s) Although Facebook added a feature to delay automatic event logging in SDK 4.34, earlier versions transmitted an unblockable initialization payload pairing the app ID with the user's GAID. - [16:07](https://www.youtube.com/watch?v=y0vlD7r-kTc&t=967s) Developer responses to Privacy International ranged from immediate bug fixes by Skyscanner to a widespread lack of technical understanding regarding SDK background data flows. - [19:10](https://www.youtube.com/watch?v=y0vlD7r-kTc&t=1150s) Platforms fail the principle of Privacy by Design and by Default when their default configurations broadcast telemetry without user authorization and shift all legal liability to publishers. - [20:45](https://www.youtube.com/watch?v=y0vlD7r-kTc&t=1245s) Android's built-in ad personalization opt-out merely flips a boolean flag in network payloads while data transmission to Facebook servers continues unabated. - [23:38](https://www.youtube.com/watch?v=y0vlD7r-kTc&t=1418s) Facebook responded to a formal GDPR Subject Access Request based on an advertising ID only past the statutory deadline and after being warned of an impending report, claiming it held zero data. - [33:35](https://www.youtube.com/watch?v=y0vlD7r-kTc&t=2015s) Google's contractual rules for opting out of ad personalization only restrict using data for ad delivery, leaving collection intact for surveying, market research, or internal analytics. - [34:58](https://www.youtube.com/watch?v=y0vlD7r-kTc&t=2098s) App stores enforce developer compliance policies on paper but fail to audit or disclose embedded third-party trackers to users prior to app installation.
## Detailed walkthrough ### [00:18](https://www.youtube.com/watch?v=y0vlD7r-kTc&t=18s) Introduction: Spooky Campfire Stories and Congress Welcome
The session opens late in the evening as the Herald introduces the final talk of the day, pitching it as a spooky campfire story with one chilling distinction: unlike typical folklore, this one is entirely real. The presentation, delivered by Frederike Kaltheuner and Christopher Weatherhead, centers on shadow profiling and the invisible mechanics of how Facebook monitors mobile device users—even those who have never registered for a Facebook account.
Stepping up to the microphone, Christopher expresses his genuine awe at attending his very first Chaos Communication Congress, describing the experience as an absolute dream. Before diving into the technical findings, he leads an appreciative round of applause for the Congress angels, live translators, and heralds whose behind-the-scenes work keeps the conference running smoothly. To take the pulse of the room, Christopher asks for a show of hands to see how many attendees are Android developers. Seeing only about five hands go up across the hall, he follows up by asking how many have implemented the Facebook Software Development Kit (SDK). After spotting a couple of hands, he hands the presentation over to Frederike.
[01:47](https://www.youtube.com/watch?v=y0vlD7r-kTc&t=107s) The Dark Reality of AdTech Profiling and the Quantcast Subject Access Request
Frederike begins by grounding the research in a series of formal regulatory complaints filed earlier in 2018 against seven companies spanning adtech, data brokerage, and credit scoring. She explains that these entities were targeted precisely because they operate far from public awareness. Most consumers have never heard of them, making it practically impossible for ordinary citizens to understand who holds their records or how their behaviors are packaged and traded.
To demonstrate the invasiveness of this ecosystem, Frederike shares the results of a data access request she submitted to the tracking company Quantcast. Displaying a blurred, heavily redacted slide of her personal browsing logs, she reveals an exhaustive dossier compiled from her web activity. Alongside sensitive workplace browsing records, timestamps, and device specs, Quantcast recorded algorithmic inferences about her gender, whether she has children, and her household income. Data brokers partnered with Quantcast went even further, sorting her into bizarre, blunt marketing classifications such as "heavy alcohol spender at home" or tagging her with an affinity for baby products and diapers. The most striking element of the disclosure was not just the volume or inaccuracy of the dossiers, but its origin: every single data point was tied to a solitary tracking cookie deposited in one browser on one of her devices.
Frederike stresses that this lack of transparency is the core problem: > “The reason for our complaints and the reason why we focused on these companies that are really not household names to most people is that it is currently impossible for most people to understand how they're being tracked and profiled and in whose hands all of this data ends up.”
- Seven formal complaints were submitted against adtech firms, data brokers, and credit-scoring agencies. - Inferred profile attributes included gender predictions, parental status, income level, and commercial affinity labels. - The entire corporate profile was assembled using a single persistent browser cookie on one device.
[03:25](https://www.youtube.com/watch?v=y0vlD7r-kTc&t=205s) Oxford Research and the Ubiquity of the Facebook SDK on Android
Frederike shifts the focus to newly published research uncovering mobile tracking on Android, with special emphasis on how Facebook monitors individuals who deliberately avoid the social network. She highlights foundational research conducted earlier in the year by the University of Oxford, which revealed that 42% of free apps in the Google Play Store across the US and the UK were equipped to transmit telemetry back to Facebook. This scale firmly positions Facebook as the second-largest tracker on the mobile platform, trailing only Google’s parent company, Alphabet.
Explaining why their investigation focused on Facebook rather than Google or other pervasive trackers, Frederike notes that users generally do not expect seemingly standalone utilities—such as period trackers or simple LED flashlights—to send sensitive behavioral telemetry to Mark Zuckerberg's platform. For people who made an explicit, conscious choice never to join Facebook or deleted their accounts to protect their digital footprint, discovering that their everyday mobile apps quietly report back to the company comes as a profound shock.
Frederike underscores the jarring nature of these tracking integrations: > “The reason we focus on Facebook and not Google or any of the other tracking companies is because the very fact that apps like a period tracker or an LED flashlight shares data with Facebook in the first place will come as a surprise for many people and especially for those who have made a conscious decision not to be on Facebook.”
```mermaid flowchart LR accTitle: Mobile App Tracking Ecosystem Dominance accDescr: Diagram illustrating Google and Facebook dominance in free Android apps based on Oxford research.
subgraph Market["Google Play Store (US & UK Free Apps)"] A["Alphabet / Google"] B["Facebook SDK"] C["Other Trackers"] end
A -->|"#1 Tracker Ecosystem"| M["User Devices"] B -->|"#2 Tracker Ecosystem (42% of Apps)"| M C --> M ```
[04:34](https://www.youtube.com/watch?v=y0vlD7r-kTc&t=274s) Methodology: Inspecting Traffic Across Popular Android Applications
Christopher steps back in to outline the testing setup. Drawing directly from the Oxford University Computer Science department's dataset of the top 5,000 Android applications integrating the Facebook SDK, the team curated a target group of 34 high-profile applications. They prioritized apps with massive install bases exceeding 10 million downloads each, ensuring the sample reflected software widely used by the general public rather than obscure edge cases.
The curated test suite combined massive commercial platforms like Spotify and Indeed with independent utilities, casual games, and sensitive services covering health, menstruation, and religion. Christopher makes it clear that the goal of the investigation was not to shame developers or single them out for poor coding practices, but to scrutinize the behavior of the Facebook SDK itself and evaluate whether it transmits telemetry with or without meaningful user consent.
To inspect the outgoing network traffic without altering application behavior, Christopher set up a dedicated hardware and software lab: - **Test Device**: LG Google Nexus 5 running stock Android 8.1. - **Interception Proxy**: mitmproxy running within a virtual machine configured as a transparent network gateway. - **Decryption & Inspection**: Capturing, decrypting, and parsing all TLS-encrypted communications flowing between the mobile apps and Facebook's backend infrastructure (`graph.facebook.com`).
Christopher clarifies their core stance toward app creators: > “We're not here to criticize developers for the way they make their apps, this is all about the SDK and the way it transmits data with or without user consent.”
[06:22](https://www.youtube.com/watch?v=y0vlD7r-kTc&t=382s) Immediate Transmission: App Launch Beacons and the Kayak Example
The team's primary technical finding was immediate and striking: out of the 34 apps examined, 21 of them (roughly 61%) broadcasted data to Facebook servers the exact instant the app process launched, before the user could interact with the screen, view a prompt, or configure privacy settings.
To illustrate this, Christopher demonstrates the startup network traffic of the travel search engine Kayak. The very millisecond the user taps the Kayak app icon, its first outbound HTTP request bypasses user interaction and heads straight to `graph.facebook.com`, alongside requests to several other third-party tracking endpoints. Christopher humorously points out the irony on Kayak's final onboarding screen, which greets the user with an explicit reassurance: *"Don't worry, we'll never share anything without your permission."*
Examining the payload structure using VK (the popular Russian social network) as a standard baseline, Christopher explains the default lifecycle events baked into the Facebook SDK: - `SDK Initialized`: Fires the moment the SDK runtime is instantiated in memory. - `Activated App`: Fires every time the application enters the foreground. - `Deactivated App`: Emitted the moment the app transitions into the background or terminates.
By simply listening to these lifecycle pings, Facebook can construct an exhaustive timeline of a user’s engagement habits: precisely how frequently an app is opened, how long each session lasts, and the exact intervals of daily use. Alongside these timestamps, the payload contains a unique identifier—which the researchers argue constitutes personal data—as well as detailed device parameters including the exact Android OS version, hardware model, keyboard localization settings, and system time zone.
Pointing out the immediate telemetry dispatched on boot, Christopher observes: > “Our first finding was that over 61% of the apps we tested automatically transferred data before the user has any other like they literally just open the app so that's 21 out of 34.”
```mermaid flowchart TD accTitle: Facebook SDK Initialization Lifecycle Telemetry accDescr: Sequence showing lifecycle events transmitted by the Facebook SDK to graph.facebook.com upon opening an app.
subgraph MobileDevice["Android Client Execution"] Tap["User taps App Icon"] --> Init["SDK Instantiation"] Init --> FG["App enters Foreground"] FG --> BG["App enters Background / Closed"] end
subgraph Payloads["Automated Event Signals"] Init -.->|"graph.facebook.com"| P1["SDK Initialized"] FG -.->|"graph.facebook.com"| P2["Activated App"] BG -.->|"graph.facebook.com"| P3["Deactivated App"] end
subgraph Metadata["Captured Profile Context"] P1 & P2 & P3 --> Meta["Device ID, Android Version, Hardware Model, Timezone, Keyboard Locale"] end ```
[08:30](https://www.youtube.com/watch?v=y0vlD7r-kTc&t=510s) Detailed In-App Telemetry: Travel Itineraries, Scripture, and Device State
Moving beyond baseline initialization events, the researchers' second core finding revealed that numerous apps feed extraordinarily granular, context-sensitive personal data directly into Facebook's infrastructure. Christopher points out that while independent groups like Exodus Privacy (which analyzed the Baby+ app) and Mobile Shirz (which exposed pregnancy tracker telemetry) had documented individual occurrences, the systematic nature of this data pipeline remained startling.
Christopher showcases specific examples captured from the network traces: - **Kayak**: Dispatches full, unredacted search parameters directly to Facebook whenever a user runs a flight or hotel query. The payload incorporates search criteria, proprietary internal metrics such as a "user score," and obfuscated session identifiers. - **King James Bible**: In earlier iterations of the software tested during the project, the app relayed the exact biblical passages and verses the user was reading directly to Facebook. - **Ad Network Requests**: Telemetry queries routed to Facebook’s advertising network routinely package deep hardware-state diagnostics, including whether the device is currently plugged into a charger, exact battery percentage, available storage space, and accelerometer orientation coordinates.
Christopher highlights an ironic configuration flag embedded in the header of an ad network telemetry payload: `COPPA: false` (referencing the United States Children's Online Privacy Protection Act). The application simply declared that the user was not a child without ever asking for an age verification check.
Crucially, Christopher emphasizes that these deep behavioral dossiers are constructed completely agnostic of a person's Facebook status. Whether an individual has a Facebook account, is logged out, or intentionally refuses to touch the platform, apps carrying the SDK stream device identifiers and personal habits into Facebook’s data collection apparatus regardless.
Christopher drives home the reality of shadow profiling across non-users: > “Profiles are being made regardless of whether you're having a Facebook account or you don't have a Facebook account; what you have to use is some of these apps and a profile is being built potentially.”
```mermaid flowchart TD accTitle: App Data Flow to Facebook Ad Infrastructure accDescr: Diagram illustrating how specific app data points flow from apps directly into Facebook's tracking servers.
subgraph UserInteractions["User In-App Behavior"] KSearch["Kayak: Flight Search & User Score"] BRead["Bible App: Chapter & Verse Lookups"] DevState["System State: Battery %, Charging, Free Space, Accelerometer"] end
subgraph IdentifierBundle["Tracking Envelope"] AAID["Google Advertising ID (AAID)"] COPPA["COPPA Flag: Hardcoded 'False'"] end
subgraph CollectionPoint["Facebook Graph API & Ad Network"] FB["graph.facebook.com"] end
KSearch --> IdentifierBundle BRead --> IdentifierBundle DevState --> IdentifierBundle IdentifierBundle --> FB ```
- Kayak sends comprehensive flight search details, session tokens, and proprietary user scores straight to `graph.facebook.com`. - The King James Bible application previously reported the specific Bible verses and passages being read by the user. - Device state telemetry captures hardware metrics like charging status, exact battery levels, free storage capacity, and accelerometer sensor readings. - Identity tracking functions regardless of whether the user possesses an active Facebook account or is logged in.
[11:40](https://www.youtube.com/watch?v=y0vlD7r-kTc&t=700s) Profiling Users and Market Surveillance via the Google Advertising ID
Analyzing what applications an individual uses and exactly when they open them provides an extraordinarily intimate window into their private life. Frederike Kaltheuner illustrates this by highlighting four specific apps tested in their research: a Muslim prayer app, a period tracker, the job search platform Indeed, and the children's game My Talking Tom. Taken in isolation, each serves a specific functional purpose, but viewed together, they instantly sketch a granular demographic profile: an individual who is likely a Muslim woman, currently looking for employment, and raising a child.
```mermaid flowchart TD accTitle: Profile Construction via App Tracking accDescr: Diagram showing individual app data streams linking together via the Google Advertising ID to infer a personal profile and provide market surveillance data.
subgraph Apps["Installed Apps"] A["Muslim Prayer App"] B["Period Tracker"] C["Indeed (Job Search)"] D["My Talking Tom (Kids)"] end
subgraph Linkage["AdTech Tracking"] GAID["Google Advertising ID (GAID)"] end
subgraph Intelligence["Inferred Intelligence"] Prof["Detailed User Profile:<br/>Muslim, Female, Job Seeking, Parent"] Market["Market-Wide Usage Analytics:<br/>Installed, Initialized, Deactivated"] end
A --> GAID B --> GAID C --> GAID D --> GAID GAID --> Prof GAID --> Market ```
In the test environment, the apps that transmit telemetry automatically bundle this behavioral data with the user's Google Advertising ID (GAID). Although this unique identifier can be reset by the user, Privacy International's prior investigations into data brokers and adtech firms revealed that it functions primarily as the universal glue connecting fragmented behavioral profiles across disparate services. Kaltheuner notes that while outside observers cannot see what happens behind closed doors inside Facebook's data centers, “even though we don't know what is happening to this data, it would be pretty straightforward to link it up.”
Beyond personal profiling, this telemetry grants Facebook unparalleled strategic market intelligence. Tracking lifecycle events—such as when an app is installed, when its SDK is initialized, and when an app is deactivated—across hundreds of millions of Android devices exposes real-time aggregate consumer behavior across the wider ecosystem. Privacy International deliberately evaluated high-reach services, choosing apps with at least 10 million and up to 500 million downloads, accounting for a combined footprint of more than two billion installs.
---
[13:17](https://www.youtube.com/watch?v=y0vlD7r-kTc&t=797s) The SDK Default Implementation and the Consent Dilemma
Developers integrate the Facebook SDK for Android for legitimate, practical reasons, utilizing its core functional components: developer analytics, audience network ads, and Facebook Login. However, this creates a major regulatory conflict. Facebook places the entire burden of legal data collection squarely on developers, treating them as sole data controllers contractually obligated to obtain explicit user consent before transmitting any personal data over the SDK.
Yet the SDK’s default behavior undermines this requirement. As documented in Facebook's own Android Quick Start guide, the standard implementation immediately starts logging and transmitting events the exact millisecond an app launches. When the European General Data Protection Regulation (GDPR) took effect in May 2018, app developers began posting bug reports on Facebook's developer portal. A bug filed on July 24, 2018, highlighted that an app trying to support Facebook Login was automatically transmitting the user's Advertising ID upon launch before any prompt could be displayed, putting the developer in direct breach of the law. Kaltheuner explains that “the reason why developers complained is that when apps share data the second they're opened, you're unable to ask people for their explicit and unambiguous permission which is the bar for consent that GDPR requires.”
In June 2018, Facebook introduced a configuration option allowing developers to delay automatic event logging. Prior to this, developers could disable certain background telemetry, but Facebook confirmed in writing that this switch did not suppress a baseline signal reporting that the SDK had been initialized. Because that initialization payload still pairs the app's identity with the user's unique Google Advertising ID, Facebook continues to receive immediate confirmation of who is opening which app regardless of whether user permission has been granted.
---
[16:07](https://www.youtube.com/watch?v=y0vlD7r-kTc&t=967s) Legal Ambiguities and Developer Privacy Practices
Evaluating whether this automatic transmission is lawful requires looking across multiple frameworks, including the GDPR, the ePrivacy Directive, and European competition law. Privacy International rejects Facebook's stance that legal responsibility rests entirely on application publishers. Nevertheless, the researchers emphasize that app developers must dramatically improve their compliance practices. Several tested apps with tens of millions of installs provided privacy policies consisting of only two paragraphs, an approach that Kaltheuner characterizes as “unambiguously non-compliant.”
When Privacy International contacted the 21 apps identified as transmitting data immediately upon opening, the responses varied widely: - Some developers demonstrated a complete lack of technical understanding regarding how the Facebook SDK operates or what payloads it sends in the background. - Others relied on conflicting legal interpretations or seemed unaware of the background data leakage and pledged to update their software. - Skyscanner emerged as a rare positive example, responding within three days to report that they had deployed an immediate app update to halt the behavior. - The Weather Channel updated its application in December immediately following Privacy International's test cycle.
Kaltheuner urges developers to reconsider integrating third-party trackers altogether. Because Facebook contractually pushes legal liability onto developers, incorporating the SDK exposes publishers to significant legal and regulatory jeopardy. Developers must never presume that an SDK's default configuration meets legal standards; instead, they should implement third-party tools selectively, practice strict data minimization, and remain fully transparent with their users.
---
[19:10](https://www.youtube.com/watch?v=y0vlD7r-kTc&t=1150s) Platform Accountability and Challenging "Standard Internet Features"
Platform operators such as Facebook and Google bear a fundamental duty to uphold the principle of Privacy by Design and by Default. Although Facebook detailed numerous methods for developers to delay or customize data logging, the company provided no compelling technical or business justification for why the SDK transmits data immediately by default. If a platform supplies developer tools that feed data back to its own servers while contractually offloading legal liability onto those developers, the tools must be configured defensively out of the box.
When challenged, both tech giants defended their tracking practices by arguing that everyone else in the industry does the same. During 2018 congressional and parliamentary hearings, lawmakers pressed Facebook about "shadow profiling"—the systematic tracking of individuals who do not even possess a Facebook account across the web and mobile apps. In its written follow-ups to the United States Senate, Facebook insisted that such background tracking is merely a standard feature of the modern internet, while Google similarly pointed to tracking executed by Amazon and Twitter. Kaltheuner forcefully rejects this justification:
> “In a way we need to reclaim the internet; like there's no natural law that says that every website, every app you use, sends such detailed data to hundreds of different companies every time you use them.”
---
[20:45](https://www.youtube.com/watch?v=y0vlD7r-kTc&t=1245s) The Illusion of Opt-Outs and Limited User Recourse
Turning to what everyday users can actually do to protect themselves, Christopher Weatherhead examines Google's official advice. Google contends that users can resolve tracking concerns through two built-in Android privacy settings: - Opting out of ad personalization. - Resetting the Google Advertising ID.
Weatherhead demonstrates the real-world outcome of toggling these settings by comparing captured network requests before and after opting out. The audience laughs as he shows the side-by-side payload comparison: while an ad personalization boolean flag in the payload successfully switches from `true` to `false`, the total volume of data transmitted to Facebook actually increases, and the transmission continues unabated. Weatherhead dryly observes: “The real improvement is that the flag has been changed from true to false, but the data is increased and it's still being sent, so yeah, it's... so you can't really opt out then.”
For technically inclined users, such as attendees at the Chaos Communication Congress, running a rooted Android handset makes it possible to block outbound traffic to domains like `graph.facebook.com`, though doing so risks breaking unrelated application functionality. For the vast majority of ordinary consumers who do not possess rooted devices, practical defenses are virtually nonexistent. Avoiding apps that bundle the Facebook SDK is functionally impossible because app marketplaces provide zero upfront disclosure about which third-party tracking libraries are embedded inside an application before installation.
[22:04](https://www.youtube.com/watch?v=y0vlD7r-kTc&t=1324s) Mitigation Strategies and Open-Sourcing the Research Environment
Addressing steps users can take to protect themselves, Christopher Weatherhead notes that one option is to segregate apps by creating separate user profiles on an Android device for every single application. By doing this, the advertising IDs remain completely separated, meaning an ID is tied strictly to that individual app. Users can also opt out and manually reset their advertising ID. Christopher concedes that while resetting does not truly solve the root issue, “it doesn't really solve much but it does at least you know it keeps your profile fresh,” noting that the timeframe of tracking plays a massive role in how detailed a profile can become. However, Frederike Kaltheuner cuts straight to the core injustice: “why should you have to do all of this?”
Christopher announces that he will release the entire testing environment on the Privacy International (PI) website so anyone can replicate their findings. He jokes that he plans to upload it the next day because he needs to get home and sleep first. All project documentation will also be published on PI's website. Christopher specifically recommends that people examine the data flows for Kayak and the LED Flashlight app, noting that the flashlight app features particularly interesting consent flows. The formal talk concludes to applause as the Q&A session begins.
- Android user profiles allow isolating advertising IDs per app, keeping profiles separate. - Resetting the advertising ID does not stop tracking, but it resets the profiling timeline. - Privacy International will host both the full test environment and documentation for independent replication. - Notable app analyses highlighted by the researchers include Kayak and LED Flashlight.
---
[23:38](https://www.youtube.com/watch?v=y0vlD7r-kTc&t=1418s) Q&A: Subject Access Requests and Certificate Pinning
The audience lines up across five microphones, and the first question asks whether the researchers submitted their advertising ID to Facebook to request their data under access rights, suggesting that a user could query Facebook, complain to the app developers, query Facebook again, and repeat the loop weekly. Christopher reveals that he did submit a data access request (DSAR) to Facebook based on his advertising ID. Facebook responded well outside the statutory timeframe, and only replied after PI formally notified the company that an investigative report was about to be released. In their eventual response, Facebook claimed they held no data on that ID. Frederike emphasizes how deeply flawed this system is, stating, “this experience just shows that it's excruciatingly difficult to actually exercise your data rights if you don't have an account.” Even though Facebook provides an official web form, the hurdle remains immense.
```mermaid flowchart LR accTitle: Data Subject Access Request Flow accDescr: Diagram showing Christopher's DSAR attempt to Facebook using an advertising ID and the resulting denial. subgraph UserFlow["User Action"] A["Submit DSAR with Advertising ID"] end subgraph Delay["Response Delay"] B["Facebook misses statutory deadline"] C["PI notifies Facebook of upcoming report"] end subgraph Outcome["Resolution"] D["Facebook replies claiming 'no data' held"] end A --> B B --> C C --> D ```
An online question asks whether any tested apps prevented interception by pinning Facebook's SDK certificates. Christopher answers bluntly: “none of them did of the ones I tested at least of them they were quite happy to send data to a man in the middle.”
- Christopher performed a formal GDPR Subject Access Request against Facebook using his mobile advertising ID. - Facebook only replied past the legal deadline after learning of the upcoming public report, asserting they held zero data on the ID. - None of the tested Android applications implemented SSL/TLS certificate pinning for Facebook's SDK traffic, allowing transparent man-in-the-middle decryption.
---
[25:06](https://www.youtube.com/watch?v=y0vlD7r-kTc&t=1506s) Privacy Defaults, the Monetization Myth, and Paid Apps
A questioner asks whether open-source libraries exist to replace these SDKs with privacy-sensitive defaults, and whether Facebook or Google terms of service would even permit them. Christopher replies that he is unaware of any such privacy-preserving wrapper projects, and while they have read the SDK terms of service, he cannot say off the top of his head whether modified libraries would violate them.
Another attendee asks about the conventional wisdom given to non-technical users: "buy your app so you won't be the product." The audience member asks whether paid apps also engage in this tracking or if the study only covered free apps. Frederike tackles the underlying industry narrative, explaining that when companies are confronted about third-party tracking, the standard defense is that publishers and app creators must monetize through invasive surveillance to survive. Frederike points out that this justification has been recycled for years while tracking has grown exponentially worse:
> “there are ways to use analytic software there are ways to even show ads that are fair and transparent to people but sort of like but there's such a gap between what's considered sort of industry practice or what's happening on a massive scale and what would be considered transparent and fair so there's like a massive room for improvement movement and that's why I'm not buying the argument that that apps or companies like Facebook and Google say but people need to sell ads”
When the attendee clarifies whether the research specifically checked paid apps, Christopher clarifies that his testing focused strictly on free-to-download apps. Frederike notes that because tracking is baked into the SDK by default, testing paid applications would be an interesting avenue for future research.
---
[27:32](https://www.youtube.com/watch?v=y0vlD7r-kTc&t=1652s) Competitor SDKs, Legal Ramifications, and Automated Ad ID Resets
Asked whether other major tech companies (like the rest of the "Big Five") provide tracking SDKs that operate like Facebook's, Christopher explains that while he did not conduct dedicated deep-dives into them, network logs clearly revealed widespread third-party tools. He specifically observed telemetry going to tools like Amplitude and Google Crashlytics, noting their consistent payload formats indicate they are delivered via SDKs, though PI has not yet analyzed the contents of those payloads.
A two-part question asks whether Facebook's failure to answer access requests makes them legally vulnerable to lawsuits despite their formidable legal team, and whether users could automate resetting their advertising ID on Android to disrupt tracking. On legal action, Frederike hints that Privacy International is weighing next steps, advising everyone to read the detailed legal chapter in their published report. She notes existing legal precedents surrounding the tracking of non-users via social plug-ins and tracking pixels, suggesting that the mobile SDK ecosystem presents clear parallels.
Regarding the automated resetting of advertising IDs, Frederike notes that Android buries the setting under `Settings -> Google -> Ads -> Reset advertising ID`. Because the operating system assigns a shared advertising identifier, resetting it clears it for both Google and Facebook simultaneously. However, Frederike highlights the flawed default design:
> “the privacy settings of both Google and Facebook are still sort of counterintuitive and there is no good reason to why the ad ID only resets when you reset it manually because we know that many people will not understand or know what the ad ID is used for and what implications resetting it has”
The session moderator pauses to remind the audience that Privacy International's report is going live at that very moment, meaning the attendees in the hall are the first public audience to see the findings, prompting a round of applause.
---
[30:50](https://www.youtube.com/watch?v=y0vlD7r-kTc&t=1850s) Delayed SDK Initialization and Android Factory Reset Anomalies
An audience member asks if developers can delay loading the Facebook SDK so that it cannot execute code or transmit telemetry until a specific feature (such as Facebook login) is actually invoked. Christopher responds that Facebook claims SDK versions 4.34 and above include a delay function. However, developer bug reports as late as December indicate that the effectiveness of this feature remains questionable. Furthermore, Christopher suspects that several large apps that did not exhibit automatic background tracking—such as WeChat and Dropbox—may avoid using the full SDK altogether, choosing instead to implement manual calls directly to the Facebook Graph API using their developer keys. When pressed on whether developers can simply lazy-load the standard Facebook library binaries into memory only when needed, Christopher clarifies that he cannot definitively say whether that is technically supported.
Another questioner asks whether resetting the advertising ID is even meaningful given the extensive fingerprinting and data transmitted. Frederike defends the practice while acknowledging its limits: while it technically creates a new profile rather than altering historical logs, and relinking data remains trivial for ad tech giants, manual resets still break profile continuity and signal a user's intent to resist granular targeting.
Frederike shares a bizarre anomaly discovered during their testing: when resetting test devices to factory settings, the Google Advertising ID unexpectedly failed to reset. When Privacy International confronted Google about this behavior, Google stated they tested multiple devices and observed the ID resetting as intended. The researchers could not replicate Google's results, leaving open the possibility that the behavior was tied to their specific testing environment.
The section closes with an audience member asking whether similar background tracking occurs on Apple's iOS devices. Christopher smiles, hinting that investigating Apple's platform may become his major project for the following year.
[33:35](https://www.youtube.com/watch?v=y0vlD7r-kTc&t=2015s) Opting Out of Ad Personalization and the Skyscanner Anomaly
An audience member at microphone 3 asks about a paradoxical finding shown earlier on the slides: when a user opts out of ad personalization on Android, the volume of transferred data actually increases. Looking back at the specific data payload, Christopher Weatherhead points out that this occurred in Skyscanner's custom app data during origin selection. When a user went through the flight booking flow and chose the departure city, the app transmitted data back to Facebook; unexpectedly, opting out of personalization caused the app to transmit even more data. Weatherhead admits they do not know the technical rationale behind why Skyscanner's payload expands when opted out, but he highlights the underlying policy reality regarding Google's enforcement.
When Privacy International questioned Google about this behavior, Google responded that opting out legally binds parties not to use the data for personalized advertising. However, the speakers emphasize the huge loophole inherent in that defense. A contractual promise restricts how the data is used downstream, but it does nothing to restrict its collection in the first place. Furthermore, the restriction applies solely to advertising; nothing stops companies from using the collected data for other purposes, such as behavioral surveying, market research, or internal analytics.
- **App examined**: Skyscanner (specifically transmitting custom app event data when choosing origin flight cities). - **Google's defense**: Contractual rules prohibit using the data for personalized ads once opted out. - **Privacy International's critique**: Christopher Weatherhead notes, “First of all that's like a restriction on the on use it's not a restriction on collection but also it's only a restriction on use for advertisement we still think you could be using it for different purposes EEG surveying or whatever things.”
---
[34:58](https://www.youtube.com/watch?v=y0vlD7r-kTc&t=2098s) App Store Privacy Indicators and the Scope of Trackers
At microphone 5, an attendee asks whether alternative app repositories like F-Droid or commercial app stores could introduce clear privacy indicators—such as alongside the standard five-star user rating, having a separate one-star to five-star privacy rating—to warn users if an app has invasive tracking before they download it. Christopher Weatherhead agrees that this is an excellent idea and points out that Privacy International recommended something similar to Google. Since the Google Play Store already flags attributes like in-app purchases or contains ads, it could easily disclose whether an app bundles trackers or includes the Facebook SDK.
Frederike Kaltheuner elaborates on the institutional gap between store rules and reality. App stores require developers in their terms of service to comply with all applicable privacy laws, yet observational testing shows a massive discrepancy between what policies mandate and how apps behave in practice. She also reminds the room that Privacy International’s study intentionally isolated Facebook as a single tracking entity, but the broader ecosystem contains thousands of ad-tech vendors.
```mermaid flowchart TD accTitle: App Store Reality vs Policy Gap accDescr: Discrepancy between Google Play Store contractual requirements and the actual tracking behavior observed in apps.
subgraph StorePolicy["App Store Terms of Service"] P1["Mandates compliance with existing privacy laws"] P2["Requires consent for profiling under GDPR"] end
subgraph AppBehavior["Observed App Behavior"] A1["Immediate transmission of AAID upon launch"] A2["Bundles Facebook SDK and thousands of ad trackers"] A3["No pre-consent gate before exfiltrating device telemetry"] end
StorePolicy -.->|"Discrepancy in practice"| AppBehavior ```
Kaltheuner references broader academic research by Reuben Binns and colleagues at the University of Oxford, who analyzed thousands of Android apps and uncovered staggering numbers of concurrent third-party trackers embedded within individual applications.
- **Proposed store feature**: Clear privacy ratings or tracker disclosures directly on app listing pages. - **Ecosystem context**: While Facebook is ubiquitous, thousands of specialized ad-tech trackers operate across popular Android apps. - **Academic reference**: Oxford research led by Reuben Binns documenting the sheer density of third-party tracking libraries in mobile software.
---
[37:07](https://www.youtube.com/watch?v=y0vlD7r-kTc&t=2227s) Disclosing App Developer Communications
A participant at microphone 4 asks whether Privacy International plans to make the full correspondence with app developers public, arguing that publishing the back-and-forth exchanges would give privacy-minded consumers a tangible angle to challenge these companies directly. Frederike Kaltheuner explains that Privacy International initially contacted the affected app companies on December 19, just prior to the Christmas holidays, fully recognizing that late December is an unusually demanding time of year for organizations to respond.
Kaltheuner clarifies that while they cannot release internal, unredacted message threads, they have published the formal statements and replies received from the companies at the end of their report for each specific app. Some developers responded that they needed more time to review the technical findings internally before making a statement. Frederike cautions the audience against reading malice into silence, saying: “And also to be fair some said they need more time to evaluate that internally so just to be fair um I wouldn't interpret a lack of response as anything negative just yet.” If late responses come in, Privacy International intends to update their public reporting accordingly.
---
[38:48](https://www.youtube.com/watch?v=y0vlD7r-kTc&t=2328s) Malicious Compliance: Payload Flooding and Ad ID Poisoning
The Q&A takes a humorous yet technically provocative turn when an audience member asks whether anyone has attempted to modify the outgoing JSON payloads to flood Facebook's ingestion endpoints with massive files—such as uploading a one-gigabyte payload—to see if their servers would ingest it. Christopher Weatherhead laughs and replies, “I think that would give our general counsel a heart attack.” However, he notes that testing these apps already pushed local testing tools to their breaking point; several tested apps sent traffic to so many distinct trackers simultaneously that the logging overhead ran the testing environment out of memory and crashed it.
```mermaid flowchart LR accTitle: mitmproxy Crash on Opt-Out HTTP2 Connections accDescr: Flow showing how switching off ad personalization triggers unheralded HTTP2 connections from Android that overwhelm mitmproxy.
subgraph Android["Android Device"] D1["Opt out of Ad Personalization"] --> D2["Initiates HTTP/2 connections without preamble"] end
subgraph Proxy["mitmproxy Environment"] M1["Cannot handle unexpected HTTP/2"] M2["Drops connections & floods logs with garbage"] M3["Environment out-of-memory crash"] end
D2 --> M1 M1 --> M2 M2 --> M3 ```
Weatherhead adds that toggling ad personalization off exposed a documented upstream bug in mitmproxy on GitHub: the Android operating system starts initiating HTTP/2 connections without an expected preamble, which mitmproxy cannot properly negotiate. The proxy continuously drops the connections, filling the debug logs with junk data. A follow-up question from microphone 2 asks whether a privacy tool could collect the last 1,000 advertising IDs (AAIDs) and randomly shuffle them across requests to poison tracking profiles. The speakers caution against such counter-measures, with Kaltheuner and Weatherhead noting that deliberately scrambling or spoofing personal identifiers introduces severe legal and GDPR complications.
- **Payload experimentation**: Deliberate denial-of-service or garbage data injection would trigger immediate legal liability. - **mitmproxy HTTP/2 bug**: Turning off personalization causes Android to open raw HTTP/2 streams lacking a handshake preamble, causing proxy packet drops and log bloat. - **Data poisoning suggestion**: Swapping AAIDs between users to pollute advertising models is warned off with: “I said it raises a lot of GDPR questions you might not want to do that I guess.”
---
[41:08](https://www.youtube.com/watch?v=y0vlD7r-kTc&t=2468s) Account Deletion, Re-Identification, and Shadow Profiling
The final question of the session focuses on how effectively Facebook links an Android Advertising ID to an individual user's registered account, and what happens when an account is deleted. The attendee asks whether Facebook retains persistent records and uses telemetry to re-identify and track individuals even after they terminate their accounts.
Frederike Kaltheuner explains that Facebook addresses this across its public documentation—including its Privacy Policy, Cookie Policy, and Business Tools Terms—where sections specifically describe how the company handles data belonging to non-users. However, Privacy International finds those official descriptions persistently vague. While the documentation and company statements claim data is processed for specific, limited purposes and retained for varying lengths of time, they offer little technical clarity about how SDK-generated app telemetry is mapped behind the scenes.
Kaltheuner recalls that during United States congressional hearings, the issue of "shadow profiling" was raised repeatedly, yet the responses provided by Facebook remained evasive. Because outsiders cannot inspect Facebook’s server-side data lakes, researchers are forced to rely on opaque corporate disclosures. She emphasizes: “Because we don't know you can we have to sort of like trust statements that are made in the policies and that the company made elsewhere but what's interesting the responses to Congress where shadow profiling was a big issue is the response sort of like various purposes are given and the data is stored for varying length of time and so that's why it's very sometimes a bit tricky to figure out exactly what's happening with this we'd appreciate if that's a bit more transparent.” The talk concludes to sustained applause for Frederike Kaltheuner and Christopher Weatherhead of Privacy International.
## Notable quotes > [19:10](https://www.youtube.com/watch?v=y0vlD7r-kTc&t=1150s) there's no natural law that says that every website, every app you use, sends such detailed data to hundreds of different companies every time you use them. — Frederike Kaltheuner
> [13:17](https://www.youtube.com/watch?v=y0vlD7r-kTc&t=797s) when apps share data the second they're opened, you're unable to ask people for their explicit and unambiguous permission which is the bar for consent that GDPR requires. — Frederike Kaltheuner
> [01:47](https://www.youtube.com/watch?v=y0vlD7r-kTc&t=107s) it is currently impossible for most people to understand how they're being tracked and profiled and in whose hands all of this data ends up. — Frederike Kaltheuner
> [23:38](https://www.youtube.com/watch?v=y0vlD7r-kTc&t=1418s) it's excruciatingly difficult to actually exercise your data rights if you don't have an account. — Frederike Kaltheuner
## Mentioned 35C3, Amazon, Amplitude, Android, Apple, Baby+, Children's Online Privacy Protection Act (COPPA), Christopher Weatherhead, Dropbox, ePrivacy Directive, Exodus Privacy, Facebook, Facebook SDK, F-Droid, Frederike Kaltheuner, General Data Protection Regulation (GDPR), Google, Google Advertising ID, Google Crashlytics, Google Play Store, Indeed, Kayak, King James Bible, LG Google Nexus 5, Mark Zuckerberg, mitmproxy, Mobile Shirz, My Talking Tom, Privacy International, Quantcast, Reuben Binns, Skyscanner, Spotify, The Weather Channel, Twitter, University of Oxford, VK, WeChat
## Video description https://media.ccc.de/v/35c3-9941-how_facebook_tracks_you_on_android
(even if you don’t have a Facebook account)
In this talk, we’re looking at third party tracking on Android. We’ve captured and decrypted data in transit between our own devices and Facebook servers. It turns out that some apps routinely send Facebook information about your device and usage patterns - the second the app is opened. We’ll walk you through the technical part of our analysis and end with a call to action: We believe that both Facebook and developers can do more to avoid oversharing, profiling and damaging the privacy of their users.
In this talk, we’re looking at third party tracking on Android. We’ve captured and decrypted data in transit between our own devices and Facebook servers. It turns out that some apps routinely send Facebook information about your device and usage patterns - the second the app is opened. We’ll walk you through the technical part of our analysis and end with a call to action: We believe that both Facebook and developers can do more to avoid oversharing, profiling and damaging the privacy of their users.
Frederike Kaltheuner Christopher Weatherhead
https://fahrplan.events.ccc.de/congress/2018/Fahrplan/events/9941.html
[Source](https://www.youtube.com/watch?v=y0vlD7r-kTc)