Send libselinux logging to logcat.
Otherwise we can't readily see log messages from libselinux calls made by installd. Change-Id: I319b30c181470468fe19dd5fbe9251ef03f1163b Signed-off-by: Stephen Smalley <sds@tycho.nsa.gov>
This commit is contained in:
parent
01502981cd
commit
7abb52bcaf
@ -541,6 +541,27 @@ static void drop_privileges() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int log_callback(int type, const char *fmt, ...) {
|
||||||
|
va_list ap;
|
||||||
|
int priority;
|
||||||
|
|
||||||
|
switch (type) {
|
||||||
|
case SELINUX_WARNING:
|
||||||
|
priority = ANDROID_LOG_WARN;
|
||||||
|
break;
|
||||||
|
case SELINUX_INFO:
|
||||||
|
priority = ANDROID_LOG_INFO;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
priority = ANDROID_LOG_ERROR;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
va_start(ap, fmt);
|
||||||
|
LOG_PRI_VA(priority, "SELinux", fmt, ap);
|
||||||
|
va_end(ap);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
int main(const int argc, const char *argv[]) {
|
int main(const int argc, const char *argv[]) {
|
||||||
char buf[BUFFER_MAX];
|
char buf[BUFFER_MAX];
|
||||||
struct sockaddr addr;
|
struct sockaddr addr;
|
||||||
@ -550,6 +571,10 @@ int main(const int argc, const char *argv[]) {
|
|||||||
|
|
||||||
ALOGI("installd firing up\n");
|
ALOGI("installd firing up\n");
|
||||||
|
|
||||||
|
union selinux_callback cb;
|
||||||
|
cb.func_log = log_callback;
|
||||||
|
selinux_set_callback(SELINUX_CB_LOG, cb);
|
||||||
|
|
||||||
if (initialize_globals() < 0) {
|
if (initialize_globals() < 0) {
|
||||||
ALOGE("Could not initialize globals; exiting.\n");
|
ALOGE("Could not initialize globals; exiting.\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
|
Loading…
Reference in New Issue
Block a user