Merge "Handle policy reloads within installd rather than restarting it."

This commit is contained in:
Nick Kralevich 2013-11-27 21:09:12 +00:00 committed by Gerrit Code Review
commit bef08b8d1b

View File

@ -16,6 +16,8 @@
#include <sys/capability.h> #include <sys/capability.h>
#include <linux/prctl.h> #include <linux/prctl.h>
#include <selinux/android.h>
#include <selinux/avc.h>
#include "installd.h" #include "installd.h"
@ -526,6 +528,7 @@ int main(const int argc, const char *argv[]) {
struct sockaddr addr; struct sockaddr addr;
socklen_t alen; socklen_t alen;
int lsocket, s, count; int lsocket, s, count;
int selinux_enabled = (is_selinux_enabled() > 0);
ALOGI("installd firing up\n"); ALOGI("installd firing up\n");
@ -539,6 +542,11 @@ int main(const int argc, const char *argv[]) {
exit(1); exit(1);
} }
if (selinux_enabled && selinux_status_open(true) < 0) {
ALOGE("Could not open selinux status; exiting.\n");
exit(1);
}
drop_privileges(); drop_privileges();
lsocket = android_get_control_socket(SOCKET_PATH); lsocket = android_get_control_socket(SOCKET_PATH);
@ -577,6 +585,9 @@ int main(const int argc, const char *argv[]) {
break; break;
} }
buf[count] = 0; buf[count] = 0;
if (selinux_enabled && selinux_status_updated() > 0) {
selinux_android_seapp_context_reload();
}
if (execute(s, buf)) break; if (execute(s, buf)) break;
} }
ALOGI("closing connection\n"); ALOGI("closing connection\n");