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
- 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 ritrovamentofmd [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/.
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.
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
WRITE_SECURE_SETTINGS: concedere il permesso tramite adb da un computer
Il modo piú semplice é quello di operare tramite adb.
- Installare adb sul proprio computer. Su Debian e derivate tramite il comando:
sudo apt-get install android-tools-adb
- Abilitare le Impostazioni di Sviluppatore sul cellulare: “Impostazioni > Informazioni sul telefono” e poi cliccare più volte su “Numero di build”.
- Spostarsi su “Impostazioni > Sistema > Opzioni Sviluppatore” e abilitare il “Debug USB”
- Collegare il proprio telefono al computer e aprire un terminale
- Controllare che il proprio dispositivo venga riconosciuto inserendo il comando:
adb devices
. - 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.