- O app oficial syncthing-android será aposentado, e a última versão no GitHub e no F-Droid deve ser lançada com a versão do Syncthing de dezembro de 2024
- Entre os motivos da descontinuação estão o fato de a distribuição pelo Google Play ter se tornado “difícil ou impossível” e a ausência de manutenção ativa
- O bloqueio de lançamentos na Play Store não é a única causa; para reviver ou continuar mantendo o app, alguém teria de assumir a manutenção de longo prazo
- Isso não significa que o Syncthing vai desaparecer do Android, e alternativas como usar o app existente, o Syncthing Fork ou executá-lo via Termux estão sendo discutidas
- É provável que o último app oficial continue funcionando por algum tempo, mas usuários que precisem de versões mais novas do Syncthing devem considerar exportar as configurações e migrar para o Fork
Encerramento do app oficial syncthing-android
- Foi decidido aposentar o app oficial syncthing-android, e a última versão no GitHub e no F-Droid deve sair junto com a versão do Syncthing de dezembro de 2024
- O encerramento resulta da combinação de dois fatores
- O Google tornou a distribuição pela Play Store “difícil ou impossível”
- Não há manutenção ativa do app
- O app já estava há muito tempo sem desenvolvimento significativo, e, com os lançamentos na Play Store também ficando difíceis, houve menos vantagem e motivação para investir em manutenção contínua
- Foram feitos agradecimentos aos contribuidores do app, e vários usuários também expressaram gratidão pelo trabalho de manutenção e lamentaram o encerramento
Problemas de distribuição na Play Store e limites de manutenção
- Na comunidade, houve reações de que as políticas da Play Store acabam prejudicando apps legítimos que precisam de permissões avançadas
- Ficou mais difícil publicar na loja apps que exigem permissões avançadas
- Também houve críticas de que apps que coletam dados de usuários ou se aproximam de spyware continuam na loja sem grandes restrições
- Também surgiu a sugestão de manter mais algumas versões no F-Droid, com orientações de transição ou documentação
- O projeto deixou claro que não poder lançar em canais comuns de distribuição é apenas um fator adicional de desmotivação, não a causa única
- A retomada ou continuidade do app só seria possível se alguém assumisse um esforço de longo prazo; o app já estava em estado de “life support” havia muito tempo
Como continuar usando Syncthing no Android
- Esta decisão se limita à descontinuação do app oficial para Android, que já estava praticamente inativo há muito tempo
- Isso não significa que o próprio Syncthing deixará de poder ser usado no Android, e outras pessoas ainda podem continuar distribuindo apps do Syncthing para Android
- Houve preocupação de que o Android possa caminhar cada vez mais para algo parecido com o iOS, tornando isso mais difícil, mas foi mencionado que recentemente também surgiu um novo app open source do Syncthing para iOS
- O responsável pelo anúncio disse que também usa Syncthing no Android e que, pessoalmente, espera que ele continue utilizável por muito tempo na plataforma
Alternativas discutidas: Fork e Termux
- Como alternativa direta, foi citado Catfriend1/syncthing-android
- A última versão do app oficial existente não receberá mais atualizações, mas provavelmente continuará funcionando bem por algum tempo
- Se for necessário usar uma versão mais recente do Syncthing, é possível migrar para o Syncthing Fork
- É possível exportar a configuração atual nas opções do app oficial
- Depois, ela pode ser importada no Fork
- Do ponto de vista do Syncthing, os dois apps são compatíveis entre si
- Executar o Syncthing no Termux também foi discutido como alternativa
- Funciona exportando ou copiando arquivos e ajustando algumas configurações
- A desvantagem é que, se você não quiser manter o celular sempre acordado, será preciso iniciar e parar manualmente
- Também houve a observação de que, se a otimização de bateria do app Termux estiver ativada nas configurações do Android, ele pode ser forçado a entrar em modo de suspensão durante o doze mode do Android
- A Web GUI pode ser acessada no navegador local em
http://127.0.0.1:8384, e isso já era possível também ao usar o app Syncthing existente
Exemplo de configuração com Termux + Tasker
- Um usuário confirmou que a combinação Syncthing + Tasker + Termux funciona como alternativa
- A instalação foi configurada assim
- Instalar o Tasker pela Play Store
- Instalar o Termux e o
termux:tasker pelo F-Droid
- As permissões adicionais são as seguintes
- Tasker:
additional → run commands in termux environment
- Termux:
Appear on top
- No Termux, o comando para instalar o Syncthing é o seguinte
termux-setup-storage
apt install syncthing
- Criar o arquivo
~/.termux/tasker/start-syncthing-for-5minutes.sh e configurá-lo para executar o Syncthing por 5 minutos
#!/usr/bin/bash
timeout -s KILL 5m syncthing
- No Tasker, configurar a execução desse script a cada 1 hora, de 00:00 a 23:59, usando
Plugin→Termux:Tasker
start-syncthing-for-5minutes.sh
- terminal session:
X
- Se a opção Start browser for desativada na GUI, o navegador não será aberto automaticamente ao iniciar
- Depois de exportar as configurações do app Android existente, é possível copiá-las para
~/.local/state/syncthing para continuar usando a configuração anterior em vez de fazer uma instalação nova
- Depois disso, é possível remover o username/password de acesso à GUI em
config.xml e, se necessário, defini-los novamente
2 comentários
Syncthing - sincronização contínua de arquivos open source
Opiniões no Hacker News
As discussões com o Google não levaram a lugar nenhum. As mudanças exigidas pelo Google para conceder a permissão eram vagas, então era difícil até descobrir como responder e não estava claro se qualquer tentativa teria sucesso
Depois disso ainda surgiram outras tarefas separadas para continuar na Play, como verificação de desenvolvedor e nível de API alvo, e no fim ele percebeu que já não tinha mais motivação nem tempo para continuar esse jogo
Parece parecido com alguém no trabalho que, em vez de corrigir os comentários de um PR, explode dizendo que o jeito dele é melhor. A Apple também não deixa gravar em diretórios arbitrários só porque as APIs de ObjC/Swift são difíceis de usar
Antigamente eu desenvolvia Android profissionalmente no Dropbox, nos anos 2010, e conhecia razoavelmente bem as APIs antigas do sistema de arquivos do Android, mas fui deliberadamente para o lado de experiência do desenvolvedor/backend e larguei Android. A maioria dos meus antigos colegas de Android fez algo parecido
Era doloroso demais lidar com o processo sem fim e com as mudanças de API necessárias para manter o app funcionando. Em 2014, quando saiu o novo Storage Access Framework de “segurança”, encontrei uma vulnerabilidade trivial de path traversal em que bastava passar
"../../"no nome do arquivo para escrever no diretório privado de qualquer app. Isso ficou evidente quase imediatamente só de folhear o código-fonte do AOSP para entender o SAFDurante muito tempo, o Android também atribuía bit global de execução às pastas dos apps, o que permitia a um app malicioso criar hard links por nome para arquivos de outros apps e depois passá-los de volta ao próprio app, viabilizando um ataque de confused deputy para acessar o conteúdo dos arquivos
Fico feliz que o Android tenha endurecido a segurança, mas ele foi construído sobre uma base frouxa demais, e como inúmeros apps usaram ou abusaram dessa base, parece inevitável que, conforme o bloqueio aumenta, desenvolvedores tenham de se adaptar a grandes quebras de compatibilidade contínuas e acabem saindo do ecossistema
[0] Bug 18512473 corrigido em https://android.googlesource.com/platform/frameworks/base/+/...
[1] Vídeo de prova de conceito: https://www.dropbox.com/s/8dpd8visrttqbfo/poc.mp4?dl=0
Sinto falta da visão do webOS. Não quer dizer que eu sinta falta da implementação do webOS de 14 anos atrás em si
Existe um fork do Syncthing para Android mantido ativamente, e embora seja só uma métrica separada, ele tem outras 1,3 mil estrelas
[1] https://github.com/Catfriend1/syncthing-android
Se você olhar o tópico original, o autor diz que publicar no Google Play é muito difícil
Ele diz que “a razão é que o Google está tornando a publicação na Play difícil ou impossível”; alguém pode explicar melhor o que está acontecendo aqui?
[1]: https://forum.syncthing.net/t/discontinuing-syncthing-androi...
Essa API é só para Java, e como o núcleo do Syncthing não é escrito em Java, ele provavelmente teria precisado escrever código de integração JNI para chamar o Android ao ler e gravar arquivos. O SAF também é bem incômodo porque atribui um URI a cada arquivo e exige consultar constantemente a estrutura de pastas, em vez de simplesmente concatenar caminhos como em arquivos normais
O autor não queria fazer esse trabalho e tentou convencer o Google a continuar permitindo acesso direto a todos os arquivos, fotos e documentos, mas o Google recusou. A “dificuldade” aqui parece significar que, se você não seguir as diretrizes, realmente fica muito difícil publicar na Play. Como na App Store
Meu app recebia aprovação de permissão em uma release menor e, na semana seguinte, era rejeitado apesar de só ter mudanças triviais. Quando se pergunta ao suporte do Google Play, a resposta é sempre vaga, padronizada e repetitiva. É uma forma horrível de desenvolver qualquer coisa, porque você nunca sabe se a atualização do app será aprovada
No fim, essa estrutura só pune desenvolvedores pequenos, com pouco orçamento e pouco tempo, enquanto empurra a consolidação em torno das grandes empresas. As grandes conseguem exercer alguma influência, têm um nível básico de confiança e possuem orçamento e tempo para cumprir exigências absurdas e às vezes pesadas. No resultado, parece uma forma de consolidar posição de mercado e criar participantes fiéis que sustentem a Play Store pelas próximas décadas
Eu usava isso para manter meu banco de dados do KeePass no celular, então isso é complicado. Mais alguém na mesma situação?
Eu recomendaria conectar por SFTP a uma máquina e, nessa máquina, rodar Syncthing com os outros dispositivos
Se alguém entende e quer usar Syncthing, talvez também seja totalmente viável depender do F-Droid como origem de APKs. Isso por si só não basta como canal de distribuição?
Eu odeio muito computação móvel
Vou guardar o APK em um lugar seguro junto com meus disquetes do Turbo Pascal. O Syncthing para Android era essencial para gerenciar minha coleção de partituras
Alguém sabe por quanto tempo o app Syncthing Android atual vai continuar funcionando daqui para frente?