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