segunda-feira, 21 de abril de 2014

Tirando screenshort em Smartphone com Android


Nesta dica mostrarei como tirar screenshort nativamente em Smartphone com Android sem precisar instalar nenhum App para isto.
Pressione simultaneamente as teclas Liga/Desliga e a tecla de Inicio do Smartphone, onde soará o tradicional som de foto batida e uma mensagem de aviso na barra de status com o dizer Salvando imagem da tela...

As imagens são salva automaticamente na memória interna, na pasta /storage/sdcard0/Pictures/Screenshorts com nome inicial Screenshort_ e sulfixo de data-hora-número_sequencial.png

Notas:
Procedimentos válido somente para Smartphones que possuem os botões físicos Liga/Desliga e Inicio.

Procedimentos realizado no Samsung Galaxy Young Duos GT-S6313T e Galaxy Gran 2 Duos G7102


terça-feira, 15 de abril de 2014

Conectando Smartphone com Android pelo cabo USB no Ubuntu

Se você tem o pacote gMTP nativo instalado e mesmo assim você não consegue acessar o Smartphone pelo cabo usb, você deverá atualizar o gvfs, não importa qual é o fabricante do Smartphone com Android.

Para conectar o seu Smartphone via cabo usb, para acessar os arquivos do mesmo são necessários alguns arquivos novos, e atualizar o gvfs para que o mesmo reconheça dispositivos MTP (protocolo adotado a partir do Android 3.x) pois o USB Mass Storage (UMS) sistema de transferência de arquivos não é suportado a partir do Android 3.x.

Os procedimentos abaixo é valido somente para Ubuntu 12.04 e 12.10 e derivados. No Ubuntu 13.10 ele já vem com o gvfs atualizado, não precisando fazer os procedimentos abaixo; já no Ubuntu 13.04 não sei se o mesmo está atualizado já que não tive oportunidade de testar.

$ sudo apt-get install ppa-purge

Caso tenha instalado o gvfs de outro repositório, remova-o e utilize o comando ppa-purge, mas se não tiver instalado de outro local, pule direto pra o próximo passo.
Exemplo: sudo ppa-purge nome-do-ppa

Adicionando repositórios PPAs:

$ sudo add-apt-repository ppa:webupd8team/unstable

Devemos incluir o novo GVFS (Gnome Virtual File System) com suporte a MTP (Multimedia Transfer Protocol).

$ sudo add-apt-repository ppa:langdalepl/gvfs-mtp -y
$ sudo apt-get update

Instalação dos pacotes

$ sudo apt-get install go-mtpfs
$ sudo apt-get install mtp-tools mtpfs

Caso necessário, reinicie o computador.

Conecte o Smartphone pelo cabo usb e depois ir no menu Multimídia e escolha gMTP.

Uma observação importante que ao fazer a conexão pelo Smartphone tanto pelo gMTP, ou por uma montagem manual em linha de comando o mesmo deve está desbloqueado a tela, ou seja destravada senão o acesso ao mesmo não funcionará.


Na tela do gMTP clique em Conectar, e na mini janela que se abre escolha entre Phone (memória interna) ou Card (cartão externo), pois pode somente acessar um por vez.

No gMTP você pode fazer downloads de arquivo para o computador na pasta desejada e fazer upload de arquivos para o Smartphone (abrir a pasta desejada no Smartphone pra receber os uploads antes).
Você pode deletar/mover/renomear arquivos e criar/renomear/deletar pastas. Adicionar arquivos de músicas a uma playlist.
Não pode reproduzir arquivos de vídeos ou mp3 pelo gMTP ou qualquer outro formato.
Você pode selecionar vários arquivos de uma vez para fazer o upload para o Smartphone.


Montagem do dispositivo manualmente

A pasta padrão do dispositivo do Smartphone é /media/MyAndroid criada automaticamente na instalação dos pacotes mtpfs, mas você pode utilizar qualquer outra pasta de sua preferência que esteja vazia como /mnt/celular para fazer a montagem, mas o importante é que elas tenha as permissões drwxrwxrwx usando os seguintes comandos para isto chmod a+rwx ou chmod 777 na pasta desejada.

Se a pasta não tiver as permissões especificadas o acesso a mesma será somente como root.


$ go-mtpfs /media/MyAndroid/
2014/04/06 14:19:49 compiled against libmtp 1.1.5
Device 0 (VID=04e8 and PID=6860) is a Samsung Galaxy models (MTP).
2014/04/06 14:19:49 found device Samsung: Galaxy models (MTP) (04e8:6860) @ bus 1, dev 2
:
2014/04/06 14:19:49 storage ID 65537: Phone
2014/04/06 14:19:49 storage ID 131074: Card
2014/04/06 14:19:49 backing data /tmp/go-mtpfs594953705
2014/04/06 14:19:49 starting FUSE unknown


O terminal em que foi executado o go-mtpfs para a montagem do Smartphone, fica indisponível para usar para outros comandos e se você teclar ctrl+c você perderá o acesso ao dispositivo, mas o mesmo continuará montado ainda no sistema mesmo que você não consiga acessar, então use o comando umount /media/MyAndroid pra remover o mesmo com segurança da porta usb.

Verificando a montagem em outra janela de terminal.

$ mount

---corte---
gvfsd-fuse on /run/user/nando/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,user=nando)
DeviceFs(GT-S6313T) on /media/MyAndroid type fuse.DeviceFs(GT-S6313T)

$ df
Sist. Arq. 1K-blocos Usad Dispon. Uso% Montado em
--corte---
DeviceFs(GT-S6313T) 5358540 1804908 3553632 34% /media/MyAndroid

Com a montagem feita pelo go-mtpfs, você acessa tanto a memória interna quanto a externa, e pode executar os mp3, vídeos etc com seus programas preferidos, copiar e colar arquivos facilmente entre o computador e o Smartphone usando o seu gerenciador de arquivos.

Para desmontar:

$ sudo umount /media/MyAndroid


Outras configurações opcionais

Estas configurações você somente precisará fazer se tiver problema em montar o dispositivo do Smartphone como usuário comum verifique se o seu usuário está no grupo fuse do arquivo /etc/group

fuse:x:104:usuário

No arquivo /etc/fuse.conf remove o sustenido (#) da última linha que é #user_allow_other.

No arquivo /lib/udev/rules.d/69-libmtp.rules verifique se o seu celular se encontra na lista.
Um detalhe importante é que muitas vezes o seu modelo de celular não está na lista e sim outros modelos da mesma marca, mas o importante é o que é exibido na saída do comando lsusb do ID do celular, se o ID do seu celular estiver na lista do arquivo 69-libmtp.rules mesmo que o modelo ou marca sejam outros mas que coincide com a saída do comando lsusb (acho que o hardware utilizado deve ser o mesmo indiferente da marca e modelo), mude a permissão padrão 660 para 666 em MODE.

Exemplo o meu Smartphone é um Samung Galaxy Young GT-S6313T e na saída do comando lsusb é listado como:

# lsusb
Bus 001 Device 002: ID 04e8:6860 Samsung Electronics Co., Ltd GT-I9100 Phone [Galaxy S II], GT-P7500 [Galaxy Tab 10.1]

No arquivo /lib/udev/rules.d/69-libmtp.rules não existe o modelo GT-S6313T da Samung, mas achei uma linha dos modelos da Samsung que possuir o mesmo ID e que bate com a saída do comando lsusb.

# Samsung GT P7310/P7510/N7000/I9070/I9100/I9300 Galaxy Tab 7.7/10.1/S2/S3/Nexus/Note/Y
ATTR{idVendor}=="04e8", ATTR{idProduct}=="6860", SYMLINK+="libmtp-%k", MODE="666", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"



Se mesmo assim você não conseguir montar o dispositivo verifique se o Smartphone está no modo MTP (o Smartphone já deve está conectado ao cabo usb com o computador), na barra de estado você verá um ícone de USB, abra a mesma e na barra de notificações pressione o dedo em Conectando como um disp (Toque para outras opções USB), no qual surgira a tela da foto abaixo.



Na foto acima o Smartphone já está no modo MTP (Dispositivo de mídia), em algumas marcas e modelos o nome MTP pode se encontrado com um nome diferente e também as informações abaixo do mesmo pode ser um pouco diferente.


Alguns fabricantes ou operadoras podem esconder muitas configurações dos usuários dificultando a vida para fazer algo simples como permitir MTP ao conectar o seu telefone Android para o seu computador. Entretanto muitos destes ajustes podem ser acessados através de códigos de discagem e o modo de conexão USB para PC é um desses.

Primeiro lugar é discar o código *#7284# que abrirá o diálogo "PhoneUtil". Isso não vai funcionar em todos os telefones; então tente também discar *#22745927 lembrando que este procedimento, pode conter opções diferentes da foto abaixo dependendo do modelo e marca do Smartphone e que também pode ter sido desativado pela sua operadora/fabricante o acesso a estas opções ocultas.






sábado, 12 de abril de 2014

Conectado o seu celular pelo cabo de dados usb no Linux

A transferência de arquivos entre o celular e o computador é bem mais rápida pelo cabo usb, do que pelo Bluetooth principalmente se você vai transferir muitos arquivos mp3 para o celular.

Neste artigo foi utilizado um celular simples da marca Nokia modelo C2-01, que é um celular com suporte a vídeos no formato mp4 e bastante prático de usar.

Foi comprado um cabo genérico baratinho feito para o celular Motorola V8, mas que funciona 100% perfeitamente, já que possuir a  mesma conexão de encaixe.




Num celular da marca Nokia, sob o acesso usando o Linux

Ao conectar o celular pelo cabo de dados na porta usb, existem 3 opções:


  1. Pc Suite
  2. Impressão e mídia
  3. Armazenamento de dados



Pc Suite

Escolha esta opção para navegar no celular usando o obexftp já que não existe um software Pc Suite para Linux, para enviar e receber arquivos e listar o mesmo em modo texto acessando os arquivos da memória interna e do cartão removível do celular.
No Linux ao usar a opção Pc Suite você somente pode usar o obexftp ou uma gui gráfica do mesmo para navegar pelo celular, não tem como montar o cartão removível do celular ou a memória interna para um acesso melhor neste ao escolher Pc Suite. Um detalhe é que você não terá acessos a lista de contatos e a agenda, somente os arquivos da memória interna e do cartão de memória ao usar o obexftp no Linux. Escolha esta opção também para usar o celular como modem caso o mesmo suporte. Você também pode usar o obexfs para acessar os arquivos da memória interna e externa, mas o acesso será somente como root também.


Impressão e mídia

Não funciona o acesso pelo obexftp e nem a montagem automática do cartão de memória externo e o acesso à memória interna.


Armazenamento de dados

Ao escolher esta opção no celular, automaticamente será montado o cartão de memória removível nas distros recentes no Linux, podendo assim você transferir arquivos entre o celular e o computador e vice-versa usando apenas copiar e colar no seu gerenciador de arquivos gráfico (automaticamente para ambientes kde, gnome, xfce4).
Neste modo não funciona transferência de arquivos pelo obexftp, sendo também que o mesmo nem detecta o celular neste modo.

Notas:
Caso a montagem automática falha por algum motivo, ou você usar um gestor de janelas simples que não utiliza os recursos do udev, ou você está fora do ambiente X, você poderá montar manualmente o cartão de memória externo, deste que o celular e o dispositivo do cartão de memória foram reconhecidos pelo sistema.

Basta analisar quase no final das linhas do comando dmesg assim que você escolheu a opção Armazenamento de dados qual é o dispositivo do celular.

Exemplo parcial da saída do comando dmesg:


scsi 6:0:0:0: Direct-Access Nokia Nokia C2-01 0000 PQ: 0 ANSI: 4
sd 6:0:0:0: Attached scsi generic sg3 type 0
sd 6:0:0:0: [sdb] Adjusting the sector count from its reported value: 7837697
sd 6:0:0:0: [sdb] 7837696 512-byte logical blocks: (4.01 GB/3.73 GiB)
sd 6:0:0:0: [sdb] Write Protect is off
sd 6:0:0:0: [sdb] Mode Sense: 04 00 00 00
sd 6:0:0:0: [sdb] Assuming drive cache: write through
sd 6:0:0:0: [sdb] Adjusting the sector count from its reported value: 7837697
sd 6:0:0:0: [sdb] Assuming drive cache: write through
sdb: sdb1
sd 6:0:0:0: [sdb] Adjusting the sector count from its reported value: 7837697
sd 6:0:0:0: [sdb] Assuming drive cache: write through
sd 6:0:0:0: [sdb] Attached SCSI removable disk

O celular detectado é o Nokia C2-01 e o dispositivo do cartão de memória externo é o sdb1.

Montando o cartão de memória externo manualmente:
# mount /dev/sdb1 /mnt/nokia ou mount /dev/sdb1 /mnt/nokia -t vfat


Como montar a memória interna do celular ?

Se o seu celular não tem entrada para cartão microSD ou se tem pra o mesmo e este está sem cartão externo, faça o procedimento abaixo:

Escolha: Pc suite no celular
Carregue o módulo fuse caso o mesmo não foi iniciado sozinho: modprobe fuse
Vamos ver as interfaces disponíveis: obexftp -u
Criando um ponto de montagem: mkdir nokia
Montando a memória interna do celular: obexfs -u 0 nokia

Agora você pode acessar o ponto de montagem nokia usando o seu gerenciador de arquivos preferidos mas o acesso ao ponto de montagem somente funciona como root, não funciona como user, e não adianta mudar permissões do ponto de montagem que você não conseguira acessar como user.
Pode copiar e colar arquivos entre o celular e o computador com um navegador gráfico deste que você inicie o mesmo em uma janela de terminal logrado como root.

Notas:
O ponto de montagem não aparecem com o comando df pois se trata de um filesystem virtual, somente aparecerá usando o comando mount.
Para desmontar: umount /home/nando/nokia

# mount
/dev/sda6 on / type reiserfs (rw,notail)
proc on /proc type proc (rw,noexec,nosuid,nodev)
none on /sys type sysfs (rw,noexec,nosuid,nodev)
fusectl on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
none on /dev type devtmpfs (rw,mode=0755)
none on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
none on /dev/shm type tmpfs (rw,nosuid,nodev)
none on /var/run type tmpfs (rw,nosuid,mode=0755)
none on /var/lock type tmpfs (rw,noexec,nosuid,nodev)
none on /var/lib/ureadahead/debugfs type debugfs (rw,relatime)
/dev/sda1 on /mnt/outros type ext4 (rw,commit=0)
gvfs-fuse-daemon on /home/nando/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev,user=nando)
gvfs-fuse-daemon on /root/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev)
/dev/sda4 on /media/4ad7953b-de2a-4f5b-8d78-3cbf6c2c07a3 type ext4 (rw,nosuid,nodev,uhelper=udisks)
obexfs on /home/nando/nokia type fuse.obexfs (rw,nosuid,nodev)

Ao fazer a montagem da memória interna com o obexfs, você também tem acesso normal ao cartão de memória externa caso exista no celular, basta entrar na pasta que dá acesso ao mesmo que no caso do meu celular é NO NAME.


Transferência de arquivos com obextool


O obextool é uma gui gráfica para obexftp.

Instale o obextool que é uma gui gráfica em tk para o comando obexftp.
Dependências são os pacotes: bwidget, tk8.4, tcl8.4, tcllib e tklib

No obextool:

Escolha Download para baixar o arquivo para o computador.
Escolha Upload pra enviar um arquivo do computador para o celular (o upload será salvo na pasta que estiver sendo listada no celular).

Como executar o obextool ?

$ sudo obextool --obexcmd "obexftp -u 0" (após o -u é zero)

Tela do obextool




Como abrir arquivos pelo obextool ?

O obextool permite abrir arquivos de fotos, mp3, mid etc para você, basta criar a associação para os programas que você usa editando o arquivo /etc/obextool/obextool.ext, ele já vem configurado com os programas para abrir determinado arquivo, mas dependendo do seu sistema os programas configurados podem não está instalado, então basta trocar o programa usado por outro.

Exemplos da linha original para abrir arquivos de imagens

### external graphic viewer programs
###
set ObexConfig(view,bmp) "xzgv"
set ObexConfig(view,bmx) "xzgw"
set ObexConfig(view,png) "kview"
set ObexConfig(view,jpg) "kview"

Se você não tem o xzgv e o kview mude todos por exemplo para gqview ou outro programa de sua preferência para abrir arquivos de fotos dentro do obextool.

Para abrir o arquivo selecione com o mouse usando o botão direito e escolha a opção View file.

Usando o celular como modem

Você pode utilizar o seu celular pelo cabo usb e usar o mesmo como modem deste que o mesmo tenha esta função, podendo usar o computador para navegar na internet caso você não tenha banda larga ou internet discada.

Para funcionar é preciso de um kernel compilado com suporte a dispositivos ACM, sendo que todos os kernel recente já vem compilado com dispositivo ACM.

Ao conectar o cabo usb no computador, no celular escolha a opção Pc Suite para poder usar o mesmo como modem.

Agora vamos descobrir qual é o device do modem
# dmesg | grep ACM
cdc_acm 3-1:1.4: ttyACM0: USB ACM device

Onde ttyACM0 é o dispositivo do seu modem usb pelo celular.

Nota:
O cdc_acm é um modulo que foi carregado automaticamente ao inserir o cabo usb.
Para listar os módulos carregados use o comando lsmod.

Agora devemos ter o discador em modo texto wvdial instalado e configura o arquivo /etc/wvdial.conf com as linhas abaixo, mas você pode utilizar outro discador da sua preferência.

[Dialer cabo]
Modem = /dev/ttyACM0 #dispositivo do modem do celular
Baud = 460800 # valor pode ser diferente
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
ISDN = 0
Modem Type = Analog Modem
Username = claro # user da sua operadora
Password = claro # senha da sua operadora
Phone = *99***1# # telefone da sua operadora
Stupid Mode = 1


Note que a configuração de Baud no arquivo /etc/wvdial.conf é específica para cada aparelho. Uns aceitam valores maiores, outros podem apresentar instabilidades e neste caso, este valor deverá ser reduzido para outros valores (57600, por exemplo).
Baud valores: 115200, 460800, 57600, 28800

Notas:
Em alguns modelos pode ser necessário colocar também a linha Init3.
Exemplo da linha: Init3 = AT+CGDCONT=1,"IP","claro.com.br" no arquivo wvdial.conf, para funcionar o acesso à internet.
Onde "claro.com.br" e o endereço da sua operadora. Onde o Init3 é indicado para conexão pelo cabo usb.

Agora basta discar para acessar a internet

# wvdial cabo
--> WvDial: Internet dialer version 1.61
--> Cannot get information for serial port.
--> Initializing modem.
--> Sending: ATZ
ATZ
OK
--> Sending: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
OK
--> Modem initialized.
--> Sending: ATDT*99***1#
--> Waiting for carrier.
ATDT*99***1#
CONNECT
~[7f]}#@!}!} } }2}#}$@#}!}$}%\}"}&} }*} } g}%~
--> Carrier detected. Starting PPP immediately.
--> Starting pppd at Fri Jun 22 17:33:12 2012
--> Pid of pppd: 22496
--> Using interface ppp0
--> pppd: ��[06][08]p�[06][08]
--> pppd: ��[06][08]p�[06][08]
--> pppd: ��[06][08]p�[06][08]
--> pppd: ��[06][08]p�[06][08]
--> local IP address 10.43.164.15
--> pppd: ��[06][08]p�[06][08]
--> remote IP address 10.6.6.3
--> pppd: ��[06][08]p�[06][08]
--> primary DNS address 200.169.117.222
--> pppd: ��[06][08]p�[06][08]
--> secondary DNS address 200.169.117.221
--> pppd: ��[06][08]p�[06][08]

O computador já está conectado a internet, mas os DNS não foram colocados automaticamente no arquivo /etc/resolv.conf sem eles você não poderá navegar pela internet digitando nomes de sites.
Você pode colocar os DNS que aparecem na saída do comando wvdial ou usar outro como o do OpenDNS para navegar na internet.
Linhas:
primary DNS address 200.169.117.222
secondary DNS address 200.169.117.221


Colocando o DNS do OpenDNS no arquivo /etc/resolv.conf
nameserver 208.67.222.222
nameserver 208.67.220.220

Agora basta pingar o site www.terra.com.br pra testar.


# ifconfig
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:55 errors:0 dropped:0 overruns:0 frame:0
TX packets:55 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:5070 (4.9 KiB) TX bytes:5070 (4.9 KiB)

pan1 Link encap:Ethernet HWaddr 0a:a7:c6:20:61:4d
inet addr:10.77.178.1 Bcast:10.77.178.255 Mask:255.255.255.0
inet6 addr: fe80::8a7:c6ff:fe20:614d/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:171 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:27282 (26.6 KiB)

ppp0 Link encap:Point-to-Point Protocol
inet addr:10.43.164.15 P-t-P:10.6.3. Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:36 errors:0 dropped:0 overruns:0 frame:0
TX packets:41 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:2545 (2.4 KiB) TX bytes:2617 (2.5 KiB)



Onde pan1 é a sua interface de rede local gerada pelo ppp0 e ppp0 é da conexão discada.

Em /dev
# ls -l ttyACM*
crw-rw---- 1 root dialout 166, 0 Jun 22 17:33 ttyACM0

Em /dev não existe o link modem mas o acesso à internet funcionou sem o mesmo.

Notas:

Pra enviar o comando wvdial cabo para o segundo plano liberando o prompt desta janela
execute desta forma: wvdial claro & tecle Enter e depois ctrl+c pra enviar por segundo plano.

Para desconectar:
# killall pppd (ao fazer isto o ícone de acesso à internet desaparece no visor do celular).
Tecle ctrl+c na janela que foi executado o wvdial, caso o mesmo não foi enviado por segundo plano ou caso foi enviado por segundo plano use killall wvdial.
Somente fazendo isto é que desaparece o ícone de acesso à Internet do seu celular.

Em alguns casos dependendo da configuração feito feita ou do discador usado pode ser necessário criar o link modem em /dev para o dispositivo /dev/ttyACM0 do celular.

# ln -s ttyACM0 modem

Em alguns casos pode ser necessário passar o vendor e o product do seu celular, para poder funcionar como modem, mas não foi necessário este procedimento no meu computador e o acesso à internet funcionou mesmo não tendo o modulo usbserial carregado, sendo este procedimento manual necessário apenas em distros mais antigas.

Identificando o vendor e product do seu celular

# lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 002: ID 0421:054e Nokia Mobile Phones
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Carregando o módulo usbserial com o vendor e product do seu celular.
# /sbin/modprobe usbserial vendor=0421 product=054e


Procedimentos testados no Slackware 13.1, Xubuntu 10.10 e 12.10.








quarta-feira, 2 de abril de 2014

Descobrindo quais programas usam a internet em segundo plano

Para descobrir quais programas usam a internet em segundo plano, rode o comando lsof com os flags -P -i

$ lsof -P  -i  
COMMAND     PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
CopyAgent  1824 nando   24u  IPv4  11997      0t0  TCP *:8445 (LISTEN)
CopyAgent  1824 nando   25u  IPv4  11999      0t0  UDP *:8445 
CopyAgent  1824 nando   26u  IPv4 260834      0t0  TCP 192.168.1.101:34784->64.235.151.8:443 (ESTABLISHED)
firefox    2091 nando   54u  IPv4 273910      0t0  TCP 192.168.1.101:37783->gru06s11-in-f24.1e100.net:443 (ESTABLISHED)
firefox    2091 nando   60u  IPv4 275182      0t0  TCP 192.168.1.101:49123->gru06s11-in-f15.1e100.net:443 (ESTABLISHED)
firefox    2091 nando   65u  IPv4 273923      0t0  TCP 192.168.1.101:49126->gru06s11-in-f15.1e100.net:443 (ESTABLISHED)
firefox    2091 nando   66u  IPv4 275206      0t0  TCP 192.168.1.101:45148->gru06s11-in-f0.1e100.net:443 (ESTABLISHED)
firefox    2091 nando   68u  IPv4 275207      0t0  TCP 192.168.1.101:60943->gru06s11-in-f6.1e100.net:80 (ESTABLISHED)
firefox    2091 nando   69u  IPv4 273937      0t0  TCP 192.168.1.101:54530->a23-52-155-27.deploy.static.akamaitechnologies.com:80 (ESTABLISHED)
chrome    18935 nando   72u  IPv4 269319      0t0  TCP 192.168.1.101:49100->gru06s11-in-f15.1e100.net:443 (ESTABLISHED)
chrome    18935 nando  110u  IPv4 269351      0t0  TCP 192.168.1.101:57907->yv-in-f191.1e100.net:443 (ESTABLISHED)
chrome    18935 nando  125u  IPv4 269125      0t0  TCP 192.168.1.101:40359->yv-in-f95.1e100.net:443 (ESTABLISHED)
chrome    18935 nando  127u  IPv4 269818      0t0  TCP 192.168.1.101:35678->lhr08s02-in-f15.1e100.net:443 (ESTABLISHED)
chrome    18935 nando  139u  IPv4 273175      0t0  TCP 192.168.1.101:57322->gru06s11-in-f3.1e100.net:443 (ESTABLISHED)

Usando um filtro

$ lsof -P  -i  | cut -f 1 -d " " | uniq 
COMMAND
CopyAgent
firefox
chrome

Note que temos o agente CopyAgent (armazenamento nas nuvens) rodando em segundo plano e os navegadores firefox e google-chrome (chrome) acessando a internet).