к сожалению (по крайней мере для того, что вы хотите) вы не сможете регистрировать все пакеты без изменений в вашей аппаратной и сетевой архитектуре.
в отличие от более старых сетей, которые функционировали на общей шине или использовали многопортовые ретрансляторы (концентраторы), современные коммутируемые сети обычно не отправляют трафик через порт коммутатора, который не подключается к запрошенному MAC-адресу назначения. исключения из этого правила - широковещательный трафик на уровнях MAC и IP, часто используемый протоколами обнаружения устройств и служб.
чтобы достичь своей цели, вам нужно перевести коммутатор в беспорядочный режим на порт, подключенный к вашей машине Linux, чтобы весь трафик на коммутаторе был виден вашему процессу tcpdump.
В большинстве случаев лучший способ сделать это - купить коммутатор, поддерживающий зеркалирование портов, и настроить его на отправку всего трафика на второй сервер в вашей Linux-системе.
если вы хотите воспользоваться этой возможностью, ознакомьтесь с этими инструкциями по подготовке сети к SNORT. http://www.symantec.com/connect/articles/complete-snort-based-ids-architecture-part-one
обратите внимание, что если вы можете изолировать один протокол, который вы хотите отслеживать, вы можете установить для него прокси-сервер на своем компьютере с Linux, настроить устройство Android на его использование, а затем перехватить трафик по мере его передачи, поскольку теперь он проходит через ваш ящик Linux.
не уверен насчет последней части вашего вопроса. все пакеты используют сетевой и канальный уровень, и TCPdump может регистрировать протоколы l2, такие как ARP, и протоколы не-IP на уровне l3 (ICMP), так что да и нет, я полагаю?