- BeaconDB é um serviço de localização online que busca substituir o Mozilla Location Services, construindo sua cobertura com base em dados de Wi‑Fi e torres de celular enviados diretamente pelos usuários
- A coleta de dados é feita no modelo opt-in; os dados enviados são agregados e disponibilizados a clientes da API beaconDB, e há previsão de publicar no futuro dumps de dados ofuscados
- Ainda é um serviço experimental, portanto a cobertura Wi‑Fi pode ser insuficiente em algumas regiões; em caso de falha, faz fallback para localizações de torres de celular baseadas no dump final do MLS ou para estimativa por IP
- No Android, é possível enviar dados com NeoStumbler, Tower Collector e Network Survey, e usá-lo como serviço de localização por meio das configurações do microG, geoclue e Firefox
- Desenvolvedores podem usar o endpoint compatível com a API MLS/Ichnaea, e é necessário configurar um User-Agent para identificação do cliente
Princípios de coleta de dados de localização
- O BeaconDB opera seu banco de dados de localização com base em coleta opt-in
- Os dados públicos são ofuscados para proteger remetentes e colaboradores
- Para atualizar dados existentes, são necessárias informações que só podem ser obtidas dentro do alcance físico do beacon, uma estrutura que aumenta a resistência a abusos
- Os dados enviados são agregados e então disponibilizados para uso por clientes da API beaconDB
- No futuro, dumps de dados ofuscados serão publicados sob uma licença de domínio público
- A forma como os dados enviados são processados pode ser consultada no privacy notice
Apps para contribuir com cobertura
-
NeoStumbler
- NeoStumbler é um app Android para enviar facilmente nova cobertura
- Está disponível em Accrescent, F-Droid, Google Play e GitHub
- A partir da v1.5.1, ao tocar em “yes” no prompt, o endpoint é configurado para o beaconDB
- Em versões anteriores, selecionar beaconDB em Settings → Endpoint → Suggested services aplica automaticamente a configuração correta
-
Tower Collector
- Tower Collector é um app usado há bastante tempo para coleta de torres de celular
- Pode ser baixado pelo F-Droid ou pelo Google Play
- A versão mais recente faz upload para o beaconDB por padrão
-
Network Survey
- Network Survey é uma ferramenta para coleta abrangente de dados locais
- Está disponível no F-Droid ou no Google Play
- Na tela principal, em Upload Settings abaixo de Upload to Database, ative o envio ao beaconDB
Limitações atuais e comportamento de fallback
- O BeaconDB ainda é experimental, portanto a estimativa de localização pode ser imprecisa ou o serviço pode ficar instável
- Como é um banco de dados construído do zero, é bem possível que não haja cobertura Wi‑Fi na região de uso
- Se não for possível estimar a localização por Wi‑Fi, ele faz fallback para uma localização aproximada de torres de celular baseada no dump final do MLS
- Como último recurso, usa estimativa baseada em IP
- Leva pelo menos 5 minutos para que os dados enviados fiquem disponíveis na API beaconDB
- Os dumps de dados ainda não estão disponíveis, e está em andamento o trabalho de ofuscação dos dados para proteger a privacidade de colaboradores e proprietários de APs
Como configurar clientes
-
microG
- Se a ROM Android oferecer suporte ao microG, é possível configurar o beaconDB como serviço de localização online no novo mecanismo de localização do microG
- Esse mecanismo de localização é stable desde a v0.3.6
- Selecione beaconDB em microG Settings → Location → More options → Select online location service
- É preciso ativar ‘Request from online service’ tanto em ‘Wi‑Fi location’ quanto em ‘Mobile network location’
-
geoclue
[wifi]
enable=true
url=https://api.beacondb.net/v1/geolocate
submit-data=true
submission-url=https://api.beacondb.net/v2/geosubmit
submission-nick=geoclue
-
Firefox
- O Firefox pode ser configurado para fazer solicitações diretamente ao beaconDB ou, no Linux, para obter a localização por meio do geoclue
- Para uso direto, defina
geo.provider.network.url como https://api.beacondb.net/v1/geolocate em about:config
- Para usar o geoclue, ative
geo.provider.use_geoclue
API e recursos para desenvolvedores
1 comentários
Opiniões no Hacker News
Dizem que os dados coletados eticamente seguem um modelo opt-in, mas fico curioso para saber como isso funciona na prática.
Se um vizinho escanear minha rede WiFi e enviar para o BeaconDB, isso não significa que eu tenha consentido. A política de privacidade diz que basta acrescentar
_optoutao nome do WiFi, então parece mais opt-out do que opt-inRedes WiFi transmitem sua presença em todas as direções 10 vezes por segundo. Como qualquer pessoa por perto pode captá-las, é bem sabido que você não deve colocar informações sensíveis no SSID da rede. Então, neste caso, está mais para algo em que o opt-out é possível
Qualquer dump de dados incluirá apenas dados com hashes criptográficos irreversíveis ou dados agregados
Quando procurei algo parecido para o GrapheneOS no passado, era impossível oferecer um serviço de localização personalizado
Seria ótimo poder usar isso no GrapheneOS. Se alguém souber uma forma de fazer isso sem microG, seria bem-vindo. Eu uso GMS em sandbox
Não parece haver algo como um app móvel open source que permita ao autor coletar dados diretamente no dispositivo. Especialmente se o opt-in for pelo dispositivo coletor, fico curioso de onde os dados foram reunidos
O principal problema do MLS não foi ter sofrido assédio/processos de patente da Skyhook? Fico curioso se alguém sabe quais patentes estavam envolvidas e como o beaconDB evita esse problema
Lendo a issue sobre o encerramento do MLS[1], várias organizações existentes, como a /e/ foundation e a Graphene, parecem interessadas em oferecer serviços alternativos. Fico curioso se estamos numa situação em que vários provedores open source de localização estão competindo, ou se este é o único projeto publicamente acessível no momento
O projeto em si é legal, mas no GitHub[2] parece um projeto de uma pessoa só, sem muita participação. Fico curioso se há conversas em andamento com outras pessoas que tenham objetivos semelhantes para ampliar o projeto e colaborar. Com apoio da comunidade de desenvolvedores existente, ele poderia subir de nível
https://github.com/mozilla/ichnaea/issues/2065
https://github.com/beacondb/beacondb
Correção: o projeto real parece estar no Codeberg[3], e lá há um pouco mais de participação de pessoas além do desenvolvedor principal do que no GitHub
O projeto originalmente ficava no GitHub, mas agora foi transferido para o Codeberg
Fico curioso se há algum motivo para a API não retornar a localização dos pontos de acesso e deixar o cliente calcular sua própria localização
Ainda não encontrei um cliente implementado para usar esse tipo de dado. Se você descobriu ou está desenvolvendo algo assim, seria bom avisar
Espero que o GrapheneOS passe a oferecer suporte a isso em breve. Atualmente, provedores de GPS não Google praticamente não têm chance fora de ambientes externos
Projeto realmente muito legal. É sempre bom ver pessoas orientadas a resolver problemas preenchendo o vazio deixado pelo MLS. Separadamente, o design também é excelente
Fico curioso se ainda há algum lugar para baixar o último dump de dados do MLS. Não consegui encontrá-lo online
Estou trabalhando em um projeto que encontra torres de celular conectadas com base em mcc, mnc, cid etc. Atualmente só trago dados do opencellid e do combain, então seria muito bom acrescentar esses dados
Seria bom colaborar com o geoclue2. Com o encerramento do MLS, o geoclue2 agora desativou a estimativa de localização baseada em WiFi
https://gitlab.freedesktop.org/geoclue/geoclue