/* restorecon.c - Restore default security contexts for files * * Copyright 2015 The Android Open Source Project USE_RESTORECON(NEWTOY(restorecon, "<1DFnRrv", TOYFLAG_USR|TOYFLAG_SBIN)) config RESTORECON bool "restorecon" depends on TOYBOX_SELINUX default y help usage: restorecon [-D] [-F] [-R] [-n] [-v] FILE... Restores the default security contexts for the given files. -D apply to /data/data too -F force reset -R recurse into directories -n don't make any changes; useful with -v to see what would change -v verbose: show any changes */ #define FOR_restorecon #include "toys.h" #if defined(__ANDROID__) #include <selinux/android.h> #endif void restorecon_main(void) { #if defined(__ANDROID__) char **s; int flags = 0; if (toys.optflags & FLAG_D) flags |= SELINUX_ANDROID_RESTORECON_DATADATA; if (toys.optflags & FLAG_F) flags |= SELINUX_ANDROID_RESTORECON_FORCE; if (toys.optflags & (FLAG_R|FLAG_r)) flags |= SELINUX_ANDROID_RESTORECON_RECURSE; if (toys.optflags & FLAG_n) flags |= SELINUX_ANDROID_RESTORECON_NOCHANGE; if (toys.optflags & FLAG_v) flags |= SELINUX_ANDROID_RESTORECON_VERBOSE; for (s = toys.optargs; *s; s++) if (selinux_android_restorecon(*s, flags) < 0) perror_msg("restorecon failed: %s", *s); #endif }