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 struct selabel_handle* selinux_android_prop_context_handle(void); 17 18 extern struct selabel_handle* selinux_android_service_context_handle(void); 19 20 extern void selinux_android_set_sehandle(const struct selabel_handle *hndl); 21 22 extern int selinux_android_load_policy(void); 23 24 extern int selinux_android_reload_policy(void); 25 26 extern int selinux_android_setcon(const char *con); 27 28 extern int selinux_android_setcontext(uid_t uid, 29 bool isSystemServer, 30 const char *seinfo, 31 const char *name); 32 33 extern int selinux_android_setfilecon(const char *pkgdir, 34 const char *pkgname, 35 const char *seinfo, 36 uid_t uid); 37 38 extern int selinux_log_callback(int type, const char *fmt, ...) 39 __attribute__ ((format(printf, 2, 3))); 40 41 #define SELINUX_ANDROID_RESTORECON_NOCHANGE 1 42 #define SELINUX_ANDROID_RESTORECON_VERBOSE 2 43 #define SELINUX_ANDROID_RESTORECON_RECURSE 4 44 #define SELINUX_ANDROID_RESTORECON_FORCE 8 45 #define SELINUX_ANDROID_RESTORECON_DATADATA 16 46 #define SELINUX_ANDROID_RESTORECON_SKIPCE 32 47 extern int selinux_android_restorecon(const char *file, unsigned int flags); 48 49 extern int selinux_android_restorecon_pkgdir(const char *pkgdir, 50 const char *seinfo, 51 uid_t uid, 52 unsigned int flags); 53 54 extern int selinux_android_seapp_context_reload(void); 55 56 #ifdef __cplusplus 57 } 58 #endif 59 #endif 60