答案1
我已经找到了我的问题的解决方案。当 Android 启动时,它会刷新所有规则。我在 file system/netd/RouteController.cpp
function中找到了完成这项工作的代码int flushRules()
。当我阻止执行此函数的代码时,我再也没有看到有关 NFS 连接松动的消息。
// 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;
}
现在 Android 系统按预期使用 NFS 启动。