Após várias leituras cuidadosas da sua pergunta, algo se destacou:
E além das enormes quantias em 3G, esse telefone passava muito pouco tempo fora do Wifi.
O iPhone, quando está no modo de suspensão, desliga o rádio WiFi para economizar a energia da bateria . Portanto, se você tem aplicativos com fome de dados que fazem coisas em segundo plano quando o telefone está em suspensão / bloqueado, eles fazem isso por 3G. Observe que o comportamento do modo WiFi desligado no modo de suspensão é um pouco inconsistente. Mas você pode garantir que o 3G nunca seja usado pelo seu telefone enquanto você estiver realizando esses testes desligando os dados do celular. Dessa forma, quando dorme, continuará a usar Wi-Fi e não 3G para dados e você certamente capturará todo o tráfego na sua rede de monitoramento.
Você pode juntar algumas tecnologias que podem ajudá-lo a localizar o culpado.
Como um primeiro passo rápido, você pode tentar monitorar o telefone quando ele estiver em uma rede WiFi usando mitmproxy. A partir deste excelente mclov.in blog , você pode configurar um proxy para o seu telefone em seu Mac e filtrar todo o http / s de tráfego através dele:
- Faça o download da ferramenta mitmproxy e configure-a acessando a pasta mitmproxy e executando o sudo python setup.py install. Se tudo correr bem, o mitmproxy deve estar disponível no seu $ PATH.
- Inicie o mitmproxy executando o mitmproxy.
- Obtenha o endereço IP do seu computador executando ifconfig en1 (ou qualquer que seja a interface que você está usando).
- Defina o proxy no seu iPhone, acessando as configurações sem fio, definindo o proxy como “Manual” e defina o IP como o IP do seu computador e a porta como 8080.
Se você configurar o mitmproxy para gravar chamadas http / s em um arquivo, poderá analisá-lo após um certo período de tempo e procurar tendências. Você também poderá inspecionar as cargas úteis nas chamadas http / s para poder detectar solicitações extraordinariamente grandes dessa maneira.
Obviamente: essa abordagem assume que o culpado está usando http / s para comunicação. Caso contrário, você não verá o problema via mitmproxy e precisará recorrer a uma solução de nível inferior.
Você precisa monitorar todo o tráfego em uma rede WiFi que você controla para ajudá-lo a encontrar pelo menos os pontos finais das transferências de dados. O monitoramento da largura de banda não é difícil de configurar, mas manter um registro por IP e por terminal é realmente difícil de ser feito com hardware de nível de consumidor, pois pode ser uma quantidade enorme de dados. Cada pacote deve ser verificado quanto à origem, destino, registrado quanto ao tempo e tamanho - é muito rápido.
Mas você pode obter alguns números decentes e restringir o espaço de pesquisa para que seja algo potencialmente analisável por humanos.
Primeiro: você precisa configurar uma rede com monitoramento de largura de banda em um nível por IP. Para isso, recomendo um roteador WiFi Linksys WRT54GL para consumidor que esteja executando o Tomato e o complemento TeamanIPTraffic para rastreamento de largura de banda no nível de IP.
Segundo: defina seu DNS no roteador para usar o OpenDNS . Na sua conta do OpenDNS para rastrear pesquisas de DNS:
- Faça login em https://dashboard.opendns.com/
- Clique na guia "Configurações"
- Clique no endereço IP da rede associada ao seu roteador
- Clique em 'Estatísticas e registros' no lado esquerdo
- Verifique se 'Ativar estatísticas e logs' está marcado e clique no botão 'Aplicar'
Agora, todas as pesquisas de DNS realizadas na sua rede serão registradas.
Atribua ao seu telefone um IP estático nesta rede para facilitar o rastreamento.
E ... espere e observe.
Você vai monitorar a atividade pelo endereço IP atribuído ao seu telefone nas tabelas de atividades por IP do seu roteador. Quando a atividade de dados para esse endereço IP disparar, você acessará o console do OpenDNS e examinará as estatísticas e os registros das pesquisas de DNS durante o período em que a movimentação de dados foi alta para o seu telefone.
Isso deve fornecer uma pequena lista [sic] de nomes de host que estavam sendo resolvidos no momento. E armado com essa lista, você pode reduzi-la a um aplicativo.