Open-source project
seemoo-lab/AirGuard avatar
seemoo-lab/AirGuard

AirGuard: AirTag tracking detection for Android phones

Protect yourself from being tracked 🌍 by AirTags 🏷 and Find My accessories 📍

2,511 stars150 forksKotlinApache-2.0

At a glance

What is it?
AirGuard is an open source Android app from TU Darmstadt that scans for AirTags and other Find My trackers and warns you when one follows you. It is built for Android users who want the iOS tracking warnings Apple never gave them, and its limits matter as much as its features.
Who is it for?
AirGuard fits Android users who want a local, research-backed check for Find My trackers and are willing to keep Bluetooth scanning on. Anyone expecting coverage of Tile, Samsung SmartTag or generic BLE trackers should look elsewhere, since the README describes Find My devices only.
Can I use it commercially?
Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 13 days ago.
What is it written in?
Mainly Kotlin, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 20, 2026, and from our analysis. They are not legal advice.

Editorial analysis

The gap AirGuard fills for Android users

Apple built unwanted-tracking warnings into iOS. Android has no equivalent, so an AirTag slipped into a jacket, backpack or car can travel with an Android user without any system-level alert. AirGuard exists to close that gap. The README puts it plainly: without tracking warnings as integrated on iOS, anyone could try to track your behavior by placing an AirTag in your jacket, backpack or car. That is the problem, and the audience is Android users who carry a phone but not an iPhone.

The project comes from the Secure Mobile Networking Lab at the Technical University of Darmstadt. It is framed as part of scientific research, and the app offers voluntary participation in a study that shares anonymized data. That framing matters for adoption: this is a research artifact with a privacy goal, not a commercial anti-stalking product. The README also states the app will never be monetized through ads or in-app purchases.

How the Bluetooth scan and notification logic works

The mechanism is Bluetooth scanning. AirGuard uses Bluetooth scans of your Android phone to find AirTags and Find My trackers, and every tracker it finds is saved locally on the device. Detection alone is not enough to trigger an alert, because a tracker that appears once could belong to a neighbor or a passerby.

The app therefore counts detections and compares locations. According to the README, a tracker must be detected at least 3 times and the locations must have changed before a notification is sent. The README explains the location check as a way to make sure it is not your neighbour. The promised latency is under an hour: if a device follows you, you get a notification in less than an hour.

If the tracker is an AirTag, the app can play a sound so you can find the physical device. Afterward you can view the locations where the tracker was detected. The data flow stays on the phone: the README states that location, tracker IDs and similar private information never leave the device. The one exception is the optional research study, which the README describes as sharing anonymized data voluntarily.

Installing AirGuard and running a first scan

There is no build step required for normal use. The README lists three distribution channels: Google Play, F-Droid and the GitHub releases page. The package identifier on F-Droid and Play is de.seemoo.at_tracking_detection, with the Play build using de.seemoo.at_tracking_detection.release. The README does not give a command-line install, so the supported route is to install from the store listing or download the APK from the GitHub releases page and open it on the device.

After installation, grant the Bluetooth and location permissions the scan needs, then leave the app running in the background. The first useful thing you will see is a list of detected trackers. Nothing appears until a Find My device is actually in range, which is the intended behavior: the README says that if no one is trying to track you, the app will never bother you.

If you want to build from source instead, the repository is a Gradle project with gradlew and gradlew.bat at the top level, an app/ module, and an api.properties file. The README does not document the build or the contents of api.properties, so treat the store builds as the supported route.

Where AirGuard stops being the right tool

The scope is narrow by design. AirGuard targets AirTags and other Find My devices. The README does not claim support for Tile, Samsung SmartTag, or the generic BLE trackers that many cheap tags use. If your threat model includes those, this app does not address it, and no setting inside it will change that.

The detection rule is also a trade-off. Requiring at least 3 detections with changed locations reduces false positives from neighbors and bystanders, but it means a tracker that stays in one place near you, or one that you pass only briefly, may not produce an alert at the promised under-an-hour mark. The README presents the threshold as a feature, and it is, but it is a recall-versus-precision choice rather than a guarantee.

Finally, the research framing is a real consideration. The app invites participation in a study that shares anonymized data. The README says private information stays on the device and the study data is anonymized and voluntary, but anyone in a sensitive environment should read the privacy policy in the repository's privacy-policy/ directory before opting in.

AirGuard compared with Apple's built-in warnings

The obvious alternative is the tracking warning Apple ships in iOS, which requires an iPhone. The difference is not just platform: Apple's system integrates with the Find My network at the operating system level, while AirGuard reconstructs detection from Bluetooth scans on Android. That means AirGuard depends on Android's background scanning behavior and on the app remaining installed and permitted, whereas an iPhone user gets the warning without installing anything.

A second alternative is building your own BLE scanner. Android exposes the Bluetooth LE scanning APIs, and a hobbyist can log advertisements. The difference is the logic on top: AirGuard stores detections, compares locations across repeated sightings, applies the 3-detection threshold, and can trigger an AirTag sound. Reproducing that is a project, not a script, and the repository is the reference implementation if you want to read how the threshold and location comparison are actually coded.

Maintenance, licence and upgrade cost

The repository is not archived, and the last push was on 2026-09-17, which is recent. Releases are regular: 3.0.2 in April 2026, 3.1.0 in June 2026 and 3.1.1 in July 2026. For an Android app, that cadence implies ongoing maintenance of the Gradle build and the Android SDK target, which is where most upgrade cost sits if you fork it.

The licence is Apache-2.0, which permits commercial and closed-source reuse provided the licence terms are met. That is a permissive position, but it is not legal advice, and the trademark notice in the README is separate: AirTag, FindMy and iOS are trademarks of Apple Inc., and the project states it is not working with Apple. Do not read the Apache licence as granting any right to Apple's marks.

Upgrade cost for users is low, since the app installs from stores and updates through them. The cost that does not go away is battery and permissions: continuous Bluetooth scanning and location comparison are the price of the feature, and the README does not document a low-power mode.

Editorial conclusion

AirGuard fits Android users who want a local, research-backed check for Find My trackers and are willing to keep Bluetooth scanning on. Anyone expecting coverage of Tile, Samsung SmartTag or generic BLE trackers should look elsewhere, since the README describes Find My devices only. Before relying on it, verify the notification logic in the source: the README states a detection threshold of at least 3 detections with changed locations, and that number is the whole basis of the warning.

Frequently asked questions

What does the AirGuard app do?

It periodically scans your Android phone's surroundings for AirTags and other Find My devices using Bluetooth, stores detections locally, and notifies you if a tracker is detected at least 3 times with changed locations. If the tracker is an AirTag, you can play a sound to find it and review where it was detected.

Is the AirGuard app legit?

It is developed by the Secure Mobile Networking Lab at the Technical University of Darmstadt in Germany as part of scientific research, and the README states it will never be monetized with ads or in-app purchases. It is distributed on Google Play, F-Droid and GitHub releases.

Is the AirGuard app free?

The README states the app will never be monetized by showing ads, in-app purchases or anything else. It is available on Google Play, F-Droid and the GitHub releases page.

What is AirGuard tracking protection?

It is the app's core function: Bluetooth scanning for AirTags and Find My trackers, local storage of detections, and a notification when a tracker is seen at least 3 times with changed locations. The README says this all happens locally and that location and tracker IDs never leave your device.

How do I use the AirGuard app?

Install it from Google Play, F-Droid or the GitHub releases, grant the Bluetooth and location permissions it needs, and leave it running so it can scan in the background. You only see activity when a Find My device is detected nearby; the README says the app will never bother you if no one is tracking you.

Official sources

  1. Issues
  2. License: Apache-2.0
  3. README
  4. Releases
  5. seemoo-lab/AirGuard on GitHub
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/seemoo-lab-airguard.svg)](https://hysenlabs.com/projects/seemoo-lab-airguard)