REVIEW 2 major objections 6 minor 8 references
A public dataset of 99,722 Android apps linked to 246 tracking SDKs and their providers, built by static signature matching of APKs.
Reviewed by Pith at T0; open to challenge. T0 means a machine referee read the full paper against a public rubric. the ladder, T0–T4 →
T0 review · grok-4.5
2026-07-12 08:23 UTC pith:SQ37RGCQ
load-bearing objection Solid, usable Data Descriptor: large open app–SDK–provider graph with a real pipeline; static-detection limits are real but already flagged and do not sink the claim. the 2 major comments →
A large-scale dataset of Android applications and their SDK dependencies
The pith
A machine-rendered reading of the paper's core claim, the machinery that carries it, and where it could break.
Core claim
A fully scripted static-analysis pipeline that samples Google Play APKs, extracts Dalvik namespaces, matches them against open tracker rules, and maps detected SDKs to companies yields a released corpus of 334,719 unique app-version observations (99,722 packages), 246 observed tracking SDKs, 197 providers, and more than 845,000 app-SDK relationships, complete with app and SDK metadata that support bipartite and projected network analysis of technological concentration.
What carries the argument
The bipartite app-SDK edge list (and its provider-mapped counterpart) obtained by namespace-prefix and regular-expression matching of APK bytecode against a public tracker rule base, then aggregated into one-mode projections on apps, SDKs, and firms.
Load-bearing premise
That matching namespace prefixes and regexes inside APK bytecode against a fixed public tracker list is complete enough for ecosystem statistics, even when code is obfuscated, loaded at runtime, or present but inactive.
What would settle it
A large, independently labeled sample of the same APKs in which dynamic or de-obfuscated inspection finds systematically different presence or co-occurrence rates for the top trackers and providers than the static pipeline reports.
Editorial analysis
A structured set of objections, weighed in public.
Referee Report
Summary. This Data Descriptor presents a large-scale open dataset linking Google Play Android apps to embedded third-party tracking SDKs. The authors combine AndroZoo APKs/metadata with Exodus Privacy detection rules in a fully scripted static-analysis pipeline (namespace-prefix and regex matching on DEX bytecode), then map SDKs to operating companies. The released resource covers 334,719 unique app-version observations (99,722 packages), 246 empirically observed SDKs, 197 provider entities, and hundreds of thousands of app–SDK relationships, plus app- and SDK-level metadata. The data support bipartite app–SDK and app–provider networks and their one-mode projections, with public code (GitHub) and frozen data (Zenodo).
Significance. Open, large-scale app–SDK–provider linkage remains scarce relative to proprietary mobile-intelligence products. The contribution is a reusable research infrastructure rather than a novel theoretical result: a reproducible pipeline, a frozen multi-version sample, a carefully documented canonical provider mapping, and ready-to-use network edge lists. Strengths that raise the value of the resource include near-complete processing success (99.998%), 100% metadata merge and provider-mapping coverage after validation, zero internal SDK-count inconsistencies, external prevalence checks against Exodus (Pearson 0.874, substantial top-20 overlap), and full public release of scripts and data (subject to AndroZoo APK redistribution limits). If the static-detection caveats are kept in view, the dataset can support concentration, co-occurrence, privacy-infrastructure, and longitudinal dependency studies that are otherwise hard to reproduce.
major comments (2)
- Methods, “SDK detection rules” / “Limitations of static SDK detection”: the central usability claim for prevalence, co-occurrence, and concentration analyses rests on static namespace/regex matching against Exodus without de-obfuscation, dynamic loading analysis, or runtime confirmation. The manuscript already flags false negatives (obfuscation/dynamic load) and false positives (inactive code). For a Data Descriptor this is acceptable only if the abstract, Data Records, and network-statistics sections more explicitly frame all reported degrees, densities, and provider concentration figures as upper/lower bounds on observable code presence rather than realized tracking. A short quantitative sensitivity note (e.g., the LiteRadar provider-level overlap already mentioned in a footnote, or a stratified check on heavily obfuscated packages) would make the load-bearing assumption falsifiable ra
- Data Records / Table 6–7 and network construction: package-level aggregation (union of SDKs across versions of the same app) is used for the headline bipartite and projection statistics, while the raw resource preserves multi-version observations. The manuscript should state more clearly which analyses use the union, which use latest-version only, and how multi-version edges are collapsed when computing the 214,421 app–SDK relationships versus the 845,010 app-version–SDK edges. Without that, users can easily mis-specify longitudinal versus cross-sectional concentration measures.
minor comments (6)
- Abstract vs. body: abstract reports 334,719 unique app-version observations; Background & Technical Validation also cite 334,711 successfully processed APKs and occasional 334,711/99,722 figures. Align the headline counts and define “observation” vs. “successfully processed APK” once in Data Records.
- Table 1 / dex_date: placeholder 1980/1981 dates are correctly flagged; a one-line recommendation on how users should filter temporal snapshots would reduce misuse of Figure 2.
- Table 7: assortativity and clustering for bipartite vs. one-mode projections are reported without stating whether they are computed on weighted or unweighted graphs; a short note would help reproducibility.
- Provider mapping (Table 3–4): ownership is frozen at October 2025. Explicitly label company_canonical as time-stamped and point users to the audit CSV for re-mapping after future acquisitions.
- Sample representativeness (Tables 9–11): free-app over-representation is well explained by the tracking focus; still, state in the abstract or Data Records that the resource is not a monetization-stratified sample of Google Play.
- Minor consistency: “334,719” vs. earlier “334,711” and “845,000” vs. “845,010” appear in different sections; pick one rounding convention for the abstract.
Circularity Check
No circularity: empirical data-descriptor construction and external validation, not a derivation that reduces to its inputs.
full rationale
The paper is a Data Descriptor whose central claims are the existence, scale, and usability of a released app–SDK–provider resource (334k app-version observations, 246 SDKs, provider mapping, bipartite/projected networks) produced by a scripted static-analysis pipeline. There is no theoretical derivation, uniqueness theorem, fitted parameter renamed as prediction, or self-definitional loop. Reported counts and coverage figures are direct outputs of APK processing against the independent Exodus Privacy rule base plus AndroZoo metadata; technical validation compares prevalence and category distributions to external sources (Exodus reports, 42matters) rather than re-deriving the same quantities from the same sample. Standard network definitions (biadjacency matrix, projections U=BBᵀ, V=BᵀB) are applied after the data exist and do not force the empirical results. Minor self-references to the authors’ own pipeline scripts are ordinary reproducibility infrastructure, not load-bearing premises. The weakest assumption (static namespace matching) is an acknowledged measurement limitation, not circularity. The work is therefore self-contained against its external benchmarks.
Axiom & Free-Parameter Ledger
free parameters (2)
- target sample size (~100k apps) =
~100000 packages
- fixed random seed for APK sampling =
fixed (unspecified numeric value)
axioms (4)
- domain assumption Static namespace-prefix and regex matching against Exodus Privacy rules is a valid proxy for the presence of tracking SDKs in an APK.
- domain assumption Restricting to AndroZoo packages whose markets field contains play.google.com yields a sufficiently representative slice of the Android ecosystem for the intended analyses.
- ad hoc to paper Provider ownership can be canonicalized to a single company label at the time of mapping (Oct 2025), collapsing acquisitions and aliases.
- ad hoc to paper Package-level aggregation (union of SDKs across versions of the same app) is an appropriate default for the reported network statistics.
invented entities (2)
-
Canonical SDK–provider mapping table (company_canonical)
independent evidence
-
Released app-version / app-SDK / app-provider edge lists and projected networks
independent evidence
read the original abstract
Mobile applications (apps) increasingly rely on third-party Software Development Kits (SDKs) to provide services such as advertising, analytics, authentication, crash reporting, and location services. These components form an important, but often hidden, layer of the mobile ecosystem. Here, we present a large-scale dataset linking Android apps to the third-party SDKs they integrate. The dataset was constructed by combining app package files (APKs) and metadata from AndroZoo with SDK detection rules provided by Exodus Privacy. We implemented a reproducible, static-analysis pipeline that downloads APKs, inspects their compiled code, and detects SDKs through code-level signature matching: the released dataset contains 334,719 unique app-version observations (associated with 99,722 Android apps) and 246 third-party SDKs - including app-level metadata such as categories, comments, file size, download counts, ratings and SDK-level metadata such as categories, code roots, code versions, names. The dataset supports the construction of a large-scale app-SDK dependency network and its projection onto both layers; in addition, SDKs are mapped to their corresponding operating companies, enabling provider-level analysis of technological concentration and upstream control in the mobile ecosystem. To support reproducible research, the pipeline and dataset are publicly released on GitHub and Zenodo; more broadly, the project provides a reusable research infrastructure for studying third-party technological dependencies, data-collection capabilities, and privacy infrastructures across Android apps.
Figures
Reference graph
Works this paper leans on
-
[1]
Proceedings of the 21st International Conference on Mining Software Repositories , pages=
AndroZoo: A Retrospective with a Glimpse into the Future , author=. Proceedings of the 21st International Conference on Mining Software Repositories , pages=
-
[2]
AndroZoo: Collecting Millions of Android Apps for the Research Community , booktitle =
Allix, Kevin and Bissyand. AndroZoo: Collecting Millions of Android Apps for the Research Community , booktitle =. 2016 , isbn =. doi:10.1145/2901739.2903508 , acmid =
-
[3]
Don’t Accept Candies from Strangers: An Analysis of Third-Party SDKs , institution =
Feal,. Don’t Accept Candies from Strangers: An Analysis of Third-Party SDKs , institution =
-
[4]
Super SDKs: Tracking Personal Data and Platform Monopolies in the Mobile Ecosystem , journal =
Pybus, Jennifer and C. Super SDKs: Tracking Personal Data and Platform Monopolies in the Mobile Ecosystem , journal =. 2024 , doi =
2024
-
[5]
2017 , eprint=
AndroZoo++: Collecting Millions of Android Apps and Their Metadata for the Research Community , author=. 2017 , eprint=
2017
-
[6]
2025 , month = dec, date =
Marzi, Mattia , title =. 2025 , month = dec, date =
2025
-
[7]
arXiv preprint arXiv:2601.10224 , year =
Emer, Lorenzo and Gallo, Anna and Marzi, Mattia and Mina, Andrea and Squartini, Tiziano and Vandin, Andrea , title =. arXiv preprint arXiv:2601.10224 , year =. doi:10.48550/arXiv.2601.10224 , url =
work page internal anchor Pith review doi:10.48550/arxiv.2601.10224
-
[8]
New Journal of Physics , abstract =
Saracco, Fabio and Straka, Mika J and Clemente, Riccardo Di and Gabrielli, Andrea and Caldarelli, Guido and Squartini, Tiziano , title =. New Journal of Physics , abstract =. 2017 , month =. doi:10.1088/1367-2630/aa6b38 , url =
discussion (0)
Sign in with ORCID, Apple, or X to comment. Anyone can read and Pith papers without signing in.