Eu encontrei a solução do meu problema.
Quando o Android inicia, ele faz o flush de todas as regras. O código que faz este trabalho eu encontrei no arquivo system/netd/RouteController.cpp
function int flushRules()
. Quando eu bloqueiei a execução do código desta função, eu não vi mais mensagens sobre conexões NFS soltas.
// Returns 0 on success or negative errno on failure.
WARN_UNUSED_RESULT int flushRules() {
return 0;//TODO workaround of NFS parameters reset
for (size_t i = 0; i < ARRAY_SIZE(IP_VERSIONS); ++i) {
const char* argv[] = {
IP_PATH,
IP_VERSIONS[i],
"rule",
"flush",
};
if (android_fork_execvp(ARRAY_SIZE(argv), const_cast<char**>(argv), NULL, false, false)) {
ALOGE("failed to flush rules");
return -EREMOTEIO;
}
}
return 0;
}
E agora o sistema Android inicializa com NFS conforme o esperado.