Quais são as camadas entre o Nautilus e um dispositivo de armazenamento removível?

4

Minha pergunta é um tanto grande, mas não consegui descobrir como quebrá-la sem arruiná-la.

Não parece haver uma maneira muito boa (funcional) de montar um Nexus 4 no Ubuntu, então eu estava pensando em escrever algum tipo de adb wrapper, porque o adb funciona muito bem. Então minha pergunta é:

Quais são as camadas / partes do sistema entre o Nautilus / Nemo e um dispositivo de armazenamento removível e como elas funcionam?

  • Como um gerenciador de arquivos da GUI, como o Nautilus, obtém o conteúdo da pasta e os detalhes do arquivo. Ele lança comandos como ls , cd em segundo plano?
  • Qual parte do sistema é responsável quando você está navegando / mídia e como funciona? Posso colocar meu próprio manipulador aqui em algum lugar?
  • O que eu estou pensando é possível?
por R2-D2 22.09.2014 / 17:08

1 resposta

2

Ajuda do MTP?

% bl0ck_qu0te%

Eu queria saber se você sabia sobre o Protocolo MTP ? Parece ser a principal maneira de acessar dados de mídia de dispositivos Android sem cartões SD via USB.

Versões modernas do Ubuntu (> = 13.04) devem envia o suporte MTP para o Nautilus já. Para versões mais antigas do Ubuntu (por exemplo, 12.04) talvez seja necessário instalar uma atualização de biblioteca manualmente ou a partir de um PPA .

Você também pode ter que ativar o suporte MTP em seu dispositivo Android em "Configurações do sistema" → "Armazenamento" → "Conexão USB (PC)"

GVFS, FUSE, etc.

% bl0ck_qu0te%

Existem muitas camadas diferentes envolvidas, mas definitivamente o Nautilus não executa esses comandos shell em segundo plano; isso seria muito lento.

A camada principal que você deve procurar em seu projeto é o GVFS . De acordo com Wikipedia , “o GVFS é o sistema de arquivos virtual da área de trabalho do GNOME, que permite aos usuários acesso fácil a dados remotos via SFTP, FTP, WebDAV, SMB e dados locais via integração Udev, OBEX, MTP e outros. ”

Como o GVFS tem suporte para FUSE (que pode ser outra camada interessante para nossa discussão ), você pode tentar algo como adbfuse . Ele envolve o ADB em um driver FUSE, que pode ser usado pelo Nautilus via GVFS. Por favor, note que eu não tentei isso, no entanto, eu estaria interessado em ouvir sobre qualquer experiência que você pode fazer com isso: -)

% bl0ck_qu0te%

Eu não tenho certeza sobre isso, mas acho que os udisks eventualmente garantem que você veja armazenamento removível dispositivos sob /media .

% bl0ck_qu0te%

É certamente possível, como você pode ver com adbfuse; basta executar uma pesquisa na Web para "fusível android adb" e você terá alguns projetos semelhantes: -)

    
por Chriki 23.09.2014 / 22:52