android::NO_ERROR);
}
-void DropPrivilegesOrCrash() {
- minijail* j = minijail_new();
- CHECK(minijail_change_user(j, "wifi") == 0);
- CHECK(minijail_change_group(j, "wifi") == 0);
- minijail_use_caps(j,
- CAP_TO_MASK(CAP_NET_ADMIN) |
- CAP_TO_MASK(CAP_NET_RAW));
- minijail_enter(j);
- minijail_destroy(j);
-}
-
} // namespace
void OnBinderReadReady(int fd) {
android::base::InitLogging(argv, android::base::LogdLogger(android::base::SYSTEM));
LOG(INFO) << "wificond is starting up...";
- DropPrivilegesOrCrash();
-
unique_ptr<android::wificond::LooperBackedEventLoop> event_dispatcher(
new android::wificond::LooperBackedEventLoop());
ScopedSignalHandler scoped_signal_handler(event_dispatcher.get());