SYMBOL INDEX (575 symbols across 27 files) FILE: apd/build.rs function get_git_version (line 7) | fn get_git_version() -> Result<(u32, String), std::io::Error> { function main (line 36) | fn main() { FILE: apd/src/apd.rs function print_usage (line 17) | fn print_usage(opts: Options) { function set_identity (line 22) | fn set_identity(uid: u32, gid: u32) { function root_shell (line 31) | pub fn root_shell() -> Result<()> { function root_shell (line 36) | pub fn root_shell() -> Result<()> { function add_path_to_env (line 221) | fn add_path_to_env(path: &str) -> Result<()> { FILE: apd/src/assets.rs constant RESETPROP_PATH (line 6) | pub const RESETPROP_PATH: &str = concatcp!(BINARY_DIR, "resetprop"); constant BUSYBOX_PATH (line 7) | pub const BUSYBOX_PATH: &str = concatcp!(BINARY_DIR, "busybox"); constant MAGISKPOLICY_PATH (line 8) | pub const MAGISKPOLICY_PATH: &str = concatcp!(BINARY_DIR, "magiskpolicy"); function ensure_binaries (line 10) | pub fn ensure_binaries() -> Result<()> { FILE: apd/src/cli.rs type Args (line 12) | struct Args { type Commands (line 25) | enum Commands { type Module (line 52) | enum Module { type Sepolicy (line 94) | enum Sepolicy { function run (line 102) | pub fn run() -> Result<()> { FILE: apd/src/defs.rs constant ADB_DIR (line 3) | pub const ADB_DIR: &str = "/data/adb/"; constant WORKING_DIR (line 4) | pub const WORKING_DIR: &str = concatcp!(ADB_DIR, "ap/"); constant BINARY_DIR (line 5) | pub const BINARY_DIR: &str = concatcp!(WORKING_DIR, "bin/"); constant APATCH_LOG_FOLDER (line 6) | pub const APATCH_LOG_FOLDER: &str = concatcp!(WORKING_DIR, "log/"); constant AP_RC_PATH (line 8) | pub const AP_RC_PATH: &str = concatcp!(WORKING_DIR, ".aprc"); constant GLOBAL_NAMESPACE_FILE (line 9) | pub const GLOBAL_NAMESPACE_FILE: &str = concatcp!(ADB_DIR, ".global_name... constant DAEMON_PATH (line 10) | pub const DAEMON_PATH: &str = concatcp!(ADB_DIR, "apd"); constant MODULE_DIR (line 12) | pub const MODULE_DIR: &str = concatcp!(ADB_DIR, "modules/"); constant MODULE_UPDATE_DIR (line 15) | pub const MODULE_UPDATE_DIR: &str = concatcp!(ADB_DIR, "modules_update/"); constant TEMP_DIR (line 17) | pub const TEMP_DIR: &str = "/debug_ramdisk"; constant TEMP_DIR_LEGACY (line 18) | pub const TEMP_DIR_LEGACY: &str = "/sbin"; constant MODULE_WEB_DIR (line 20) | pub const MODULE_WEB_DIR: &str = "webroot"; constant MODULE_ACTION_SH (line 21) | pub const MODULE_ACTION_SH: &str = "action.sh"; constant DISABLE_FILE_NAME (line 22) | pub const DISABLE_FILE_NAME: &str = "disable"; constant UPDATE_FILE_NAME (line 23) | pub const UPDATE_FILE_NAME: &str = "update"; constant REMOVE_FILE_NAME (line 24) | pub const REMOVE_FILE_NAME: &str = "remove"; constant METAMODULE_MOUNT_SCRIPT (line 27) | pub const METAMODULE_MOUNT_SCRIPT: &str = "metamount.sh"; constant METAMODULE_METAINSTALL_SCRIPT (line 28) | pub const METAMODULE_METAINSTALL_SCRIPT: &str = "metainstall.sh"; constant METAMODULE_METAUNINSTALL_SCRIPT (line 29) | pub const METAMODULE_METAUNINSTALL_SCRIPT: &str = "metauninstall.sh"; constant METAMODULE_DIR (line 30) | pub const METAMODULE_DIR: &str = concatcp!(ADB_DIR, "metamodule/"); constant PTS_NAME (line 32) | pub const PTS_NAME: &str = "pts"; constant VERSION_CODE (line 34) | pub const VERSION_CODE: &str = include_str!(concat!(env!("OUT_DIR"), "/V... constant VERSION_NAME (line 35) | pub const VERSION_NAME: &str = include_str!(concat!(env!("OUT_DIR"), "/V... FILE: apd/src/event.rs function on_post_data_fs (line 30) | pub fn on_post_data_fs(superkey: Option) -> Result<()> { function run_stage (line 192) | fn run_stage(stage: &str, superkey: Option, block: bool) { function on_services (line 224) | pub fn on_services(superkey: Option) -> Result<()> { function run_uid_monitor (line 231) | fn run_uid_monitor() { function on_boot_completed (line 253) | pub fn on_boot_completed(superkey: Option) -> Result<()> { function start_uid_listener (line 262) | pub fn start_uid_listener() -> Result<()> { FILE: apd/src/lua.rs function save_text (line 8) | pub fn save_text>(filename: P, content: &str) -> std::io:... function load_text (line 15) | pub fn load_text>(filename: P) -> std::io::Result { function load_all_lua_modules (line 21) | pub fn load_all_lua_modules(lua: &Lua) -> LuaResult<()> { function info_lua (line 81) | pub fn info_lua(lua: &Lua) -> LuaResult { function warn_lua (line 88) | pub fn warn_lua(lua: &Lua) -> LuaResult { function install_module_lua (line 95) | pub fn install_module_lua(lua: &Lua) -> LuaResult { function save_text_lua (line 101) | pub fn save_text_lua(lua: &Lua) -> LuaResult { function read_text_lua (line 108) | pub fn read_text_lua(lua: &Lua) -> LuaResult { function exec_stage_lua (line 119) | pub fn exec_stage_lua(stage: &str, wait: bool, superkey: &str) -> Result... function run_lua (line 125) | pub fn run_lua(id: &str, function: &str, on_each_module: bool, _wait: bo... FILE: apd/src/main.rs function main (line 16) | fn main() -> anyhow::Result<()> { FILE: apd/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: P) -> Result<()> function remove_symlink (line 151) | pub fn remove_symlink() -> Result<()> { function get_install_script (line 165) | pub fn get_install_script( function check_metamodule_script (line 203) | fn check_metamodule_script(script_name: &str) -> Option { function exec_metauninstall_script (line 223) | pub fn exec_metauninstall_script(module_id: &str) -> Result<()> { function exec_mount_script (line 249) | pub fn exec_mount_script(module_dir: &str) -> Result<()> { function exec_stage_script (line 273) | pub fn exec_stage_script(stage: &str, block: bool) -> Result<()> { FILE: apd/src/module.rs constant INSTALLER_CONTENT (line 29) | const INSTALLER_CONTENT: &str = include_str!("./installer.sh"); constant INSTALL_MODULE_SCRIPT (line 30) | const INSTALL_MODULE_SCRIPT: &str = concatcp!( type ModuleType (line 40) | pub enum ModuleType { function exec_install_script (line 46) | fn exec_install_script(module_file: &str, is_metamodule: bool) -> Result... function handle_updated_modules (line 64) | pub fn handle_updated_modules() -> Result<()> { function get_common_script_envs (line 100) | pub fn get_common_script_envs() -> Vec<(&'static str, String)> { function ensure_boot_completed (line 121) | fn ensure_boot_completed() -> Result<()> { function mark_update (line 129) | fn mark_update() -> Result<()> { function mark_module_state (line 133) | fn mark_module_state(module: &str, flag_file: &str, create_or_delete: bo... function foreach_module (line 144) | pub fn foreach_module( function foreach_active_module (line 175) | fn foreach_active_module(f: impl FnMut(&Path) -> Result<()>) -> Result<(... function load_sepolicy_rule (line 179) | pub fn load_sepolicy_rule() -> Result<()> { function exec_script (line 199) | pub fn exec_script>(path: T, wait: bool) -> Result<()> { function exec_stage_script (line 239) | pub fn exec_stage_script(stage: &str, block: bool) -> Result<()> { function exec_common_scripts (line 251) | pub fn exec_common_scripts(dir: &str, wait: bool) -> Result<()> { function load_system_prop (line 273) | pub fn load_system_prop() -> Result<()> { function prune_modules (line 295) | pub fn prune_modules() -> Result<()> { function _install_module (line 350) | fn _install_module(zip: &str) -> Result<()> { function install_module (line 482) | pub fn install_module(zip: &str) -> Result<()> { function _uninstall_module (line 487) | pub fn _uninstall_module(id: &str, update_dir: &str) -> Result<()> { function uninstall_module (line 528) | pub fn uninstall_module(id: &str) -> Result<()> { function read_module_prop (line 535) | pub fn read_module_prop(module_path: &Path) -> Result Result<()> { function _change_module_state (line 567) | fn _change_module_state(module_dir: &str, mid: &str, enable: bool) -> Re... function _enable_module (line 588) | pub fn _enable_module(id: &str, update_dir: &Path) -> Result<()> { function enable_module (line 597) | pub fn enable_module(id: &str) -> Result<()> { function _disable_module (line 603) | pub fn _disable_module(id: &str, update_dir: &Path) -> Result<()> { function disable_module (line 612) | pub fn disable_module(id: &str) -> Result<()> { function _disable_all_modules (line 619) | pub fn _disable_all_modules(dir: &str) -> Result<()> { function disable_all_modules (line 631) | pub fn disable_all_modules() -> Result<()> { function _list_modules (line 642) | fn _list_modules(path: &str) -> Vec> { function list_modules (line 708) | pub fn list_modules() -> Result<()> { FILE: apd/src/package.rs type PackageConfig (line 13) | pub struct PackageConfig { function read_ap_package_config (line 22) | pub fn read_ap_package_config() -> Vec { function write_ap_package_config (line 57) | pub fn write_ap_package_config(package_configs: &[PackageConfig]) -> io:... function read_lines (line 105) | fn read_lines

(filename: P) -> io::Result>> function synchronize_package_uid (line 112) | pub fn synchronize_package_uid() -> io::Result<()> { FILE: apd/src/pty.rs function get_pty_num (line 32) | fn get_pty_num(fd: F) -> Result { function watch_sigwinch_async (line 43) | fn watch_sigwinch_async(slave: RawFd) { function set_stdin_raw (line 70) | fn set_stdin_raw() -> rustix::io::Result<()> { function restore_stdin (line 81) | fn restore_stdin() -> Result<()> { function pump (line 91) | fn pump(mut from: R, mut to: W) { function pump_stdin_async (line 113) | fn pump_stdin_async(mut ptmx: File) { function pump_stdout_blocking (line 122) | fn pump_stdout_blocking(mut ptmx: File) { function create_transfer (line 129) | fn create_transfer(ptmx: OwnedFd) -> Result<()> { function prepare_pty (line 161) | pub fn prepare_pty() -> Result<()> { FILE: apd/src/restorecon.rs constant SYSTEM_CON (line 12) | pub const SYSTEM_CON: &str = "u:object_r:system_file:s0"; constant ADB_CON (line 13) | pub const ADB_CON: &str = "u:object_r:adb_data_file:s0"; constant UNLABEL_CON (line 14) | pub const UNLABEL_CON: &str = "u:object_r:unlabeled:s0"; constant SELINUX_XATTR (line 16) | const SELINUX_XATTR: &str = "security.selinux"; function lsetfilecon (line 18) | pub fn lsetfilecon>(path: P, con: &str) -> Result<()> { function lgetfilecon (line 30) | pub fn lgetfilecon>(path: P) -> Result { function setsyscon (line 42) | pub fn setsyscon>(path: P) -> Result<()> { function setsyscon (line 47) | pub fn setsyscon>(path: P) -> Result<()> { function lgetfilecon (line 52) | pub fn lgetfilecon>(path: P) -> Result { function restore_syscon (line 56) | pub fn restore_syscon>(dir: P) -> Result<()> { function restore_syscon_if_unlabeled (line 65) | fn restore_syscon_if_unlabeled>(dir: P) -> Result<()> { function restorecon (line 78) | pub fn restorecon() -> Result<()> { FILE: apd/src/sepolicy.rs type SeObject (line 13) | type SeObject<'a> = Vec<&'a str>; function is_sepolicy_char (line 15) | fn is_sepolicy_char(c: char) -> bool { function parse_single_word (line 19) | fn parse_single_word(input: &str) -> IResult<&str, &str> { function parse_bracket_objs (line 23) | fn parse_bracket_objs(input: &str) -> IResult<&str, SeObject<'_>> { function parse_single_obj (line 33) | fn parse_single_obj(input: &str) -> IResult<&str, SeObject<'_>> { function parse_star (line 38) | fn parse_star(input: &str) -> IResult<&str, SeObject<'_>> { function parse_seobj (line 46) | fn parse_seobj(input: &str) -> IResult<&str, SeObject<'_>> { function parse_seobj_no_star (line 51) | fn parse_seobj_no_star(input: &str) -> IResult<&str, SeObject<'_>> { type SeObjectParser (line 56) | trait SeObjectParser<'a> { method parse (line 57) | fn parse(input: &'a str) -> IResult<&'a str, Self> type NormalPerm (line 63) | struct NormalPerm<'a> { type XPerm (line 72) | struct XPerm<'a> { type TypeState (line 82) | struct TypeState<'a> { type TypeAttr (line 88) | struct TypeAttr<'a> { type Type (line 94) | struct Type<'a> { type Attr (line 100) | struct Attr<'a> { type TypeTransition (line 105) | struct TypeTransition<'a> { type TypeChange (line 114) | struct TypeChange<'a> { type GenFsCon (line 123) | struct GenFsCon<'a> { type PolicyStatement (line 130) | enum PolicyStatement<'a> { function parse (line 167) | fn parse(input: &'a str) -> IResult<&'a str, Self> { function parse (line 189) | fn parse(input: &'a str) -> IResult<&'a str, Self> { function parse (line 216) | fn parse(input: &'a str) -> IResult<&'a str, Self> { function parse (line 227) | fn parse(input: &'a str) -> IResult<&'a str, Self> { function parse (line 244) | fn parse(input: &'a str) -> IResult<&'a str, Self> { function parse (line 256) | fn parse(input: &'a str) -> IResult<&'a str, Self> { function parse (line 266) | fn parse(input: &'a str) -> IResult<&'a str, Self> { function parse (line 295) | fn parse(input: &'a str) -> IResult<&'a str, Self> { function parse (line 311) | fn parse(input: &'a str) -> IResult<&'a str, Self> function parse (line 327) | fn parse(input: &'a str) -> IResult<&'a str, Self> { function parse_sepolicy (line 348) | fn parse_sepolicy<'a, 'b>(input: &'b str, strict: bool) -> Result Result { type AtomicStatement (line 407) | struct AtomicStatement { type Error (line 420) | type Error = anyhow::Error; function try_from (line 421) | fn try_from(perm: &'a NormalPerm<'a>) -> Result { type Error (line 454) | type Error = anyhow::Error; function try_from (line 455) | fn try_from(perm: &'a XPerm<'a>) -> Result { type Error (line 485) | type Error = anyhow::Error; function try_from (line 486) | fn try_from(perm: &'a TypeState<'a>) -> Result { type Error (line 511) | type Error = anyhow::Error; function try_from (line 512) | fn try_from(perm: &'a Type<'a>) -> Result { type Error (line 532) | type Error = anyhow::Error; function try_from (line 533) | fn try_from(perm: &'a TypeAttr<'a>) -> Result { type Error (line 555) | type Error = anyhow::Error; function try_from (line 556) | fn try_from(perm: &'a Attr<'a>) -> Result { type Error (line 573) | type Error = anyhow::Error; function try_from (line 574) | fn try_from(perm: &'a TypeTransition<'a>) -> Result { type Error (line 596) | type Error = anyhow::Error; function try_from (line 597) | fn try_from(perm: &'a TypeChange<'a>) -> Result { type Error (line 620) | type Error = anyhow::Error; function try_from (line 621) | fn try_from(perm: &'a GenFsCon<'a>) -> Result { type Error (line 638) | type Error = anyhow::Error; function try_from (line 639) | fn try_from(value: &'a PolicyStatement) -> Result { type FfiPolicy (line 660) | struct FfiPolicy { method from (line 680) | fn from(policy: AtomicStatement) -> FfiPolicy { function to_c_ptr (line 672) | fn to_c_ptr(pol: &PolicyObject) -> *const ffi::c_char { function check_rule (line 695) | pub fn check_rule(policy: &str) -> Result<()> { FILE: apd/src/supercall.rs constant MAJOR (line 18) | const MAJOR: c_long = 0; constant MINOR (line 19) | const MINOR: c_long = 11; constant PATCH (line 20) | const PATCH: c_long = 1; constant KSTORAGE_EXCLUDE_LIST_GROUP (line 22) | const KSTORAGE_EXCLUDE_LIST_GROUP: i32 = 1; constant __NR_SUPERCALL (line 24) | const __NR_SUPERCALL: c_long = 45; constant SUPERCALL_KLOG (line 25) | const SUPERCALL_KLOG: c_long = 0x1004; constant SUPERCALL_KERNELPATCH_VER (line 26) | const SUPERCALL_KERNELPATCH_VER: c_long = 0x1008; constant SUPERCALL_KERNEL_VER (line 27) | const SUPERCALL_KERNEL_VER: c_long = 0x1009; constant SUPERCALL_SU (line 28) | const SUPERCALL_SU: c_long = 0x1010; constant SUPERCALL_KSTORAGE_WRITE (line 29) | const SUPERCALL_KSTORAGE_WRITE: c_long = 0x1041; constant SUPERCALL_SU_GRANT_UID (line 30) | const SUPERCALL_SU_GRANT_UID: c_long = 0x1100; constant SUPERCALL_SU_REVOKE_UID (line 31) | const SUPERCALL_SU_REVOKE_UID: c_long = 0x1101; constant SUPERCALL_SU_NUMS (line 32) | const SUPERCALL_SU_NUMS: c_long = 0x1102; constant SUPERCALL_SU_LIST (line 33) | const SUPERCALL_SU_LIST: c_long = 0x1103; constant SUPERCALL_SU_RESET_PATH (line 34) | const SUPERCALL_SU_RESET_PATH: c_long = 0x1111; constant SUPERCALL_SU_GET_SAFEMODE (line 35) | const SUPERCALL_SU_GET_SAFEMODE: c_long = 0x1112; constant SUPERCALL_SCONTEXT_LEN (line 37) | const SUPERCALL_SCONTEXT_LEN: usize = 0x60; type SuProfile (line 40) | struct SuProfile { function ver_and_cmd (line 46) | fn ver_and_cmd(cmd: c_long) -> c_long { function sc_su_revoke_uid (line 51) | fn sc_su_revoke_uid(key: &CStr, uid: uid_t) -> c_long { function sc_su_grant_uid (line 65) | fn sc_su_grant_uid(key: &CStr, profile: &SuProfile) -> c_long { function sc_kstorage_write (line 79) | fn sc_kstorage_write( function sc_set_ap_mod_exclude (line 103) | fn sc_set_ap_mod_exclude(key: &CStr, uid: i64, exclude: i32) -> c_long { function sc_su_get_safemode (line 114) | pub fn sc_su_get_safemode(key: &CStr) -> c_long { function sc_su (line 135) | fn sc_su(key: &CStr, profile: &SuProfile) -> c_long { function sc_su_reset_path (line 149) | fn sc_su_reset_path(key: &CStr, path: &CStr) -> c_long { function sc_kp_ver (line 163) | fn sc_kp_ver(key: &CStr) -> Result { function sc_k_ver (line 177) | fn sc_k_ver(key: &CStr) -> Result { function sc_klog (line 191) | fn sc_klog(key: &CStr, msg: &CStr) -> c_long { function sc_su_uid_nums (line 205) | fn sc_su_uid_nums(key: &CStr) -> c_long { function sc_su_allow_uids (line 212) | fn sc_su_allow_uids(key: &CStr, buf: &mut [uid_t]) -> c_long { function read_file_to_string (line 230) | fn read_file_to_string(path: &str) -> io::Result { function convert_string_to_u8_array (line 237) | fn convert_string_to_u8_array(s: &str) -> [u8; SUPERCALL_SCONTEXT_LEN] { function convert_superkey (line 245) | fn convert_superkey(s: &Option) -> Option { function refresh_ap_package_list (line 249) | pub fn refresh_ap_package_list(skey: &CStr, mutex: &Arc>) { function privilege_apd_profile (line 310) | pub fn privilege_apd_profile(superkey: &Option) { function init_load_package_uid_config (line 325) | pub fn init_load_package_uid_config(superkey: &Option) { function init_load_su_path (line 360) | pub fn init_load_su_path(superkey: &Option) { function set_env_var (line 392) | fn set_env_var(key: &str, value: &str) { function log_kernel (line 400) | fn log_kernel(key: &CStr, _fmt: &str, args: std::fmt::Arguments) -> c_lo... function fork_for_result (line 415) | pub fn fork_for_result(exec: &str, argv: &[&str], key: &Option) { FILE: apd/src/utils.rs function ensure_file_exists (line 18) | pub fn ensure_file_exists>(file: T) -> Result<()> { function ensure_dir_exists (line 32) | pub fn ensure_dir_exists>(dir: T) -> Result<()> { function ensure_binary (line 44) | pub fn ensure_binary>(path: T) -> Result<()> { function getprop (line 50) | pub fn getprop(prop: &str) -> Option { function getprop (line 55) | pub fn getprop(_prop: &str) -> Option { function run_command (line 58) | pub fn run_command( function is_safe_mode (line 71) | pub fn is_safe_mode(superkey: Option) -> bool { function switch_mnt_ns (line 97) | pub fn switch_mnt_ns(pid: i32) -> Result<()> { function switch_cgroup (line 112) | fn switch_cgroup(grp: &str, pid: u32) { function switch_cgroups (line 124) | pub fn switch_cgroups() { function umask (line 139) | pub fn umask(mask: u32) { function umask (line 144) | pub fn umask(_mask: u32) { function has_magisk (line 148) | pub fn has_magisk() -> bool { function get_tmp_path (line 151) | pub fn get_tmp_path() -> &'static str { FILE: app/src/main/cpp/apjni.cpp function jboolean (line 14) | jboolean nativeReady(JNIEnv *env, jobject /* this */, jstring super_key_... function jlong (line 21) | jlong nativeKernelPatchVersion(JNIEnv *env, jobject /* this */, jstring ... function jstring (line 29) | jstring nativeKernelPatchBuildTime(JNIEnv *env, jobject /* this */, jstr... function jlong (line 39) | jlong nativeSu(JNIEnv *env, jobject /* this */, jstring super_key_jstr, ... function jint (line 57) | jint nativeSetUidExclude(JNIEnv *env, jobject /* this */, jstring super_... function jint (line 64) | jint nativeGetUidExclude(JNIEnv *env, jobject /* this */, jstring super_... function jintArray (line 71) | jintArray nativeSuUids(JNIEnv *env, jobject /* this */, jstring super_ke... function jobject (line 94) | jobject nativeSuProfile(JNIEnv *env, jobject /* this */, jstring super_k... function jlong (line 118) | jlong nativeLoadKernelPatchModule(JNIEnv *env, jobject /* this */, jstri... function jobject (line 132) | jobject nativeControlKernelPatchModule(JNIEnv *env, jobject /* this */, ... function jlong (line 157) | jlong nativeUnloadKernelPatchModule(JNIEnv *env, jobject /* this */, jst... function jlong (line 170) | jlong nativeKernelPatchModuleNum(JNIEnv *env, jobject /* this */, jstrin... function jstring (line 182) | jstring nativeKernelPatchModuleList(JNIEnv *env, jobject /* this */, jst... function jstring (line 196) | jstring nativeKernelPatchModuleInfo(JNIEnv *env, jobject /* this */, jst... function jlong (line 210) | jlong nativeGrantSu(JNIEnv *env, jobject /* this */, jstring super_key_j... function jlong (line 222) | jlong nativeRevokeSu(JNIEnv *env, jobject /* this */, jstring super_key_... function jstring (line 229) | jstring nativeSuPath(JNIEnv *env, jobject /* this */, jstring super_key_... function jboolean (line 242) | jboolean nativeResetSuPath(JNIEnv *env, jobject /* this */, jstring supe... function JNIEXPORT (line 251) | JNIEXPORT jint JNI_OnLoad(JavaVM* vm, void * /*reserved*/) { FILE: app/src/main/cpp/apjni.hpp function ensureSuperKeyNonNull (line 21) | void ensureSuperKeyNonNull(jstring super_key_jstr) { FILE: app/src/main/cpp/jni_helper.hpp type lsplant (line 20) | namespace lsplant { class ScopedLocalRef (line 25) | class ScopedLocalRef { method ScopedLocalRef (line 29) | ScopedLocalRef(JNIEnv *env, T local_ref) : env_(env), local_ref_(nul... method ScopedLocalRef (line 31) | ScopedLocalRef(ScopedLocalRef &&s) noexcept : ScopedLocalRef(s.env_,... method ScopedLocalRef (line 34) | ScopedLocalRef(ScopedLocalRef &&s) noexcept : ScopedLocalRef(s.en... method ScopedLocalRef (line 36) | explicit ScopedLocalRef(JNIEnv *env) noexcept : ScopedLocalRef(env, ... method reset (line 40) | void reset(T ptr = nullptr) { method T (line 49) | [[nodiscard]] T release() { method T (line 55) | T get() const { return local_ref_; } method clone (line 57) | ScopedLocalRef clone() const { method ScopedLocalRef (line 61) | ScopedLocalRef &operator=(ScopedLocalRef &&s) noexcept { class JObjectArrayElement (line 80) | class JObjectArrayElement method obtain (line 1028) | auto obtain() { method JObjectArrayElement (line 1033) | explicit JObjectArrayElement(JNIEnv *env, jobjectArray array, int i,... method JObjectArrayElement (line 1036) | JObjectArrayElement &operator++() { method JObjectArrayElement (line 1042) | JObjectArrayElement &operator--() { method JObjectArrayElement (line 1048) | JObjectArrayElement operator++(int) { return JObjectArrayElement(env... method JObjectArrayElement (line 1050) | JObjectArrayElement operator--(int) { return JObjectArrayElement(env... method JObjectArrayElement (line 1053) | JObjectArrayElement(JObjectArrayElement &&s) method JObjectArrayElement (line 1060) | JObjectArrayElement &operator=(JObjectArrayElement &&s) { method JObjectArrayElement (line 1065) | JObjectArrayElement &operator=(const JObjectArrayElement &s) { method JObjectArrayElement (line 1071) | JObjectArrayElement &operator=(ScopedLocalRef &&s) { method JObjectArrayElement (line 1077) | JObjectArrayElement &operator=(const ScopedLocalRef &s) { method JObjectArrayElement (line 1082) | JObjectArrayElement &operator=(jobject s) { method reset (line 1087) | void reset(jobject item) { method clone (line 1092) | ScopedLocalRef clone() const { return item_.clone(); } method jobject (line 1094) | jobject get() const { return item_.get(); } method jobject (line 1096) | jobject release() { return item_.release(); } method jobject (line 1098) | jobject operator->() const { return item_.get(); } method jobject (line 1100) | jobject operator*() const { return item_.get(); } method JObjectArrayElement (line 1108) | JObjectArrayElement(const JObjectArrayElement &) = delete; class ScopedLocalRef (line 86) | class ScopedLocalRef class Iterator (line 849) | class Iterator { method Iterator (line 851) | Iterator(JArrayUnderlyingType *e) : e_(e) {} method Iterator (line 857) | Iterator &operator++() { return ++e_, *this; } method Iterator (line 858) | Iterator &operator--() { return --e_, *this; } method Iterator (line 859) | Iterator operator++(int) { return Iterator(e_++); } method Iterator (line 860) | Iterator operator--(int) { return Iterator(e_--); } class ConstIterator (line 865) | class ConstIterator { method ConstIterator (line 867) | ConstIterator(const JArrayUnderlyingType *e) : e_(e) {} method ConstIterator (line 873) | ConstIterator &operator++() { return ++e_, *this; } method ConstIterator (line 874) | ConstIterator &operator--() { return --e_, *this; } method ConstIterator (line 875) | ConstIterator operator++(int) { return ConstIterator(e_++); } method ConstIterator (line 876) | ConstIterator operator--(int) { return ConstIterator(e_--); } method begin (line 881) | auto begin() { method end (line 886) | auto end() { method begin (line 891) | const auto begin() const { return ConstIterator(elements_); } method end (line 893) | auto end() const { return ConstIterator(elements_ + size_); } method cbegin (line 895) | const auto cbegin() const { return ConstIterator(elements_); } method cend (line 897) | auto cend() const { return ConstIterator(elements_ + size_); } method ScopedLocalRef (line 901) | ScopedLocalRef(JNIEnv *env, T local_ref) noexcept : env_(env), local... method ScopedLocalRef (line 905) | ScopedLocalRef(ScopedLocalRef &&s) noexcept { *this = std::move(s); } method ScopedLocalRef (line 908) | ScopedLocalRef(ScopedLocalRef &&s) noexcept : ScopedLocalRef(s.en... method ScopedLocalRef (line 910) | explicit ScopedLocalRef(JNIEnv *env) noexcept : ScopedLocalRef(env, ... method reset (line 914) | void reset(T ptr = nullptr) { method T (line 945) | [[nodiscard]] T release() { method T (line 954) | T get() const { return local_ref_; } method commit (line 963) | void commit() { method ScopedLocalRef (line 973) | ScopedLocalRef &operator=(ScopedLocalRef &&s) noexcept { method size (line 986) | size_t size() const { return size_; } method ReleaseElements (line 996) | void ReleaseElements(jint mode) { class JNIScopeFrame (line 88) | class JNIScopeFrame { method JNIScopeFrame (line 94) | JNIScopeFrame(JNIEnv *env, jint size) : env_(env) { env_->PushLocalF... class JNIMonitor (line 99) | class JNIMonitor { method JNIMonitor (line 106) | JNIMonitor(JNIEnv *env, jobject obj) : env_(env), obj_(obj) { env_->... function ClearException (line 124) | inline ScopedLocalRef ClearException(JNIEnv *env) { function UnwrapScope (line 139) | [[maybe_unused]] inline auto UnwrapScope(T &&x) { function WrapScope (line 151) | [[maybe_unused]] inline auto WrapScope(JNIEnv *env, T &&x) { function WrapScope (line 159) | [[maybe_unused]] inline auto WrapScope(JNIEnv *env, std::tuple &&x, function WrapScope (line 165) | [[maybe_unused]] inline auto WrapScope(JNIEnv *env, std::tuple &... function JNI_NewStringUTF (line 170) | inline auto JNI_NewStringUTF(JNIEnv *env, std::string_view sv) { class JUTFString (line 174) | class JUTFString { method JUTFString (line 176) | JUTFString(JNIEnv *env, jstring jstr) : JUTFString(env, jstr, nullpt... method JUTFString (line 178) | JUTFString(const ScopedLocalRef &jstr) method JUTFString (line 181) | JUTFString(JNIEnv *env, jstring jstr, const char *default_cstr) : en... method get (line 194) | auto get() const { return cstr_; } method JUTFString (line 200) | JUTFString(JUTFString &&other) method JUTFString (line 207) | JUTFString &operator=(JUTFString &&other) { method JUTFString (line 222) | JUTFString(const JUTFString &) = delete; method JUTFString (line 224) | JUTFString &operator=(const JUTFString &) = delete; function JNI_SafeInvoke (line 229) | [[maybe_unused]] inline auto JNI_SafeInvoke(JNIEnv *env, Func JNIEnv::... function JNI_FindClass (line 258) | [[maybe_unused]] inline auto JNI_FindClass(JNIEnv *env, std::string_vi... function JNI_GetObjectClass (line 263) | [[maybe_unused]] inline auto JNI_GetObjectClass(JNIEnv *env, const Obj... function JNI_GetFieldID (line 270) | [[maybe_unused]] inline auto JNI_GetFieldID(JNIEnv *env, Class &&clazz... function JNI_GetObjectField (line 278) | [[maybe_unused]] inline auto JNI_GetObjectField(JNIEnv *env, Object &&... function JNI_GetBooleanField (line 283) | [[maybe_unused]] inline auto JNI_GetBooleanField(JNIEnv *env, Object &... function JNI_GetByteField (line 288) | [[maybe_unused]] inline auto JNI_GetByteField(JNIEnv *env, Object &&ob... function JNI_GetCharField (line 293) | [[maybe_unused]] inline auto JNI_GetCharField(JNIEnv *env, Object &&ob... function JNI_GetShortField (line 298) | [[maybe_unused]] inline auto JNI_GetShortField(JNIEnv *env, Object &&o... function JNI_GetIntField (line 303) | [[maybe_unused]] inline auto JNI_GetIntField(JNIEnv *env, Object &&obj... function JNI_GetLongField (line 308) | [[maybe_unused]] inline auto JNI_GetLongField(JNIEnv *env, Object &&ob... function JNI_GetFloatField (line 313) | [[maybe_unused]] inline auto JNI_GetFloatField(JNIEnv *env, Object &&o... function JNI_GetDoubleField (line 318) | [[maybe_unused]] inline auto JNI_GetDoubleField(JNIEnv *env, Object &&... function JNI_SetObjectField (line 325) | [[maybe_unused]] inline auto JNI_SetObjectField(JNIEnv *env, Object &&... function JNI_SetBooleanField (line 331) | [[maybe_unused]] inline auto JNI_SetBooleanField(JNIEnv *env, Object &... function JNI_SetByteField (line 337) | [[maybe_unused]] inline auto JNI_SetByteField(JNIEnv *env, Object &&ob... function JNI_SetCharField (line 343) | [[maybe_unused]] inline auto JNI_SetCharField(JNIEnv *env, Object &&ob... function JNI_SetShortField (line 349) | [[maybe_unused]] inline auto JNI_SetShortField(JNIEnv *env, Object &&o... function JNI_SetIntField (line 355) | [[maybe_unused]] inline auto JNI_SetIntField(JNIEnv *env, Object &&obj... function JNI_SetLongField (line 361) | [[maybe_unused]] inline auto JNI_SetLongField(JNIEnv *env, Object &&ob... function JNI_SetFloatField (line 367) | [[maybe_unused]] inline auto JNI_SetFloatField(JNIEnv *env, Object &&o... function JNI_SetDoubleField (line 373) | [[maybe_unused]] inline auto JNI_SetDoubleField(JNIEnv *env, Object &&... function JNI_GetStaticFieldID (line 381) | [[maybe_unused]] inline auto JNI_GetStaticFieldID(JNIEnv *env, Class &... function JNI_GetStaticObjectField (line 389) | [[maybe_unused]] inline auto JNI_GetStaticObjectField(JNIEnv *env, Cla... function JNI_GetStaticBooleanField (line 395) | [[maybe_unused]] inline auto JNI_GetStaticBooleanField(JNIEnv *env, Cl... function JNI_GetStaticByteField (line 401) | [[maybe_unused]] inline auto JNI_GetStaticByteField(JNIEnv *env, Class... function JNI_GetStaticCharField (line 406) | [[maybe_unused]] inline auto JNI_GetStaticCharField(JNIEnv *env, Class... function JNI_GetStaticShortField (line 411) | [[maybe_unused]] inline auto JNI_GetStaticShortField(JNIEnv *env, Clas... function JNI_GetStaticIntField (line 416) | [[maybe_unused]] inline auto JNI_GetStaticIntField(JNIEnv *env, Class ... function JNI_GetStaticLongField (line 421) | [[maybe_unused]] inline auto JNI_GetStaticLongField(JNIEnv *env, Class... function JNI_GetStaticFloatField (line 426) | [[maybe_unused]] inline auto JNI_GetStaticFloatField(JNIEnv *env, Clas... function JNI_GetStaticDoubleField (line 431) | [[maybe_unused]] inline auto JNI_GetStaticDoubleField(JNIEnv *env, Cla... function JNI_SetStaticObjectField (line 439) | [[maybe_unused]] inline auto JNI_SetStaticObjectField(JNIEnv *env, Cla... function JNI_SetStaticBooleanField (line 446) | [[maybe_unused]] inline auto JNI_SetStaticBooleanField(JNIEnv *env, Cl... function JNI_SetStaticByteField (line 453) | [[maybe_unused]] inline auto JNI_SetStaticByteField(JNIEnv *env, Class... function JNI_SetStaticCharField (line 460) | [[maybe_unused]] inline auto JNI_SetStaticCharField(JNIEnv *env, Class... function JNI_SetStaticShortField (line 467) | [[maybe_unused]] inline auto JNI_SetStaticShortField(JNIEnv *env, Clas... function JNI_SetStaticIntField (line 474) | [[maybe_unused]] inline auto JNI_SetStaticIntField(JNIEnv *env, Class ... function JNI_SetStaticLongField (line 481) | [[maybe_unused]] inline auto JNI_SetStaticLongField(JNIEnv *env, Class... function JNI_SetStaticFloatField (line 488) | [[maybe_unused]] inline auto JNI_SetStaticFloatField(JNIEnv *env, Clas... function JNI_SetStaticDoubleField (line 495) | [[maybe_unused]] inline auto JNI_SetStaticDoubleField(JNIEnv *env, Cla... function JNI_ToReflectedMethod (line 502) | [[maybe_unused]] inline auto JNI_ToReflectedMethod(JNIEnv *env, Class ... function JNI_ToReflectedField (line 509) | [[maybe_unused]] inline auto JNI_ToReflectedField(JNIEnv *env, Class &... function JNI_GetMethodID (line 520) | [[maybe_unused]] inline auto JNI_GetMethodID(JNIEnv *env, Class &&claz... function JNI_CallVoidMethod (line 526) | [[maybe_unused]] inline auto JNI_CallVoidMethod(JNIEnv *env, Object &&... function JNI_CallObjectMethod (line 533) | [[maybe_unused]] inline auto JNI_CallObjectMethod(JNIEnv *env, Object ... function JNI_CallBooleanMethod (line 540) | [[maybe_unused]] inline auto JNI_CallBooleanMethod(JNIEnv *env, Object... function JNI_CallByteMethod (line 547) | [[maybe_unused]] inline auto JNI_CallByteMethod(JNIEnv *env, Object &&... function JNI_CallCharMethod (line 554) | [[maybe_unused]] inline auto JNI_CallCharMethod(JNIEnv *env, Object &&... function JNI_CallShortMethod (line 561) | [[maybe_unused]] inline auto JNI_CallShortMethod(JNIEnv *env, Object &... function JNI_CallIntMethod (line 568) | [[maybe_unused]] inline auto JNI_CallIntMethod(JNIEnv *env, Object &&o... function JNI_CallLongMethod (line 575) | [[maybe_unused]] inline auto JNI_CallLongMethod(JNIEnv *env, Object &&... function JNI_CallFloatMethod (line 582) | [[maybe_unused]] inline auto JNI_CallFloatMethod(JNIEnv *env, Object &... function JNI_CallDoubleMethod (line 589) | [[maybe_unused]] inline auto JNI_CallDoubleMethod(JNIEnv *env, Object ... function JNI_GetStaticMethodID (line 598) | [[maybe_unused]] inline auto JNI_GetStaticMethodID(JNIEnv *env, Class ... function JNI_CallStaticVoidMethod (line 604) | [[maybe_unused]] inline auto JNI_CallStaticVoidMethod(JNIEnv *env, Cla... function JNI_CallStaticObjectMethod (line 611) | [[maybe_unused]] inline auto JNI_CallStaticObjectMethod(JNIEnv *env, C... function JNI_CallStaticBooleanMethod (line 618) | [[maybe_unused]] inline auto JNI_CallStaticBooleanMethod(JNIEnv *env, ... function JNI_CallStaticByteMethod (line 625) | [[maybe_unused]] inline auto JNI_CallStaticByteMethod(JNIEnv *env, Cla... function JNI_CallStaticCharMethod (line 632) | [[maybe_unused]] inline auto JNI_CallStaticCharMethod(JNIEnv *env, Cla... function JNI_CallStaticShortMethod (line 639) | [[maybe_unused]] inline auto JNI_CallStaticShortMethod(JNIEnv *env, Cl... function JNI_CallStaticIntMethod (line 646) | [[maybe_unused]] inline auto JNI_CallStaticIntMethod(JNIEnv *env, Clas... function JNI_CallStaticLongMethod (line 653) | [[maybe_unused]] inline auto JNI_CallStaticLongMethod(JNIEnv *env, Cla... function JNI_CallStaticFloatMethod (line 660) | [[maybe_unused]] inline auto JNI_CallStaticFloatMethod(JNIEnv *env, Cl... function JNI_CallStaticDoubleMethod (line 667) | [[maybe_unused]] inline auto JNI_CallStaticDoubleMethod(JNIEnv *env, C... function JNI_CallNonvirtualVoidMethod (line 676) | [[maybe_unused]] inline auto JNI_CallNonvirtualVoidMethod(JNIEnv *env,... function JNI_CallNonvirtualObjectMethod (line 683) | [[maybe_unused]] inline auto JNI_CallNonvirtualObjectMethod(JNIEnv *en... function JNI_CallNonvirtualBooleanMethod (line 691) | [[maybe_unused]] inline auto JNI_CallNonvirtualBooleanMethod(JNIEnv *e... function JNI_CallNonvirtualByteMethod (line 699) | [[maybe_unused]] inline auto JNI_CallNonvirtualByteMethod(JNIEnv *env,... function JNI_CallNonvirtualCharMethod (line 706) | [[maybe_unused]] inline auto JNI_CallNonvirtualCharMethod(JNIEnv *env,... function JNI_CallNonvirtualShortMethod (line 713) | [[maybe_unused]] inline auto JNI_CallNonvirtualShortMethod(JNIEnv *env... function JNI_CallNonvirtualIntMethod (line 720) | [[maybe_unused]] inline auto JNI_CallNonvirtualIntMethod(JNIEnv *env, ... function JNI_CallNonvirtualLongMethod (line 727) | [[maybe_unused]] inline auto JNI_CallNonvirtualLongMethod(JNIEnv *env,... function JNI_CallNonvirtualFloatMethod (line 734) | [[maybe_unused]] inline auto JNI_CallNonvirtualFloatMethod(JNIEnv *env... function JNI_CallNonvirtualDoubleMethod (line 741) | [[maybe_unused]] inline auto JNI_CallNonvirtualDoubleMethod(JNIEnv *en... function JNI_NewObject (line 749) | [[maybe_unused]] inline auto JNI_NewObject(JNIEnv *env, Class &&clazz,... function JNI_NewDirectByteBuffer (line 756) | [[maybe_unused]] inline auto JNI_NewDirectByteBuffer(JNIEnv *env, Args... function JNI_RegisterNatives (line 761) | [[maybe_unused]] inline auto JNI_RegisterNatives(JNIEnv *env, Class &&... function JNI_IsInstanceOf (line 767) | [[maybe_unused]] inline auto JNI_IsInstanceOf(JNIEnv *env, Object &&ob... function JNI_IsSameObject (line 773) | [[maybe_unused]] inline auto JNI_IsSameObject(JNIEnv *env, Object1 &&a... function JNI_NewGlobalRef (line 779) | [[maybe_unused]] inline auto JNI_NewGlobalRef(JNIEnv *env, Object &&x) { function JNI_Cast (line 785) | [[maybe_unused]] inline auto JNI_Cast(ScopedLocalRef &&x) function JNI_Cast (line 792) | [[maybe_unused]] inline auto JNI_Cast(JObjectArrayElement &&x) { function JNI_NewDirectByteBuffer (line 796) | [[maybe_unused]] inline auto JNI_NewDirectByteBuffer(JNIEnv *env, void... type JArrayUnderlyingTypeHelper (line 801) | struct JArrayUnderlyingTypeHelper type JArrayUnderlyingTypeHelper (line 804) | struct JArrayUnderlyingTypeHelper { type JArrayUnderlyingTypeHelper (line 809) | struct JArrayUnderlyingTypeHelper { type JArrayUnderlyingTypeHelper (line 814) | struct JArrayUnderlyingTypeHelper { type JArrayUnderlyingTypeHelper (line 819) | struct JArrayUnderlyingTypeHelper { type JArrayUnderlyingTypeHelper (line 824) | struct JArrayUnderlyingTypeHelper { type JArrayUnderlyingTypeHelper (line 829) | struct JArrayUnderlyingTypeHelper { type JArrayUnderlyingTypeHelper (line 834) | struct JArrayUnderlyingTypeHelper { type JArrayUnderlyingTypeHelper (line 839) | struct JArrayUnderlyingTypeHelper { class ScopedLocalRef (line 847) | class ScopedLocalRef { class Iterator (line 849) | class Iterator { method Iterator (line 851) | Iterator(JArrayUnderlyingType *e) : e_(e) {} method Iterator (line 857) | Iterator &operator++() { return ++e_, *this; } method Iterator (line 858) | Iterator &operator--() { return --e_, *this; } method Iterator (line 859) | Iterator operator++(int) { return Iterator(e_++); } method Iterator (line 860) | Iterator operator--(int) { return Iterator(e_--); } class ConstIterator (line 865) | class ConstIterator { method ConstIterator (line 867) | ConstIterator(const JArrayUnderlyingType *e) : e_(e) {} method ConstIterator (line 873) | ConstIterator &operator++() { return ++e_, *this; } method ConstIterator (line 874) | ConstIterator &operator--() { return --e_, *this; } method ConstIterator (line 875) | ConstIterator operator++(int) { return ConstIterator(e_++); } method ConstIterator (line 876) | ConstIterator operator--(int) { return ConstIterator(e_--); } method begin (line 881) | auto begin() { method end (line 886) | auto end() { method begin (line 891) | const auto begin() const { return ConstIterator(elements_); } method end (line 893) | auto end() const { return ConstIterator(elements_ + size_); } method cbegin (line 895) | const auto cbegin() const { return ConstIterator(elements_); } method cend (line 897) | auto cend() const { return ConstIterator(elements_ + size_); } method ScopedLocalRef (line 901) | ScopedLocalRef(JNIEnv *env, T local_ref) noexcept : env_(env), local... method ScopedLocalRef (line 905) | ScopedLocalRef(ScopedLocalRef &&s) noexcept { *this = std::move(s); } method ScopedLocalRef (line 908) | ScopedLocalRef(ScopedLocalRef &&s) noexcept : ScopedLocalRef(s.en... method ScopedLocalRef (line 910) | explicit ScopedLocalRef(JNIEnv *env) noexcept : ScopedLocalRef(env, ... method reset (line 914) | void reset(T ptr = nullptr) { method T (line 945) | [[nodiscard]] T release() { method T (line 954) | T get() const { return local_ref_; } method commit (line 963) | void commit() { method ScopedLocalRef (line 973) | ScopedLocalRef &operator=(ScopedLocalRef &&s) noexcept { method size (line 986) | size_t size() const { return size_; } method ReleaseElements (line 996) | void ReleaseElements(jint mode) { class JObjectArrayElement (line 1025) | class JObjectArrayElement { method obtain (line 1028) | auto obtain() { method JObjectArrayElement (line 1033) | explicit JObjectArrayElement(JNIEnv *env, jobjectArray array, int i,... method JObjectArrayElement (line 1036) | JObjectArrayElement &operator++() { method JObjectArrayElement (line 1042) | JObjectArrayElement &operator--() { method JObjectArrayElement (line 1048) | JObjectArrayElement operator++(int) { return JObjectArrayElement(env... method JObjectArrayElement (line 1050) | JObjectArrayElement operator--(int) { return JObjectArrayElement(env... method JObjectArrayElement (line 1053) | JObjectArrayElement(JObjectArrayElement &&s) method JObjectArrayElement (line 1060) | JObjectArrayElement &operator=(JObjectArrayElement &&s) { method JObjectArrayElement (line 1065) | JObjectArrayElement &operator=(const JObjectArrayElement &s) { method JObjectArrayElement (line 1071) | JObjectArrayElement &operator=(ScopedLocalRef &&s) { method JObjectArrayElement (line 1077) | JObjectArrayElement &operator=(const ScopedLocalRef &s) { method JObjectArrayElement (line 1082) | JObjectArrayElement &operator=(jobject s) { method reset (line 1087) | void reset(jobject item) { method clone (line 1092) | ScopedLocalRef clone() const { return item_.clone(); } method jobject (line 1094) | jobject get() const { return item_.get(); } method jobject (line 1096) | jobject release() { return item_.release(); } method jobject (line 1098) | jobject operator->() const { return item_.get(); } method jobject (line 1100) | jobject operator*() const { return item_.get(); } method JObjectArrayElement (line 1108) | JObjectArrayElement(const JObjectArrayElement &) = delete; class ScopedLocalRef (line 1112) | class ScopedLocalRef { class Iterator (line 1114) | class Iterator { method Iterator (line 1117) | Iterator(JObjectArrayElement &&e) : e_(std::move(e)) {} method Iterator (line 1118) | Iterator(JNIEnv *env, jobjectArray array, int i, size_t size) : e_... method Iterator (line 1125) | Iterator &operator++() { method Iterator (line 1130) | Iterator &operator--() { method Iterator (line 1135) | Iterator operator++(int) { return Iterator(e_++); } method Iterator (line 1137) | Iterator operator--(int) { return Iterator(e_--); } class ConstIterator (line 1147) | class ConstIterator { method obtain (line 1150) | auto obtain() { method ConstIterator (line 1155) | ConstIterator(JNIEnv *env, jobjectArray array, int i, int size) method ConstIterator (line 1163) | ConstIterator &operator++() { method ConstIterator (line 1169) | ConstIterator &operator--() { method ConstIterator (line 1175) | ConstIterator operator++(int) { return ConstIterator(env_, array_,... method ConstIterator (line 1177) | ConstIterator operator--(int) { return ConstIterator(env_, array_,... method begin (line 1191) | auto begin() { return Iterator(env_, local_ref_, 0, size_); } method end (line 1193) | auto end() { return Iterator(env_, local_ref_, size_, size_); } method begin (line 1195) | const auto begin() const { return ConstIterator(env_, local_ref_, 0,... method end (line 1197) | auto end() const { return ConstIterator(env_, local_ref_, size_, siz... method cbegin (line 1199) | const auto cbegin() const { return ConstIterator(env_, local_ref_, 0... method cend (line 1201) | auto cend() const { return ConstIterator(env_, local_ref_, size_, si... method ScopedLocalRef (line 1203) | ScopedLocalRef(JNIEnv *env, jobjectArray local_ref) noexcept : env_(... method ScopedLocalRef (line 1207) | ScopedLocalRef(ScopedLocalRef &&s) noexcept { *this = std::move(s); } method ScopedLocalRef (line 1210) | ScopedLocalRef(ScopedLocalRef &&s) noexcept method ScopedLocalRef (line 1213) | explicit ScopedLocalRef(JNIEnv *env) noexcept : ScopedLocalRef(env, ... method reset (line 1217) | void reset(jobjectArray ptr = nullptr) { method jobjectArray (line 1228) | [[nodiscard]] jobjectArray release() { method jobjectArray (line 1235) | jobjectArray get() const { return local_ref_; } method JObjectArrayElement (line 1237) | JObjectArrayElement operator[](size_t index) { method ScopedLocalRef (line 1250) | ScopedLocalRef &operator=(ScopedLocalRef &&s) noexcept { method size (line 1259) | size_t size() const { return size_; } function JNI_GetArrayLength (line 1277) | [[maybe_unused]] inline auto JNI_GetArrayLength(JNIEnv *env, const Arr... function JNI_NewObjectArray (line 1284) | [[maybe_unused]] inline auto JNI_NewObjectArray(JNIEnv *env, jsize len... function JNI_NewBooleanArray (line 1289) | [[maybe_unused]] inline auto JNI_NewBooleanArray(JNIEnv *env, jsize le... function JNI_NewByteArray (line 1293) | [[maybe_unused]] inline auto JNI_NewByteArray(JNIEnv *env, jsize len) { function JNI_NewCharArray (line 1297) | [[maybe_unused]] inline auto JNI_NewCharArray(JNIEnv *env, jsize len) { function JNI_NewShortArray (line 1301) | [[maybe_unused]] inline auto JNI_NewShortArray(JNIEnv *env, jsize len) { function JNI_NewIntArray (line 1305) | [[maybe_unused]] inline auto JNI_NewIntArray(JNIEnv *env, jsize len) { function JNI_NewLongArray (line 1309) | [[maybe_unused]] inline auto JNI_NewLongArray(JNIEnv *env, jsize len) { function JNI_NewFloatArray (line 1313) | [[maybe_unused]] inline auto JNI_NewFloatArray(JNIEnv *env, jsize len) { function JNI_NewDoubleArray (line 1317) | [[maybe_unused]] inline auto JNI_NewDoubleArray(JNIEnv *env, jsize len) { function JNI_GetObjectFieldOf (line 1322) | [[maybe_unused]] inline auto JNI_GetObjectFieldOf(JNIEnv *env, Object ... FILE: app/src/main/cpp/supercall.h function ver_and_cmd (line 20) | static inline long ver_and_cmd(const char *key, long cmd) function sc_hello (line 32) | static inline long sc_hello(const char *key) function sc_ready (line 46) | static inline bool sc_ready(const char *key) function sc_klog (line 58) | static inline long sc_klog(const char *key, const char *msg) function sc_get_build_time (line 74) | static inline long sc_get_build_time(const char *key, const char *buildt... function sc_kp_ver (line 88) | static inline uint32_t sc_kp_ver(const char *key) function sc_k_ver (line 101) | static inline uint32_t sc_k_ver(const char *key) function sc_su (line 116) | static inline long sc_su(const char *key, struct su_profile *profile) function sc_su_task (line 133) | static inline long sc_su_task(const char *key, pid_t tid, struct su_prof... function sc_kstorage_write (line 150) | static inline long sc_kstorage_write(const char *key, int gid, long did,... function sc_kstorage_read (line 167) | static inline long sc_kstorage_read(const char *key, int gid, long did, ... function sc_kstorage_list_ids (line 184) | static inline long sc_kstorage_list_ids(const char *key, int gid, long *... function sc_kstorage_remove (line 200) | static inline long sc_kstorage_remove(const char *key, int gid, long did) function sc_set_ap_mod_exclude (line 216) | static inline long sc_set_ap_mod_exclude(const char *key, uid_t uid, int... function sc_get_ap_mod_exclude (line 234) | static inline int sc_get_ap_mod_exclude(const char *key, uid_t uid) function sc_list_ap_mod_exclude (line 245) | static inline int sc_list_ap_mod_exclude(const char *key, uid_t *uids, i... function sc_su_grant_uid (line 266) | static inline long sc_su_grant_uid(const char *key, struct su_profile *p... function sc_su_revoke_uid (line 280) | static inline long sc_su_revoke_uid(const char *key, uid_t uid) function sc_su_uid_nums (line 293) | static inline long sc_su_uid_nums(const char *key) function sc_su_allow_uids (line 308) | static inline long sc_su_allow_uids(const char *key, uid_t *buf, int num) function sc_su_uid_profile (line 324) | static inline long sc_su_uid_profile(const char *key, uid_t uid, struct ... function sc_su_get_path (line 339) | static inline long sc_su_get_path(const char *key, char *out_path, int p... function sc_su_reset_path (line 354) | static inline long sc_su_reset_path(const char *key, const char *path) function sc_su_get_all_allow_sctx (line 370) | static inline long sc_su_get_all_allow_sctx(const char *key, char *out_s... function sc_su_reset_all_allow_sctx (line 386) | static inline long sc_su_reset_all_allow_sctx(const char *key, const cha... function sc_kpm_load (line 403) | static inline long sc_kpm_load(const char *key, const char *path, const ... function sc_kpm_control (line 421) | static inline long sc_kpm_control(const char *key, const char *name, con... function sc_kpm_unload (line 438) | static inline long sc_kpm_unload(const char *key, const char *name, void... function sc_kpm_nums (line 452) | static inline long sc_kpm_nums(const char *key) function sc_kpm_list (line 467) | static inline long sc_kpm_list(const char *key, char *names_buf, int buf... function sc_kpm_info (line 484) | static inline long sc_kpm_info(const char *key, const char *name, char *... function sc_skey_get (line 500) | static inline long sc_skey_get(const char *key, char *out_key, int outlen) function sc_skey_set (line 515) | static inline long sc_skey_set(const char *key, const char *new_key) function sc_skey_root_enable (line 530) | static inline long sc_skey_root_enable(const char *key, bool enable) function sc_su_get_safemode (line 543) | static inline long sc_su_get_safemode(const char *key) function sc_bootlog (line 550) | static inline long sc_bootlog(const char *key) function sc_panic (line 556) | static inline long sc_panic(const char *key) function __sc_test (line 562) | static inline long __sc_test(const char *key, long a1, long a2, long a3) FILE: app/src/main/cpp/type_traits.hpp type lsplant (line 5) | namespace lsplant { type is_instance (line 7) | struct is_instance : public std::false_type {} type is_instance, U> (line 10) | struct is_instance, U> : public std::true_type {} FILE: app/src/main/cpp/uapi/scdefs.h function hash_key (line 9) | static inline long hash_key(const char *key) type kernel_storage (line 45) | struct kernel_storage type su_profile (line 70) | struct su_profile FILE: app/src/main/java/me/bmax/apatch/services/RootServices.java class RootServices (line 23) | public class RootServices extends RootService { method onBind (line 26) | @Override method getUserIds (line 31) | List getUserIds() { method getInstalledPackagesAll (line 42) | ArrayList getInstalledPackagesAll(int flags) { method getInstalledPackagesAsUser (line 51) | List getInstalledPackagesAsUser(int flags, int userId) { class Stub (line 63) | class Stub extends IAPRootService.Stub { method getPackages (line 64) | @Override FILE: app/src/main/java/me/bmax/apatch/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: app/src/main/java/me/bmax/apatch/ui/webui/SuFilePathHandler.java class SuFilePathHandler (line 45) | public final class SuFilePathHandler implements WebViewAssetLoader.PathH... type InsetsSupplier (line 70) | public interface InsetsSupplier { method get (line 71) | @NonNull type OnInsetsRequestedListener (line 75) | public interface OnInsetsRequestedListener { method onInsetsRequested (line 76) | void onInsetsRequested(boolean enable); method SuFilePathHandler (line 103) | public SuFilePathHandler(@NonNull Context context, @NonNull File direc... method isAllowedInternalStorageDir (line 120) | private boolean isAllowedInternalStorageDir(@NonNull Context context) ... method handle (line 150) | @Override method getCanonicalDirPath (line 188) | public static String getCanonicalDirPath(@NonNull File file) throws IO... method getCanonicalFileIfChild (line 194) | public static File getCanonicalFileIfChild(@NonNull File parent, @NonN... method handleSvgzStream (line 204) | @NonNull method openFile (line 210) | public static InputStream openFile(@NonNull File file, @NonNull Shell ... method guessMimeType (line 225) | @NonNull FILE: app/src/main/java/me/bmax/apatch/util/APatchKeyHelper.java class APatchKeyHelper (line 20) | public class APatchKeyHelper { method setSharedPreferences (line 43) | public static void setSharedPreferences(SharedPreferences sp) { method generateSecretKey (line 47) | private static void generateSecretKey() { method getRandomIV (line 72) | private static String getRandomIV() { method encrypt (line 83) | private static String encrypt(String orig) { method decrypt (line 99) | private static String decrypt(String encryptedData) { method shouldSkipStoreSuperKey (line 115) | public static boolean shouldSkipStoreSuperKey() { method clearConfigKey (line 119) | public static void clearConfigKey() { method setShouldSkipStoreSuperKey (line 125) | public static void setShouldSkipStoreSuperKey(boolean should) { method readSPSuperKey (line 130) | public static String readSPSuperKey() { method writeSPSuperKey (line 143) | public static void writeSPSuperKey(String key) { FILE: app/src/main/java/me/bmax/apatch/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 561) | public Token() { method Token (line 563) | public Token(int type, String source, String target) {