APP Reitti: Aplicativo de de rastreamento e análise de localização pessoal
Reitti: O Que É
Pontos de localização de smartphones e relógios esportivos estão disponíveis nas exportações do Google Timeline e em arquivos GPX e FIT. O Reitti converte os pontos em visitas, lugares e trajetos. A configuração do software altera o resultado produzido a partir do mesmo conjunto de pontos.
O Que É?
O Reitti é uma aplicação de rastreamento e análise de localização pessoal. A documentação oficial apresenta o produto como uma ferramenta para compreender padrões de movimento e lugares significativos. O nome vem do finlandês e significa rota ou caminho. A licença é a GNU Affero General Public License, versão 3 [AGPLv3]. A documentação consultada pertence à série 5.0 e registra recursos introduzidos até a versão 5.5.0, como zonas sem visita e visitas suprimidas.
O produto é executado em um servidor operado pelo próprio titular dos dados. A instalação recomendada usa Docker Compose com PostgreSQL com PostGIS e Redis. A instalação por arquivo JAR exige Java 25 ou superior, PostgreSQL com PostGIS e Redis.
O Reitti organiza pontos recebidos de aplicativos móveis, arquivos e API. O dispositivo ou o serviço de origem gera o ponto de localização. O Reitti produz a camada interpretada sobre os pontos: visitas, lugares significativos e trajetos.
Para Que Serve?
A documentação de funcionalidades lista as funções do produto: linha do tempo diária de visitas e trajetos com duração e distância; reconhecimento de lugares significativos com nome editável; visualização da trilha bruta de GPS; estatísticas; cobertura espacial calculada sobre malha H3, que informa o percentual explorado de uma cidade, de um distrito ou de um país; modo ao vivo; modo de tela cheia; visualização de vários usuários em um mesmo mapa; e Memories, relatos de viagem montados com blocos de texto, mapas e imagens.
A documentação compara o compartilhamento entre contas da mesma instância ao modelo de aplicativos de localização familiar. O titular escolhe quem pode ver a linha do tempo, os lugares, os trajetos e as fotos de uma integração com o servidor de fotos Immich.
Em matéria penal, o interesse alcança três posições: a parte que apresenta o dado [defesa ou acusação]; o agente que avalia o dado [investigador, acusador, defensor, perito ou julgador]; o titular dos pontos [arguido, vítima ou terceiro].
Como Funciona?
A documentação do funcionamento descreve um fluxo de sete etapas. O Quadro 1 reúne as etapas com os parâmetros documentados.
Quadro 1: Etapas do Processamento de Localização no Reitti
Etapa | Operação | Parâmetro Documentado |
|---|---|---|
Ingestão | Recebimento de pontos de aplicativos móveis, arquivos e da API. | GPX, FIT, GeoJSON, timeline.json de Android e iOS, Records.json do Google Takeout; OwnTracks e GPSLogger em tempo real. |
Verificação | Filtragem de inconsistências e anomalias de GPS. | Critérios internos do software. |
Detecção de visitas | Cálculo de visitas potenciais em torno de cada ponto. | Mínimo de 5 pontos próximos em 5 minutos. |
Processamento de visitas | Fusão de visitas sucessivas em ProcessedVisits. | Período de permanência consolidado. |
Lugares significativos | Criação ou associação de SignificantPlaces a cada ProcessedVisit. | Permanência superior a 5 minutos. |
Resolução de endereço | Geocodificação reversa dos lugares significativos. | Serviço padrão: Paikka; Nominatim, Photon, GeoApify e GeoJSON genérico disponíveis; escolha por prioridade, com tentativa em outro serviço quando o escolhido falha. |
Cálculo de trajetos | Cálculo de Trips entre ProcessedVisits sucessivas. | Divisão em trechos de um minuto classificados por modo de transporte. |
A página Visit Sensitivity expõe a sensibilidade de detecção em dois modos. O modo simples oferece cinco predefinições. O modo avançado permite ajustar a duração mínima, o limite de distância, a janela de tempo, a precisão do GPS e regras personalizadas. A página recomenda parâmetros conforme a frequência de gravação: sensíveis para pontos a cada 10 segundos; equilibrados para pontos a cada 15 segundos; conservadores para pontos a cada 30 segundos. A aplicação oferece pré-visualização do efeito sobre os dados existentes e pergunta ao usuário se deseja recalcular o histórico quando detecta necessidade de reprocessamento.
Aplicativos que economizam bateria reportam um ponto apenas quando detectam movimento. O Reitti preenche o intervalo entre dois pontos conforme a velocidade implícita entre eles, nos termos do Quadro 2.
Quadro 2: Tratamento de Intervalos entre Dois Pontos Reportados
Velocidade Implícita entre os Dois Pontos | Tratamento pelo Reitti |
|---|---|
Igual ou inferior a MAX_STATIONARY_SPEED_KMH [padrão 1,0 km/h] | O intervalo inteiro vira permanência, detectada como uma única visita. |
Superior ao limite anterior em intervalo de até MAX_INTERPOLATION_GAP_HOURS [padrão 12 horas] | O intervalo vira movimento, com linha reta entre os dois pontos. |
Superior ao limite anterior em intervalo maior que 12 horas | O intervalo permanece vazio, porque o trajeto real é desconhecido. |
As duas variáveis são configurações do servidor, documentadas na página Visit Sensitivity. A mesma página informa que um intervalo percorrido em deslocamento pode aparecer como permanência quando o dispositivo reporta poucos pontos.
A detecção de modo de transporte divide cada trajeto em trechos de um minuto e classifica cada trecho pela velocidade. Trechos consecutivos do mesmo modo formam um segmento. A sequência de segmentos compõe o trajeto, por exemplo, caminhada, direção e caminhada. O Quadro 3 reúne os limites iniciais.
Quadro 3: Velocidade Máxima Inicial por Modo de Transporte
Modo | Velocidade Máxima Inicial |
|---|---|
Caminhada [Walking] | 7 km/h |
Bicicleta [Cycling] | 20 km/h |
Direção [Driving] | 120 km/h |
Transporte público [Transit] | Sem limite |
Trem, motocicleta, patinete elétrico e avião | Sem configuração inicial |
O usuário edita o resultado no Place Editor. O editor altera nome, endereço, cidade, país e categoria de um lugar, desenha limites poligonais, cria zonas sem visita e lista visitas suprimidas. A exclusão de uma visita na linha do tempo marca o lugar e o intervalo como suprimidos e preserva os dados subjacentes. Cada ação que altera a detecção de visitas dispara um trabalho de recálculo, acompanhado na página Job Status. O editor também guarda o histórico de respostas de geocodificação de cada lugar, com o JSON bruto, o provedor, o status e o horário.
O compartilhamento ocorre por três vias, descritas na página Share Access e na documentação de funcionalidades: compartilhamento entre usuários da mesma instância, magic links e conexões entre instâncias. O magic link opera sem criação de conta pelo destinatário e admite quatro escopos: acesso completo, apenas dados ao vivo, dados ao vivo com fotos e apenas a última localização. A data de expiração do link é opcional.
Como se aplica ao Direito Penal ou ao Processo Penal?
O Reitti é um programa de computador, fora do rol dos institutos jurídicos. A interface penal decorre da natureza do dado tratado e do uso do resultado como elemento de convicção.
Natureza do Dado
Ponto de localização vinculado a pessoa identificada ou identificável é dado pessoal na definição da Lei 13.709/2018 [LGPD]:
"Art. 5º Para os fins desta Lei, considera-se: I - dado pessoal: informação relacionada a pessoa natural identificada ou identificável;"
O rol de dados pessoais sensíveis da LGPD, art. 5º, II, enumera origem racial ou étnica, convicção religiosa, opinião política, filiação sindical ou a organização de caráter religioso, filosófico ou político, saúde, vida sexual, dado genético e dado biométrico. A localização situa-se fora do rol. A LGPD, art. 11, § 1º, estende o regime dos dados sensíveis a tratamento que revele dado sensível:
"§ 1º Aplica-se o disposto neste artigo a qualquer tratamento de dados pessoais que revele dados pessoais sensíveis e que possa causar dano ao titular, ressalvado o disposto em legislação específica."
Lugares visitados indicam, em tese, convicção religiosa, filiação sindical e estabelecimentos de saúde. A incidência do art. 11, § 1º, depende do caso concreto.
A Constituição da República assegura a privacidade, o sigilo de dados e a proteção de dados pessoais:
CR, art. 5º, X: "são invioláveis a intimidade, a vida privada, a honra e a imagem das pessoas, assegurado o direito a indenização pelo dano material ou moral decorrente de sua violação;"
CR, art. 5º, XII: "é inviolável o sigilo da correspondência e das comunicações telegráficas, de dados e das comunicações telefônicas, salvo, no último caso, por ordem judicial, nas hipóteses e na forma que a lei estabelecer para fins de investigação criminal ou instrução processual penal;"
CR, art. 5º, LXXIX: "é assegurado, nos termos da lei, o direito à proteção dos dados pessoais, inclusive nos meios digitais."
O uso doméstico do Reitti por pessoa natural situa-se na exceção da LGPD, art. 4º, I:
"Art. 4º Esta Lei não se aplica ao tratamento de dados pessoais: I - realizado por pessoa natural para fins exclusivamente particulares e não econômicos;"
O tratamento para fins exclusivos de investigação e repressão de infrações penais situa-se na exceção da LGPD, art. 4º, III, "d", e segue legislação específica, nos termos do § 1º:
"III - realizado para fins exclusivos de: [...] d) atividades de investigação e repressão de infrações penais;"
"§ 1º O tratamento de dados pessoais previsto no inciso III será regido por legislação específica, que deverá prever medidas proporcionais e estritamente necessárias ao atendimento do interesse público, observados o devido processo legal, os princípios gerais de proteção e os direitos do titular previstos nesta Lei."
O Reitti como Camada Interpretada
Os pontos de origem formam o dado bruto. As visitas, os lugares e os trajetos do Reitti formam dados derivados, calculados por um algoritmo com parâmetros ajustáveis. Dois ajustes de sensibilidade, de limite de velocidade ou de interpolação produzem linhas do tempo distintas a partir dos mesmos pontos.
Exemplo: dois pontos separados por seis horas e por 300 metros implicam uma velocidade de 0,05 km/h, abaixo do limite padrão de 1,0 km/h. O Reitti trata as seis horas como permanência e registra uma única visita. A linha do tempo exibe presença contínua em um período sem nenhum ponto reportado. O inverso também ocorre: a documentação informa que um intervalo de deslocamento com poucos pontos pode ser lido como permanência.
O endereço de um lugar significativo vem de um serviço de geocodificação reversa. A documentação da geocodificação reversa informa que serviços externos, entre os quais a instância pública do Paikka usada como padrão, recebem as coordenadas. O endereço exibido na tela resulta de resposta de terceiro, armazenada com provedor e horário. O usuário pode substituir a resposta por meio da edição manual dos campos.
Cadeia de Custódia e Admissibilidade
O Código de Processo Penal define a cadeia de custódia no art. 158-A, incluído pela Lei 13.964/2019:
"Art. 158-A. Considera-se cadeia de custódia o conjunto de todos os procedimentos utilizados para manter e documentar a história cronológica do vestígio coletado em locais ou em vítimas de crimes, para rastrear sua posse e manuseio a partir de seu reconhecimento até o descarte."
O vestígio digital é o conjunto de pontos de origem e o dispositivo que os produziu. A carga no Reitti ocorre depois da coleta. O produto do processamento exige descrição do método. A admissibilidade segue a CR, art. 5º, LVI, e o CPP, art. 157:
CR, art. 5º, LVI: "são inadmissíveis, no processo, as provas obtidas por meios ilícitos;"
CPP, art. 157: "São inadmissíveis, devendo ser desentranhadas do processo, as provas ilícitas, assim entendidas as obtidas em violação a normas constitucionais ou legais."
A presença de um registro no Reitti é insuficiente para autenticar a origem do ponto. A aplicação importa arquivos GPX e GeoJSON, formatos de texto estruturado que admitem edição, recebe pontos por API e aceita dados de aplicativos móveis. A página de logging descreve visualização ao vivo do registro da instância. Os níveis de log retornam ao padrão após reinício da aplicação. A importação de dados exige timestamps válidos para a localização correta no tempo.
Pontos de Verificação para Perícia e Juízo
Identificar a origem de cada ponto: aplicativo móvel, arquivo importado ou API.
Preservar o arquivo original de importação com função hash e metadados antes da carregá-lo no Reitti.
Registrar a versão do Reitti, com a etiqueta da imagem Docker ou do arquivo JAR.
Registrar os parâmetros de detecção: sensibilidade de visitas, velocidades máximas por modo de transporte, MAX_STATIONARY_SPEED_KMH e MAX_INTERPOLATION_GAP_HOURS.
Registrar edições de lugares, visitas suprimidas, zonas sem visita e trabalhos de recálculo.
Identificar o serviço de geocodificação e as respostas armazenadas para cada lugar.
Distinguir o dado bruto de ponto da camada interpretada de visitas e trajetos no laudo e na decisão.
Em Linguagem Simples
O Reitti funciona como um caderno de viagem que se escreve sozinho. O smartphone avisa, de tempos em tempos, onde o dono está. O caderno junta avisos próximos em paradas e liga uma parada à seguinte com um caminho. Quando o celular avisa pouco, o caderno preenche o intervalo com uma regra de velocidade: se a distância entre dois avisos é pequena para o tempo decorrido, o caderno anota que o dono ficou parado.
O caderno fica guardado na casa do dono. O dono apaga uma parada, renomeia um lugar e muda a regra de velocidade. Quem lê o caderno lê a interpretação do caderno. Os avisos originais do celular são outro documento.
Perguntas Frequentes
Qual é a licença do Reitti?
A licença é a GNU Affero General Public License, versão 3 [AGPLv3], conforme a página inicial da documentação.
Onde ficam os dados de localização?
A documentação afirma que os dados de localização permanecem no servidor do usuário. A resolução de endereços usa serviços de geocodificação configuráveis. Serviços externos recebem as coordenadas dos lugares. A instalação própria de Paikka, Photon ou Nominatim mantém as coordenadas na infraestrutura do usuário.
Quais formatos de arquivo o Reitti importa?
O Reitti importa GPX, FIT, GeoJSON, timeline.json exportado do Android e do iOS e Records.json do Google Takeout.
De onde vêm os pontos em tempo real?
Os pontos em tempo real vêm do OwnTracks e do GPSLogger. A API recebe pontos de programas externos, conforme a documentação de funcionalidades.
Como o Reitti decide que houve uma visita?
O Reitti exige ao menos 5 pontos próximos em 5 minutos. A página Visit Sensitivity permite ajustar os parâmetros de duração, distância e precisão.
Quem pode ver os dados de um usuário?
Enxergam os usuários da mesma instância escolhidos pelo titular, os portadores de magic link dentro do escopo configurado e os usuários de instâncias conectadas por token de API.
Quais requisitos técnicos a instalação exige?
A instalação via Docker Compose inclui PostgreSQL com PostGIS e Redis. A instalação por arquivo JAR requer Java 25 ou superior, PostgreSQL com PostGIS e Redis.
O resultado do Reitti constitui prova pericial?
O resultado do Reitti é uma camada interpretada sobre pontos de localização. O vestígio é o dado bruto de origem e o dispositivo que o gerou. A verificação de integridade segue o CPP, art. 158-A.
Glossário de Termos
Visita: período de permanência em um local, identificado a partir de ao menos cinco pontos de localização próximos em cinco minutos.
Trajeto [Trip]: deslocamento calculado entre duas visitas processadas sucessivas, dividido em segmentos por modo de transporte.
Lugar Significativo [SignificantPlace]: local do mapa criado ou associado a uma visita processada, com nome e endereço editáveis.
Geocodificação Reversa: conversão de coordenadas geográficas em um endereço legível por um serviço de consulta cartográfica.
GPX: formato de arquivo de texto estruturado para pontos, trilhas e rotas de GPS com marcas de tempo.
GeoJSON: formato de arquivo de texto estruturado para feições geográficas, aceito pelo Reitti com geometrias do tipo ponto.
Magic Link: endereço eletrônico único que concede acesso aos dados do Reitti sem conta de usuário, com escopo e validade definidos na criação.
Zona sem Visita [No-Visit Zone]: área desenhada no mapa em que o Reitti suprime a criação de visitas.
Visita Suprimida: visita marcada como excluída por lugar e intervalo de tempo, com preservação dos pontos subjacentes.
Cadeia de Custódia: conjunto de procedimentos que mantêm e documentam a história cronológica do vestígio, conforme o CPP, art. 158-A.
Referências Bibliográficas
BRASIL. Constituição da República Federativa do Brasil de 1988. Brasília, DF: Presidência da República. Disponível em: https://www.planalto.gov.br/ccivil_03/constituicao/constituicao.htm. Acesso em: 25 out. 2026.
BRASIL. Decreto-Lei nº 3.689, de 3 de outubro de 1941: Código de Processo Penal. Brasília, DF: Presidência da República. Disponível em: https://www.planalto.gov.br/ccivil_03/decreto-lei/del3689.htm. Acesso em: 25 out. 2026.
BRASIL. Lei nº 13.709, de 14 de agosto de 2018: Lei Geral de Proteção de Dados Pessoais [LGPD]. Brasília, DF: Presidência da República. Disponível em: https://www.planalto.gov.br/ccivil_03/_ato2015-2018/2018/lei/l13709.htm. Acesso em: 25 out. 2026.
GRAF, Daniel. Features Overview. In: Reitti Documentation. [S. l.]: Dedicated Code, [20--]. Disponível em: https://www.dedicatedcode.com/projects/reitti/latest/about/features/. Acesso em: 25 out. 2026.
GRAF, Daniel. How Reitti Works. In: Reitti Documentation. [S. l.]: Dedicated Code, [20--]. Disponível em: https://www.dedicatedcode.com/projects/reitti/latest/about/how-it-works/. Acesso em: 25 out. 2026.
GRAF, Daniel. Import Data. In: Reitti Documentation. [S. l.]: Dedicated Code, [20--]. Disponível em: https://www.dedicatedcode.com/projects/reitti/latest/usage/import-data/. Acesso em: 25 out. 2026.
GRAF, Daniel. Installation. In: Reitti Documentation. [S. l.]: Dedicated Code, [20--]. Disponível em: https://www.dedicatedcode.com/projects/reitti/latest/installation/. Acesso em: 25 out. 2026.
GRAF, Daniel. Logging. In: Reitti Documentation. [S. l.]: Dedicated Code, [20--]. Disponível em: https://www.dedicatedcode.com/projects/reitti/latest/usage/logging/. Acesso em: 25 out. 2026.
GRAF, Daniel. Overview. In: Reitti Documentation. [S. l.]: Dedicated Code, [20--]. Disponível em: https://www.dedicatedcode.com/projects/reitti/latest/. Acesso em: 25 out. 2026.
GRAF, Daniel. Place Editor. In: Reitti Documentation. [S. l.]: Dedicated Code, [20--]. Disponível em: https://www.dedicatedcode.com/projects/reitti/latest/usage/place-edit/. Acesso em: 25 out. 2026.
GRAF, Daniel. Reverse Geocoding. In: Reitti Documentation. [S. l.]: Dedicated Code, [20--]. Disponível em: https://www.dedicatedcode.com/projects/reitti/latest/configurations/reverse-geocoding/. Acesso em: 25 out. 2026.
GRAF, Daniel. Share Access. In: Reitti Documentation. [S. l.]: Dedicated Code, [20--]. Disponível em: https://www.dedicatedcode.com/projects/reitti/latest/usage/share-access/. Acesso em: 25 out. 2026.
GRAF, Daniel. Transportation Mode Detection. In: Reitti Documentation. [S. l.]: Dedicated Code, [20--]. Disponível em: https://www.dedicatedcode.com/projects/reitti/latest/configurations/transportation-modes/. Acesso em: 25 out. 2026.
GRAF, Daniel. Visit Sensitivity. In: Reitti Documentation. [S. l.]: Dedicated Code, [20--]. Disponível em: https://www.dedicatedcode.com/projects/reitti/latest/configurations/visit-detection/. Acesso em: 25 out. 2026.
