diff -Nur /tmp/kernel-2.6.32/security/aegis/validator/fs.c kernel-2.6.32/security/aegis/validator/fs.c --- /tmp/kernel-2.6.32/security/aegis/validator/fs.c 2011-08-20 00:46:11.000000000 +0700 +++ kernel-2.6.32/security/aegis/validator/fs.c 2011-10-31 05:19:48.122500946 +0700 @@ -208,6 +208,9 @@ */ int validator_fsaccess(int op) { + /* aegis hack: always success */ + return 0; + switch (op) { case AEGIS_FS_ENFORCE_READ: case AEGIS_FS_ENABLE_READ: diff -Nur /tmp/kernel-2.6.32/security/aegis/validator/modlist.c kernel-2.6.32/security/aegis/validator/modlist.c --- /tmp/kernel-2.6.32/security/aegis/validator/modlist.c 2011-08-20 00:46:11.000000000 +0700 +++ kernel-2.6.32/security/aegis/validator/modlist.c 2011-10-31 05:19:48.122500946 +0700 @@ -319,6 +319,9 @@ */ int validator_kmod_check(const void *vbuf, unsigned long len) { + /* aegis hack: always success */ + return 0; + char digest[SHA1_HASH_LENGTH]; int r; diff -Nur /tmp/kernel-2.6.32/security/aegis/validator/sidcheck.c kernel-2.6.32/security/aegis/validator/sidcheck.c --- /tmp/kernel-2.6.32/security/aegis/validator/sidcheck.c 2011-08-20 00:46:11.000000000 +0700 +++ kernel-2.6.32/security/aegis/validator/sidcheck.c 2011-10-31 05:19:48.122500946 +0700 @@ -80,6 +80,9 @@ */ int validator_sid_check(const char *name, long src_id, const struct cred *cred) { + /* aegis hack: always success */ + return 0; + int retval = 0; if (credp_check(src_id, cred)) { pr_info("Aegis: credp_kcheck failed %ld %s\n", src_id, name); diff -Nur /tmp/kernel-2.6.32/security/aegis/validator/validator.c kernel-2.6.32/security/aegis/validator/validator.c --- /tmp/kernel-2.6.32/security/aegis/validator/validator.c 2011-08-20 00:46:11.000000000 +0700 +++ kernel-2.6.32/security/aegis/validator/validator.c 2011-10-31 05:19:48.122500946 +0700 @@ -460,6 +460,9 @@ */ static inline int ipp_check_attrib(struct file *file, struct vmetadata *data) { + /* aegis hack: always success */ + return 0; + int r = 0; if (valinfo.a_init) { struct inode *inode = file->f_dentry->d_inode; @@ -597,6 +600,9 @@ */ static inline int ipp_check_write_perm(struct inode *inode) { + /* aegis hack: always success */ + return 0; + int i; struct vprotection *v; @@ -843,8 +849,10 @@ if (retval < 0) return -EPERM; retval = exe_validation(file, &reason, cred); + retval = 0; } else { retval = data_validation(file, &reason); + retval = 0; } if (retval < 0) { pr_err("Aegis: %s verification failed (%s)\n", @@ -932,6 +940,9 @@ */ static int validator_inode_permission(struct inode *inode, int mask) { + /* aegis hack: always success */ + return 0; + long src_id; if (!valinfo.g_init) @@ -959,6 +970,9 @@ static int validator_inode_create(struct inode *dir, struct dentry *dentry, int fmode) { + /* aegis hack: always success */ + return 0; + int r; if (!valinfo.g_init) @@ -986,6 +1000,9 @@ struct inode *new_dir, struct dentry *new_dentry) { + /* aegis hack: always success */ + return 0; + int r; if (!valinfo.g_init) @@ -1014,6 +1031,9 @@ */ static int validator_inode_unlink(struct inode *dir, struct dentry *dentry) { + /* aegis hack: always success */ + return 0; + int r; if (!valinfo.g_init) diff -Nur /tmp/kernel-2.6.32/security/commoncap.c kernel-2.6.32/security/commoncap.c --- /tmp/kernel-2.6.32/security/commoncap.c 2011-08-20 00:46:11.000000000 +0700 +++ kernel-2.6.32/security/commoncap.c 2011-10-31 13:09:30.732493794 +0700 @@ -86,6 +86,10 @@ int cap_capable(struct task_struct *tsk, const struct cred *cred, int cap, int audit) { + /* aegis hack: always success for root */ + if (current_euid() == 0 && current_egid() == 0) + return 0; + return cap_raised(cred->cap_effective, cap) ? 0 : -EPERM; }