Find My Device. Come localizzare e controllare il proprio dispositivo da remoto

2025-01-26

Se hai mai perso il tuo telefono e se sei tra coloro che non utilizzano i servizi di Google, potresti aver affrontato difficoltà nel rintracciare il tuo dispositivo smarrito. Per affrontare questa problematica, esiste un’applicazione chiamata Find My Device (FMD), che consente di localizzare il telefono, attivare la suoneria, bloccare o formattare il dispositivo tramite comandi SMS o una interfaccia web, che vedremo dopo come installare.

L’applicazione é liberamente scaricabile da Fdroid.

Caratteristiche principali

Ecco un elenco delle funzionalità piú rilevanti:

  • Localizzazione del dispositivo: utilizzando il GPS o la rete cellulare, FMD permette di determinare la posizione attuale del telefono, rendendo più facile il recupero. FMD puo’ utilizzare il servizio OpenCelliD per ottenere una posizione approssimativa basata sulla torre cellulare a cui il dispositivo é collegato (per ogni richiesta di localizzazione é necessaria la connessione a internet). É necessario creare un account sul sito di OpenCelliD per ottenere il proprio token di accesso, da inserire nelle impostazioni dell’applicazione alla voce relativa

fmd_opencellid

  • Blocco del dispositivo: se hai smarrito il telefono, é possibile bloccarlo da remoto per proteggere i dati personali e impedire accessi non autorizzati
  • Attivazione della suoneria: anche se il dispositivo è in modalità silenziosa, é possibile attivare la suoneria in modo da trovarlo se si trova nelle vicinanze
  • Scatto di foto: FMD può scattare foto utilizzando le fotocamere del dispositivo, permettendo di vedere l’ambiente circostante e, potenzialmente, identificare chi ha rubato il telefono
  • Ripristino dei dati di fabbrica, cancellando da remoto tutte le informazioni personali per proteggere la propria privacy.

Utilizzo di FMD

FMD offre due modalità di controllo: tramite SMS o tramite un Server. É possibile anche, per effettuare dei test, eseguire dei comandi direttamente dall’interno dell’applicazione.

Controllo via SMS

Come scritto precedentemente, si possono inviare comandi al proprio telefono tramite SMS. Per garantire la sicurezza, é consigliato definire un elenco di contatti fidati autorizzati a inviare comandi.

In alternativa, é possibile impostare un PIN per consentire l’utilizzo anonimo. Questo significa che anche i numeri di telefono non autorizzati potranno inviare comandi, purché includano il PIN nel messaggio.

Comandi

La sintassi di base é la seguente: fmd <pin> <command> <options>.

I comandi disponibili via SMS sono:

bluetooth [on|off]
camera [front|back]
delete <pin>
gps [on|off]
locate [last|all|gps|cell]
lock [msg]
nodisturb [on|off]
ring [long]
stats (per ottenere le statistiche di rete del dispositivo, come IP e elenco delle reti WiFi circostanti)
help

Alcuni esempi:

  • fmd [mypin] bluetooth on|off
  • fmd [mypin] gps on|off
  • fmd [mypin] ring long: attiva la suoneria del dispositivo per un lungo periodo, facilitando il ritrovamento
  • fmd [mypin] camera front|back
  • fmd [mypin] help: fornisce un elenco dei comandi disponibili e delle loro descrizioni.

Controllo tramite Server FMD

Utilizzando un Server FMD, si ha accesso a un’interfaccia web che consente di inviare comandi al dispositivo, visualizzare la sua posizione su una mappa e visualizzare le immagini scattate dalla fotocamera. Questa interfaccia rende il processo di localizzazione e gestione del telefono ancora più semplice e accessibile. É anche possibile usare il server pubblico di default https://fmd.nulide.de/ oppure, contattandoci, il nostro server privato https://fmd.novemila.org/.

fmd_webpage

fmd_webpage_commands

Installazione

Per installare FMD Server utilizzeremo sempre Docker Compose. Prima di procedere con l’installazione, è quindi necessario installare Docker; consigliamo di seguire la guida ufficiale per completare questa fase.

Una volta installato Docker, il passo successivo è creare un file chiamato docker-compose.yml coi parametri sottostanti. È consigliabile farlo in una cartella dedicata per mantenere l’ambiente di lavoro organizzato.

services:
  fmd:
    image: registry.gitlab.com/nulide/findmydeviceserver:latest
    container_name: fmd
    user: 1000:1000
    mem_limit: 128m
    ports:
      - 127.0.0.1:3015:8080
    volumes:
      - './fmddata/db/:/fmd/db/'
      - './config.yml:/fmd/config.yml:ro'
    restart: unless-stopped

Infine, sempre nella stessa cartella, creare il file di configurazione config.yml:

# This is an example config file for FMD Server

# Path to listening UNIX socket. If empty, no unix sockets will be used.
UnixSocketPath: "" # /tmp/fmd.sock
UnixSocketChmod: 0660

PortSecure: 8443
PortInsecure: 8080

# The length for the user IDs that are generated
UserIdLength: 5

# How many location points or pictures FMD Server should save per account
MaxSavedLoc: 1000
MaxSavedPic: 10

# If RegistrationToken is non-empty, FMD Server will require the FMD app to provide this token during registration.
# Set this to a long random string if you want your instance to be private and not open to registrations by anyone.
# You can e.g. generate a 32 character string with your password manager.
RegistrationToken: ""

Se si volesse rendere il Server privato, occorre impostare un RegistrationToken. Il RegistrationToken è una stringa casuale e lunga che serve a garantire che solo le applicazioni autorizzate possano registrarsi e comunicare con il server. Bisognerá inserirlo nelle impostazione dell’applicazione Android, in modo da poter registrare il dispositivo sulla propria istanza.

fmd_server

fmd_token

IMPORTANTE la cartella fmd/, e tutto il suo contenuto, deve essere di proprietà dell’utente e del gruppo 1000. Semplicemente, basta dare il comando: sudo chown -R 1000:1000 /path/to/fmd-folder

Ora, per avviare il container, dare il comando docker-compose up -d.

Configurazione di Caddy reverse proxy

Aggiungere la seguente riga nel file /etc/caddy/Caddyfile:

# FMD

https://my.domain.com {
    reverse_proxy localhost:PORT
}

Installazione dell’applicazione Android

Una volta installata, occorre dare all’applicazione diversi permessi, in modo che possa funzionare correttamente:

  • consentire l’invio delle notifiche
  • rendere l’applicazione amministratrice del dispositivo, in modo che possa bloccare lo schermo e cancellare tutti i dati
  • il permesso di localizzazione
  • accesso alla modalitá non disturbare
  • e sopratutto il permesso WRITE_SECURE_SETTINGS, in modo da attivare/disattivare automaticamente i servizi di localizzazione quando si invia il comando fmd locate

fmd_permissions

WRITE_SECURE_SETTINGS: concedere il permesso tramite adb da un computer

Il modo piú semplice é quello di operare tramite adb.

  1. Installare adb sul proprio computer. Su Debian e derivate tramite il comando: sudo apt-get install android-tools-adb
  2. Abilitare le Impostazioni di Sviluppatore sul cellulare: “Impostazioni > Informazioni sul telefono” e poi cliccare più volte su “Numero di build”.
  3. Spostarsi su “Impostazioni > Sistema > Opzioni Sviluppatore” e abilitare il “Debug USB”
  4. Collegare il proprio telefono al computer e aprire un terminale
  5. Controllare che il proprio dispositivo venga riconosciuto inserendo il comando: adb devices.
  6. Concedere il permesso inserendo il comando:
adb shell pm grant de.nulide.findmydevice android.permission.WRITE_SECURE_SETTINGS

Ora l’applicazione é configurata per poter funzionare correttamente. Dalle impostazioni, si puo’ inserire l’indirizzo del server e di OpenCelliD.

Difetti

Niente é perfetto e, quindi, anche questa fantastica applicazione ha dei potenziali difetti o dei punti che bisogna considerare prima di affidarvisi ciecamente:

  • la localizzazione tramite torre cellulare non é precisissima (ovviamente); é utile per una indicazione di massima
  • il gps solitamente é molto preciso, ma tutto dipende dall’OS. Con alcune custom ROM la localizzazione puo’ risultare lenta

A parte questo, gli altri comandi hanno sempre funzionato.

Riferimenti

Inserisci l'indirizzo della tua istanza


Altri post come questo