• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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