6db4831e98
Android 14
74 lines
1.9 KiB
C
74 lines
1.9 KiB
C
/*
|
|
* Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify it
|
|
* under the terms of the GNU General Public License version 2
|
|
* as published by the Free Software Foundation.
|
|
*/
|
|
|
|
#ifndef __DEFEX_RULES_H
|
|
#define __DEFEX_RULES_H
|
|
|
|
#ifdef DEFEX_TRUSTED_MAP_ENABLE
|
|
#include "ptree.h"
|
|
#endif
|
|
|
|
#define STATIC_RULES_MAX_STR 32
|
|
#define INTEGRITY_LENGTH 32
|
|
#define FEATURE_NAME_MAX_STR 32
|
|
|
|
#define GET_ITEM_OFFSET(item_ptr) (((char *)item_ptr) - ((char *)defex_packed_rules))
|
|
#define GET_ITEM_PTR(offset, base_ptr) ((struct rule_item_struct *)(((char *)base_ptr) + (offset)))
|
|
|
|
enum feature_types {
|
|
feature_is_file = 1,
|
|
feature_for_recovery = 2,
|
|
feature_ped_path = 4,
|
|
feature_ped_exception = 8,
|
|
feature_ped_status = 16,
|
|
feature_safeplace_path = 32,
|
|
feature_safeplace_status = 64,
|
|
feature_immutable_path_open = 128,
|
|
feature_immutable_path_write = 256,
|
|
feature_immutable_src_exception = 512,
|
|
feature_immutable_status = 1024,
|
|
feature_umhbin_path = 2048,
|
|
feature_trusted_map_status = 4096,
|
|
feature_integrity_check = 8192
|
|
};
|
|
|
|
struct feature_match_entry {
|
|
char feature_name[FEATURE_NAME_MAX_STR];
|
|
int feature_num;
|
|
};
|
|
|
|
struct static_rule {
|
|
unsigned int feature_type;
|
|
char rule[STATIC_RULES_MAX_STR];
|
|
};
|
|
|
|
struct rule_item_struct {
|
|
unsigned short int next_level;
|
|
union {
|
|
struct {
|
|
unsigned short int next_file;
|
|
unsigned short int feature_type;
|
|
} __attribute__((packed));
|
|
unsigned int data_size;
|
|
} __attribute__((packed));
|
|
unsigned char size;
|
|
#ifdef DEFEX_INTEGRITY_ENABLE
|
|
unsigned char integrity[INTEGRITY_LENGTH];
|
|
#endif /* DEFEX_INTEGRITY_ENABLE */
|
|
char name[0];
|
|
} __attribute__((packed));
|
|
|
|
int check_rules_ready(void);
|
|
|
|
#ifdef DEFEX_TRUSTED_MAP_ENABLE
|
|
/* "Header" for DTM's dynamically loaded policy */
|
|
extern struct PPTree dtm_tree;
|
|
#endif
|
|
|
|
#endif /* __DEFEX_RULES_H */
|