66 lines
1.7 KiB
C
66 lines
1.7 KiB
C
#ifndef ANDROID_PERMS_H
|
|
# define ANDROID_PERMS_H
|
|
|
|
# include "config.h"
|
|
# include <ext2fs/ext2fs.h>
|
|
|
|
typedef void (*fs_config_f)(const char *path, int dir,
|
|
const char *target_out_path,
|
|
unsigned *uid, unsigned *gid,
|
|
unsigned *mode, uint64_t *capabilities);
|
|
|
|
/*
|
|
* Represents a range of UID/GID mapping.
|
|
* This maps the id in [|parent_id|, |parent_id| + |length|) into
|
|
* [|child_id|, |child_id| + |length|)
|
|
*/
|
|
struct ugid_map_entry {
|
|
unsigned int child_id;
|
|
unsigned int parent_id;
|
|
unsigned int length;
|
|
};
|
|
|
|
struct ugid_map {
|
|
/* The number of elements in |entries|. */
|
|
size_t size;
|
|
|
|
/* An array of entries. If |size| is 0, this is a null pointer. */
|
|
struct ugid_map_entry* entries;
|
|
};
|
|
|
|
# ifdef _WIN32
|
|
struct selabel_handle;
|
|
static inline errcode_t android_configure_fs(ext2_filsys fs,
|
|
char *src_dir,
|
|
char *target_out,
|
|
char *mountpoint,
|
|
void *seopts,
|
|
unsigned int nopt,
|
|
char *fs_config_file,
|
|
time_t fixed_time,
|
|
const struct ugid_map* uid_map,
|
|
const struct ugdi_map* gid_map)
|
|
{
|
|
return 0;
|
|
}
|
|
# else
|
|
# include <selinux/selinux.h>
|
|
# include <selinux/label.h>
|
|
# if defined(__ANDROID__)
|
|
# include <selinux/android.h>
|
|
# endif
|
|
# include <private/android_filesystem_config.h>
|
|
# include <private/canned_fs_config.h>
|
|
|
|
errcode_t android_configure_fs(ext2_filsys fs, char *src_dir,
|
|
char *target_out,
|
|
char *mountpoint,
|
|
struct selinux_opt *seopts,
|
|
unsigned int nopt,
|
|
char *fs_config_file, time_t fixed_time,
|
|
const struct ugid_map* uid_map,
|
|
const struct ugid_map* gid_map);
|
|
|
|
# endif
|
|
#endif /* !ANDROID_PERMS_H */
|