Magisk/native/jni/include/magiskpolicy.hpp

61 lines
1.6 KiB
C++
Raw Normal View History

2019-06-30 19:09:31 -07:00
#pragma once
#include <stdlib.h>
2020-03-09 01:50:30 -07:00
#include <selinux.hpp>
2020-05-21 06:48:02 -07:00
#define ALL nullptr
struct policydb;
class sepolicy {
public:
typedef const char * c_str;
~sepolicy();
// Public static factory functions
static sepolicy *from_file(c_str file);
static sepolicy *from_split();
static sepolicy *compile_split();
// External APIs
2020-05-24 04:16:40 -07:00
bool to_file(c_str file);
2020-05-21 06:48:02 -07:00
void parse_statement(c_str stmt);
void load_rule_file(c_str file);
// Operation on types
bool type(c_str name, c_str attr);
bool attribute(c_str name);
2020-05-24 04:16:40 -07:00
bool permissive(c_str type);
bool enforce(c_str type);
bool typeattribute(c_str type, c_str attr);
bool exists(c_str type);
2020-05-21 06:48:02 -07:00
// Access vector rules
2020-05-24 04:16:40 -07:00
bool allow(c_str src, c_str tgt, c_str cls, c_str perm);
bool deny(c_str src, c_str tgt, c_str cls, c_str perm);
bool auditallow(c_str src, c_str tgt, c_str cls, c_str perm);
bool dontaudit(c_str src, c_str tgt, c_str cls, c_str perm);
2020-05-21 06:48:02 -07:00
// Extended permissions access vector rules
2020-05-24 04:16:40 -07:00
bool allowxperm(c_str src, c_str tgt, c_str cls, c_str range);
bool auditallowxperm(c_str src, c_str tgt, c_str cls, c_str range);
bool dontauditxperm(c_str src, c_str tgt, c_str cls, c_str range);
2020-05-21 06:48:02 -07:00
// Type rules
2020-05-24 04:16:40 -07:00
bool type_transition(c_str src, c_str tgt, c_str cls, c_str def, c_str obj = nullptr);
bool type_change(c_str src, c_str tgt, c_str cls, c_str def);
bool type_member(c_str src, c_str tgt, c_str cls, c_str def);
2020-05-21 06:48:02 -07:00
// File system labeling
2020-05-24 04:16:40 -07:00
bool genfscon(c_str fs_name, c_str path, c_str ctx);
2020-05-21 06:48:02 -07:00
// Magisk
void magisk_rules();
// Deprecate
bool create(c_str name) { return type(name, "domain"); }
2020-05-23 00:18:25 -07:00
protected:
2020-05-21 06:48:02 -07:00
policydb *db;
};