You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
48 lines
1.3 KiB
48 lines
1.3 KiB
/* 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
|
|
*/
|
|
|
|
#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
|
|
}
|