googlefindmytools

Framework for tracking and building your own Google Find My Device / Find Hub trackers 🧭

https://github.com/leonboe1/googlefindmytools

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • ✓
    CITATION.cff file
    Found CITATION.cff file
  • ✓
    codemeta.json file
    Found codemeta.json file
  • ✓
    .zenodo.json file
    Found .zenodo.json file
  • â—‹
    DOI references
  • â—‹
    Academic publication links
  • â—‹
    Academic email domains
  • â—‹
    Institutional organization owner
  • â—‹
    JOSS paper metadata
  • â—‹
    Scientific vocabulary similarity
    Low similarity (15.8%) to scientific vocabulary
Last synced: 7 months ago · JSON representation ·

Repository

Framework for tracking and building your own Google Find My Device / Find Hub trackers 🧭

Basic Info
  • Host: GitHub
  • Owner: leonboe1
  • License: gpl-3.0
  • Language: Python
  • Default Branch: main
  • Homepage:
  • Size: 273 KB
Statistics
  • Stars: 754
  • Watchers: 31
  • Forks: 56
  • Open Issues: 17
  • Releases: 0
Created over 1 year ago · Last pushed 10 months ago
Metadata Files
Readme License Citation

README.md

GoogleFindMyTools

This repository includes some useful tools that reimplement parts of Google's Find My Device Network (now called Find Hub Network). Note that the code of this repo is still very experimental.

What's possible?

Currently, it is possible to query Find My Device / Find Hub trackers and Android devices, read out their E2EE keys, and decrypt encrypted locations sent from the Find My Device / Find Hub network. You can also send register your own ESP32- or Zephyr-based trackers, as described below.

How to use

  • Clone this repository: git clone or download the ZIP file
  • Change into the directory: cd GoogleFindMyTools
  • Optional: Create venv: python -m venv venv
  • Optional: Activate venv: venv\Scripts\activate (Windows) or source venv/bin/activate (Linux & macOS)
  • Install all required packages: pip install -r requirements.txt
  • Install the latest version of Google Chrome: https://www.google.com/chrome/
  • Start the program by running main.py: python main.py or python3 main.py

Authentication

On the first run, an authentication sequence is executed, which requires a computer with access to Google Chrome.

The authentication results are stored in Auth/secrets.json. If you intend to run this tool on a headless machine, you can just copy this file to avoid having to use Chrome.

Known Issues

  • "Your encryption data is locked on your device" is shown if you have never set up Find My Device on an Android device. Solution: Login with your Google Account on an Android device, go to Settings > Google > All Services > Find My Device > Find your offline devices > enable "With network in all areas" or "With network in high-traffic areas only". If "Find your offline devices" is not shown in Settings, you will need to download the Find My Device app from Google's Play Store, and pair a real Find My Device tracker with your device to force-enable the Find My Device network.
  • No support for trackers using the P-256 curve and 32-Byte advertisements. Regular trackers don't seem to use this curve at all - I can only confirm that it is used with Sony's WH1000XM5 headphones.
  • No support for the authentication process on ARM Linux
  • Please also consider the issues listed in the README in the ESP32Firmware folder if you want to register custom trackers.

Firmware for custom ESP32-based trackers

If you want to use an ESP32 as a custom Find My Device tracker, you can find the firmware in the folder ESP32Firmware. To register a new tracker, run main.py and press 'r' if you are asked to. Afterward, follow the instructions on-screen.

For more information, check the README in the ESP32Firmware folder.

Firmware for custom Zephyr-based trackers

If you want to use a Zephyr-supported BLE device (e.g. nRF51/52) as a custom Find My Device tracker, you can find the firmware in the folder ZephyrFirmware. To register a new tracker, run main.py and press 'r' if you are asked to. Afterward, follow the instructions on-screen.

For more information, check the README in the ZephyrFirmware folder.

iOS App

You can also use my iOS App to access your Find My Device trackers on the go.

Owner

  • Name: Leon Böttger
  • Login: leonboe1
  • Kind: user
  • Location: Frankfurt, Germany

Hi, I'm Leon! I love app development, photography and movie production. Currently, I'm studying Computer Science at Technical University of Darmstadt.

Citation (CITATION.cff)

# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!

cff-version: 1.2.0
title: 'GoogleFindMyTools'
message: 'If you use this software, please cite it as below.'
type: software
authors:
  - given-names: Leon
    family-names: Böttger
    affiliation: 'SEEMOO, TU Darmstadt'
repository-code: 'https://github.com/leonboe1/GoogleFindMyTools'
keywords:
  - Google Find My Device
  - Bluetooth Tracker
  - Python
commit: 44656de7a388a3c6dc6e7a86dedbc5507ec6ad77
date-released: '2024-12-20'

Issues and Pull Requests

Last synced: 8 months ago

All Time
  • Total issues: 38
  • Total pull requests: 10
  • Average time to close issues: 6 days
  • Average time to close pull requests: 4 days
  • Total issue authors: 29
  • Total pull request authors: 8
  • Average comments per issue: 1.5
  • Average comments per pull request: 0.1
  • Merged pull requests: 6
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 38
  • Pull requests: 10
  • Average time to close issues: 6 days
  • Average time to close pull requests: 4 days
  • Issue authors: 29
  • Pull request authors: 8
  • Average comments per issue: 1.5
  • Average comments per pull request: 0.1
  • Merged pull requests: 6
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • mrx23dot (4)
  • fleshgordo (3)
  • biemster (2)
  • epe (2)
  • aaronjamt (2)
  • P6g9YHK6 (2)
  • Zwen23 (1)
  • TranDucHoangAnhHTI (1)
  • hallhu1 (1)
  • X-Ryl669 (1)
  • maelp (1)
  • T-REX-XP (1)
  • ItsHarper (1)
  • Gibbz (1)
  • SuperCartman (1)
Pull Request Authors
  • geissdoerfer (3)
  • leonboe1 (1)
  • glensc (1)
  • xHecktor (1)
  • zolfariot (1)
  • VaseSimion (1)
  • P6g9YHK6 (1)
  • adokitkat (1)
Top Labels
Issue Labels
Pull Request Labels