

Ou se você preferir marcar sideload, android_FlyingCarpet.apk está disponível na página de lançamentos.

Ou pesquise na App Store por "transferência de arquivo de tapete voador".
Envie e receba arquivos entre Android, iOS, Linux, MacOS e Windows sobre WiFi ad hoc. Não é necessária uma conexão de rede ou célula compartilhada, apenas dois dispositivos com chips Wi -Fi de perto.
Não tem uma unidade flash? Não tem acesso a uma rede sem fio? Precisa mover um arquivo maior que 2 GB entre diferentes sistemas de arquivos, mas não deseja configurar um compartilhamento de rede? Experimente!
Vídeo de demonstração





Linux: faça o download do arquivo .AppImage na página de lançamentos para uma versão independente ou se você estiver em uma distribuição baseada em Debian, faça o download do arquivo .deb e instale-o com apk ou dpkg .
MacOS: Baixe o arquivo de imagem de disco .dmg na página Releases. Clique duas vezes para montá-lo e arraste o pacote .app para dentro da sua pasta Aplicativos. Ou, se você usar o Homebrew, execute brew install flying-carpet .
Windows: Baixe o instalador .msi na página de lançamentos, ou FlyingCarpet.exe para uma versão independente.
Instale a ferrugem.
Execute cargo install tauri-cli para instalar o Tauri.
Somente Mac: Instale o Xcode. Open FlyingCarpetMac/FlyingCarpetMac/FlyingCarpetMac.xcodeproj e construa -o.
Para Linux, instale dependências. Ubuntu 20 Exemplo:
sudo apt install libsoup2.4* libjavascriptcoregtk* libgdk-pixbuf2.0* librust-pango-sys-dev libgdk3.0* librust-atk-dev librust-atk-sys-dev librust-gdk* libwebkit2gtk* librsvg2-dev
cargo tauri dev para executar uma versão de desenvolvimento ou cargo tauri build para criar artefatos de liberação. Os dispositivos Apple só podem ser transferidos para/para o Android, Linux e Windows, pois não podem mais executar pontos de acesso programaticamente. Use airdrop em vez de transferências de maçã a apple.
Desative sua conexão sem fio à Internet enquanto estiver em uso. (Não se aplica ao Windows ou Android ao hospedar o ponto de acesso.)
O MacOS às vezes volta para uma rede sem fio com conectividade à Internet durante transferências particularmente longas.
A versão Android requer pelo menos o nível 26 de Android 8/API. A versão Android não funciona em alguns dispositivos Xiaomi, MIUI ou Harmonyos e possivelmente outros oses do Android. Eu não possuo esses dispositivos e, portanto, não posso testar, mas parece que isso se deve à falta de apoio à API LocalonlyHotspot. Foi confirmado para trabalhar em pelo menos um telefone Xiaomi.
Requer o Windows 10 ou posterior.
A versão Linux foi desenvolvida e testada no Linux Mint. Pretendo principalmente que ele seja executado em distribuições baseadas no Debian. Vou tentar ajudar a solucionar outras pessoas, se puder, mas talvez eu não consiga, pois não tenho acesso a máquinas sobressalentes. Houve pelo menos um problema em Fedora, possivelmente para Selinux, mas eu realmente não sei.
Às vezes, quando o botão Cancelar é atingido nas plataformas de desktop, pode levar tempo para o sistema operacional terminar de tentar entrar ou criar um ponto de acesso. Clique apenas no botão Cancelar uma vez e aguarde alguns segundos. Parece que deve ser fácil de corrigir, mas da última vez que tentei não.
Bluetooth para negociação de conexão (em vez de digitalização de código QR ou entrada manual)?
Adicione o atalho do tapete voador ao menu de compartilhamento iOS.
Não foi um repositório? Sim, a carcinização veio para o Gopher. Havia vários problemas que eu não sabia como resolver no paradigma GO/QT, especialmente com o Windows: não conseguir fazer um executável de um único arquivo, precisando ser executado como administrador e ter que escrever a DLL direta do WiFi para uma pasta temp e vincular-se a ele no tempo de execução, porque Go não funciona com o MSVC. Além disso, foi divertido usar tokio / async e windows-rs , com o qual as partes do Windows Networking estão escritas. A estrutura da GUI agora é Tauri, que oferece uma experiência nativa em todas as plataformas com uma pegada muito pequena. A versão Android é escrita em Kotlin e o código está neste repositório. A versão iOS é escrita em Swift e o código não é público.
Você está usando o SHA-256 para derivar a chave de uma senha. Isso não é ruim? Você não deveria estar usando uma função de derivação de chave baseada em senha como SCRYPT ou ARGON2? Eu estava fazendo isso antes, mas não era estritamente necessário porque essas chaves são usadas apenas durante a transferência de arquivo. Para que um invasor intercepte os dados em trânsito, eles precisariam estar na rede de pontos de acesso, que é protegida pelo WPA2, para que eles precisem subir a senha ou o código QR. A mudança no SHA-256 foi feita porque não consegui encontrar uma boa implementação SCRYPT ou Argon2 em todas as plataformas quando adicionei as versões móveis.
Por que você está usando o AES-GCM se já existe WPA2? Quando comecei a trabalhar neste projeto em 2017, estava tentando permitir redes Wi -Fi do IBSS no MacOS que não usavam autenticação. Eu estava usando a criptografia errada (e incorretamente) então, e depois adicionei o AES-GCM porque é a única implementação boa e oficial de AEAD que pude encontrar em Go, Swift, Kotlin e agora Rust. Se algum criptografista ler isso e descobrir que ainda estou sendo burro, por favor me avise.
Se você usou o tapete voador, envie feedback para [email protected]. Obrigado pelo seu interesse! Confira também https://github.com/spieglt/cloaker, https://cloaker.mobi, e https://github.com/spieglt/whatfiles.