Não, não é possível especificar isso por aplicativo.
No entanto, você pode usar algo chamado namespaces de rede : você pode considerá-los como "computadores virtuais", que compartilham o sistema de arquivos e tudo mais, exceto a configuração da rede.
Assim, você pode criar, digamos, um namespace de rede que contenha a interface de rede conectada ao telefone, manter a interface wifi no namespace principal da rede e iniciar um firefox no namespace de rede principal e outro firefox namespace.
Cada firefox só usará a interface de rede apropriada para conectar-se à internet.
Esta configuração também é ótima se você quiser monitorar o que os aplicativos fazem: Você conecta o namespace de rede recém-criado ao namespace de rede principal através de um par de ethernet virtual ( veth), configure o namespace de rede principal para encaminhamento e conversão de endereço de rede (NAT) e, em seguida, você pode ouvir com wireshark
etc. para todo o tráfego de rede dos aplicativos no namespace.
Se você quiser brincar com namespaces de rede, dê uma olhada no script em esta resposta . Este script cria um novo namespace e o conecta via veth.
Para sua configuração, você deve modificá-lo para mover uma interface de rede para o novo namespace e não precisa do veth.