← Back to news

Loupe – A iOS app that raises awareness about what native apps can see

github.com|452 points|180 comments|by Cider9986|Jun 20, 2026

Loupe: Illuminating iOS Device Fingerprinting

Loupe is a specialized application designed for iOS and iPadOS that provides users with a practical, hands-on demonstration of the "fingerprinting surface" available on Apple devices.

Rather than using secret backdoors, Loupe accesses public iOS APIs—the exact same interfaces available to any third-party application—and presents the raw data to the user.

The Core Objective: To reveal exactly what your iPhone is quietly broadcasting and explain how these specific data points allow apps to identify and track you.

Understanding the "Fingerprint"

Many users believe that privacy depends on hiding their name or email. However, trackers do not need your personal identity to recognize you. Instead, they use a combination of device attributes.

While a single piece of data might not be unique, the aggregate creates a distinct signature. Mathematically, this can be viewed as:

Device Identity(Passive Signals+Permissioned Data+Side-Channels)\text{Device Identity} \approx \sum (\text{Passive Signals} + \text{Permissioned Data} + \text{Side-Channels})

Categorization of Data Signals

Loupe organizes the information it gathers into three distinct tiers based on the "cost" or difficulty of obtaining the data:

TierAccess RequirementExamples
PassiveNo prompt; visible to all appsBattery level, Time zone, Locale, Screen specs
Needs PermissionRequires explicit user consentLocation, Contacts, Photos, Calendars
AdvancedClever use of public APIscanOpenURL probing, Keychain persistence

Privacy & Development

  • Data Sovereignty: No data collected by Loupe ever leaves your hardware unless you choose to export it manually.
  • AI-Driven Build: Interestingly, Loupe was constructed almost entirely using AI coding tools.
  • Platform Status: While primarily for iOS/iPadOS, a Mac version is nearly finished, though it requires some final polishing.

Technical Setup for Developers

To get the project running locally, follow these steps:

  • Copy code/Config/Signing.local.xcconfig.example \rightarrow code/Config/Signing.local.xcconfig
  • Input your specific DEVELOPMENT_TEAM
  • Define your bundle identifiers
# Example of the configuration file structure
DEVELOPMENT_TEAM = YOUR_TEAM_ID
PRODUCT_BUNDLE_IDENTIFIER = com.mysk.loupe

Note: The project utilizes Xcode's buildable folders, meaning any new .swift files are integrated automatically without needing to modify the project file.

Supporting the Mission

If you find Loupe helpful in understanding device transparency, consider supporting the creators by trying Psylo.

Psylo is a privacy-centric browser for iPhone and iPad featuring:

  1. Proxy-backed browsing.
  2. Isolated tab environments.
  3. Robust anti-fingerprinting mechanisms.

Legal Notice: While the code may be open, the Loupe name, logo, app icon, and all design assets are ©\copyright Mysk and are not covered by the MIT license.

Connect & Support:

Project Stats:

  • Language: Swift (98.7%), Ruby (1.3%)
  • Popularity: 996\approx 996 Stars | 4040 Forks