SYMBOL INDEX (997 symbols across 80 files) FILE: js/index.d.ts type ExecOptions (line 1) | interface ExecOptions { type ExecResults (line 6) | interface ExecResults { type SpawnOptions (line 15) | interface SpawnOptions { type Stdio (line 20) | interface Stdio { type ChildProcess (line 24) | interface ChildProcess { type PackagesInfo (line 44) | interface PackagesInfo { FILE: js/index.js function getUniqueCallbackName (line 2) | function getUniqueCallbackName(prefix) { function exec (line 6) | function exec(command, options) { function Stdio (line 34) | function Stdio() { function ChildProcess (line 51) | function ChildProcess() { function spawn (line 71) | function spawn(command, args, options) { function fullScreen (line 109) | function fullScreen(isFullScreen) { function enableEdgeToEdge (line 113) | function enableEdgeToEdge(enable) { function toast (line 117) | function toast(message) { function moduleInfo (line 121) | function moduleInfo() { function listPackages (line 125) | function listPackages(type) { function getPackagesInfo (line 133) | function getPackagesInfo(packages) { function exit (line 144) | function exit() { FILE: kernel/allowlist.c type root_profile (line 35) | struct root_profile type non_root_profile (line 36) | struct non_root_profile function remove_uid_from_arr (line 42) | static void remove_uid_from_arr(uid_t uid) function init_default_profiles (line 59) | static void init_default_profiles() type perm_data (line 76) | struct perm_data { type list_head (line 82) | struct list_head function ksu_show_allow_list (line 91) | void ksu_show_allow_list(void) function ksu_get_app_profile (line 103) | bool ksu_get_app_profile(struct app_profile *profile) function forbid_system_uid (line 124) | static inline bool forbid_system_uid(uid_t uid) function profile_valid (line 131) | static bool profile_valid(struct app_profile *profile) function ksu_set_app_profile (line 155) | int ksu_set_app_profile(struct app_profile *profile) function __ksu_is_allow_uid (line 257) | bool __ksu_is_allow_uid(uid_t uid) function __ksu_is_allow_uid_for_current (line 289) | bool __ksu_is_allow_uid_for_current(uid_t uid) function ksu_uid_should_umount (line 298) | bool ksu_uid_should_umount(uid_t uid) function ksu_get_root_profile (line 324) | void ksu_get_root_profile(uid_t uid, struct root_profile *profile) function ksu_get_allow_list (line 354) | bool ksu_get_allow_list(int *array, u16 length, u16 *out_length, u16 *ou... function do_persistent_allow_list (line 382) | static void do_persistent_allow_list(struct callback_head *_cb) function ksu_persistent_allow_list (line 424) | void ksu_persistent_allow_list() function ksu_load_allow_list (line 450) | void ksu_load_allow_list() function ksu_prune_allowlist (line 499) | void ksu_prune_allowlist(bool (*is_uid_valid)(uid_t, char *, void *), function ksu_allowlist_init (line 537) | void ksu_allowlist_init(void) function ksu_allowlist_exit (line 552) | void ksu_allowlist_exit(void) FILE: kernel/allowlist.h type app_profile (line 38) | struct app_profile type app_profile (line 39) | struct app_profile type root_profile (line 42) | struct root_profile function is_appuid (line 44) | static inline bool is_appuid(uid_t uid) function is_isolated_process (line 50) | static inline bool is_isolated_process(uid_t uid) FILE: kernel/apk_sign.c type sdesc (line 21) | struct sdesc { type sdesc (line 26) | struct sdesc type crypto_shash (line 26) | struct crypto_shash type sdesc (line 28) | struct sdesc type shash_desc (line 31) | struct shash_desc function calc_hash (line 39) | static int calc_hash(struct crypto_shash *alg, const unsigned char *data, function ksu_sha256 (line 56) | static int ksu_sha256(const unsigned char *data, unsigned int datalen, function check_block (line 73) | static bool check_block(struct file *fp, u32 *size4, loff_t *pos, u32 *o... type zip_entry_header (line 119) | struct zip_entry_header { function has_v1_signature_file (line 134) | static bool has_v1_signature_file(struct file *fp) function __always_inline (line 169) | static __always_inline bool check_v2_signature(char *path, function set_expected_size (line 292) | static int set_expected_size(const char *val, const struct kernel_param ... type kernel_param_ops (line 300) | struct kernel_param_ops function get_pkg_from_apk_path (line 310) | int get_pkg_from_apk_path(char *pkg, const char *path) function is_manager_apk (line 349) | bool is_manager_apk(char *path) FILE: kernel/app_profile.c type group_info (line 20) | struct group_info type group_info (line 22) | struct group_info function setup_groups (line 25) | void setup_groups(struct root_profile *profile, struct cred *cred) type task_struct (line 64) | struct task_struct function disable_seccomp (line 66) | static void disable_seccomp(void) function escape_with_root_profile (line 106) | void escape_with_root_profile(void) function escape_to_root_for_init (line 197) | void escape_to_root_for_init(void) FILE: kernel/app_profile.h type cred (line 7) | struct cred type root_profile (line 15) | struct root_profile { type non_root_profile (line 34) | struct non_root_profile { type app_profile (line 38) | struct app_profile { FILE: kernel/feature.c type ksu_feature_handler (line 6) | struct ksu_feature_handler function ksu_register_feature_handler (line 10) | int ksu_register_feature_handler(const struct ksu_feature_handler *handler) function ksu_unregister_feature_handler (line 44) | int ksu_unregister_feature_handler(u32 feature_id) function ksu_get_feature (line 70) | int ksu_get_feature(u32 feature_id, u64 *value, bool *supported) function ksu_set_feature (line 114) | int ksu_set_feature(u32 feature_id, u64 value) function ksu_feature_init (line 150) | void ksu_feature_init(void) function ksu_feature_exit (line 161) | void ksu_feature_exit(void) FILE: kernel/feature.h type ksu_feature_id (line 6) | enum ksu_feature_id { type ksu_feature_handler (line 16) | struct ksu_feature_handler { type ksu_feature_handler (line 23) | struct ksu_feature_handler FILE: kernel/file_wrapper.c type ksu_file_wrapper (line 24) | struct ksu_file_wrapper { type ksu_file_wrapper (line 29) | struct ksu_file_wrapper type file (line 29) | struct file function ksu_wrapper_open (line 31) | static int ksu_wrapper_open(struct inode *ino, struct file *fp) type file_operations (line 50) | struct file_operations function loff_t (line 55) | static loff_t ksu_wrapper_llseek(struct file *fp, loff_t off, int flags) function ksu_wrapper_read (line 62) | static ssize_t ksu_wrapper_read(struct file *fp, char __user *ptr, size_... function ksu_wrapper_write (line 70) | static ssize_t ksu_wrapper_write(struct file *fp, const char __user *ptr, function ksu_wrapper_read_iter (line 78) | static ssize_t ksu_wrapper_read_iter(struct kiocb *iocb, struct iov_iter... function ksu_wrapper_write_iter (line 86) | static ssize_t ksu_wrapper_write_iter(struct kiocb *iocb, struct iov_ite... function ksu_wrapper_iopoll (line 95) | static int ksu_wrapper_iopoll(struct kiocb *kiocb, struct io_comp_batch ... function ksu_wrapper_iopoll (line 104) | static int ksu_wrapper_iopoll(struct kiocb *kiocb, bool spin) function ksu_wrapper_iterate (line 114) | static int ksu_wrapper_iterate(struct file *fp, struct dir_context *dc) function ksu_wrapper_iterate_shared (line 122) | static int ksu_wrapper_iterate_shared(struct file *fp, struct dir_contex... function __poll_t (line 129) | static __poll_t ksu_wrapper_poll(struct file *fp, struct poll_table_stru... function ksu_wrapper_unlocked_ioctl (line 136) | static long ksu_wrapper_unlocked_ioctl(struct file *fp, unsigned int cmd, function ksu_wrapper_compat_ioctl (line 144) | static long ksu_wrapper_compat_ioctl(struct file *fp, unsigned int cmd, function ksu_wrapper_mmap (line 152) | static int ksu_wrapper_mmap(struct file *fp, struct vm_area_struct *vma) function ksu_wrapper_flush (line 159) | static int ksu_wrapper_flush(struct file *fp, fl_owner_t id) function ksu_wrapper_fsync (line 166) | static int ksu_wrapper_fsync(struct file *fp, loff_t off1, loff_t off2, function ksu_wrapper_fasync (line 174) | static int ksu_wrapper_fasync(int arg, struct file *fp, int arg2) function ksu_wrapper_lock (line 181) | static int ksu_wrapper_lock(struct file *fp, int arg1, struct file_lock ... function ksu_wrapper_sendpage (line 189) | static ssize_t ksu_wrapper_sendpage(struct file *fp, struct page *pg, in... function ksu_wrapper_get_unmapped_area (line 201) | static unsigned long ksu_wrapper_get_unmapped_area(struct file *fp, function ksu_wrapper_flock (line 217) | static int ksu_wrapper_flock(struct file *fp, int arg1, struct file_lock... function ksu_wrapper_splice_write (line 227) | static ssize_t ksu_wrapper_splice_write(struct pipe_inode_info *pii, function ksu_wrapper_splice_read (line 239) | static ssize_t ksu_wrapper_splice_read(struct file *fp, loff_t *off, function ksu_wrapper_splice_eof (line 252) | void ksu_wrapper_splice_eof(struct file *fp) function ksu_wrapper_setlease (line 263) | static int ksu_wrapper_setlease(struct file *fp, int arg1, function ksu_wrapper_setlease (line 274) | static int ksu_wrapper_setlease(struct file *fp, int arg1, function ksu_wrapper_setlease (line 285) | static int ksu_wrapper_setlease(struct file *fp, long arg1, function ksu_wrapper_fallocate (line 297) | static long ksu_wrapper_fallocate(struct file *fp, int mode, loff_t offset, function ksu_wrapper_show_fdinfo (line 308) | static void ksu_wrapper_show_fdinfo(struct seq_file *m, struct file *f) function ksu_wrapper_copy_file_range (line 318) | static ssize_t ksu_wrapper_copy_file_range(struct file *file_in, loff_t ... function loff_t (line 334) | static loff_t ksu_wrapper_remap_file_range(struct file *file_in, loff_t ... function ksu_wrapper_fadvise (line 352) | static int ksu_wrapper_fadvise(struct file *fp, loff_t off1, loff_t off2, type ksu_file_wrapper (line 363) | struct ksu_file_wrapper function ksu_wrapper_release (line 365) | static int ksu_wrapper_release(struct inode *inode, struct file *filp) type ksu_file_wrapper (line 376) | struct ksu_file_wrapper type file (line 376) | struct file type ksu_file_wrapper (line 378) | struct ksu_file_wrapper type ksu_file_wrapper (line 379) | struct ksu_file_wrapper function ksu_release_file_wrapper (line 441) | static void ksu_release_file_wrapper(struct ksu_file_wrapper *data) type dentry (line 447) | struct dentry type path (line 450) | struct path function ksu_wrapper_d_release (line 454) | static void ksu_wrapper_d_release(struct dentry *dentry) type dentry_operations (line 461) | struct dentry_operations type vfsmount (line 475) | struct vfsmount type inode (line 477) | struct inode type inode (line 479) | struct inode type inode (line 481) | struct inode type qstr (line 482) | struct qstr type file (line 501) | struct file type file_operations (line 502) | struct file_operations type inode (line 503) | struct inode type inode (line 505) | struct inode type file (line 506) | struct file function ksu_install_file_wrapper (line 536) | int ksu_install_file_wrapper(int fd) function ksu_file_wrapper_init (line 611) | void ksu_file_wrapper_init(void) FILE: kernel/kernel_umount.c function kernel_umount_feature_get (line 23) | static int kernel_umount_feature_get(u64 *value) function kernel_umount_feature_set (line 29) | static int kernel_umount_feature_set(u64 value) type ksu_feature_handler (line 37) | struct ksu_feature_handler type path (line 44) | struct path function ksu_umount_mnt (line 46) | static void ksu_umount_mnt(struct path *path, int flags) function try_umount (line 54) | static void try_umount(const char *mnt, int flags) type umount_tw (line 71) | struct umount_tw { function umount_tw_func (line 75) | static void umount_tw_func(struct callback_head *cb) function ksu_handle_umount (line 94) | int ksu_handle_umount(uid_t old_uid, uid_t new_uid) function ksu_kernel_umount_init (line 152) | void ksu_kernel_umount_init(void) function ksu_kernel_umount_exit (line 159) | void ksu_kernel_umount_exit(void) FILE: kernel/kernel_umount.h type mount_entry (line 15) | struct mount_entry { type list_head (line 20) | struct list_head type rw_semaphore (line 21) | struct rw_semaphore FILE: kernel/ksu.c function ksu_setup_stack_chk_guard (line 34) | __attribute__((visibility("hidden"))); function kernelsu_init_early (line 47) | __attribute__((naked)) int __init kernelsu_init_early(void) type cred (line 59) | struct cred function kernelsu_init (line 69) | int __init kernelsu_init(void) function kernelsu_exit (line 149) | void kernelsu_exit(void) FILE: kernel/ksu.h function startswith (line 14) | static inline int startswith(char *s, char *prefix) function endswith (line 19) | static inline int endswith(const char *s, const char *t) type cred (line 28) | struct cred FILE: kernel/ksud.c type work_struct (line 62) | struct work_struct type work_struct (line 63) | struct work_struct type work_struct (line 64) | struct work_struct function on_post_fs_data (line 66) | void on_post_fs_data(void) type super_block (line 82) | struct super_block function nuke_ext4_sysfs (line 83) | int nuke_ext4_sysfs(const char *mnt) function on_module_mounted (line 105) | void on_module_mounted(void) function on_boot_completed (line 111) | void on_boot_completed(void) type user_arg_ptr (line 119) | struct user_arg_ptr { type user_arg_ptr (line 131) | struct user_arg_ptr function count (line 161) | static int __maybe_unused count(struct user_arg_ptr argv, int max) function on_post_fs_data_cbfun (line 186) | static void on_post_fs_data_cbfun(struct callback_head *cb) type callback_head (line 191) | struct callback_head function check_argv (line 194) | static bool check_argv(struct user_arg_ptr argv, int index, function ksu_initialize_selinux_tw_func (line 219) | static void ksu_initialize_selinux_tw_func(struct callback_head *cb) function ksu_handle_execveat_ksud (line 228) | int ksu_handle_execveat_ksud(int *fd, struct filename **filename_ptr, type file (line 294) | struct file type kiocb (line 295) | struct kiocb type iov_iter (line 295) | struct iov_iter type file_operations (line 296) | struct file_operations function read_proxy (line 305) | static ssize_t read_proxy(struct file *file, char __user *buf, size_t co... function read_iter_proxy (line 339) | static ssize_t read_iter_proxy(struct kiocb *iocb, struct iov_iter *to) function is_init_rc (line 371) | static bool is_init_rc(struct file *fp) function ksu_handle_sys_read (line 401) | static void ksu_handle_sys_read(unsigned int fd) function is_volumedown_enough (line 448) | static bool is_volumedown_enough(unsigned int count) function ksu_handle_input_handle_event (line 453) | int ksu_handle_input_handle_event(unsigned int *type, unsigned int *code, function ksu_is_safe_mode (line 471) | bool ksu_is_safe_mode() function sys_execve_handler_pre (line 497) | static int sys_execve_handler_pre(struct kprobe *p, struct pt_regs *regs) function sys_read_handler_pre (line 532) | static int sys_read_handler_pre(struct kprobe *p, struct pt_regs *regs) function sys_fstat_handler_pre (line 541) | static int sys_fstat_handler_pre(struct kretprobe_instance *p, function sys_fstat_handler_post (line 562) | static int sys_fstat_handler_post(struct kretprobe_instance *p, function input_handle_event_handler_pre (line 586) | static int input_handle_event_handler_pre(struct kprobe *p, type kprobe (line 595) | struct kprobe type kprobe (line 600) | struct kprobe type kretprobe (line 605) | struct kretprobe type kprobe (line 612) | struct kprobe function do_stop_init_rc_hook (line 617) | static void do_stop_init_rc_hook(struct work_struct *work) function do_stop_execve_hook (line 623) | static void do_stop_execve_hook(struct work_struct *work) function do_stop_input_hook (line 628) | static void do_stop_input_hook(struct work_struct *work) function stop_init_rc_hook (line 633) | static void stop_init_rc_hook() function stop_execve_hook (line 639) | static void stop_execve_hook() function stop_input_hook (line 645) | static void stop_input_hook() function ksu_ksud_init (line 657) | void ksu_ksud_init() function ksu_ksud_exit (line 678) | void ksu_ksud_exit() FILE: kernel/manager.h function ksu_is_manager_appid_valid (line 12) | static inline bool ksu_is_manager_appid_valid() function is_manager (line 17) | static inline bool is_manager() function is_uid_manager (line 22) | static inline bool is_uid_manager(uid_t uid) function uid_t (line 27) | static inline uid_t ksu_get_manager_appid() function ksu_set_manager_appid (line 32) | static inline void ksu_set_manager_appid(uid_t appid) function ksu_invalidate_manager_uid (line 37) | static inline void ksu_invalidate_manager_uid() FILE: kernel/pkg_observer.c type watch_dir (line 14) | struct watch_dir { type fsnotify_group (line 22) | struct fsnotify_group function ksu_handle_inode_event (line 24) | static int ksu_handle_inode_event(struct fsnotify_mark *mark, u32 mask, type fsnotify_ops (line 39) | struct fsnotify_ops function add_mark_on_inode (line 43) | static int add_mark_on_inode(struct inode *inode, u32 mask, function watch_one_dir (line 63) | static int watch_one_dir(struct watch_dir *wd) function unwatch_one_dir (line 85) | static void unwatch_one_dir(struct watch_dir *wd) type watch_dir (line 102) | struct watch_dir function ksu_observer_init (line 105) | int ksu_observer_init(void) function ksu_observer_exit (line 122) | void ksu_observer_exit(void) FILE: kernel/seccomp_cache.c type action_cache (line 11) | struct action_cache { type seccomp_filter (line 18) | struct seccomp_filter { function ksu_seccomp_clear_cache (line 33) | void ksu_seccomp_clear_cache(struct seccomp_filter *filter, int nr) function ksu_seccomp_allow_cache (line 50) | void ksu_seccomp_allow_cache(struct seccomp_filter *filter, int nr) FILE: kernel/seccomp_cache.h type seccomp_filter (line 7) | struct seccomp_filter type seccomp_filter (line 8) | struct seccomp_filter FILE: kernel/selinux/rules.c type selinux_avc (line 24) | struct selinux_avc function reset_avc_cache (line 27) | static void reset_avc_cache() function apply_kernelsu_rules (line 42) | void apply_kernelsu_rules() type sepol_data (line 157) | struct sepol_data { type sepol_batch_cursor (line 162) | struct sepol_batch_cursor { function sepol_remaining (line 167) | static size_t sepol_remaining(const struct sepol_batch_cursor *cursor) function sepol_read_cmd_header (line 172) | static int sepol_read_cmd_header(struct sepol_batch_cursor *cursor, function sepol_read_string (line 185) | static int sepol_read_string(struct sepol_batch_cursor *cursor, function sepol_require_not_all (line 217) | static int sepol_require_not_all(const char *value, const char *name) function sepol_expected_argc (line 227) | static int sepol_expected_argc(u32 cmd) function apply_one_sepolicy_cmd (line 252) | static int apply_one_sepolicy_cmd(struct policydb *db, function handle_sepolicy (line 426) | int handle_sepolicy(void __user *user_data, u64 data_len) FILE: kernel/selinux/selinux.c function transive_to_domain (line 26) | static int transive_to_domain(const char *domain, struct cred *cred) function setup_selinux (line 54) | void setup_selinux(const char *domain, struct cred *cred) function setup_ksu_cred (line 62) | void setup_ksu_cred(void) function setenforce (line 69) | void setenforce(bool enforce) function getenforce (line 76) | bool getenforce(void) type lsm_context (line 92) | struct lsm_context { function __security_secid_to_secctx (line 97) | static int __security_secid_to_secctx(u32 secid, struct lsm_context *cp) function __security_release_secctx (line 101) | static void __security_release_secctx(struct lsm_context *cp) function cache_sid (line 115) | void cache_sid(void) function is_sid_match (line 160) | static bool is_sid_match(const struct cred *cred, u32 cached_sid, function is_task_ksu_domain (line 191) | bool is_task_ksu_domain(const struct cred *cred) function is_ksu_domain (line 196) | bool is_ksu_domain(void) function is_zygote (line 201) | bool is_zygote(const struct cred *cred) function is_init (line 206) | bool is_init(const struct cred *cred) FILE: kernel/selinux/selinux.h type cred (line 17) | struct cred type cred (line 25) | struct cred type cred (line 29) | struct cred type cred (line 31) | struct cred FILE: kernel/selinux/sepolicy.c type avtab_node (line 22) | struct avtab_node type policydb (line 22) | struct policydb type avtab_key (line 23) | struct avtab_key type avtab_extended_perms (line 24) | struct avtab_extended_perms type policydb (line 26) | struct policydb type policydb (line 29) | struct policydb type type_datum (line 29) | struct type_datum type type_datum (line 30) | struct type_datum type class_datum (line 30) | struct class_datum type perm_datum (line 31) | struct perm_datum type policydb (line 33) | struct policydb type type_datum (line 33) | struct type_datum type type_datum (line 34) | struct type_datum type class_datum (line 34) | struct class_datum type policydb (line 37) | struct policydb type policydb (line 41) | struct policydb type policydb (line 44) | struct policydb type policydb (line 48) | struct policydb type policydb (line 51) | struct policydb type policydb (line 53) | struct policydb type policydb (line 56) | struct policydb type type_datum (line 56) | struct type_datum type type_datum (line 57) | struct type_datum type policydb (line 59) | struct policydb type avtab_node (line 95) | struct avtab_node type policydb (line 95) | struct policydb type avtab_key (line 96) | struct avtab_key type avtab_extended_perms (line 97) | struct avtab_extended_perms type avtab_node (line 99) | struct avtab_node type avtab_datum (line 120) | struct avtab_datum type avtab_key (line 133) | struct avtab_key type avtab_datum (line 134) | struct avtab_datum function add_rule (line 146) | static bool add_rule(struct policydb *db, const char *s, const char *t, function add_rule_raw (line 196) | static void add_rule_raw(struct policydb *db, struct type_datum *src, function add_xperm_rule_raw (line 270) | static void add_xperm_rule_raw(struct policydb *db, struct type_datum *src, function add_xperm_rule (line 358) | static bool add_xperm_rule(struct policydb *db, const char *s, const cha... function add_type_rule (line 407) | static bool add_type_rule(struct policydb *db, const char *s, const char... function u32 (line 450) | static u32 filenametr_hash(const void *k) function filenametr_cmp (line 465) | static int filenametr_cmp(const void *k1, const void *k2) type hashtab_key_params (line 482) | struct hashtab_key_params function add_filename_trans (line 488) | static bool add_filename_trans(struct policydb *db, const char *s, function add_genfscon (line 553) | static bool add_genfscon(struct policydb *db, const char *fs_name, function add_type (line 587) | static bool add_type(struct policydb *db, const char *type_name, bool attr) function set_type_state (line 662) | static bool set_type_state(struct policydb *db, const char *type_name, function add_typeattribute_raw (line 688) | static void add_typeattribute_raw(struct policydb *db, struct type_datum... function add_typeattribute (line 711) | static bool add_typeattribute(struct policydb *db, const char *type, function ksu_type (line 739) | bool ksu_type(struct policydb *db, const char *name, const char *attr) function ksu_attribute (line 744) | bool ksu_attribute(struct policydb *db, const char *name) function ksu_permissive (line 749) | bool ksu_permissive(struct policydb *db, const char *type) function ksu_enforce (line 754) | bool ksu_enforce(struct policydb *db, const char *type) function ksu_typeattribute (line 759) | bool ksu_typeattribute(struct policydb *db, const char *type, const char... function ksu_exists (line 764) | bool ksu_exists(struct policydb *db, const char *type) function ksu_allow (line 770) | bool ksu_allow(struct policydb *db, const char *src, const char *tgt, function ksu_deny (line 776) | bool ksu_deny(struct policydb *db, const char *src, const char *tgt, function ksu_auditallow (line 782) | bool ksu_auditallow(struct policydb *db, const char *src, const char *tgt, function ksu_dontaudit (line 787) | bool ksu_dontaudit(struct policydb *db, const char *src, const char *tgt, function ksu_allowxperm (line 794) | bool ksu_allowxperm(struct policydb *db, const char *src, const char *tgt, function ksu_auditallowxperm (line 801) | bool ksu_auditallowxperm(struct policydb *db, const char *src, const cha... function ksu_dontauditxperm (line 808) | bool ksu_dontauditxperm(struct policydb *db, const char *src, const char... function ksu_type_transition (line 816) | bool ksu_type_transition(struct policydb *db, const char *src, const cha... function ksu_type_change (line 826) | bool ksu_type_change(struct policydb *db, const char *src, const char *tgt, function ksu_type_member (line 832) | bool ksu_type_member(struct policydb *db, const char *src, const char *tgt, function ksu_genfscon (line 839) | bool ksu_genfscon(struct policydb *db, const char *fs_name, const char *... function copy_hashtab_node (line 854) | static int copy_hashtab_node(struct hashtab_node *new_node, function destroy_hashtab_node (line 863) | static int destroy_hashtab_node(void *key, void *datum, void *data) function shallow_copy_hashtab (line 869) | static int shallow_copy_hashtab(struct hashtab *new_tab, function copy_class_datum_partially_callback (line 878) | static int function destroy_class_datum_partially_callback (line 931) | static int destroy_class_datum_partially_callback(void *key, void *datum, function free_class_datum_partially (line 957) | static void free_class_datum_partially(struct policydb *db) function copy_class_datum_partially (line 970) | static int copy_class_datum_partially(struct policydb *new_db, function copy_avtab (line 1005) | static int copy_avtab(struct avtab *new_avtab, struct avtab *old_avtab) function copy_role_datum_partially_callback (line 1034) | static int function destroy_role_datum_partially_callback (line 1060) | static int destroy_role_datum_partially_callback(void *key, void *datum, function free_role_datum_partially (line 1071) | static void free_role_datum_partially(struct policydb *db) function copy_role_datum_partially (line 1083) | static int copy_role_datum_partially(struct policydb *new_db, function free_type_datum_partially (line 1116) | static void free_type_datum_partially(struct policydb *db) function copy_type_datum_partially (line 1138) | static int copy_type_datum_partially(struct policydb *new_db, function free_permissive_map (line 1205) | static void free_permissive_map(struct policydb *db) function copy_permissive_map (line 1210) | static int copy_permissive_map(struct policydb *new_db, struct policydb ... function free_filename_trans (line 1218) | static void free_filename_trans(struct policydb *db) function copy_filename_trans (line 1223) | static int copy_filename_trans(struct policydb *new_db, struct policydb ... function ksu_destroy_sepolicy (line 1232) | void ksu_destroy_sepolicy(struct selinux_policy *pol) type selinux_policy (line 1254) | struct selinux_policy type selinux_policy (line 1254) | struct selinux_policy type selinux_policy (line 1257) | struct selinux_policy type policydb (line 1262) | struct policydb FILE: kernel/selinux/sepolicy.h type selinux_policy (line 8) | struct selinux_policy type selinux_policy (line 8) | struct selinux_policy type selinux_policy (line 10) | struct selinux_policy type policydb (line 13) | struct policydb type policydb (line 14) | struct policydb type policydb (line 15) | struct policydb type policydb (line 16) | struct policydb type policydb (line 17) | struct policydb type policydb (line 18) | struct policydb type policydb (line 21) | struct policydb type policydb (line 23) | struct policydb type policydb (line 25) | struct policydb type policydb (line 27) | struct policydb type policydb (line 31) | struct policydb type policydb (line 33) | struct policydb type policydb (line 35) | struct policydb type policydb (line 39) | struct policydb type policydb (line 41) | struct policydb type policydb (line 43) | struct policydb type policydb (line 47) | struct policydb FILE: kernel/setuid_hook.c function ksu_install_manager_fd_tw_func (line 25) | static void ksu_install_manager_fd_tw_func(struct callback_head *cb) function ksu_handle_setresuid (line 31) | int ksu_handle_setresuid(uid_t ruid, uid_t euid, uid_t suid) function ksu_setuid_hook_init (line 76) | void ksu_setuid_hook_init(void) function ksu_setuid_hook_exit (line 81) | void ksu_setuid_hook_exit(void) FILE: kernel/su_mount_ns.c type path (line 23) | struct path type pt_regs (line 28) | struct pt_regs type pt_regs (line 30) | struct pt_regs function ksu_sys_setns (line 33) | static long ksu_sys_setns(int fd, int flags) function ksu_mnt_ns_global (line 51) | static void ksu_mnt_ns_global(void) function ksu_mnt_ns_individual (line 146) | static void ksu_mnt_ns_individual(void) function ksu_setup_mount_ns_tw_func (line 165) | static void ksu_setup_mount_ns_tw_func(struct callback_head *cb) function setup_mount_ns (line 178) | void setup_mount_ns(int32_t ns_mode) FILE: kernel/su_mount_ns.h type ksu_mns_tw (line 8) | struct ksu_mns_tw { FILE: kernel/sucompat.c function su_compat_feature_get (line 28) | static int su_compat_feature_get(u64 *value) function su_compat_feature_set (line 34) | static int su_compat_feature_set(u64 value) type ksu_feature_handler (line 42) | struct ksu_feature_handler function ksu_handle_faccessat (line 72) | int ksu_handle_faccessat(int *dfd, const char __user **filename_user, in... function ksu_handle_stat (line 93) | int ksu_handle_stat(int *dfd, const char __user **filename_user, int *fl... function ksu_handle_execve_sucompat (line 118) | int ksu_handle_execve_sucompat(const char __user **filename_user, function ksu_sucompat_init (line 169) | void ksu_sucompat_init() function ksu_sucompat_exit (line 176) | void ksu_sucompat_exit() FILE: kernel/supercalls.c function only_manager (line 29) | bool only_manager(void) function only_root (line 34) | bool only_root(void) function manager_or_root (line 39) | bool manager_or_root(void) function always_allow (line 44) | bool always_allow(void) function allowed_for_su (line 49) | bool allowed_for_su(void) function do_grant_root (line 56) | static int do_grant_root(void __user *arg) function do_get_info (line 66) | static int do_get_info(void __user *arg) function do_report_event (line 93) | static int do_report_event(void __user *arg) function do_set_sepolicy (line 140) | static int do_set_sepolicy(void __user *arg) function do_check_safemode (line 151) | static int do_check_safemode(void __user *arg) function do_new_get_allow_list_common (line 169) | static int do_new_get_allow_list_common(void __user *arg, bool allow) function do_new_get_deny_list (line 214) | static int do_new_get_deny_list(void __user *arg) function do_new_get_allow_list (line 219) | static int do_new_get_allow_list(void __user *arg) function do_get_allow_list_common (line 224) | static int do_get_allow_list_common(void __user *arg, bool allow) function do_get_deny_list (line 265) | static int do_get_deny_list(void __user *arg) function do_get_allow_list (line 270) | static int do_get_allow_list(void __user *arg) function do_uid_granted_root (line 275) | static int do_uid_granted_root(void __user *arg) function do_uid_should_umount (line 293) | static int do_uid_should_umount(void __user *arg) function do_get_manager_appid (line 311) | static int do_get_manager_appid(void __user *arg) function do_get_app_profile (line 325) | static int do_get_app_profile(void __user *arg) function do_set_app_profile (line 346) | static int do_set_app_profile(void __user *arg) function do_get_feature (line 364) | static int do_get_feature(void __user *arg) function do_set_feature (line 391) | static int do_set_feature(void __user *arg) function do_get_wrapper_fd (line 410) | static int do_get_wrapper_fd(void __user *arg) function do_manage_mark (line 425) | static int do_manage_mark(void __user *arg) function do_nuke_ext4_sysfs (line 490) | static int do_nuke_ext4_sysfs(void __user *arg) type list_head (line 520) | struct list_head function add_try_umount (line 523) | static int add_try_umount(void __user *arg) type ksu_ioctl_cmd_map (line 629) | struct ksu_ioctl_cmd_map type ksu_install_fd_tw (line 713) | struct ksu_install_fd_tw { function ksu_install_fd_tw_func (line 718) | static void ksu_install_fd_tw_func(struct callback_head *cb) function reboot_handler_pre (line 737) | static int reboot_handler_pre(struct kprobe *p, struct pt_regs *regs) type kprobe (line 766) | struct kprobe function ksu_supercalls_init (line 771) | void ksu_supercalls_init(void) function ksu_supercalls_exit (line 789) | void ksu_supercalls_exit(void) function anon_ksu_ioctl (line 795) | static long anon_ksu_ioctl(struct file *filp, unsigned int cmd, function anon_ksu_release (line 824) | static int anon_ksu_release(struct inode *inode, struct file *filp) type file_operations (line 831) | struct file_operations function ksu_install_fd (line 839) | int ksu_install_fd(void) FILE: kernel/supercalls.h type ksu_become_daemon_cmd (line 14) | struct ksu_become_daemon_cmd { type ksu_get_info_cmd (line 23) | struct ksu_get_info_cmd { type ksu_report_event_cmd (line 29) | struct ksu_report_event_cmd { type ksu_set_sepolicy_cmd (line 33) | struct ksu_set_sepolicy_cmd { type ksu_sepolicy_cmd_hdr (line 38) | struct ksu_sepolicy_cmd_hdr { type ksu_check_safemode_cmd (line 50) | struct ksu_check_safemode_cmd { type ksu_get_allow_list_cmd (line 55) | struct ksu_get_allow_list_cmd { type ksu_new_get_allow_list_cmd (line 61) | struct ksu_new_get_allow_list_cmd { type ksu_uid_granted_root_cmd (line 67) | struct ksu_uid_granted_root_cmd { type ksu_uid_should_umount_cmd (line 72) | struct ksu_uid_should_umount_cmd { type ksu_get_manager_appid_cmd (line 77) | struct ksu_get_manager_appid_cmd { type ksu_get_app_profile_cmd (line 81) | struct ksu_get_app_profile_cmd { type ksu_set_app_profile_cmd (line 85) | struct ksu_set_app_profile_cmd { type ksu_get_feature_cmd (line 89) | struct ksu_get_feature_cmd { type ksu_set_feature_cmd (line 95) | struct ksu_set_feature_cmd { type ksu_get_wrapper_fd_cmd (line 100) | struct ksu_get_wrapper_fd_cmd { type ksu_manage_mark_cmd (line 105) | struct ksu_manage_mark_cmd { type ksu_nuke_ext4_sysfs_cmd (line 116) | struct ksu_nuke_ext4_sysfs_cmd { type ksu_add_try_umount_cmd (line 120) | struct ksu_add_try_umount_cmd { type ksu_ioctl_cmd_map (line 161) | struct ksu_ioctl_cmd_map { FILE: kernel/syscall_hook_manager.c function ksu_clear_task_tracepoint_flag_if_needed (line 29) | void ksu_clear_task_tracepoint_flag_if_needed(struct task_struct *t) function handle_process_mark (line 40) | static void handle_process_mark(bool mark) function ksu_mark_all_process (line 53) | void ksu_mark_all_process(void) function ksu_unmark_all_process (line 59) | void ksu_unmark_all_process(void) function ksu_mark_running_process_locked (line 65) | static void ksu_mark_running_process_locked() function ksu_mark_running_process (line 95) | void ksu_mark_running_process() function ksu_get_task_mark (line 110) | int ksu_get_task_mark(pid_t pid) function ksu_set_task_mark (line 135) | int ksu_set_task_mark(pid_t pid, bool mark) type kretprobe (line 165) | struct kretprobe type kretprobe (line 168) | struct kretprobe type kretprobe (line 168) | struct kretprobe function destroy_kretprobe (line 186) | static void destroy_kretprobe(struct kretprobe **rp_ptr) function syscall_regfunc_handler (line 197) | static int syscall_regfunc_handler(struct kretprobe_instance *ri, function syscall_unregfunc_handler (line 214) | static int syscall_unregfunc_handler(struct kretprobe_instance *ri, type kretprobe (line 231) | struct kretprobe type kretprobe (line 232) | struct kretprobe function check_syscall_fastpath (line 235) | static inline bool check_syscall_fastpath(int nr) function ksu_handle_init_mark_tracker (line 249) | int ksu_handle_init_mark_tracker(const char __user **filename_user) function ksu_sys_enter_handler (line 284) | static void ksu_sys_enter_handler(void *data, struct pt_regs *regs, long... function ksu_syscall_hook_manager_init (line 333) | void ksu_syscall_hook_manager_init(void) function ksu_syscall_hook_manager_exit (line 364) | void ksu_syscall_hook_manager_exit(void) FILE: kernel/syscall_hook_manager.h function ksu_set_task_tracepoint_flag (line 21) | static inline void ksu_set_task_tracepoint_flag(struct task_struct *t) function ksu_clear_task_tracepoint_flag (line 30) | static inline void ksu_clear_task_tracepoint_flag(struct task_struct *t) type task_struct (line 39) | struct task_struct FILE: kernel/throne_tracker.c type uid_data (line 19) | struct uid_data { function crown_manager (line 25) | static void crown_manager(const char *apk, struct list_head *uid_data) type data_path (line 49) | struct data_path { type apk_path_hash (line 55) | struct apk_path_hash { type list_head (line 61) | struct list_head type my_dir_context (line 63) | struct my_dir_context { function FILLDIR_RETURN_TYPE (line 83) | FILLDIR_RETURN_TYPE my_actor(struct dir_context *ctx, const char *name, function search_manager (line 163) | void search_manager(const char *path, int depth, struct list_head *uid_d... function is_uid_exist (line 241) | static bool is_uid_exist(uid_t uid, char *package, void *data) function track_throne (line 257) | void track_throne(bool prune_only) function ksu_throne_tracker_init (line 350) | void ksu_throne_tracker_init() function ksu_throne_tracker_exit (line 355) | void ksu_throne_tracker_exit() FILE: kernel/tools/check_symbol.c type ElfFile (line 10) | typedef struct { function open_elf (line 18) | int open_elf(const char *path, ElfFile *elf) function close_elf (line 64) | void close_elf(ElfFile *elf) function Elf64_Shdr (line 69) | Elf64_Shdr *find_symtab(ElfFile *elf) function Elf64_Shdr (line 79) | Elf64_Shdr *find_section(ElfFile *elf, const char *name) function Elf64_Sym (line 90) | Elf64_Sym *find_symbol(ElfFile *elf, const char *name, Elf64_Shdr *symtab, function main (line 105) | int main(int argc, char *argv[]) FILE: kernel/util.c function try_set_access_flag (line 8) | bool try_set_access_flag(unsigned long addr) FILE: manager/app/src/main/cpp/jni.cc function JNIEXPORT (line 16) | JNIEXPORT jint JNICALL function JNIEXPORT (line 27) | JNIEXPORT jint JNICALL function JNIEXPORT (line 37) | JNIEXPORT jboolean JNICALL function JNIEXPORT (line 43) | JNIEXPORT jboolean JNICALL function JNIEXPORT (line 49) | JNIEXPORT jboolean JNICALL function JNIEXPORT (line 55) | JNIEXPORT jboolean JNICALL function JNIEXPORT (line 61) | JNIEXPORT jboolean JNICALL function fillIntArray (line 66) | static void fillIntArray(JNIEnv *env, jobject list, int *data, int count) { function addIntToList (line 77) | static void addIntToList(JNIEnv *env, jobject list, int ele) { function capListToBits (line 86) | static uint64_t capListToBits(JNIEnv *env, jobject list) { function getListSize (line 106) | static int getListSize(JNIEnv *env, jobject list) { function fillArrayWithList (line 112) | static void fillArrayWithList(JNIEnv *env, jobject list, int *data, int ... function JNIEXPORT (line 124) | JNIEXPORT jobject JNICALL function JNIEXPORT (line 220) | JNIEXPORT jboolean JNICALL function JNIEXPORT (line 306) | JNIEXPORT jboolean JNICALL function JNIEXPORT (line 311) | JNIEXPORT jboolean JNICALL function JNIEXPORT (line 316) | JNIEXPORT jboolean JNICALL function JNIEXPORT (line 322) | JNIEXPORT jboolean JNICALL function JNIEXPORT (line 328) | JNIEXPORT jboolean JNICALL function JNIEXPORT (line 334) | JNIEXPORT jstring JNICALL function fork_dont_care_and_exec_ksud (line 343) | int fork_dont_care_and_exec_ksud(const char *path) { function JNIEXPORT (line 379) | JNIEXPORT void JNICALL FILE: manager/app/src/main/cpp/ksu.cc function scan_driver_fd (line 22) | static inline int scan_driver_fd() { function ksuctl (line 66) | static int ksuctl(unsigned long op, Args &&... args) { type ksu_get_info_cmd (line 77) | struct ksu_get_info_cmd function get_info (line 79) | struct ksu_get_info_cmd get_info() { function get_version (line 86) | uint32_t get_version() { function get_allow_list (line 91) | bool get_allow_list(struct ksu_new_get_allow_list_cmd *cmd) { function is_safe_mode (line 95) | bool is_safe_mode() { function is_lkm_mode (line 101) | bool is_lkm_mode() { function is_late_load_mode (line 109) | bool is_late_load_mode() { function is_manager (line 117) | bool is_manager() { function is_pr_build (line 125) | bool is_pr_build() { function uid_should_umount (line 133) | bool uid_should_umount(int uid) { function set_app_profile (line 140) | bool set_app_profile(const app_profile *profile) { function get_app_profile (line 146) | int get_app_profile(app_profile *profile) { function set_su_enabled (line 153) | bool set_su_enabled(bool enabled) { function is_su_enabled (line 160) | bool is_su_enabled() { function get_feature (line 172) | static inline bool get_feature(uint32_t feature_id, uint64_t *out_value,... function set_feature (line 183) | static inline bool set_feature(uint32_t feature_id, uint64_t value) { function set_kernel_umount_enabled (line 190) | bool set_kernel_umount_enabled(bool enabled) { function is_kernel_umount_enabled (line 194) | bool is_kernel_umount_enabled() { FILE: manager/app/src/main/cpp/ksu.h type root_profile (line 34) | struct root_profile { type non_root_profile (line 53) | struct non_root_profile { type app_profile (line 57) | struct app_profile { type ksu_feature_id (line 87) | enum ksu_feature_id { type ksu_get_feature_cmd (line 93) | struct ksu_get_feature_cmd { type ksu_set_feature_cmd (line 99) | struct ksu_set_feature_cmd { type ksu_become_daemon_cmd (line 104) | struct ksu_become_daemon_cmd { type ksu_get_info_flag (line 108) | enum ksu_get_info_flag : uint32_t { type ksu_get_info_cmd (line 115) | struct ksu_get_info_cmd { type ksu_report_event_cmd (line 121) | struct ksu_report_event_cmd { type ksu_set_sepolicy_cmd (line 125) | struct ksu_set_sepolicy_cmd { type ksu_check_safemode_cmd (line 130) | struct ksu_check_safemode_cmd { type ksu_new_get_allow_list_cmd (line 134) | struct ksu_new_get_allow_list_cmd { type ksu_uid_granted_root_cmd (line 140) | struct ksu_uid_granted_root_cmd { type ksu_uid_should_umount_cmd (line 145) | struct ksu_uid_should_umount_cmd { type ksu_get_manager_appid_cmd (line 150) | struct ksu_get_manager_appid_cmd { type ksu_get_app_profile_cmd (line 154) | struct ksu_get_app_profile_cmd { type ksu_set_app_profile_cmd (line 158) | struct ksu_set_app_profile_cmd { type ksu_new_get_allow_list_cmd (line 188) | struct ksu_new_get_allow_list_cmd FILE: manager/app/src/main/java/me/weishu/kernelsu/magica/AppZygotePreload.java class AppZygotePreload (line 11) | public class AppZygotePreload implements ZygotePreload { method forkDontCareAndExecKsud (line 14) | private static native void forkDontCareAndExecKsud(String ksudPath); method doPreload (line 16) | @Override FILE: manager/app/src/main/java/me/weishu/kernelsu/magica/BootCompletedReceiver.java class BootCompletedReceiver (line 10) | public class BootCompletedReceiver extends BroadcastReceiver { method onReceive (line 12) | @Override FILE: manager/app/src/main/java/me/weishu/kernelsu/magica/MagicaService.java class MagicaService (line 10) | public class MagicaService extends Service { method onBind (line 11) | @Nullable FILE: manager/app/src/main/java/me/weishu/kernelsu/ui/util/HanziToPinyin.java class HanziToPinyin (line 35) | public class HanziToPinyin { method HanziToPinyin (line 346) | protected HanziToPinyin(boolean hasChinaCollator) { method getInstance (line 350) | public static HanziToPinyin getInstance() { method doSelfValidation (line 384) | private static boolean doSelfValidation() { method getToken (line 403) | private Token getToken(char character) { method get (line 472) | public ArrayList get(final String input) { method addToken (line 520) | private void addToken( method toPinyinString (line 527) | public String toPinyinString(String string) { class Token (line 539) | public static class Token { method Token (line 562) | public Token() { method Token (line 565) | public Token(int type, String source, String target) { FILE: manager/app/src/main/java/me/weishu/kernelsu/ui/webui/MimeUtil.java class MimeUtil (line 21) | class MimeUtil { method getMimeFromFileName (line 23) | public static String getMimeFromFileName(String fileName) { method guessHardcodedMime (line 46) | private static String guessHardcodedMime(String fileName) { FILE: manager/app/src/main/java/me/weishu/kernelsu/ui/webui/SuFilePathHandler.java class SuFilePathHandler (line 43) | public final class SuFilePathHandler implements WebViewAssetLoader.PathH... method SuFilePathHandler (line 91) | public SuFilePathHandler(@NonNull Context context, @NonNull File direc... method getCanonicalDirPath (line 109) | public static String getCanonicalDirPath(@NonNull File file) throws IO... method getCanonicalFileIfChild (line 115) | public static File getCanonicalFileIfChild(@NonNull File parent, @NonN... method handleSvgzStream (line 125) | @NonNull method openFile (line 131) | public static InputStream openFile(@NonNull File file, @NonNull Shell ... method guessMimeType (line 145) | @NonNull method isAllowedInternalStorageDir (line 151) | private boolean isAllowedInternalStorageDir(@NonNull Context context) ... method handle (line 181) | @Override type InsetsSupplier (line 227) | public interface InsetsSupplier { method get (line 228) | @NonNull type OnInsetsRequestedListener (line 232) | public interface OnInsetsRequestedListener { method onInsetsRequested (line 233) | void onInsetsRequested(boolean enable); FILE: scripts/ksubot.py function get_caption (line 32) | def get_caption(): function check_environ (line 49) | def check_environ(): function main (line 84) | async def main(): FILE: userspace/ksud/build.rs function get_git_version (line 7) | fn get_git_version() -> Result<(u32, String), std::io::Error> { function main (line 31) | fn main() { FILE: userspace/ksud/src/apk_sign.rs function get_apk_signature (line 4) | pub fn get_apk_signature(apk: &str) -> Result<(u32, String)> { function calc_cert_sha256 (line 90) | fn calc_cert_sha256( FILE: userspace/ksud/src/assets.rs constant RESETPROP_PATH (line 12) | pub const RESETPROP_PATH: &str = concatcp!(BINARY_DIR, "resetprop"); constant BUSYBOX_PATH (line 13) | pub const BUSYBOX_PATH: &str = concatcp!(BINARY_DIR, "busybox"); constant BOOTCTL_PATH (line 14) | pub const BOOTCTL_PATH: &str = concatcp!(BINARY_DIR, "bootctl"); function ensure_binaries (line 16) | pub fn ensure_binaries(ignore_if_exist: bool) -> anyhow::Result<()> { type Asset (line 42) | struct Asset; type Asset (line 48) | struct Asset; function get_asset_data (line 50) | pub fn get_asset_data(name: &str) -> Result) -> Result<... function list_supported_kmi (line 61) | pub fn list_supported_kmi() -> std::vec::Vec { FILE: userspace/ksud/src/boot_patch.rs function ensure_gki_kernel (line 32) | pub(super) fn ensure_gki_kernel() -> Result<()> { function get_kernel_version (line 39) | pub fn get_kernel_version() -> Result<(i32, i32, i32)> { function parse_kmi (line 62) | fn parse_kmi(version: &str) -> Result { function parse_kmi_from_uname (line 72) | fn parse_kmi_from_uname() -> Result { function parse_kmi_from_modules (line 78) | fn parse_kmi_from_modules() -> Result { function get_current_kmi (line 95) | pub fn get_current_kmi() -> Result { function calculate_sha1 (line 99) | fn calculate_sha1(file_path: impl AsRef) -> Result { function do_backup (line 118) | pub(super) fn do_backup( function clean_backup (line 143) | pub(super) fn clean_backup(sha1: &str) -> Result<()> { function flash_boot (line 165) | pub(super) fn flash_boot(bootdevice: &Option, new_boot: &PathBuf... function choose_boot_partition (line 178) | pub fn choose_boot_partition( function get_slot_suffix (line 204) | pub fn get_slot_suffix(ota: bool) -> String { function list_available_partitions (line 217) | pub fn list_available_partitions() -> Vec { function post_ota (line 228) | pub(super) fn post_ota() -> Result<()> { function dd (line 267) | pub(super) fn dd, Q: AsRef>(ifile: P, ofile: Q) -> ... function parse_kmi_from_kernel (line 287) | fn parse_kmi_from_kernel(kernel: &PathBuf, workdir: &Path) -> Result, workdir: &Path) -> ... function find_boot_image (line 405) | fn find_boot_image( type BootPatchArgs (line 447) | pub struct BootPatchArgs { function patch (line 531) | pub fn patch(args: BootPatchArgs) -> Result<()> { type BootRestoreArgs (line 831) | pub struct BootRestoreArgs { function restore (line 869) | pub fn restore(args: BootRestoreArgs) -> Result<()> { FILE: userspace/ksud/src/cli.rs type Args (line 14) | struct Args { type Commands (line 20) | enum Commands { type BootInfo (line 109) | enum BootInfo { type Debug (line 134) | enum Debug { type MarkCommand (line 177) | enum MarkCommand { type Sepolicy (line 204) | enum Sepolicy { type Module (line 225) | enum Module { type ModuleConfigCmd (line 273) | enum ModuleConfigCmd { type Profile (line 315) | enum Profile { type Feature (line 355) | enum Feature { type Kernel (line 390) | enum Kernel { type UmountOp (line 406) | enum UmountOp { function run (line 424) | pub fn run() -> Result<()> { FILE: userspace/ksud/src/cli_non_android.rs type Args (line 10) | struct Args { type Commands (line 16) | enum Commands { function run (line 33) | pub fn run() -> Result<()> { FILE: userspace/ksud/src/debug.rs constant KERNEL_PARAM_PATH (line 9) | const KERNEL_PARAM_PATH: &str = "/sys/module/kernelsu"; function read_u32 (line 11) | fn read_u32(path: &PathBuf) -> Result { function set_kernel_param (line 18) | fn set_kernel_param(uid: u32) -> Result<()> { function get_pkg_uid (line 31) | fn get_pkg_uid(pkg: &str) -> Result { function set_manager (line 39) | pub fn set_manager(pkg: &str) -> Result<()> { function mark_get (line 53) | pub fn mark_get(pid: i32) -> Result<()> { function mark_set (line 66) | pub fn mark_set(pid: i32) -> Result<()> { function mark_unset (line 77) | pub fn mark_unset(pid: i32) -> Result<()> { function mark_refresh (line 88) | pub fn mark_refresh() -> Result<()> { FILE: userspace/ksud/src/defs.rs constant ADB_DIR (line 5) | pub const ADB_DIR: &str = "/data/adb/"; constant WORKING_DIR (line 6) | pub const WORKING_DIR: &str = concatcp!(ADB_DIR, "ksu/"); constant BINARY_DIR (line 7) | pub const BINARY_DIR: &str = concatcp!(WORKING_DIR, "bin/"); constant LOG_DIR (line 8) | pub const LOG_DIR: &str = concatcp!(WORKING_DIR, "log/"); constant PROFILE_DIR (line 10) | pub const PROFILE_DIR: &str = concatcp!(WORKING_DIR, "profile/"); constant PROFILE_SELINUX_DIR (line 11) | pub const PROFILE_SELINUX_DIR: &str = concatcp!(PROFILE_DIR, "selinux/"); constant PROFILE_TEMPLATE_DIR (line 12) | pub const PROFILE_TEMPLATE_DIR: &str = concatcp!(PROFILE_DIR, "templates... constant KSURC_PATH (line 14) | pub const KSURC_PATH: &str = concatcp!(WORKING_DIR, ".ksurc"); constant DAEMON_PATH (line 15) | pub const DAEMON_PATH: &str = concatcp!(ADB_DIR, "ksud"); constant MAGISKBOOT_PATH (line 16) | pub const MAGISKBOOT_PATH: &str = concatcp!(BINARY_DIR, "magiskboot"); constant DAEMON_LINK_PATH (line 18) | pub const DAEMON_LINK_PATH: &str = concatcp!(BINARY_DIR, "ksud"); constant MODULE_DIR (line 20) | pub const MODULE_DIR: &str = concatcp!(ADB_DIR, "modules/"); constant MODULE_UPDATE_DIR (line 21) | pub const MODULE_UPDATE_DIR: &str = concatcp!(ADB_DIR, "modules_update/"); constant METAMODULE_DIR (line 22) | pub const METAMODULE_DIR: &str = concatcp!(ADB_DIR, "metamodule/"); constant MODULE_WEB_DIR (line 24) | pub const MODULE_WEB_DIR: &str = "webroot"; constant MODULE_ACTION_SH (line 25) | pub const MODULE_ACTION_SH: &str = "action.sh"; constant DISABLE_FILE_NAME (line 26) | pub const DISABLE_FILE_NAME: &str = "disable"; constant UPDATE_FILE_NAME (line 27) | pub const UPDATE_FILE_NAME: &str = "update"; constant REMOVE_FILE_NAME (line 28) | pub const REMOVE_FILE_NAME: &str = "remove"; constant MODULE_CONFIG_DIR (line 31) | pub const MODULE_CONFIG_DIR: &str = concatcp!(WORKING_DIR, "module_confi... constant PERSIST_CONFIG_NAME (line 32) | pub const PERSIST_CONFIG_NAME: &str = "persist.config"; constant TEMP_CONFIG_NAME (line 33) | pub const TEMP_CONFIG_NAME: &str = "tmp.config"; constant METAMODULE_MOUNT_SCRIPT (line 36) | pub const METAMODULE_MOUNT_SCRIPT: &str = "metamount.sh"; constant METAMODULE_METAINSTALL_SCRIPT (line 37) | pub const METAMODULE_METAINSTALL_SCRIPT: &str = "metainstall.sh"; constant METAMODULE_METAUNINSTALL_SCRIPT (line 38) | pub const METAMODULE_METAUNINSTALL_SCRIPT: &str = "metauninstall.sh"; constant KSU_BACKUP_DIR (line 40) | pub const KSU_BACKUP_DIR: &str = WORKING_DIR; constant KSU_BACKUP_FILE_PREFIX (line 41) | pub const KSU_BACKUP_FILE_PREFIX: &str = "ksu_backup_"; constant BACKUP_FILENAME (line 42) | pub const BACKUP_FILENAME: &str = "stock_image.sha1"; constant VERSION_CODE (line 45) | pub const VERSION_CODE: &str = include_str!(concat!(env!("OUT_DIR"), "/V... constant VERSION_NAME (line 46) | pub const VERSION_NAME: &str = include_str!(concat!(env!("OUT_DIR"), "/V... FILE: userspace/ksud/src/feature.rs constant FEATURE_CONFIG_PATH (line 10) | const FEATURE_CONFIG_PATH: &str = concatcp!(defs::WORKING_DIR, ".feature... constant FEATURE_MAGIC (line 12) | const FEATURE_MAGIC: u32 = 0x7f4b5355; constant FEATURE_VERSION (line 13) | const FEATURE_VERSION: u32 = 1; type FeatureId (line 17) | pub enum FeatureId { method from_u32 (line 23) | pub const fn from_u32(id: u32) -> Option { method name (line 31) | pub const fn name(self) -> &'static str { method description (line 38) | pub const fn description(self) -> &'static str { function parse_feature_id (line 50) | fn parse_feature_id(name: &str) -> Result { function load_binary_config (line 58) | pub fn load_binary_config() -> Result> { function save_binary_config (line 113) | pub fn save_binary_config(features: &HashMap) -> Result<()> { function apply_config (line 143) | pub fn apply_config(features: &HashMap) { function get_feature (line 166) | pub fn get_feature(id: &str) -> Result<()> { function get_feature_config (line 187) | pub fn get_feature_config(id: &str) -> Result<()> { function set_feature (line 209) | pub fn set_feature(id: &str, value: u64) -> Result<()> { function list_features (line 256) | pub fn list_features() { function load_config_and_apply (line 315) | pub fn load_config_and_apply() -> Result<()> { function save_config (line 328) | pub fn save_config() -> Result<()> { function check_feature (line 351) | pub fn check_feature(id: &str) -> Result<()> { function init_features (line 378) | pub fn init_features() -> Result<()> { FILE: userspace/ksud/src/init_event.rs function on_post_data_fs (line 12) | pub fn on_post_data_fs() -> Result<()> { function run_stage (line 114) | pub fn run_stage(stage: &str, block: bool) { function on_services (line 142) | pub fn on_services() { function on_boot_completed (line 147) | pub fn on_boot_completed() { function catch_bootlog (line 155) | fn catch_bootlog(logname: &str, command: &[&str]) -> Result<()> { FILE: userspace/ksud/src/ksucalls.rs constant EVENT_POST_FS_DATA (line 8) | const EVENT_POST_FS_DATA: u32 = 1; constant EVENT_BOOT_COMPLETED (line 9) | const EVENT_BOOT_COMPLETED: u32 = 2; constant EVENT_MODULE_MOUNTED (line 10) | const EVENT_MODULE_MOUNTED: u32 = 3; constant K (line 12) | const K: u32 = b'K' as u32; constant KSU_IOCTL_GRANT_ROOT (line 13) | const KSU_IOCTL_GRANT_ROOT: i32 = _IO(K, 1); constant KSU_IOCTL_GET_INFO (line 14) | const KSU_IOCTL_GET_INFO: i32 = _IOR::<()>(K, 2); constant KSU_IOCTL_REPORT_EVENT (line 15) | const KSU_IOCTL_REPORT_EVENT: i32 = _IOW::<()>(K, 3); constant KSU_IOCTL_SET_SEPOLICY (line 16) | const KSU_IOCTL_SET_SEPOLICY: i32 = _IOWR::<()>(K, 4); constant KSU_IOCTL_CHECK_SAFEMODE (line 17) | const KSU_IOCTL_CHECK_SAFEMODE: i32 = _IOR::<()>(K, 5); constant KSU_IOCTL_GET_FEATURE (line 18) | const KSU_IOCTL_GET_FEATURE: i32 = _IOWR::<()>(K, 13); constant KSU_IOCTL_SET_FEATURE (line 19) | const KSU_IOCTL_SET_FEATURE: i32 = _IOW::<()>(K, 14); constant KSU_IOCTL_GET_WRAPPER_FD (line 20) | const KSU_IOCTL_GET_WRAPPER_FD: i32 = _IOW::<()>(K, 15); constant KSU_IOCTL_MANAGE_MARK (line 21) | const KSU_IOCTL_MANAGE_MARK: i32 = _IOWR::<()>(K, 16); constant KSU_IOCTL_NUKE_EXT4_SYSFS (line 22) | const KSU_IOCTL_NUKE_EXT4_SYSFS: i32 = _IOW::<()>(K, 17); constant KSU_IOCTL_ADD_TRY_UMOUNT (line 23) | const KSU_IOCTL_ADD_TRY_UMOUNT: i32 = _IOW::<()>(K, 18); constant KSU_GET_INFO_FLAG_LATE_LOAD (line 26) | const KSU_GET_INFO_FLAG_LATE_LOAD: u32 = 1 << 2; type GetInfoCmd (line 30) | struct GetInfoCmd { type ReportEventCmd (line 37) | struct ReportEventCmd { type SetSepolicyCmd (line 43) | pub struct SetSepolicyCmd { type CheckSafemodeCmd (line 50) | struct CheckSafemodeCmd { type GetFeatureCmd (line 56) | struct GetFeatureCmd { type SetFeatureCmd (line 64) | struct SetFeatureCmd { type GetWrapperFdCmd (line 71) | struct GetWrapperFdCmd { type ManageMarkCmd (line 78) | struct ManageMarkCmd { type NukeExt4SysfsCmd (line 86) | pub struct NukeExt4SysfsCmd { type AddTryUmountCmd (line 92) | struct AddTryUmountCmd { constant KSU_MARK_GET (line 99) | const KSU_MARK_GET: u32 = 1; constant KSU_MARK_MARK (line 100) | const KSU_MARK_MARK: u32 = 2; constant KSU_MARK_UNMARK (line 101) | const KSU_MARK_UNMARK: u32 = 3; constant KSU_MARK_REFRESH (line 102) | const KSU_MARK_REFRESH: u32 = 4; constant KSU_UMOUNT_WIPE (line 105) | const KSU_UMOUNT_WIPE: u8 = 0; constant KSU_UMOUNT_ADD (line 106) | const KSU_UMOUNT_ADD: u8 = 1; constant KSU_UMOUNT_DEL (line 107) | const KSU_UMOUNT_DEL: u8 = 2; constant KSU_INSTALL_MAGIC1 (line 113) | const KSU_INSTALL_MAGIC1: u32 = 0xDEADBEEF; constant KSU_INSTALL_MAGIC2 (line 114) | const KSU_INSTALL_MAGIC2: u32 = 0xCAFEBABE; function scan_driver_fd (line 116) | fn scan_driver_fd() -> Option { function init_driver_fd (line 135) | fn init_driver_fd() -> Option { function ksuctl (line 155) | fn ksuctl(request: i32, arg: *mut T) -> std::io::Result { function get_info (line 170) | fn get_info() -> GetInfoCmd { function get_version (line 182) | pub fn get_version() -> i32 { function is_late_load (line 186) | pub fn is_late_load() -> bool { function grant_root (line 190) | pub fn grant_root() -> std::io::Result<()> { function report_event (line 195) | fn report_event(event: u32) { function report_post_fs_data (line 200) | pub fn report_post_fs_data() { function report_boot_complete (line 204) | pub fn report_boot_complete() { function report_module_mounted (line 208) | pub fn report_module_mounted() { function check_kernel_safemode (line 212) | pub fn check_kernel_safemode() -> bool { function set_sepolicy (line 218) | pub fn set_sepolicy(cmd: &SetSepolicyCmd) -> std::io::Result { function get_feature (line 225) | pub fn get_feature(feature_id: u32) -> std::io::Result<(u64, bool)> { function set_feature (line 236) | pub fn set_feature(feature_id: u32, value: u64) -> std::io::Result<()> { function get_wrapped_fd (line 242) | pub fn get_wrapped_fd(fd: RawFd) -> std::io::Result { function mark_get (line 249) | pub fn mark_get(pid: i32) -> std::io::Result { function mark_set (line 260) | pub fn mark_set(pid: i32) -> std::io::Result<()> { function mark_unset (line 271) | pub fn mark_unset(pid: i32) -> std::io::Result<()> { function mark_refresh (line 282) | pub fn mark_refresh() -> std::io::Result<()> { function nuke_ext4_sysfs (line 292) | pub fn nuke_ext4_sysfs(mnt: &str) -> anyhow::Result<()> { function umount_list_wipe (line 302) | pub fn umount_list_wipe() -> std::io::Result<()> { function umount_list_add (line 313) | pub fn umount_list_add(path: &str, flags: u32) -> anyhow::Result<()> { function umount_list_del (line 325) | pub fn umount_list_del(path: &str) -> anyhow::Result<()> { FILE: userspace/ksud/src/late_load.rs function dump_process_info (line 8) | fn dump_process_info(label: &str) { function run (line 37) | pub fn run() -> Result<()> { FILE: userspace/ksud/src/magica.rs function resetprop (line 10) | const fn resetprop() -> ResetProp { function exec_shell_commands (line 20) | fn exec_shell_commands(commands: &[(&str, &[&str])], log_prefix: &str) -... function enable_adb_root (line 34) | fn enable_adb_root(port: u16) -> Result<()> { function disable_adb_root (line 91) | pub fn disable_adb_root() -> Result<()> { function connect_to_device (line 117) | fn connect_to_device(port: u16) -> Result { function run (line 135) | pub fn run(port: u16) -> Result<()> { FILE: userspace/ksud/src/main.rs function main (line 52) | fn main() -> anyhow::Result<()> { FILE: userspace/ksud/src/metamodule.rs function is_metamodule (line 19) | pub fn is_metamodule(props: &HashMap) -> bool { function get_metamodule_path (line 28) | pub fn get_metamodule_path() -> Option { function has_metamodule (line 70) | pub fn has_metamodule() -> bool { function check_install_safety (line 78) | pub fn check_install_safety() -> Result<(), bool> { function ensure_symlink (line 115) | pub fn ensure_symlink(module_path: &Path) -> Result<()> { function remove_symlink (line 147) | pub fn remove_symlink() -> Result<()> { function get_install_script (line 161) | pub fn get_install_script( function check_metamodule_script (line 199) | fn check_metamodule_script(script_name: &str) -> Option { function exec_metauninstall_script (line 219) | pub fn exec_metauninstall_script(module_id: &str) -> Result<()> { function exec_mount_script (line 244) | pub fn exec_mount_script(module_dir: &str) -> Result<()> { function exec_stage_script (line 267) | pub fn exec_stage_script(stage: &str, block: bool) -> Result<()> { FILE: userspace/ksud/src/module.rs constant INSTALLER_CONTENT (line 33) | const INSTALLER_CONTENT: &str = include_str!("./installer.sh"); constant INSTALL_MODULE_SCRIPT (line 34) | const INSTALL_MODULE_SCRIPT: &str = concatcp!( function validate_module_id (line 48) | pub fn validate_module_id(module_id: &str) -> Result<()> { function get_common_script_envs (line 60) | pub fn get_common_script_envs() -> Vec<(&'static str, String)> { function exec_install_script (line 84) | fn exec_install_script(module_file: &str, is_metamodule: bool) -> Result... function ensure_boot_completed (line 103) | fn ensure_boot_completed() -> Result<()> { type ModuleType (line 112) | pub enum ModuleType { function foreach_module (line 119) | pub fn foreach_module( function foreach_active_module (line 150) | fn foreach_active_module(f: impl FnMut(&Path) -> Result<()>) -> Result<(... function load_sepolicy_rule (line 154) | pub fn load_sepolicy_rule() -> Result<()> { function exec_script (line 171) | pub fn exec_script>(path: T, wait: bool) -> Result<()> { function exec_stage_script (line 242) | pub fn exec_stage_script(stage: &str, block: bool) -> Result<()> { function exec_common_scripts (line 265) | pub fn exec_common_scripts(dir: &str, wait: bool) -> Result<()> { function load_system_prop (line 287) | pub fn load_system_prop() -> Result<()> { function prune_modules (line 303) | pub fn prune_modules() -> Result<()> { function handle_updated_modules (line 362) | pub fn handle_updated_modules() -> Result<()> { function install_module_to_system (line 397) | fn install_module_to_system(zip: &str) -> Result<()> { function install_module (line 543) | pub fn install_module(zip: &str) -> Result<()> { function undo_uninstall_module (line 551) | pub fn undo_uninstall_module(id: &str) -> Result<()> { function uninstall_module (line 568) | pub fn uninstall_module(id: &str) -> Result<()> { function run_action (line 583) | pub fn run_action(id: &str) -> Result<()> { function enable_module (line 590) | pub fn enable_module(id: &str) -> Result<()> { function disable_module (line 607) | pub fn disable_module(id: &str) -> Result<()> { function disable_all_modules (line 619) | pub fn disable_all_modules() -> Result<()> { function uninstall_all_modules (line 623) | pub fn uninstall_all_modules() -> Result<()> { function mark_all_modules (line 628) | fn mark_all_modules(flag_file: &str) -> Result<()> { function read_module_prop (line 643) | pub fn read_module_prop(module_path: &Path) -> Result Vec> { function list_modules (line 809) | pub fn list_modules() -> Result<()> { function get_managed_features (line 818) | pub fn get_managed_features() -> Result>> { FILE: userspace/ksud/src/module_config.rs constant MODULE_CONFIG_MAGIC (line 12) | const MODULE_CONFIG_MAGIC: u32 = 0x4b53554d; constant MODULE_CONFIG_VERSION (line 13) | const MODULE_CONFIG_VERSION: u32 = 1; constant MAX_CONFIG_KEY_LEN (line 16) | pub const MAX_CONFIG_KEY_LEN: usize = 256; constant MAX_CONFIG_VALUE_LEN (line 17) | pub const MAX_CONFIG_VALUE_LEN: usize = 1024 * 1024; constant MAX_CONFIG_COUNT (line 18) | pub const MAX_CONFIG_COUNT: usize = 32; type ConfigType (line 21) | pub enum ConfigType { method filename (line 27) | const fn filename(self) -> &'static str { function parse_bool_config (line 37) | pub fn parse_bool_config(value: &str) -> bool { function validate_config_key (line 47) | pub fn validate_config_key(key: &str) -> Result<()> { function validate_config_value (line 72) | pub fn validate_config_value(value: &str) -> Result<()> { function validate_config_count (line 86) | fn validate_config_count(config: &HashMap) -> Result<()> { function get_config_dir (line 98) | fn get_config_dir(module_id: &str) -> PathBuf { function get_config_path (line 103) | fn get_config_path(module_id: &str, config_type: ConfigType) -> PathBuf { function ensure_config_dir (line 108) | fn ensure_config_dir(module_id: &str) -> Result { function load_config (line 115) | pub fn load_config(module_id: &str, config_type: ConfigType) -> Result Result<... function merge_configs (line 333) | pub fn merge_configs(module_id: &str) -> Result> { function get_all_module_configs (line 362) | pub fn get_all_module_configs() -> Result Result<()> { function clear_module_configs (line 442) | pub fn clear_module_configs(module_id: &str) -> Result<()> { FILE: userspace/ksud/src/profile.rs function set_sepolicy (line 6) | pub fn set_sepolicy(pkg: String, policy: String) -> Result<()> { function get_sepolicy (line 14) | pub fn get_sepolicy(pkg: String) -> Result<()> { function set_template (line 22) | pub fn set_template(id: String, template: String) -> Result<()> { function get_template (line 29) | pub fn get_template(id: String) -> Result<()> { function delete_template (line 36) | pub fn delete_template(id: String) -> Result<()> { function list_templates (line 42) | pub fn list_templates() -> Result<()> { function apply_sepolies (line 57) | pub fn apply_sepolies() -> Result<()> { FILE: userspace/ksud/src/resetprop.rs type Args (line 20) | struct Args { function run_from_args (line 72) | pub fn run_from_args(args: &[String]) -> Result<()> { function load_system_prop_file (line 176) | pub fn load_system_prop_file(path: &Path) -> Result<()> { FILE: userspace/ksud/src/restorecon.rs constant SYSTEM_CON (line 9) | pub const SYSTEM_CON: &str = "u:object_r:system_file:s0"; constant ADB_CON (line 10) | pub const ADB_CON: &str = "u:object_r:adb_data_file:s0"; constant UNLABEL_CON (line 11) | pub const UNLABEL_CON: &str = "u:object_r:unlabeled:s0"; constant SELINUX_XATTR (line 13) | const SELINUX_XATTR: &str = "security.selinux"; function lsetfilecon (line 15) | pub fn lsetfilecon>(path: P, con: &str) -> Result<()> { function lgetfilecon (line 25) | pub fn lgetfilecon>(path: P) -> Result { function setsyscon (line 36) | pub fn setsyscon>(path: P) -> Result<()> { function restore_syscon (line 40) | pub fn restore_syscon>(dir: P) -> Result<()> { function restore_syscon_if_unlabeled (line 49) | fn restore_syscon_if_unlabeled>(dir: P) -> Result<()> { function restorecon (line 61) | pub fn restorecon() -> Result<()> { FILE: userspace/ksud/src/sepolicy.rs type SeObject (line 12) | type SeObject<'a> = Vec<&'a str>; function is_sepolicy_char (line 14) | fn is_sepolicy_char(c: char) -> bool { function parse_single_word (line 18) | fn parse_single_word(input: &str) -> IResult<&str, &str> { function parse_bracket_objs (line 22) | fn parse_bracket_objs(input: &str) -> IResult<&str, SeObject<'_>> { function parse_single_obj (line 32) | fn parse_single_obj(input: &str) -> IResult<&str, SeObject<'_>> { function parse_star (line 37) | fn parse_star(input: &str) -> IResult<&str, SeObject<'_>> { function parse_seobj (line 45) | fn parse_seobj(input: &str) -> IResult<&str, SeObject<'_>> { function parse_seobj_no_star (line 50) | fn parse_seobj_no_star(input: &str) -> IResult<&str, SeObject<'_>> { type SeObjectParser (line 55) | trait SeObjectParser<'a> { method parse (line 56) | fn parse(input: &'a str) -> IResult<&'a str, Self> type NormalPerm (line 62) | struct NormalPerm<'a> { type XPerm (line 71) | struct XPerm<'a> { type TypeState (line 81) | struct TypeState<'a> { type TypeAttr (line 87) | struct TypeAttr<'a> { type Type (line 93) | struct Type<'a> { type Attr (line 99) | struct Attr<'a> { type TypeTransition (line 104) | struct TypeTransition<'a> { type TypeChange (line 113) | struct TypeChange<'a> { type GenFsCon (line 122) | struct GenFsCon<'a> { type PolicyStatement (line 129) | enum PolicyStatement<'a> { function parse (line 166) | fn parse(input: &'a str) -> IResult<&'a str, Self> { function parse (line 188) | fn parse(input: &'a str) -> IResult<&'a str, Self> { function parse (line 215) | fn parse(input: &'a str) -> IResult<&'a str, Self> { function parse (line 226) | fn parse(input: &'a str) -> IResult<&'a str, Self> { function parse (line 243) | fn parse(input: &'a str) -> IResult<&'a str, Self> { function parse (line 255) | fn parse(input: &'a str) -> IResult<&'a str, Self> { function parse (line 265) | fn parse(input: &'a str) -> IResult<&'a str, Self> { function parse (line 294) | fn parse(input: &'a str) -> IResult<&'a str, Self> { function parse (line 310) | fn parse(input: &'a str) -> IResult<&'a str, Self> function parse (line 326) | fn parse(input: &'a str) -> IResult<&'a str, Self> { function parse_sepolicy (line 347) | fn parse_sepolicy<'a, 'b>(input: &'b str, strict: bool) -> Result Result { type AtomicStatement (line 417) | struct AtomicStatement { type Error (line 430) | type Error = anyhow::Error; function try_from (line 431) | fn try_from(perm: &'a NormalPerm<'a>) -> Result { type Error (line 464) | type Error = anyhow::Error; function try_from (line 465) | fn try_from(perm: &'a XPerm<'a>) -> Result { type Error (line 495) | type Error = anyhow::Error; function try_from (line 496) | fn try_from(perm: &'a TypeState<'a>) -> Result { type Error (line 521) | type Error = anyhow::Error; function try_from (line 522) | fn try_from(perm: &'a Type<'a>) -> Result { type Error (line 542) | type Error = anyhow::Error; function try_from (line 543) | fn try_from(perm: &'a TypeAttr<'a>) -> Result { type Error (line 565) | type Error = anyhow::Error; function try_from (line 566) | fn try_from(perm: &'a Attr<'a>) -> Result { type Error (line 583) | type Error = anyhow::Error; function try_from (line 584) | fn try_from(perm: &'a TypeTransition<'a>) -> Result { type Error (line 606) | type Error = anyhow::Error; function try_from (line 607) | fn try_from(perm: &'a TypeChange<'a>) -> Result { type Error (line 630) | type Error = anyhow::Error; function try_from (line 631) | fn try_from(perm: &'a GenFsCon<'a>) -> Result { type Error (line 648) | type Error = anyhow::Error; function try_from (line 649) | fn try_from(value: &'a PolicyStatement) -> Result { function cmd_expected_argc (line 664) | const fn cmd_expected_argc(cmd: u32) -> Option { function encode_policy_object (line 675) | fn encode_policy_object(payload: &mut Vec, object: &PolicyObject) ->... function append_atomic_statement (line 689) | fn append_atomic_statement(payload: &mut Vec, statement: &AtomicStat... function serialize_atomic_statements (line 713) | fn serialize_atomic_statements(statements: &[AtomicStatement]) -> Result... function flatten_atomic_statements (line 721) | fn flatten_atomic_statements<'a>( function apply_rules_batch (line 732) | fn apply_rules_batch<'a>(statements: &'a [PolicyStatement<'a>], strict: ... function live_patch (line 771) | pub fn live_patch(policy: &str) -> Result<()> { function apply_file (line 780) | pub fn apply_file>(path: P) -> Result<()> { function check_rule (line 785) | pub fn check_rule(policy: &str) -> Result<()> { FILE: userspace/ksud/src/su.rs function grant_root (line 24) | pub fn grant_root(global_mnt: bool) -> Result<()> { function print_usage (line 41) | fn print_usage(program: &str, opts: &Options) { function set_identity (line 46) | fn set_identity(uid: u32, gid: u32, groups: &[u32]) { function wrap_tty (line 61) | fn wrap_tty(fd: c_int) { function root_shell (line 82) | pub fn root_shell() -> Result<()> { function add_path_to_env (line 290) | fn add_path_to_env(path: &str) -> Result<()> { FILE: userspace/ksud/src/utils.rs function ensure_clean_dir (line 41) | pub fn ensure_clean_dir(dir: impl AsRef) -> Result<()> { function ensure_file_exists (line 51) | pub fn ensure_file_exists>(file: T) -> Result<()> { function ensure_dir_exists (line 65) | pub fn ensure_dir_exists>(dir: T) -> Result<()> { function ensure_binary (line 74) | pub fn ensure_binary>( function getprop (line 103) | pub fn getprop(prop: &str) -> Option { function is_safe_mode (line 107) | pub fn is_safe_mode() -> bool { function get_zip_uncompressed_size (line 123) | pub fn get_zip_uncompressed_size(zip_path: &str) -> Result { function switch_mnt_ns (line 131) | pub fn switch_mnt_ns(pid: i32) -> Result<()> { function switch_cgroup (line 146) | fn switch_cgroup(grp: &str, pid: u32) { function switch_cgroups (line 158) | pub fn switch_cgroups() { function umask (line 172) | pub fn umask(mask: u32) { function has_magisk (line 176) | pub fn has_magisk() -> bool { function link_ksud_to_bin (line 180) | fn link_ksud_to_bin() -> Result<()> { function install (line 189) | pub fn install(magiskboot: Option) -> Result<()> { function uninstall (line 209) | pub fn uninstall(magiskboot_path: Option) -> Result<()> { FILE: userspace/ksuinit/build.rs function main (line 1) | fn main() { FILE: userspace/ksuinit/src/init.rs type AutoUmount (line 14) | struct AutoUmount { method drop (line 19) | fn drop(&mut self) { function mount_filesystem (line 28) | fn mount_filesystem(name: &str, mountpoint: &str) -> Result<()> { function prepare_mount (line 50) | fn prepare_mount() -> AutoUmount { function setup_kmsg (line 68) | fn setup_kmsg() { function unlimit_kmsg (line 89) | fn unlimit_kmsg() { function init (line 99) | pub fn init() -> Result<()> { function load_module_from_path (line 134) | fn load_module_from_path(path: &str) -> Result<()> { FILE: userspace/ksuinit/src/lib.rs type Kptr (line 8) | struct Kptr { method new (line 13) | pub fn new() -> Result { method drop (line 21) | fn drop(&mut self) { function parse_kallsyms (line 26) | fn parse_kallsyms() -> Result> { function load_module (line 55) | pub fn load_module(data: &[u8]) -> Result<()> { function has_kernelsu_legacy (line 99) | fn has_kernelsu_legacy() -> bool { function has_kernelsu_v2 (line 117) | fn has_kernelsu_v2() -> bool { function has_kernelsu (line 169) | pub fn has_kernelsu() -> bool { FILE: userspace/ksuinit/src/main.rs function main (line 12) | pub unsafe extern "C" fn main(_argc: i32, argv: *const *const u8, envp: ... FILE: website/docs/.vitepress/locales/en.ts function nav (line 36) | function nav() { function sidebarGuide (line 42) | function sidebarGuide() { FILE: website/docs/.vitepress/locales/id_ID.ts function nav (line 36) | function nav() { function sidebarGuide (line 42) | function sidebarGuide() { FILE: website/docs/.vitepress/locales/ja_JP.ts function nav (line 36) | function nav() { function sidebarGuide (line 42) | function sidebarGuide() { FILE: website/docs/.vitepress/locales/pt_BR.ts function nav (line 36) | function nav() { function sidebarGuide (line 42) | function sidebarGuide() { FILE: website/docs/.vitepress/locales/ru_RU.ts function nav (line 36) | function nav() { function sidebarGuide (line 42) | function sidebarGuide() { FILE: website/docs/.vitepress/locales/vi_VN.ts function nav (line 36) | function nav() { function sidebarGuide (line 42) | function sidebarGuide() { FILE: website/docs/.vitepress/locales/zh_CN.ts function nav (line 36) | function nav() { function sidebarGuide (line 42) | function sidebarGuide() { FILE: website/docs/.vitepress/locales/zh_TW.ts function nav (line 36) | function nav() { function sidebarGuide (line 42) | function sidebarGuide() {