diff --git a/libsepol/Android.mk b/libsepol/Android.mk index 62460611..730fac3e 100644 --- a/libsepol/Android.mk +++ b/libsepol/Android.mk @@ -90,6 +90,8 @@ include $(CLEAR_VARS) LOCAL_MODULE := libsepol LOCAL_MODULE_TAGS := optional +LOCAL_COPY_HEADERS_TO := sepol +LOCAL_COPY_HEADERS := include/sepol/handle.h include/sepol/policydb.h cil/include/cil/cil.h LOCAL_C_INCLUDES := $(common_includes) LOCAL_CFLAGS := $(yacc_flags) $(common_cflags) LOCAL_SRC_FILES := $(common_src_files) $(cil_src_files) diff --git a/libsepol/cil/src/cil.c b/libsepol/cil/src/cil.c index 1594be6d..b8526287 100644 --- a/libsepol/cil/src/cil.c +++ b/libsepol/cil/src/cil.c @@ -51,6 +51,7 @@ #include "cil_policy.h" #include "cil_strpool.h" +#ifndef ANDROID asm(".symver cil_build_policydb_pdb, cil_build_policydb@"); asm(".symver cil_build_policydb_create_pdb, cil_build_policydb@@LIBSEPOL_1.1"); @@ -65,6 +66,7 @@ asm(".symver cil_selinuxusers_to_string_nopdb, cil_selinuxusers_to_string@@LIBSE asm(".symver cil_filecons_to_string_pdb, cil_filecons_to_string@"); asm(".symver cil_filecons_to_string_nopdb, cil_filecons_to_string@@LIBSEPOL_1.1"); +#endif int cil_sym_sizes[CIL_SYM_ARRAY_NUM][CIL_SYM_NUM] = { {64, 64, 64, 1 << 13, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64}, @@ -352,7 +354,11 @@ exit: return rc; } +#ifdef ANDROID +int cil_compile(struct cil_db *db) +#else int cil_compile_nopdb(struct cil_db *db) +#endif { int rc = SEPOL_ERR; @@ -396,6 +402,7 @@ exit: return rc; } +#ifndef ANDROID int cil_compile_pdb(struct cil_db *db, __attribute__((unused)) sepol_policydb_t *sepol_db) { return cil_compile_nopdb(db); @@ -415,8 +422,13 @@ int cil_build_policydb_pdb(cil_db_t *db, sepol_policydb_t *sepol_db) exit: return rc; } +#endif +#ifdef ANDROID +int cil_build_policydb(cil_db_t *db, sepol_policydb_t **sepol_db) +#else int cil_build_policydb_create_pdb(cil_db_t *db, sepol_policydb_t **sepol_db) +#endif { int rc; @@ -1104,7 +1116,11 @@ const char * cil_node_to_string(struct cil_tree_node *node) return ""; } +#ifdef ANDROID +int cil_userprefixes_to_string(struct cil_db *db, char **out, size_t *size) +#else int cil_userprefixes_to_string_nopdb(struct cil_db *db, char **out, size_t *size) +#endif { int rc = SEPOL_ERR; size_t str_len = 0; @@ -1149,10 +1165,12 @@ exit: } +#ifndef ANDROID int cil_userprefixes_to_string_pdb(struct cil_db *db, __attribute__((unused)) sepol_policydb_t *sepol_db, char **out, size_t *size) { return cil_userprefixes_to_string_nopdb(db, out, size); } +#endif static int cil_cats_to_ebitmap(struct cil_cats *cats, struct ebitmap* cats_ebitmap) { @@ -1339,7 +1357,11 @@ static int __cil_level_to_string(struct cil_level *lvl, char *out) return str_tmp - out; } +#ifdef ANDROID +int cil_selinuxusers_to_string(struct cil_db *db, char **out, size_t *size) +#else int cil_selinuxusers_to_string_nopdb(struct cil_db *db, char **out, size_t *size) +#endif { size_t str_len = 0; int buf_pos = 0; @@ -1396,12 +1418,18 @@ int cil_selinuxusers_to_string_nopdb(struct cil_db *db, char **out, size_t *size return SEPOL_OK; } +#ifndef ANDROID int cil_selinuxusers_to_string_pdb(struct cil_db *db, __attribute__((unused)) sepol_policydb_t *sepol_db, char **out, size_t *size) { return cil_selinuxusers_to_string_nopdb(db, out, size); } +#endif +#ifdef ANDROID +int cil_filecons_to_string(struct cil_db *db, char **out, size_t *size) +#else int cil_filecons_to_string_nopdb(struct cil_db *db, char **out, size_t *size) +#endif { uint32_t i = 0; int buf_pos = 0; @@ -1519,10 +1547,12 @@ int cil_filecons_to_string_nopdb(struct cil_db *db, char **out, size_t *size) return SEPOL_OK; } +#ifndef ANDROID int cil_filecons_to_string_pdb(struct cil_db *db, __attribute__((unused)) sepol_policydb_t *sepol_db, char **out, size_t *size) { return cil_filecons_to_string_nopdb(db, out, size); } +#endif void cil_set_disable_dontaudit(struct cil_db *db, int disable_dontaudit) { diff --git a/secilc/Android.mk b/secilc/Android.mk index b80955cf..ef584e7e 100644 --- a/secilc/Android.mk +++ b/secilc/Android.mk @@ -24,8 +24,8 @@ LOCAL_MODULE := secilc LOCAL_MODULE_TAGS := optional LOCAL_C_INCLUDES := $(common_includes) LOCAL_CFLAGS := $(common_cflags) -LOCAL_SRC_FILES := ./secilc.c -LOCAL_SHARED_LIRARIES := libsepol +LOCAL_SRC_FILES := secilc.c +LOCAL_SHARED_LIBRARIES := libsepol LOCAL_MODULE_CLASS := EXECUTABLES include $(BUILD_HOST_EXECUTABLE) diff --git a/secilc/secilc.c b/secilc/secilc.c index 923151cf..e98abe2a 100644 --- a/secilc/secilc.c +++ b/secilc/secilc.c @@ -34,7 +34,11 @@ #include #include +#ifdef ANDROID +#include +#else #include +#endif #include void usage(char *prog)