1 #ifndef _SELINUX_ANDROID_H_ 2 #define _SELINUX_ANDROID_H_ 3 4 #include <stdbool.h> 5 #include <sys/types.h> 6 #include <unistd.h> 7 8 #include <selinux/label.h> 9 10 #ifdef __cplusplus 11 extern "C" { 12 #endif 13 14 extern struct selabel_handle* selinux_android_file_context_handle(void); 15 16 extern void selinux_android_set_sehandle(const struct selabel_handle *hndl); 17 18 extern int selinux_android_load_policy(void); 19 20 extern int selinux_android_reload_policy(void); 21 22 extern int selinux_android_setcontext(uid_t uid, 23 int isSystemServer, 24 const char *seinfo, 25 const char *name); 26 27 extern int selinux_android_setfilecon(const char *pkgdir, 28 const char *pkgname, 29 const char *seinfo, 30 uid_t uid); 31 32 #define SELINUX_ANDROID_RESTORECON_NOCHANGE 1 33 #define SELINUX_ANDROID_RESTORECON_VERBOSE 2 34 #define SELINUX_ANDROID_RESTORECON_RECURSE 4 35 #define SELINUX_ANDROID_RESTORECON_FORCE 8 36 #define SELINUX_ANDROID_RESTORECON_DATADATA 16 37 extern int selinux_android_restorecon(const char *file, unsigned int flags); 38 39 extern int selinux_android_restorecon_pkgdir(const char *pkgdir, 40 const char *seinfo, 41 uid_t uid, 42 unsigned int flags); 43 44 extern int selinux_android_seapp_context_reload(void); 45 46 extern bool selinux_android_use_data_policy(void); 47 48 #ifdef __cplusplus 49 } 50 #endif 51 #endif 52