Every app ships with libraries nobody on the team wrote: analytics, advertising, crash reporting, push, payments, session replay. The Squad lists each SDK in the shipped build and shows when it starts, what it collects and which servers it talks to.
The check separates the libraries that merely sit in the package from the ones that act. These are the classes we document:
We decompile the build and read it. The manifest shows declared providers, receivers, services and permissions. The decompiled classes show which SDK sits behind them and how large it is: one report counts 315 classes for a push SDK, another 3,622 classes for a messaging platform. Class counts separate a stub from a fully integrated SDK.
Each library is correlated across our whole corpus of audited apps, so a finding comes with context: who else ships the same SDK, in which version, and what it did there.
Timing decides the legal weight of a finding. The check records whether an SDK initialises at process start through the manifest, whether it waits for consent, and whether it begins working after a device restart before the app was ever opened. A location-marketing tool that starts at boot and a content provider that initialises before the consent screen are different findings with different consequences.
A new build is checked against the last audited version, permission by permission and SDK by SDK. Apps change their stack with every release, and a tracker that was absent in the last version can be present in this one. The comparison makes that visible.
A written report with one entry per SDK: name, version, class count, trigger, endpoints and data categories, each with its evidence from the binary. Human specialists re-verify every finding. The base knowledge graph that ships with the report links SDKs, endpoints and findings. For teams that need the same view across many apps, the Data offer builds SDK and tracker graphs. See the Access page for scope and plans.
The public ledger lists 387+ audited apps and 262+ critical findings. These full reports show SDK findings in real apps:
The free check examines one domain from the outside: read-only, from a European IP address, with no login and no payloads. A researcher reviews your request and replies within one business day. It is an initial external assessment, so it complements the SDK inventory of a full audit and does not replace it.
The plans for a full audit are on the Access page.
See plans and pricing → · Meet The Squad → · Standards and frameworks →
The initial check is read-only, performed from a European IP address, with no login and no payloads. Your systems remain unchanged.
A researcher reviews your request before any check begins and replies within one business day. You receive a short written report with our findings, likely attack scenarios, the potential financial impact and clear next steps, plus a knowledge graph of everything we found. All free.
Analytics, attribution, advertising, session replay, push, tag-manager tags and advertising APIs. Every library in the build is listed, and the report marks the ones that act on user data.
A built package is enough. You can also send a GitHub link, a repository archive or an API specification.
Then the report says so. One audited AI assistant app shows zero third-party tracking SDKs, zero hardcoded credentials and no pre-consent auto-initialisation, and the report lists exactly that.
Findings are anchored to the relevant GDPR and ePrivacy articles. The GDPR app audit page describes that part in detail.
App Security Audit · GDPR App Audit · NIS2 for Software Vendors