SYMBOL INDEX (2130 symbols across 139 files) FILE: app/apk/src/main/java/com/topjohnwu/magisk/widget/ConcealableBottomNavigationView.java class ConcealableBottomNavigationView (line 19) | public class ConcealableBottomNavigationView extends BottomNavigationView { method ConcealableBottomNavigationView (line 26) | public ConcealableBottomNavigationView(@NonNull Context context) { method ConcealableBottomNavigationView (line 30) | public ConcealableBottomNavigationView(@NonNull Context context, @Null... method ConcealableBottomNavigationView (line 34) | public ConcealableBottomNavigationView(@NonNull Context context, @Null... method ConcealableBottomNavigationView (line 38) | public ConcealableBottomNavigationView(@NonNull Context context, @Null... method recreateAnimator (line 42) | private void recreateAnimator(int height) { method onMeasure (line 58) | @Override method onCreateDrawableState (line 65) | @Override method isHidden (line 74) | public boolean isHidden() { method setHidden (line 78) | public void setHidden(boolean raised) { method onSaveInstanceState (line 85) | @NonNull method onRestoreInstanceState (line 93) | @Override class SavedState (line 103) | static class SavedState extends AbsSavedState { method SavedState (line 107) | public SavedState(Parcel source) { method SavedState (line 112) | public SavedState(Parcelable superState) { method writeToParcel (line 116) | @Override method createFromParcel (line 124) | @Override method newArray (line 129) | @Override FILE: app/core/src/main/java/com/topjohnwu/magisk/core/signing/ApkSignerV2.java class ApkSignerV2 (line 37) | public abstract class ApkSignerV2 { method ApkSignerV2 (line 86) | private ApkSignerV2() {} class SignerConfig (line 91) | public static final class SignerConfig { method sign (line 125) | public static ByteBuffer[] sign( method computeContentDigests (line 231) | private static Map computeContentDigests( method getChunkCount (line 321) | private static int getChunkCount(int inputSize, int chunkSize) { method setUnsignedInt32LittleEngian (line 325) | private static void setUnsignedInt32LittleEngian(int value, byte[] res... method generateApkSigningBlock (line 332) | private static byte[] generateApkSigningBlock( method generateApkSigningBlock (line 340) | private static byte[] generateApkSigningBlock(byte[] apkSignatureSchem... method generateApkSignatureSchemeV2Block (line 372) | private static byte[] generateApkSignatureSchemeV2Block( method generateSignerBlock (line 399) | private static byte[] generateSignerBlock( class V2SignatureSchemeBlock (line 509) | private static final class V2SignatureSchemeBlock { class Signer (line 510) | private static final class Signer { class SignedData (line 516) | private static final class SignedData { method encodePublicKey (line 522) | private static byte[] encodePublicKey(PublicKey publicKey) throws Inva... method encodeCertificates (line 548) | public static List encodeCertificates(List ce... method encodeAsSequenceOfLengthPrefixedElements (line 557) | private static byte[] encodeAsSequenceOfLengthPrefixedElements(List method getSignatureAlgorithmContentDigestAlgorithm (line 656) | private static int getSignatureAlgorithmContentDigestAlgorithm(int sig... method getContentDigestAlgorithmJcaDigestAlgorithm (line 675) | private static String getContentDigestAlgorithmJcaDigestAlgorithm(int ... method getContentDigestAlgorithmOutputSizeBytes (line 687) | private static int getContentDigestAlgorithmOutputSizeBytes(int digest... class ApkParseException (line 702) | public static class ApkParseException extends Exception { method ApkParseException (line 705) | public ApkParseException(String message) { method ApkParseException (line 709) | public ApkParseException(String message, Throwable cause) { class Pair (line 717) | private static class Pair { method Pair (line 721) | private Pair(A first, B second) { method create (line 726) | public static Pair create(A first, B second) { method getFirst (line 730) | public A getFirst() { method getSecond (line 734) | public B getSecond() { method hashCode (line 738) | @Override method equals (line 747) | @Override FILE: app/core/src/main/java/com/topjohnwu/magisk/core/signing/ByteArrayStream.java class ByteArrayStream (line 9) | public class ByteArrayStream extends ByteArrayOutputStream { method readFrom (line 11) | public synchronized void readFrom(InputStream is) { method readFrom (line 15) | public synchronized void readFrom(InputStream is, int len) { method getInputStream (line 28) | public ByteArrayInputStream getInputStream() { method toByteBuffer (line 32) | public ByteBuffer toByteBuffer() { FILE: app/core/src/main/java/com/topjohnwu/magisk/core/signing/JarMap.java class JarMap (line 18) | public abstract class JarMap implements Closeable { method open (line 22) | public static JarMap open(File file, boolean verify) throws IOException { method open (line 26) | public static JarMap open(InputStream is, boolean verify) throws IOExc... method getFile (line 30) | public File getFile() { method getManifest (line 34) | public abstract Manifest getManifest() throws IOException; method getInputStream (line 36) | public InputStream getInputStream(ZipEntry ze) throws IOException { method getOutputStream (line 41) | public OutputStream getOutputStream(ZipEntry ze) { method getRawData (line 49) | public byte[] getRawData(ZipEntry ze) throws IOException { method entries (line 54) | public abstract Enumeration entries(); method getEntry (line 56) | public final ZipEntry getEntry(String name) { method getJarEntry (line 60) | public JarEntry getJarEntry(String name) { method getMapEntry (line 64) | JarMapEntry getMapEntry(String name) { class FileMap (line 71) | private static class FileMap extends JarMap { method FileMap (line 75) | FileMap(File file, boolean verify, int mode) throws IOException { method getFile (line 79) | @Override method getManifest (line 84) | @Override method getInputStream (line 89) | @Override method getRawData (line 95) | @Override method entries (line 105) | @Override method getJarEntry (line 110) | @Override method close (line 116) | @Override class StreamMap (line 122) | private static class StreamMap extends JarMap { method StreamMap (line 126) | StreamMap(InputStream is, boolean verify) throws IOException { method getManifest (line 135) | @Override method entries (line 140) | @Override method close (line 145) | @Override class JarMapEntry (line 151) | private static class JarMapEntry extends JarEntry { method JarMapEntry (line 155) | JarMapEntry(JarEntry je, InputStream is) { method JarMapEntry (line 161) | JarMapEntry(String s) { FILE: app/core/src/main/java/com/topjohnwu/magisk/core/signing/SignApk.java class SignApk (line 55) | public class SignApk { method getDigestAlgorithm (line 78) | private static int getDigestAlgorithm(X509Certificate cert) { method getSignatureAlgorithm (line 93) | private static String getSignatureAlgorithm(X509Certificate cert) { method addDigestsToManifest (line 112) | private static Manifest addDigestsToManifest(JarMap jar, int hashes) method writeSignatureFile (line 191) | private static void writeSignatureFile(Manifest manifest, OutputStream... method writeSignatureBlock (line 249) | private static void writeSignatureBlock( method copyFiles (line 282) | private static void copyFiles(Manifest manifest, JarMap in, JarOutputS... method getStoredEntryDataAlignment (line 372) | private static int getStoredEntryDataAlignment(String entryName, int d... method signFile (line 386) | private static void signFile(Manifest manifest, method createV2SignerConfigs (line 422) | private static List createV2SignerConfigs( method getV2SignatureAlgorithm (line 461) | private static int getV2SignatureAlgorithm(String keyAlgorithm, String... method sign (line 493) | public static void sign(X509Certificate cert, PrivateKey key, class CountOutputStream (line 542) | private static class CountOutputStream extends FilterOutputStream { method CountOutputStream (line 545) | public CountOutputStream(OutputStream out) { method write (line 550) | @Override method write (line 556) | @Override method size (line 562) | public int size() { FILE: app/core/src/main/java/com/topjohnwu/magisk/core/signing/ZipUtils.java class ZipUtils (line 12) | public abstract class ZipUtils { method ZipUtils (line 25) | private ZipUtils() { method findZipEndOfCentralDirectoryRecord (line 34) | public static int findZipEndOfCentralDirectoryRecord(ByteBuffer zipCon... method isZip64EndOfCentralDirectoryLocatorPresent (line 72) | public static boolean isZip64EndOfCentralDirectoryLocatorPresent(ByteB... method getZipEocdCentralDirectoryOffset (line 91) | public static long getZipEocdCentralDirectoryOffset(ByteBuffer zipEndO... method setZipEocdCentralDirectoryOffset (line 101) | public static void setZipEocdCentralDirectoryOffset(ByteBuffer zipEndO... method getZipEocdCentralDirectorySizeBytes (line 111) | public static long getZipEocdCentralDirectorySizeBytes(ByteBuffer zipE... method assertByteOrderLittleEndian (line 116) | private static void assertByteOrderLittleEndian(ByteBuffer buffer) { method getUnsignedInt16 (line 122) | private static int getUnsignedInt16(ByteBuffer buffer, int offset) { method getUnsignedInt32 (line 126) | private static long getUnsignedInt32(ByteBuffer buffer, int offset) { method setUnsignedInt32 (line 130) | private static void setUnsignedInt32(ByteBuffer buffer, int offset, lo... FILE: app/core/src/main/java/com/topjohnwu/magisk/core/utils/Desugar.java class Desugar (line 12) | public class Desugar { method getLastModifiedTime (line 13) | public static FileTime getLastModifiedTime(ZipEntry entry) { method getLastAccessTime (line 21) | public static FileTime getLastAccessTime(ZipEntry entry) { method getCreationTime (line 29) | public static FileTime getCreationTime(ZipEntry entry) { method checkRequestedFeatures (line 44) | public static void checkRequestedFeatures(final ZipArchiveEntry ze) { FILE: app/shared/src/main/java/com/topjohnwu/magisk/ProviderInstaller.java class ProviderInstaller (line 6) | public class ProviderInstaller { method install (line 10) | public static void install(Context context) { FILE: app/shared/src/main/java/com/topjohnwu/magisk/StubApk.java class StubApk (line 23) | public class StubApk { method getDynDir (line 27) | private static File getDynDir(ApplicationInfo info) { method current (line 42) | public static File current(Context c) { method current (line 46) | public static File current(ApplicationInfo info) { method update (line 50) | public static File update(Context c) { method update (line 54) | public static File update(ApplicationInfo info) { method getResourcesLoader (line 58) | @TargetApi(Build.VERSION_CODES.R) method addAssetPath (line 72) | public static void addAssetPath(Resources res, String path) { method restartProcess (line 87) | public static void restartProcess(Activity activity) { class Data (line 95) | public static class Data { method Data (line 104) | public Data() { arr = new Object[ARR_SIZE]; } method Data (line 105) | public Data(Object o) { arr = (Object[]) o; } method getObject (line 106) | public Object getObject() { return arr; } method getVersion (line 108) | public int getVersion() { return (int) arr[STUB_VERSION]; } method setVersion (line 109) | public void setVersion(int version) { arr[STUB_VERSION] = version; } method getClassToComponent (line 110) | public Map getClassToComponent() { method setClassToComponent (line 114) | public void setClassToComponent(Map map) { method getRootService (line 117) | public Class getRootService() { return (Class) arr[ROOT_SERVIC... method setRootService (line 118) | public void setRootService(Class service) { arr[ROOT_SERVICE] = s... FILE: app/shared/src/main/java/com/topjohnwu/magisk/utils/APKInstall.java class APKInstall (line 28) | public final class APKInstall { method transfer (line 30) | public static void transfer(InputStream in, OutputStream out) throws I... method registerReceiver (line 39) | public static void registerReceiver( method startSession (line 49) | public static Session startSession(Context context) { method startSession (line 53) | public static Session startSession(Context context, String pkg, type Session (line 67) | public interface Session { method openStream (line 69) | OutputStream openStream(Context context) throws IOException; method waitIntent (line 71) | Intent waitIntent(); class InstallReceiver (line 74) | private static class InstallReceiver extends BroadcastReceiver impleme... method InstallReceiver (line 83) | private InstallReceiver(String packageName, Runnable onSuccess, Runn... method onReceive (line 89) | @Override method onSuccess (line 129) | private void onSuccess(Context context) { method waitIntent (line 138) | @Override method openStream (line 147) | @Override FILE: app/shared/src/main/java/com/topjohnwu/magisk/utils/CompoundEnumeration.java class CompoundEnumeration (line 6) | public class CompoundEnumeration implements Enumeration { method CompoundEnumeration (line 10) | @SafeVarargs method next (line 15) | private boolean next() { method hasMoreElements (line 25) | public boolean hasMoreElements() { method nextElement (line 29) | public E nextElement() { FILE: app/shared/src/main/java/com/topjohnwu/magisk/utils/DynamicClassLoader.java class DynamicClassLoader (line 12) | public class DynamicClassLoader extends BaseDexClassLoader { method DynamicClassLoader (line 14) | public DynamicClassLoader(File apk) { method DynamicClassLoader (line 18) | public DynamicClassLoader(File apk, ClassLoader parent) { method loadClass (line 23) | @Override method getResource (line 48) | @Override method getResources (line 60) | @Override FILE: app/stub/src/main/java/com/topjohnwu/magisk/ClassLoaders.java class MappingClassLoader (line 14) | class MappingClassLoader extends ClassLoader { method MappingClassLoader (line 18) | MappingClassLoader(ClassLoader parent, Map m) { method loadClass (line 23) | @Override class StubClassLoader (line 31) | class StubClassLoader extends ClassLoader { method StubClassLoader (line 35) | StubClassLoader(PackageInfo info) { method loadClass (line 51) | @Override class DelegateClassLoader (line 58) | class DelegateClassLoader extends ClassLoader { method DelegateClassLoader (line 60) | DelegateClassLoader() { method loadClass (line 64) | @Override FILE: app/stub/src/main/java/com/topjohnwu/magisk/DelegateComponentFactory.java class DelegateComponentFactory (line 17) | @SuppressLint("NewApi") method DelegateComponentFactory (line 22) | public DelegateComponentFactory() { method instantiateClassLoader (line 26) | @Override method instantiateApplication (line 31) | @Override method instantiateActivity (line 36) | @Override method instantiateReceiver (line 44) | @Override method instantiateService (line 52) | @Override method instantiateProvider (line 60) | @Override method create (line 68) | private T create(String name, Class fallback) FILE: app/stub/src/main/java/com/topjohnwu/magisk/DownloadActivity.java class DownloadActivity (line 46) | public class DownloadActivity extends Activity { method onCreate (line 53) | @Override method finish (line 82) | @Override method error (line 88) | private void error(Throwable e) { method request (line 93) | private Request request(String url) { method showDialog (line 97) | private void showDialog() { method dlAPK (line 107) | private void dlAPK() { method decryptResources (line 129) | private void decryptResources(OutputStream out) throws Exception { method loadResources (line 141) | private void loadResources() throws Exception { FILE: app/stub/src/main/java/com/topjohnwu/magisk/DynLoad.java class DynLoad (line 29) | @SuppressWarnings("ResultOfMethodCallIgnored") method createApkData (line 35) | static StubApk.Data createApkData() { method attachContext (line 43) | static void attachContext(Object o, Context context) { method loadApk (line 54) | static DynamicClassLoader loadApk(Context context) { method loadAndInitializeApp (line 116) | static void loadAndInitializeApp(Application context) { method replaceClassLoader (line 183) | private static void replaceClassLoader(Context context) { method generateMapping (line 204) | private static Map generateMapping(PackageInfo stub, P... FILE: app/stub/src/main/java/com/topjohnwu/magisk/StubApplication.java class StubApplication (line 6) | public class StubApplication extends Application { method attachBaseContext (line 7) | @Override FILE: app/stub/src/main/java/com/topjohnwu/magisk/StubRootService.java class StubRootService (line 12) | public class StubRootService extends ContextWrapper { method StubRootService (line 14) | public StubRootService() { method attachBaseContext (line 18) | @Override FILE: app/stub/src/main/java/com/topjohnwu/magisk/dummy/DummyProvider.java class DummyProvider (line 8) | public class DummyProvider extends ContentProvider { method onCreate (line 9) | @Override method query (line 14) | @Override method getType (line 19) | @Override method insert (line 24) | @Override method delete (line 29) | @Override method update (line 34) | @Override FILE: app/stub/src/main/java/com/topjohnwu/magisk/dummy/DummyReceiver.java class DummyReceiver (line 7) | public class DummyReceiver extends BroadcastReceiver { method onReceive (line 8) | @Override FILE: app/stub/src/main/java/com/topjohnwu/magisk/dummy/DummyService.java class DummyService (line 7) | public class DummyService extends Service { method onBind (line 8) | @Override FILE: app/stub/src/main/java/com/topjohnwu/magisk/net/BadRequest.java class BadRequest (line 10) | class BadRequest extends Request { method BadRequest (line 14) | BadRequest(IOException e) { super(null); ex = e; } method addHeaders (line 16) | @Override method execForInputStream (line 19) | @Override method getAsFile (line 22) | @Override method execForFile (line 25) | @Override method getAsString (line 28) | @Override method execForString (line 31) | @Override method getAsJSONObject (line 34) | @Override method execForJSONObject (line 37) | @Override method getAsJSONArray (line 40) | @Override method execForJSONArray (line 43) | @Override method fail (line 46) | private void fail() { FILE: app/stub/src/main/java/com/topjohnwu/magisk/net/ErrorHandler.java type ErrorHandler (line 5) | public interface ErrorHandler { method onError (line 6) | void onError(HttpURLConnection conn, Exception e); FILE: app/stub/src/main/java/com/topjohnwu/magisk/net/Networking.java class Networking (line 13) | public class Networking { method request (line 19) | private static Request request(String url, String method) { method get (line 31) | public static Request get(String url) { method checkNetworkStatus (line 35) | public static boolean checkNetworkStatus(Context context) { FILE: app/stub/src/main/java/com/topjohnwu/magisk/net/Request.java class Request (line 25) | public class Request { type Requestor (line 32) | private interface Requestor { method request (line 33) | T request() throws Exception; class Result (line 36) | public class Result { method getResult (line 39) | public T getResult() { method getCode (line 43) | public int getCode() { method isSuccess (line 47) | public boolean isSuccess() { method getConnection (line 51) | public HttpURLConnection getConnection() { method Request (line 56) | Request(HttpURLConnection c) { method addHeaders (line 60) | public Request addHeaders(String key, String value) { method setErrorHandler (line 65) | public Request setErrorHandler(ErrorHandler handler) { method setExecutor (line 70) | public Request setExecutor(Executor e) { method connect (line 75) | public Result connect() { method execForInputStream (line 85) | public Result execForInputStream() { method getAsInputStream (line 89) | public void getAsInputStream(ResponseListener rs) { method getAsFile (line 93) | public void getAsFile(File out, ResponseListener rs) { method execForFile (line 97) | public void execForFile(File out) { method getAsBytes (line 101) | public void getAsBytes(ResponseListener rs) { method execForBytes (line 105) | public Result execForBytes() { method getAsString (line 109) | public void getAsString(ResponseListener rs) { method execForString (line 113) | public Result execForString() { method getAsJSONObject (line 117) | public void getAsJSONObject(ResponseListener rs) { method execForJSONObject (line 121) | public Result execForJSONObject() { method getAsJSONArray (line 125) | public void getAsJSONArray(ResponseListener rs) { method execForJSONArray (line 129) | public Result execForJSONArray() { method connect0 (line 133) | private void connect0() throws IOException { method exec (line 138) | private Result exec(Requestor req) { method submit (line 149) | private void submit(Requestor req, ResponseListener rs) { method getInputStream (line 165) | private BufferedInputStream getInputStream() throws IOException { method dlString (line 177) | private String dlString() throws IOException { method dlJSONObject (line 184) | private JSONObject dlJSONObject() throws IOException, JSONException { method dlJSONArray (line 188) | private JSONArray dlJSONArray() throws IOException, JSONException { method dlFile (line 192) | private File dlFile(File f) throws IOException { method dlBytes (line 200) | private byte[] dlBytes() throws IOException { FILE: app/stub/src/main/java/com/topjohnwu/magisk/net/ResponseListener.java type ResponseListener (line 3) | public interface ResponseListener { method onResponse (line 4) | void onResponse(T response); FILE: build.py function color_print (line 18) | def color_print(code, str): function error (line 26) | def error(str): function header (line 31) | def header(str): function vprint (line 35) | def vprint(str): function mv (line 96) | def mv(source: Path, target: Path): function cp (line 104) | def cp(source: Path, target: Path): function rm (line 112) | def rm(file: Path): function rm_on_error (line 120) | def rm_on_error(func, path, _): function rm_rf (line 130) | def rm_rf(path: Path): function execv (line 138) | def execv(cmds: list, env=None): function cmd_out (line 144) | def cmd_out(cmds: list): function clean_elf (line 162) | def clean_elf(): function collect_ndk_build (line 175) | def collect_ndk_build(): function run_ndk_build (line 184) | def run_ndk_build(cmds: list[str]): function build_cpp_src (line 200) | def build_cpp_src(targets: set[str]): function run_cargo (line 239) | def run_cargo(cmds: list[str]): function build_rust_src (line 258) | def build_rust_src(targets: set[str]): function write_if_diff (line 303) | def write_if_diff(file_name: Path, text: str): function dump_flags_native (line 314) | def dump_flags_native(): function ensure_toolchain (line 329) | def ensure_toolchain(): function build_native (line 347) | def build_native(): function find_jdk (line 369) | def find_jdk(): function dump_flags_app (line 401) | def dump_flags_app(): function build_apk (line 411) | def build_apk(module: str): function build_app (line 442) | def build_app(): function build_app_ng (line 461) | def build_app_ng(): function build_stub (line 467) | def build_stub(): function build_test (line 473) | def build_test(): function cleanup (line 492) | def cleanup(): function build_all (line 527) | def build_all(): function gen_ide (line 539) | def gen_ide(): function clippy_cli (line 578) | def clippy_cli(): function cargo_cli (line 602) | def cargo_cli(): function setup_ndk (line 612) | def setup_ndk(): function setup_rustup (line 631) | def setup_rustup(): function push_files (line 664) | def push_files(script: Path): function setup_avd (line 699) | def setup_avd(): function patch_avd_file (line 709) | def patch_avd_file(): function ensure_paths (line 740) | def ensure_paths(): function ensure_adb (line 765) | def ensure_adb(): function parse_props (line 774) | def parse_props(file: Path) -> dict[str, str]: function set_build_abis (line 791) | def set_build_abis(abis: set[str]): function load_config (line 801) | def load_config(): function parse_args (line 834) | def parse_args(): function main (line 941) | def main(): FILE: native/src/base/argh.rs type CommandInfo (line 323) | pub type CommandInfo = argh_shared::CommandInfo<'static>; type CommandInfoWithArgs (line 326) | pub type CommandInfoWithArgs = argh_shared::CommandInfoWithArgs<'static>; type SubCommandInfo (line 329) | pub type SubCommandInfo = argh_shared::SubCommandInfo<'static>; type ArgsInfo (line 334) | pub trait ArgsInfo { method get_args_info (line 336) | fn get_args_info() -> CommandInfoWithArgs; method get_subcommands (line 339) | fn get_subcommands() -> Vec { type FromArgs (line 345) | pub trait FromArgs: Sized { method from_args (line 466) | fn from_args(command_name: &[&str], args: &[&str]) -> Result &'static [&'static CommandInfo] { constant COMMANDS (line 490) | const COMMANDS: &'static [&'static CommandInfo] = &[T::COMMAND]; type SubCommand (line 484) | pub trait SubCommand: FromArgs { constant COMMAND (line 486) | const COMMAND: &'static CommandInfo; type DynamicSubCommand (line 494) | pub trait DynamicSubCommand: Sized { method commands (line 496) | fn commands() -> &'static [&'static CommandInfo]; method try_redact_arg_values (line 506) | fn try_redact_arg_values( method try_from_args (line 518) | fn try_from_args(command_name: &[&str], args: &[&str]) -> Option Self { type FromArgValue (line 547) | pub trait FromArgValue: Sized { method from_arg_value (line 550) | fn from_arg_value(value: &str) -> Result; method from_arg_value (line 558) | fn from_arg_value(value: &str) -> Result { type ParseFlag (line 567) | pub trait ParseFlag { method set_flag (line 568) | fn set_flag(&mut self, arg: &str); method set_flag (line 572) | fn set_flag(&mut self, _arg: &str) { type ParseValueSlot (line 584) | pub trait ParseValueSlot { method fill_slot (line 585) | fn fill_slot(&mut self, arg: &str, value: &str) -> Result<(), String>; method fill_slot (line 603) | fn fill_slot(&mut self, arg: &str, value: &str) -> Result<(), String> { method fill_slot (line 614) | fn fill_slot(&mut self, arg: &str, value: &str) -> Result<(), String> { method fill_slot (line 622) | fn fill_slot(&mut self, arg: &str, value: &str) -> Result<(), String> { type ParseValueSlotTy (line 593) | pub struct ParseValueSlotTy { type Flag (line 631) | pub trait Flag { method default (line 633) | fn default() -> Self method set_flag (line 638) | fn set_flag(&mut self); method default (line 642) | fn default() -> Self { method set_flag (line 645) | fn set_flag(&mut self) { method default (line 651) | fn default() -> Self { method set_flag (line 655) | fn set_flag(&mut self) { function parse_struct_args (line 686) | pub fn parse_struct_args( type ParseStructOptions (line 743) | pub struct ParseStructOptions<'a> { function parse (line 763) | fn parse(&mut self, arg: &str, remaining_args: &mut &[&str]) -> Result<(... function unrecognized_argument (line 796) | fn unrecognized_argument( type ParseStructOption (line 817) | pub enum ParseStructOption<'a> { type ParseStructPositionals (line 826) | pub struct ParseStructPositionals<'a> { function parse (line 839) | fn parse(&mut self, index: &mut usize, arg: &str) -> Result { function parse (line 876) | fn parse(&mut self, arg: &str) -> Result<(), EarlyExit> { type ParseStructSubCommand (line 898) | pub struct ParseStructSubCommand<'a> { function parse (line 910) | fn parse( function prepend_help (line 945) | fn prepend_help<'a>(args: &[&'a str]) -> Vec<&'a str> { function print_subcommands (line 950) | pub fn print_subcommands<'a>(commands: impl Iterator String { type MissingRequirements (line 965) | pub struct MissingRequirements { method missing_option (line 976) | pub fn missing_option(&mut self, name: &'static str) { method missing_subcommands (line 982) | pub fn missing_subcommands(&mut self, commands: impl Iterator Result<(), String> { constant NEWLINE_INDENT (line 971) | const NEWLINE_INDENT: &str = "\n "; type CommandInfo (line 1047) | pub struct CommandInfo<'a> { type CommandInfoWithArgs (line 1056) | pub struct CommandInfoWithArgs<'a> { type ErrorCodeInfo (line 1077) | pub struct ErrorCodeInfo<'a> { type PositionalInfo (line 1086) | pub struct PositionalInfo<'a> { type SubCommandInfo (line 1104) | pub struct SubCommandInfo<'a> { type FlagInfo (line 1113) | pub struct FlagInfo<'a> { type FlagInfoKind (line 1133) | pub enum FlagInfoKind<'a> { type Optionality (line 1145) | pub enum Optionality { constant INDENT (line 1162) | pub const INDENT: &str = " "; constant DESCRIPTION_INDENT (line 1163) | const DESCRIPTION_INDENT: usize = 20; constant WRAP_WIDTH (line 1164) | const WRAP_WIDTH: usize = 80; function write_description (line 1167) | pub fn write_description(out: &mut String, cmd: &CommandInfo<'_>) { function indent_description (line 1204) | fn indent_description(line: &mut String) -> bool { function char_len (line 1215) | fn char_len(s: &str) -> usize { function new_line (line 1221) | fn new_line(current_line: &mut String, out: &mut String) { FILE: native/src/base/base.cpp function mut_u8_patch (line 52) | rust::Vec mut_u8_patch(MutByteSlice buf, ByteSlice from, ByteSli... function fork_dont_care (line 57) | int fork_dont_care() { function fork_no_orphan (line 67) | int fork_no_orphan() { function exec_command (line 77) | int exec_command(exec_t &exec) { function exec_command_sync (line 123) | int exec_command_sync(exec_t &exec) { function new_daemon_thread (line 132) | int new_daemon_thread(thread_entry entry, void *arg) { function init_argv0 (line 146) | void init_argv0(int argc, char **argv) { function set_nice_name (line 151) | void set_nice_name(Utf8CStr name) { function T (line 158) | static T parse_num(string_view s) { function parse_int (line 181) | int parse_int(string_view s) { function parse_uint32_hex (line 185) | uint32_t parse_uint32_hex(string_view s) { function switch_mnt_ns (line 189) | int switch_mnt_ns(int pid) { function string (line 209) | string &replace_all(string &str, string_view from, string_view to) { function split_impl (line 219) | static auto split_impl(string_view s, string_view delims) { function split (line 233) | vector split(string_view s, string_view delims) { function vssprintf (line 238) | int vssprintf(char *dest, size_t size, const char *fmt, va_list ap) { function ssprintf (line 246) | int ssprintf(char *dest, size_t size, const char *fmt, ...) { function strscpy (line 255) | size_t strscpy(char *dest, const char *src, size_t size) { function fmt_and_log_with_rs (line 260) | static int fmt_and_log_with_rs(LogLevel level, const char *fmt, va_list ... function magisk_log_print (line 271) | int magisk_log_print(int prio, const char *tag, const char *fmt, ...) { function LOGD (line 317) | void LOGD(const char *fmt, ...) {} function __vloge (line 324) | void __vloge(const char* fmt, va_list ap) { function string (line 328) | string full_read(int fd) { function string (line 336) | string full_read(const char *filename) { function write_zero (line 345) | void write_zero(int fd, size_t size) { function sDIR (line 355) | sDIR make_dir(DIR *dp) { function sFILE (line 359) | sFILE make_file(FILE *fp) { function string (line 396) | string resolve_preinit_dir(const char *base_dir) { FILE: native/src/base/build.rs function main (line 6) | fn main() { FILE: native/src/base/cstr.rs function dynamic (line 45) | pub fn dynamic(capacity: usize) -> Utf8CString { function default (line 50) | pub fn default() -> Utf8CStrBufArr<4096> { function new (line 55) | pub fn new() -> Utf8CStrBufArr { function wrap (line 60) | pub fn wrap(buf: &mut [u8]) -> Utf8CStrBufRef<'_> { function wrap_ptr (line 65) | pub unsafe fn wrap_ptr<'a>(buf: *mut u8, len: usize) -> Utf8CStrBufRef<'... type Utf8CStrBuf (line 72) | pub trait Utf8CStrBuf: Display + Write + AsRef + Deref usize; method push_str (line 76) | fn push_str(&mut self, s: &str) -> usize; method capacity (line 79) | fn capacity(&self) -> usize; method clear (line 80) | fn clear(&mut self); method as_mut_ptr (line 81) | fn as_mut_ptr(&mut self) -> *mut c_char; method truncate (line 82) | fn truncate(&mut self, new_len: usize); method rebuild (line 86) | fn rebuild(&mut self) -> Result<(), StrErr>; method is_empty (line 89) | fn is_empty(&self) -> bool { method len (line 157) | fn len(&self) -> usize { method push_str (line 161) | fn push_str(&mut self, s: &str) -> usize { method capacity (line 167) | fn capacity(&self) -> usize { method clear (line 171) | fn clear(&mut self) { method as_mut_ptr (line 176) | fn as_mut_ptr(&mut self) -> *mut c_char { method truncate (line 180) | fn truncate(&mut self, new_len: usize) { method rebuild (line 185) | fn rebuild(&mut self) -> Result<(), StrErr> { type StringExt (line 94) | pub trait StringExt { method nul_terminate (line 95) | fn nul_terminate(&mut self) -> &mut [u8]; method nul_terminate (line 99) | fn nul_terminate(&mut self) -> &mut [u8] { method nul_terminate (line 113) | fn nul_terminate(&mut self) -> &mut [u8] { type Utf8CString (line 126) | pub struct Utf8CString(String); method with_capacity (line 135) | pub fn with_capacity(capacity: usize) -> Utf8CString { method ensure_capacity (line 139) | pub fn ensure_capacity(&mut self, capacity: usize) { method as_ref (line 149) | fn as_ref(&self) -> &Utf8CStr { method from (line 213) | fn from(mut value: String) -> Self { method from (line 220) | fn from(value: &str) -> Self { method borrow (line 237) | fn borrow(&self) -> &Utf8CStr { method default (line 129) | fn default() -> Self { type Err (line 229) | type Err = String; method from_str (line 231) | fn from_str(s: &str) -> Result { type Utf8CStrBufRef (line 243) | pub struct Utf8CStrBufRef<'a> { function from_ptr (line 249) | pub unsafe fn from_ptr(buf: *mut u8, len: usize) -> Utf8CStrBufRef<'a> { function from (line 255) | fn from(buf: &'a mut [u8]) -> Utf8CStrBufRef<'a> { type Utf8CStrBufArr (line 262) | pub struct Utf8CStrBufArr { function new (line 268) | pub fn new() -> Self { method default (line 277) | fn default() -> Self { type StrErr (line 283) | pub enum StrErr { type Utf8CStr (line 296) | pub struct Utf8CStr([u8]); method from_cstr (line 299) | pub fn from_cstr(cstr: &CStr) -> Result<&Utf8CStr, StrErr> { method from_bytes_until_nul (line 305) | fn from_bytes_until_nul(bytes: &[u8]) -> Result<&Utf8CStr, StrErr> { method from_bytes (line 309) | pub fn from_bytes(bytes: &[u8]) -> Result<&Utf8CStr, StrErr> { method from_string (line 313) | pub fn from_string(s: &mut String) -> &Utf8CStr { method from_bytes_unchecked (line 320) | pub const unsafe fn from_bytes_unchecked(bytes: &[u8]) -> &Utf8CStr { method from_ptr (line 324) | pub unsafe fn from_ptr<'a>(ptr: *const c_char) -> Result<&'a Utf8CStr,... method from_ptr_unchecked (line 331) | pub unsafe fn from_ptr_unchecked<'a>(ptr: *const c_char) -> &'a Utf8CS... method from_raw_parts (line 338) | pub unsafe fn from_raw_parts<'a>(ptr: *const c_char, len: usize) -> &'... method as_bytes_with_nul (line 346) | pub fn as_bytes_with_nul(&self) -> &[u8] { method as_ptr (line 351) | pub fn as_ptr(&self) -> *const c_char { method as_cstr (line 356) | pub fn as_cstr(&self) -> &CStr { method as_utf8_cstr (line 362) | pub fn as_utf8_cstr(&self) -> &Utf8CStr { method as_str (line 367) | pub fn as_str(&self) -> &str { method as_ref (line 394) | fn as_ref(&self) -> &Utf8CStr { type Target (line 375) | type Target = str; method deref (line 378) | fn deref(&self) -> &str { type Owned (line 384) | type Owned = Utf8CString; method to_owned (line 386) | fn to_owned(&self) -> Utf8CString { method is_empty (line 401) | fn is_empty(&self) -> bool { method len (line 406) | fn len(&self) -> usize { method with_nix_path (line 411) | fn with_nix_path(&self, f: F) -> nix::Result type Id (line 421) | type Id = type_id!("Utf8CStr"); type Kind (line 422) | type Kind = cxx::kind::Trivial; type FsPathFollow (line 438) | pub struct FsPathFollow(Utf8CStr); method as_ref (line 442) | fn as_ref(&self) -> &Utf8CStr { function copy_cstr_truncate (line 559) | fn copy_cstr_truncate(dest: &mut [u8], src: &[u8]) -> usize { FILE: native/src/base/cxx_extern.rs function canonical_path (line 21) | unsafe extern "C" fn canonical_path(path: *const c_char, buf: *mut u8, b... function mkdirs_for_cxx (line 36) | unsafe extern "C" fn mkdirs_for_cxx(path: *const c_char, mode: mode_t) -... function rm_rf_for_cxx (line 46) | unsafe extern "C" fn rm_rf_for_cxx(path: *const c_char) -> bool { function map_file_for_cxx (line 55) | pub(crate) fn map_file_for_cxx(path: &Utf8CStr, rw: bool) -> &'static mu... function map_file_at_for_cxx (line 59) | pub(crate) fn map_file_at_for_cxx(fd: RawFd, path: &Utf8CStr, rw: bool) ... function map_fd_for_cxx (line 67) | pub(crate) fn map_fd_for_cxx(fd: RawFd, sz: usize, rw: bool) -> &'static... function readlinkat (line 75) | pub(crate) unsafe fn readlinkat( function cp_afc_for_cxx (line 103) | unsafe extern "C" fn cp_afc_for_cxx(src: *const c_char, dest: *const c_c... function mv_path_for_cxx (line 115) | unsafe extern "C" fn mv_path_for_cxx(src: *const c_char, dest: *const c_... function link_path_for_cxx (line 127) | unsafe extern "C" fn link_path_for_cxx(src: *const c_char, dest: *const ... function clone_attr_for_cxx (line 139) | unsafe extern "C" fn clone_attr_for_cxx(src: *const c_char, dest: *const... function fclone_attr_for_cxx (line 151) | unsafe extern "C" fn fclone_attr_for_cxx(a: RawFd, b: RawFd) -> bool { function str_new (line 156) | unsafe extern "C" fn str_new(this: &mut &Utf8CStr, s: *const u8, len: us... function str_ptr (line 163) | unsafe extern "C" fn str_ptr(this: &&Utf8CStr) -> *const u8 { function str_len (line 168) | unsafe extern "C" fn str_len(this: &&Utf8CStr) -> usize { function parse_prop_file_rs (line 172) | pub(crate) fn parse_prop_file_rs(name: &Utf8CStr, f: &FnBoolStrStr) { function file_readline_for_cxx (line 178) | pub(crate) fn file_readline_for_cxx(fd: RawFd, f: &FnBoolStr) { FILE: native/src/base/derive/argh/errors.rs type Errors (line 11) | pub struct Errors { method duplicate_attrs (line 52) | pub fn duplicate_attrs( method duplicate_attrs_inner (line 61) | fn duplicate_attrs_inner(&self, attr_kind: &str, first: Span, second: ... method unexpected_lit (line 83) | fn unexpected_lit(&self, expected: &str, found: &syn::Expr) { method unexpected_meta (line 124) | fn unexpected_meta(&self, expected: &str, found: &syn::Meta) { method err (line 148) | pub fn err(&self, spanned: &impl syn::spanned::Spanned, msg: &str) { method err_span (line 153) | pub fn err_span(&self, span: Span, msg: &str) { method err_span_tokens (line 158) | pub fn err_span_tokens(&self, tokens: T, msg: &str) { method push (line 163) | pub fn push(&self, err: syn::Error) { method ok (line 168) | pub fn ok(&self, r: syn::Result) -> Option { method to_tokens (line 182) | fn to_tokens(&self, tokens: &mut TokenStream) { FILE: native/src/base/derive/argh/mod.rs function impl_from_args (line 26) | pub(crate) fn impl_from_args(input: &syn::DeriveInput) -> TokenStream { type Optionality (line 46) | enum Optionality { method eq (line 55) | fn eq(&self, other: &Optionality) -> bool { method is_required (line 64) | fn is_required(&self) -> bool { type StructField (line 71) | struct StructField<'a> { function new (line 99) | fn new(errors: &Errors, field: &'a syn::Field, attrs: FieldAttrs) -> Opt... function positional_arg_name (line 216) | pub(crate) fn positional_arg_name(&self) -> String { function option_arg_name (line 224) | fn option_arg_name(&self) -> String { function to_kebab_case (line 234) | fn to_kebab_case(s: &str) -> String { function impl_from_args_struct (line 247) | fn impl_from_args_struct( function impl_from_args_struct_from_args (line 303) | fn impl_from_args_struct_from_args<'a>( function get_help_triggers (line 425) | fn get_help_triggers(type_attrs: &TypeAttrs) -> Vec { function ensure_only_trailing_positionals_are_optional (line 450) | fn ensure_only_trailing_positionals_are_optional(errors: &Errors, fields... function ensure_unique_names (line 475) | fn ensure_unique_names(errors: &Errors, fields: &[StructField<'_>]) { function top_or_sub_cmd_impl (line 511) | fn top_or_sub_cmd_impl( function declare_local_storage_for_from_args_fields (line 551) | fn declare_local_storage_for_from_args_fields<'a>( function unwrap_from_args_fields (line 599) | fn unwrap_from_args_fields<'a>( function flag_str_to_output_table_map_entries (line 630) | fn flag_str_to_output_table_map_entries<'a>(fields: &'a [StructField<'a>... function append_missing_requirements (line 646) | fn append_missing_requirements<'a>( function ty_expect_switch (line 698) | fn ty_expect_switch(errors: &Errors, ty: &syn::Type) -> bool { function ty_inner (line 737) | fn ty_inner<'a>(wrapper_names: &[&str], ty: &'a syn::Type) -> Option<&'a... function impl_from_args_enum (line 762) | fn impl_from_args_enum( function enum_only_single_field_unnamed_variants (line 860) | fn enum_only_single_field_unnamed_variants<'a>( FILE: native/src/base/derive/argh/parse_attrs.rs type FieldAttrs (line 14) | pub struct FieldAttrs { method parse (line 65) | pub fn parse(errors: &Errors, field: &syn::Field) -> Self { method parse_attr_from_str_fn (line 169) | fn parse_attr_from_str_fn(&mut self, errors: &Errors, m: &syn::MetaLis... method parse_attr_default (line 173) | fn parse_attr_default(&mut self, errors: &Errors, m: &syn::MetaNameVal... method parse_attr_arg_name (line 177) | fn parse_attr_arg_name(&mut self, errors: &Errors, m: &syn::MetaNameVa... method parse_attr_long (line 181) | fn parse_attr_long(&mut self, errors: &Errors, m: &syn::MetaNameValue) { method parse_attr_short (line 198) | fn parse_attr_short(&mut self, errors: &Errors, m: &syn::MetaNameValue) { type FieldKind (line 28) | pub enum FieldKind { type FieldType (line 49) | pub struct FieldType { type Description (line 58) | pub struct Description { function check_long_name (line 210) | pub(crate) fn check_long_name(errors: &Errors, spanned: &impl syn::spann... function parse_attr_fn_name (line 225) | fn parse_attr_fn_name( function parse_attr_field_type (line 238) | fn parse_attr_field_type( function is_matching_attr (line 257) | fn is_matching_attr(name: &str, attr: &syn::Attribute) -> bool { function is_doc_attr (line 262) | fn is_doc_attr(attr: &syn::Attribute) -> bool { function is_argh_attr (line 267) | fn is_argh_attr(attr: &syn::Attribute) -> bool { function argh_attr_to_meta_list (line 272) | fn argh_attr_to_meta_list( type TypeAttrs (line 287) | pub struct TypeAttrs { method parse (line 300) | pub fn parse(errors: &Errors, derive_input: &syn::DeriveInput) -> Self { method check_error_codes (line 372) | fn check_error_codes(&self, errors: &Errors) { method parse_attr_error_code (line 403) | fn parse_attr_error_code(&mut self, errors: &Errors, ml: &syn::MetaLis... method parse_attr_example (line 418) | fn parse_attr_example(&mut self, errors: &Errors, m: &syn::MetaNameVal... method parse_attr_name (line 422) | fn parse_attr_name(&mut self, errors: &Errors, m: &syn::MetaNameValue) { method parse_attr_note (line 431) | fn parse_attr_note(&mut self, errors: &Errors, m: &syn::MetaNameValue) { method parse_attr_subcommand (line 435) | fn parse_attr_subcommand(&mut self, errors: &Errors, ident: &syn::Iden... method parse_help_triggers (line 444) | fn parse_help_triggers(m: &syn::MetaList, errors: &Errors, this: &mut ... type VariantAttrs (line 468) | pub struct VariantAttrs { method parse (line 474) | pub fn parse(errors: &Errors, variant: &syn::Variant) -> Self { function check_option_description (line 520) | fn check_option_description(errors: &Errors, desc: &str, span: Span) { function parse_attr_single_string (line 533) | fn parse_attr_single_string( function parse_attr_multi_string (line 546) | fn parse_attr_multi_string(errors: &Errors, m: &syn::MetaNameValue, list... function parse_attr_doc (line 552) | fn parse_attr_doc(errors: &Errors, attr: &syn::Attribute, slot: &mut Opt... function unescape_doc (line 586) | fn unescape_doc(s: String) -> String { function parse_attr_description (line 610) | fn parse_attr_description(errors: &Errors, m: &syn::MetaNameValue, slot:... function check_enum_type_attrs (line 632) | pub fn check_enum_type_attrs(errors: &Errors, type_attrs: &TypeAttrs, ty... function err_unused_enum_attr (line 679) | fn err_unused_enum_attr(errors: &Errors, location: &impl syn::spanned::S... FILE: native/src/base/derive/decodable.rs function derive_decodable (line 6) | pub(crate) fn derive_decodable(input: proc_macro::TokenStream) -> proc_m... function gen_encode (line 45) | fn gen_encode(data: &Data) -> TokenStream { function gen_decode (line 71) | fn gen_decode(data: &Data) -> TokenStream { FILE: native/src/base/derive/lib.rs function derive_decodable (line 9) | pub fn derive_decodable(input: TokenStream) -> TokenStream { function argh_derive (line 15) | pub fn argh_derive(input: TokenStream) -> TokenStream { FILE: native/src/base/dir.rs type DirEntry (line 17) | pub struct DirEntry<'a> { function as_ptr (line 24) | pub fn as_ptr(&self) -> *mut dirent { function name (line 28) | pub fn name(&self) -> &Utf8CStr { function resolve_path (line 38) | pub fn resolve_path(&self, buf: &mut dyn Utf8CStrBuf) -> OsResult<'stati... function is_dir (line 42) | pub fn is_dir(&self) -> bool { function is_file (line 46) | pub fn is_file(&self) -> bool { function is_symlink (line 50) | pub fn is_symlink(&self) -> bool { function is_block_device (line 54) | pub fn is_block_device(&self) -> bool { function is_char_device (line 58) | pub fn is_char_device(&self) -> bool { function is_fifo (line 62) | pub fn is_fifo(&self) -> bool { function is_socket (line 66) | pub fn is_socket(&self) -> bool { function unlink (line 70) | pub fn unlink(&self) -> OsResult<'_, ()> { function read_link (line 79) | pub fn read_link(&self, buf: &mut dyn Utf8CStrBuf) -> OsResult<'_, ()> { function open_as_dir (line 83) | pub fn open_as_dir(&self) -> OsResult<'_, Directory> { function open_as_file (line 95) | pub fn open_as_file(&self, flags: OFlag) -> OsResult<'_, File> { function rename_to (line 107) | pub fn rename_to<'a, 'entry: 'a>( type Target (line 117) | type Target = dirent; method deref (line 119) | fn deref(&self) -> &dirent { type Directory (line 125) | pub struct Directory { method open_at (line 136) | fn open_at<'a>(&self, name: &'a Utf8CStr, flags: OFlag, mode: mode_t) ... method path_at (line 146) | fn path_at(&self, name: &Utf8CStr, buf: &mut dyn Utf8CStrBuf) -> OsRes... method open (line 155) | pub fn open(path: &Utf8CStr) -> OsResult<'_, Directory> { method read (line 161) | pub fn read(&mut self) -> OsResult<'static, Option>> { method rewind (line 192) | pub fn rewind(&mut self) { method open_as_dir_at (line 196) | pub fn open_as_dir_at<'a>(&self, name: &'a Utf8CStr) -> OsResult<'a, D... method open_as_file_at (line 201) | pub fn open_as_file_at<'a>( method read_link_at (line 211) | pub fn read_link_at<'a>( method mkdir_at (line 230) | pub fn mkdir_at<'a>(&self, name: &'a Utf8CStr, mode: mode_t) -> OsResu... method create_symlink_at (line 238) | pub fn create_symlink_at<'a>( method unlink_at (line 250) | pub fn unlink_at<'a>(&self, name: &'a Utf8CStr, flag: UnlinkatFlags) -... method contains_path (line 254) | pub fn contains_path(&self, path: &Utf8CStr) -> bool { method resolve_path (line 261) | pub fn resolve_path(&self, buf: &mut dyn Utf8CStrBuf) -> OsResult<'sta... method rename_at (line 265) | pub fn rename_at<'a>( method post_order_walk (line 278) | pub fn post_order_walk LoggedResult>( method pre_order_walk (line 285) | pub fn pre_order_walk LoggedResult>( method remove_all (line 292) | pub fn remove_all(mut self) -> LoggedResult<()> { method copy_into (line 300) | pub fn copy_into(&mut self, dir: &Directory) -> LoggedResult<()> { method move_into (line 305) | pub fn move_into(&mut self, dir: &Directory) -> LoggedResult<()> { method link_into (line 319) | pub fn link_into(&mut self, dir: &Directory) -> LoggedResult<()> { method post_order_walk_impl (line 326) | fn post_order_walk_impl LoggedResult>( method pre_order_walk_impl (line 351) | fn pre_order_walk_impl LoggedResult>( method copy_into_impl (line 375) | fn copy_into_impl( method link_into_impl (line 408) | fn link_into_impl( type Error (line 432) | type Error = OsError<'static>; method try_from (line 434) | fn try_from(fd: OwnedFd) -> OsResult<'static, Self> { type WalkResult (line 129) | pub enum WalkResult { method as_raw_fd (line 442) | fn as_raw_fd(&self) -> RawFd { method as_fd (line 448) | fn as_fd(&self) -> BorrowedFd<'_> { method drop (line 454) | fn drop(&mut self) { FILE: native/src/base/files.rs type ReadExt (line 24) | pub trait ReadExt { method skip (line 25) | fn skip(&mut self, len: usize) -> io::Result<()>; method read_pod (line 26) | fn read_pod(&mut self, data: &mut F) -> io::Result<()>; method skip (line 30) | fn skip(&mut self, mut len: usize) -> io::Result<()> { method read_pod (line 41) | fn read_pod(&mut self, data: &mut F) -> io::Result<()> { type ReadSeekExt (line 46) | pub trait ReadSeekExt { method skip (line 47) | fn skip(&mut self, len: usize) -> io::Result<()>; method skip (line 51) | fn skip(&mut self, len: usize) -> io::Result<()> { type BufReadExt (line 60) | pub trait BufReadExt { method for_each_line (line 61) | fn for_each_line bool>(&mut self, f: F); method for_each_prop (line 62) | fn for_each_prop bool>(&mut self, f: F); method for_each_line (line 66) | fn for_each_line bool>(&mut self, mut f: F) { method for_each_prop (line 85) | fn for_each_prop bool>(&mut self, mut f: F) { type WriteExt (line 102) | pub trait WriteExt { method write_zeros (line 103) | fn write_zeros(&mut self, len: usize) -> io::Result<()>; method write_pod (line 104) | fn write_pod(&mut self, data: &F) -> io::Result<()>; method write_zeros (line 108) | fn write_zeros(&mut self, mut len: usize) -> io::Result<()> { method write_pod (line 118) | fn write_pod(&mut self, data: &F) -> io::Result<()> { type FileOrStd (line 123) | pub enum FileOrStd { method as_file (line 131) | pub fn as_file(&self) -> &File { function open_fd (line 143) | fn open_fd(path: &Utf8CStr, flags: OFlag, mode: mode_t) -> OsResult<'_, ... function fd_path (line 151) | pub fn fd_path(fd: RawFd, buf: &mut dyn Utf8CStrBuf) -> OsResult<'static... type FileAttr (line 158) | pub struct FileAttr { method new (line 171) | pub fn new() -> Self { method is (line 181) | fn is(&self, mode: mode_t) -> bool { method is_dir (line 185) | pub fn is_dir(&self) -> bool { method is_file (line 189) | pub fn is_file(&self) -> bool { method is_symlink (line 193) | pub fn is_symlink(&self) -> bool { method is_block_device (line 197) | pub fn is_block_device(&self) -> bool { method is_char_device (line 201) | pub fn is_char_device(&self) -> bool { method is_fifo (line 205) | pub fn is_fifo(&self) -> bool { method is_socket (line 209) | pub fn is_socket(&self) -> bool { method is_whiteout (line 213) | pub fn is_whiteout(&self) -> bool { method default (line 165) | fn default() -> Self { constant XATTR_NAME_SELINUX (line 218) | const XATTR_NAME_SELINUX: &CStr = c"security.selinux"; method follow_link (line 222) | pub fn follow_link(&self) -> &FsPathFollow { method open (line 226) | pub fn open(&self, flags: OFlag) -> OsResult<'_, File> { method create (line 230) | pub fn create(&self, flags: OFlag, mode: mode_t) -> OsResult<'_, File> { method exists (line 234) | pub fn exists(&self) -> bool { method rename_to (line 238) | pub fn rename_to<'a>(&'a self, name: &'a Utf8CStr) -> OsResult<'a, ()> { method remove (line 246) | pub fn remove(&self) -> OsResult<'_, ()> { method read_link (line 251) | pub fn read_link(&self, buf: &mut dyn Utf8CStrBuf) -> OsResult<'_, ()> { method mkdir (line 262) | pub fn mkdir(&self, mode: mode_t) -> OsResult<'_, ()> { method realpath (line 270) | pub fn realpath(&self, buf: &mut dyn Utf8CStrBuf) -> OsResult<'_, ()> { method get_attr (line 292) | pub fn get_attr(&self) -> OsResult<'_, FileAttr> { method set_attr (line 304) | pub fn set_attr<'a>(&'a self, attr: &'a FileAttr) -> OsResult<'a, ()> { method get_secontext (line 330) | pub fn get_secontext(&self, con: &mut dyn Utf8CStrBuf) -> OsResult<'_, (... method set_secontext (line 352) | pub fn set_secontext<'a>(&'a self, con: &'a Utf8CStr) -> OsResult<'a, ()> { method parent_dir (line 365) | pub fn parent_dir(&self) -> Option<&str> { method file_name (line 373) | pub fn file_name(&self) -> Option<&str> { method create_symlink_to (line 381) | pub fn create_symlink_to<'a>(&'a self, target: &'a Utf8CStr) -> OsResult... method mkfifo (line 389) | pub fn mkfifo(&self, mode: mode_t) -> OsResult<'_, ()> { method remove_all (line 401) | pub fn remove_all(&self) -> LoggedResult<()> { method mkdirs (line 419) | pub fn mkdirs(&self, mode: mode_t) -> LoggedResult<()> { method copy_to (line 443) | pub fn copy_to(&self, path: &Utf8CStr) -> LoggedResult<()> { method move_to (line 476) | pub fn move_to(&self, path: &Utf8CStr) -> LoggedResult<()> { method link_to (line 492) | pub fn link_to(&self, path: &Utf8CStr) -> LoggedResult<()> { method exists (line 514) | pub fn exists(&self) -> bool { method chmod (line 518) | pub fn chmod(&self, mode: mode_t) -> OsResult<'_, ()> { method get_attr (line 528) | pub fn get_attr(&self) -> OsResult<'_, FileAttr> { method set_attr (line 544) | pub fn set_attr<'a>(&'a self, attr: &'a FileAttr) -> OsResult<'a, ()> { method get_secontext (line 561) | pub fn get_secontext(&self, con: &mut dyn Utf8CStrBuf) -> OsResult<'_, (... method set_secontext (line 583) | pub fn set_secontext<'a>(&'a self, con: &'a Utf8CStr) -> OsResult<'a, ()> { type FsPathBuilder (line 597) | pub trait FsPathBuilder { method join_path (line 598) | fn join_path>(mut self, path: T) -> Self method join_path_fmt (line 605) | fn join_path_fmt(mut self, name: T) -> Self method append_path (line 612) | fn append_path>(&mut self, path: T) -> &mut Self; method append_path_fmt (line 613) | fn append_path_fmt(&mut self, name: T) -> &mut Self; method append_path (line 627) | fn append_path>(&mut self, path: T) -> &mut Self { method append_path_fmt (line 632) | fn append_path_fmt(&mut self, name: T) -> &mut Self { method append_path (line 639) | fn append_path>(&mut self, path: T) -> &mut Self { method append_path_fmt (line 644) | fn append_path_fmt(&mut self, name: T) -> &mut Self { function append_path_impl (line 616) | fn append_path_impl(buf: &mut dyn Utf8CStrBuf, path: &str) { function fd_get_attr (line 650) | pub fn fd_get_attr(fd: RawFd) -> OsResult<'static, FileAttr> { function fd_set_attr (line 661) | pub fn fd_set_attr(fd: RawFd, attr: &FileAttr) -> OsResult<'_, ()> { function fd_get_secontext (line 674) | pub fn fd_get_secontext(fd: RawFd, con: &mut dyn Utf8CStrBuf) -> OsResul... function fd_set_secontext (line 696) | pub fn fd_set_secontext(fd: RawFd, con: &Utf8CStr) -> OsResult<'_, ()> { function clone_attr (line 709) | pub fn clone_attr<'a>(a: &'a Utf8CStr, b: &'a Utf8CStr) -> OsResult<'a, ... function fclone_attr (line 714) | pub fn fclone_attr(a: RawFd, b: RawFd) -> OsResult<'static, ()> { type MappedFile (line 719) | pub struct MappedFile(&'static mut [u8]); method open (line 722) | pub fn open(path: &Utf8CStr) -> OsResult<'_, MappedFile> { method open_rw (line 726) | pub fn open_rw(path: &Utf8CStr) -> OsResult<'_, MappedFile> { method openat (line 730) | pub fn openat<'a, T: AsFd>(dir: &T, path: &'a Utf8CStr) -> OsResult<'a... method openat_rw (line 734) | pub fn openat_rw<'a, T: AsFd>(dir: &T, path: &'a Utf8CStr) -> OsResult... method create (line 738) | pub fn create(fd: BorrowedFd, sz: usize, rw: bool) -> OsResult &[u8] { method as_mut (line 750) | fn as_mut(&mut self) -> &mut [u8] { method drop (line 756) | fn drop(&mut self) { function ioctl (line 765) | fn ioctl(fd: RawFd, request: u32, ...) -> i32; function map_file (line 769) | pub(crate) fn map_file(path: &Utf8CStr, rw: bool) -> OsResult<'_, &'stat... function map_file_at (line 773) | pub(crate) fn map_file_at<'a>( function map_fd (line 801) | pub(crate) fn map_fd(fd: BorrowedFd, sz: usize, rw: bool) -> OsResult<'s... type MountInfo (line 824) | pub struct MountInfo { function parse_mount_info_line (line 841) | fn parse_mount_info_line(line: &str) -> Option { function parse_mount_info (line 889) | pub fn parse_mount_info(pid: &str) -> Vec { FILE: native/src/base/include/base.hpp type stat (line 34) | struct stat type Utf8CStr (line 73) | struct Utf8CStr method Utf8CStr (line 304) | Utf8CStr() : Utf8CStr("", 1) {} method Utf8CStr (line 305) | Utf8CStr(const Utf8CStr &o) = default; method Utf8CStr (line 306) | Utf8CStr(const char *s) : Utf8CStr(s, strlen(s) + 1) {} method Utf8CStr (line 307) | Utf8CStr(std::string s) : Utf8CStr(s.data(), s.length() + 1) {} method size (line 309) | size_t size() const { return this->length(); } method empty (line 310) | bool empty() const { return this->length() == 0 ; } method sv (line 311) | std::string_view sv() const { return {data(), length()}; } class mutex_guard (line 75) | class mutex_guard { method mutex_guard (line 78) | explicit mutex_guard(pthread_mutex_t &m): mutex(&m) { method unlock (line 81) | void unlock() { class run_finally (line 93) | class run_finally { method run_finally (line 96) | explicit run_finally(Func &&fn) : fn(std::move(fn)) {} function default_new (line 103) | static void default_new(T *&p) { p = new T(); } function default_new (line 106) | static void default_new(std::unique_ptr &p) { p.reset(new T()); } type StringCmp (line 108) | struct StringCmp { type byte_view (line 117) | struct byte_view { method byte_view (line 118) | byte_view() : ptr(nullptr), sz(0) {} method byte_view (line 119) | byte_view(const void *buf, size_t sz) : ptr((uint8_t *) buf), sz(sz) {} method byte_view (line 122) | byte_view(const byte_view &o) : ptr(o.ptr), sz(o.sz) {} method byte_view (line 125) | byte_view(const ByteSlice o) : byte_view(o.data(), o.size()) {} method byte_view (line 129) | byte_view(const char *s) : byte_view(s, strlen(s) + 1) {} method size (line 132) | size_t size() const { return sz; } type byte_data (line 140) | struct byte_data : public byte_view { method byte_data (line 141) | byte_data() = default; method byte_data (line 142) | byte_data(void *buf, size_t sz) : byte_view(buf, sz) {} method byte_data (line 145) | byte_data(const byte_data &o) : byte_data(o.ptr, o.sz) {} method byte_data (line 148) | byte_data(const MutByteSlice o) : byte_data(o.data(), o.size()) {} type mmap_data (line 157) | struct mmap_data : public byte_data { method mmap_data (line 160) | mmap_data() = default; type owned_fd (line 170) | struct owned_fd { method owned_fd (line 173) | owned_fd() : fd(-1) {} method owned_fd (line 174) | owned_fd(int fd) : fd(fd) {} method release (line 178) | int release() { int f = fd; fd = -1; return f; } method swap (line 179) | void swap(owned_fd &owned) { std::swap(fd, owned.fd); } function rtrim (line 193) | static inline std::string rtrim(std::string &&s) { type exec_t (line 221) | struct exec_t { function exec_command (line 231) | int exec_command(exec_t &exec, Args &&...args) { function exec_command_sync (line 238) | int exec_command_sync(exec_t &exec, Args &&...args) { function exec_command_sync (line 244) | int exec_command_sync(Args &&...args) { function exec_command_async (line 249) | void exec_command_async(Args &&...args) { function sDIR (line 274) | static inline sDIR open_dir(const char *path) { function sDIR (line 278) | static inline sDIR xopen_dir(const char *path) { function sDIR (line 282) | static inline sDIR xopen_dir(int dirfd) { function sFILE (line 286) | static inline sFILE open_file(const char *path, const char *mode) { function sFILE (line 290) | static inline sFILE xopen_file(const char *path, const char *mode) { function sFILE (line 294) | static inline sFILE xopen_file(int fd, const char *mode) { type Utf8CStr (line 299) | struct Utf8CStr { method Utf8CStr (line 304) | Utf8CStr() : Utf8CStr("", 1) {} method Utf8CStr (line 305) | Utf8CStr(const Utf8CStr &o) = default; method Utf8CStr (line 306) | Utf8CStr(const char *s) : Utf8CStr(s, strlen(s) + 1) {} method Utf8CStr (line 307) | Utf8CStr(std::string s) : Utf8CStr(s.data(), s.length() + 1) {} method size (line 309) | size_t size() const { return this->length(); } method empty (line 310) | bool empty() const { return this->length() == 0 ; } method sv (line 311) | std::string_view sv() const { return {data(), length()}; } type FnBoolStrStr (line 324) | struct FnBoolStrStr : public CxxFnBoolStrStr { method call (line 326) | bool call(rust::Str a, rust::Str b) const { type FnBoolStr (line 331) | struct FnBoolStr : public CxxFnBoolStr { method call (line 333) | bool call(Utf8CStr s) const { function parse_prop_file (line 342) | void parse_prop_file(const char *file, Functor &&fn) { FILE: native/src/base/lib.rs type LogLevelCxx (line 33) | pub(crate) enum LogLevelCxx { type Utf8CStrRef (line 44) | type Utf8CStrRef<'a> = &'a crate::cstr::Utf8CStr; function mut_u8_patch (line 46) | fn mut_u8_patch(buf: &mut [u8], from: &[u8], to: &[u8]) -> Vec; function fork_dont_care (line 47) | fn fork_dont_care() -> i32; function set_nice_name (line 48) | fn set_nice_name(name: Utf8CStrRef); function call (line 51) | fn call(self: &FnBoolStrStr, key: &str, value: &str) -> bool; function call (line 54) | fn call(self: &FnBoolStr, key: Utf8CStrRef) -> bool; function log_from_cxx (line 59) | fn log_from_cxx(level: LogLevelCxx, msg: Utf8CStrRef); function cmdline_logging (line 60) | fn cmdline_logging(); function parse_prop_file_rs (line 61) | fn parse_prop_file_rs(name: Utf8CStrRef, f: &FnBoolStrStr); function file_readline_for_cxx (line 63) | fn file_readline_for_cxx(fd: i32, f: &FnBoolStr); function xpipe2 (line 64) | fn xpipe2(fds: &mut [i32; 2], flags: i32) -> i32; function map_file_for_cxx (line 70) | fn map_file_for_cxx(path: Utf8CStrRef, rw: bool) -> &'static mut [u8]; function map_file_at_for_cxx (line 72) | fn map_file_at_for_cxx(fd: i32, path: Utf8CStrRef, rw: bool) -> &'static... function map_fd_for_cxx (line 74) | fn map_fd_for_cxx(fd: i32, sz: usize, rw: bool) -> &'static mut [u8]; type ThreadEntry (line 80) | pub type ThreadEntry = extern "C" fn(usize) -> usize; function new_daemon_thread (line 82) | pub fn new_daemon_thread(entry: ThreadEntry, arg: usize); FILE: native/src/base/logging.rs type LogLevel (line 23) | pub enum LogLevel { method as_disable_flag (line 59) | fn as_disable_flag(&self) -> LogFlag { type LogWriter (line 37) | type LogWriter = fn(level: LogLevel, msg: &Utf8CStr); type Formatter (line 38) | pub(crate) type Formatter<'a> = &'a mut dyn fmt::Write; type Logger (line 41) | pub struct Logger { function update_logger (line 46) | pub fn update_logger(f: impl FnOnce(&mut Logger)) { function exit_on_error (line 54) | pub fn exit_on_error(b: bool) { function set_log_level_state (line 69) | pub fn set_log_level_state(level: LogLevel, enabled: bool) { function log_with_writer (line 73) | fn log_with_writer(level: LogLevel, f: F) { function log_from_cxx (line 84) | pub fn log_from_cxx(level: LogLevelCxx, msg: &Utf8CStr) { function log_with_formatter (line 90) | pub fn log_with_formatter fmt::Result>(level: Lo... function cmdline_logging (line 98) | pub fn cmdline_logging() { FILE: native/src/base/misc.rs function errno (line 12) | pub fn errno() -> &'static mut i32 { function slice_from_ptr (line 18) | pub unsafe fn slice_from_ptr<'a, T>(buf: *const T, len: usize) -> &'a [T] { function slice_from_ptr_mut (line 30) | pub unsafe fn slice_from_ptr_mut<'a, T>(buf: *mut T, len: usize) -> &'a ... type BytesExt (line 40) | pub trait BytesExt { method find (line 41) | fn find(&self, needle: &[u8]) -> Option; method contains (line 42) | fn contains(&self, needle: &[u8]) -> bool { method find (line 48) | fn find(&self, needle: &[u8]) -> Option { type MutBytesExt (line 69) | pub trait MutBytesExt { method patch (line 70) | fn patch(&mut self, from: &[u8], to: &[u8]) -> Vec; method patch (line 74) | fn patch(&mut self, from: &[u8], to: &[u8]) -> Vec { type EarlyExitExt (line 79) | pub trait EarlyExitExt { method on_early_exit (line 80) | fn on_early_exit(self, print_help_msg: F) -> T; function on_early_exit (line 84) | fn on_early_exit(self, print_help_msg: F) -> T { type PositionalArgParser (line 101) | pub struct PositionalArgParser<'a>(pub slice::Iter<'a, &'a str>); function required (line 104) | pub fn required(&mut self, field_name: &'static str) -> Result Option { function last_required (line 119) | pub fn last_required(&mut self, field_name: &'static str) -> Result Result, EarlyExit> { function ensure_end (line 134) | fn ensure_end(&mut self) -> Result<(), EarlyExit> { type FmtAdaptor (line 142) | pub struct FmtAdaptor<'a, T>(pub &'a mut T) function write_str (line 147) | fn write_str(&mut self, s: &str) -> fmt::Result { function write_fmt (line 150) | fn write_fmt(&mut self, args: Arguments<'_>) -> fmt::Result { type AtomicArc (line 155) | pub struct AtomicArc { function new (line 160) | pub fn new(arc: Arc) -> AtomicArc { function load (line 167) | pub fn load(&self) -> Arc { function swap_ptr (line 174) | fn swap_ptr(&self, raw: *const T) -> Arc { function swap (line 180) | pub fn swap(&self, arc: Arc) -> Arc { function store (line 185) | pub fn store(&self, arc: Arc) { method drop (line 192) | fn drop(&mut self) { method default (line 199) | fn default() -> Self { type Chunker (line 204) | pub struct Chunker { method new (line 211) | pub fn new(chunk_size: usize) -> Self { method set_chunk_size (line 220) | pub fn set_chunk_size(&mut self, chunk_size: usize) { method add_data (line 229) | pub fn add_data<'a, 'b: 'a>(&'a mut self, mut buf: &'b [u8]) -> (&'b [... method get_available (line 255) | pub fn get_available(&mut self) -> &[u8] { type CmdArgs (line 262) | pub struct CmdArgs(pub Vec<&'static str>); method new (line 266) | pub fn new(argc: i32, argv: *const *const c_char) -> CmdArgs { method as_slice (line 278) | pub fn as_slice(&self) -> &[&'static str] { method iter (line 282) | pub fn iter(&self) -> slice::Iter<'_, &'static str> { method cstr_iter (line 286) | pub fn cstr_iter(&self) -> impl Iterator { FILE: native/src/base/mount.rs method bind_mount_to (line 5) | pub fn bind_mount_to<'a>(&'a self, path: &'a Utf8CStr, rec: bool) -> OsR... method remount_mount_point_flags (line 21) | pub fn remount_mount_point_flags(&self, flags: MsFlags) -> OsResult<'_, ... method remount_mount_flags (line 32) | pub fn remount_mount_flags(&self, flags: MsFlags) -> OsResult<'_, ()> { method remount_with_data (line 43) | pub fn remount_with_data(&self, data: &Utf8CStr) -> OsResult<'_, ()> { method move_mount_to (line 54) | pub fn move_mount_to<'a>(&'a self, path: &'a Utf8CStr) -> OsResult<'a, (... method unmount (line 65) | pub fn unmount(&self) -> OsResult<'_, ()> { method set_mount_private (line 69) | pub fn set_mount_private(&self, rec: bool) -> OsResult<'_, ()> { FILE: native/src/base/result.rs type LoggedError (line 18) | pub struct LoggedError {} method from (line 158) | fn from(e: T) -> Self { method from (line 164) | fn from(e: T) -> Self { type LoggedResult (line 19) | pub type LoggedResult = Result; type SilentLogExt (line 33) | pub trait SilentLogExt { method silent (line 34) | fn silent(self) -> LoggedResult; function silent (line 38) | fn silent(self) -> LoggedResult { function silent (line 44) | fn silent(self) -> LoggedResult { type ResultExt (line 50) | pub trait ResultExt { method log (line 51) | fn log(self) -> LoggedResult; method log_with_msg (line 52) | fn log_with_msg fmt::Result>(self, f: F) -> Lo... method log_ok (line 53) | fn log_ok(self); type OptionExt (line 57) | pub trait OptionExt { method ok_or_log (line 58) | fn ok_or_log(self) -> LoggedResult; method ok_or_log_msg (line 59) | fn ok_or_log_msg fmt::Result>(self, f: F) -> L... function ok_or_log (line 64) | fn ok_or_log(self) -> LoggedResult { function ok_or_log_msg (line 69) | fn ok_or_log_msg fmt::Result>(self, f: F) -> Log... function ok_or_log_msg (line 78) | fn ok_or_log_msg fmt::Result>(self, f: F) -> Log... type Loggable (line 87) | trait Loggable { method do_log (line 88) | fn do_log(self, level: LogLevel, caller: Option<&'static Location>) ->... method do_log_msg (line 89) | fn do_log_msg fmt::Result>( method do_log (line 174) | fn do_log(self, level: LogLevel, caller: Option<&'static Location>) ->... method do_log_msg (line 183) | fn do_log_msg fmt::Result>( function log (line 99) | fn log(self) -> LoggedResult { function log (line 105) | fn log(self) -> LoggedResult { function log_with_msg (line 111) | fn log_with_msg fmt::Result>(self, f: F) -> Logg... function log_with_msg (line 117) | fn log_with_msg fmt::Result>(self, f: F) -> Logg... function log_ok (line 123) | fn log_ok(self) { function log_ok (line 129) | fn log_ok(self) { function log (line 136) | fn log(self) -> LoggedResult { function log_with_msg (line 141) | fn log_with_msg fmt::Result>(self, f: F) -> Logg... function log_with_msg (line 147) | fn log_with_msg fmt::Result>(self, f: F) -> Logg... function log_ok (line 152) | fn log_ok(self) {} function do_log_msg (line 200) | fn do_log_msg fmt::Result>( type LibcReturn (line 215) | pub trait LibcReturn method check_err (line 221) | fn check_err(self) -> nix::Result; method into_os_result (line 223) | fn into_os_result<'a>( method check_os_err (line 233) | fn check_os_err<'a>( type Value (line 265) | type Value = NonNull; method check_err (line 268) | fn check_err(self) -> nix::Result { type Value (line 274) | type Value = T; method check_err (line 277) | fn check_err(self) -> Self { type OsError (line 283) | pub struct OsError<'a> { function new (line 291) | pub fn new<'a>( function last_os_error (line 305) | pub fn last_os_error<'a>( function set_args (line 313) | pub fn set_args<'a>(self, arg1: Option<&'a str>, arg2: Option<&'a str>) ... method fmt (line 319) | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { type OsResult (line 340) | pub type OsResult<'a, T> = Result>; FILE: native/src/base/xwrap.rs function ptr_to_str (line 15) | fn ptr_to_str<'a>(ptr: *const c_char) -> Option<&'a str> { function xrealpath (line 24) | unsafe extern "C" fn xrealpath(path: *const c_char, buf: *mut u8, bufsz:... function xreadlinkat (line 39) | unsafe extern "C" fn xreadlinkat( function xfopen (line 54) | unsafe extern "C" fn xfopen(path: *const c_char, mode: *const c_char) ->... function xfdopen (line 64) | unsafe extern "C" fn xfdopen(fd: RawFd, mode: *const c_char) -> *mut lib... function xopen (line 74) | unsafe extern "C" fn xopen(path: *const c_char, flags: i32, mode: mode_t... function xopenat (line 84) | unsafe extern "C" fn xopenat(dirfd: RawFd, path: *const c_char, flags: i... function xwrite (line 94) | unsafe extern "C" fn xwrite(fd: RawFd, buf: *const u8, bufsz: usize) -> ... function xread (line 103) | unsafe extern "C" fn xread(fd: RawFd, buf: *mut c_void, bufsz: usize) ->... function xxread (line 113) | unsafe extern "C" fn xxread(fd: RawFd, buf: *mut u8, bufsz: usize) -> is... function xpipe2 (line 121) | pub(crate) fn xpipe2(fds: &mut [i32; 2], flags: i32) -> i32 { function xsetns (line 131) | extern "C" fn xsetns(fd: RawFd, nstype: i32) -> i32 { function xunshare (line 141) | extern "C" fn xunshare(flags: i32) -> i32 { function xopendir (line 151) | unsafe extern "C" fn xopendir(path: *const c_char) -> *mut libc::DIR { function xfdopendir (line 161) | extern "C" fn xfdopendir(fd: RawFd) -> *mut libc::DIR { function xreaddir (line 171) | unsafe extern "C" fn xreaddir(mut dir: ManuallyDrop) -> *mut ... function xsetsid (line 180) | extern "C" fn xsetsid() -> i32 { function xfstat (line 190) | unsafe extern "C" fn xfstat(fd: RawFd, buf: *mut libc::stat) -> i32 { function xdup2 (line 200) | extern "C" fn xdup2(oldfd: RawFd, newfd: RawFd) -> RawFd { function xsymlink (line 210) | unsafe extern "C" fn xsymlink(target: *const c_char, linkpath: *const c_... function xmount (line 220) | unsafe extern "C" fn xmount( function xumount2 (line 236) | unsafe extern "C" fn xumount2(target: *const c_char, flags: i32) -> i32 { function xrename (line 246) | unsafe extern "C" fn xrename(oldname: *const c_char, newname: *const c_c... function xmkdir (line 256) | unsafe extern "C" fn xmkdir(path: *const c_char, mode: mode_t) -> i32 { function xmkdirs (line 266) | unsafe extern "C" fn xmkdirs(path: *const c_char, mode: mode_t) -> i32 { function xsendfile (line 276) | unsafe extern "C" fn xsendfile( function xfork (line 291) | extern "C" fn xfork() -> i32 { function xmknod (line 301) | unsafe extern "C" fn xmknod(pathname: *const c_char, mode: mode_t, dev: ... FILE: native/src/boot/bootimg.cpp function decompress (line 23) | static void decompress(FileFormat type, int fd, const void *in, size_t s... function off_t (line 27) | static off_t compress_len(FileFormat type, byte_view in, int fd) { function dump (line 34) | static void dump(const void *buf, size_t size, const char *filename) { function restore (line 42) | static size_t restore(int fd, const char *filename) { function check_env (line 51) | static bool check_env(const char *name) { function guess_lzma (line 56) | static bool guess_lzma(const uint8_t *buf, size_t len) { function FileFormat (line 69) | FileFormat check_fmt(const void *buf, size_t len) { type fdt_header (line 244) | struct [[gnu::packed]] fdt_header { type fdt32_t (line 245) | struct fdt32_t { type node_header (line 261) | struct node_header { function find_dtb_offset (line 284) | static int find_dtb_offset(const uint8_t *buf, unsigned sz) { function FileFormat (line 315) | static FileFormat check_fmt_lg(const uint8_t *buf, unsigned sz) { function split_image_dtb (line 611) | int split_image_dtb(Utf8CStr filename, bool skip_decomp) { function unpack (line 633) | int unpack(Utf8CStr image, bool skip_decomp, bool hdr) { function repack (line 715) | void repack(Utf8CStr src_img, Utf8CStr out_img, bool skip_comp) { function cleanup (line 1053) | void cleanup() { FILE: native/src/boot/bootimg.hpp type mtk_hdr (line 12) | struct mtk_hdr { type dhtb_hdr (line 20) | struct dhtb_hdr { type blob_hdr (line 28) | struct blob_hdr { type zimage_hdr (line 44) | struct zimage_hdr { type AvbFooter (line 62) | struct AvbFooter { type AvbVBMetaImageHeader (line 73) | struct AvbVBMetaImageHeader { type boot_img_hdr_v0_common (line 145) | struct boot_img_hdr_v0_common { type boot_img_hdr_v0 (line 158) | struct boot_img_hdr_v0 : public boot_img_hdr_v0_common { type boot_img_hdr_v1 (line 193) | struct boot_img_hdr_v1 : public boot_img_hdr_v0 { type boot_img_hdr_v2 (line 199) | struct boot_img_hdr_v2 : public boot_img_hdr_v1 { type boot_img_hdr_pxa (line 205) | struct boot_img_hdr_pxa : public boot_img_hdr_v0_common { type boot_img_hdr_v3 (line 291) | struct boot_img_hdr_v3 { type boot_img_hdr_vnd_v3 (line 305) | struct boot_img_hdr_vnd_v3 { type boot_img_hdr_v4 (line 322) | struct boot_img_hdr_v4 : public boot_img_hdr_v3 { type boot_img_hdr_vnd_v4 (line 326) | struct boot_img_hdr_vnd_v4 : public boot_img_hdr_vnd_v3 { type vendor_ramdisk_table_entry_v4 (line 333) | struct vendor_ramdisk_table_entry_v4 { function T (line 349) | static T align_to(T v, int a) { function T (line 355) | static T align_padding(T v, int a) { type dyn_img_hdr (line 370) | struct dyn_img_hdr { FILE: native/src/boot/build.rs function main (line 10) | fn main() { FILE: native/src/boot/cli.rs type Cli (line 20) | struct Cli { type Action (line 27) | enum Action { type Unpack (line 45) | struct Unpack { type Repack (line 56) | struct Repack { type Verify (line 67) | struct Verify { type Sign (line 76) | struct Sign { type Extract (line 89) | struct Extract { type HexPatch (line 100) | struct HexPatch { type Cpio (line 111) | struct Cpio { type Dtb (line 120) | struct Dtb { type Split (line 129) | struct Split { type Sha1 (line 138) | struct Sha1 { type Cleanup (line 145) | struct Cleanup {} type Compress (line 147) | struct Compress { method from_args (line 154) | fn from_args(command_name: &[&str], args: &[&str]) -> Result) -> bool { function sign_cmd (line 305) | fn sign_cmd( function boot_main (line 329) | fn boot_main(cmds: CmdArgs) -> LoggedResult { function main (line 441) | pub extern "C" fn main(argc: i32, argv: *const *const c_char, _envp: *co... FILE: native/src/boot/compress.rs type WriteFinish (line 27) | pub trait WriteFinish: Write { method finish (line 28) | fn finish(self: Box) -> std::io::Result; function finish (line 46) | fn finish(self: Box) -> std::io::Result { function finish (line 53) | fn finish(self: Box) -> std::io::Result { constant LZ4_BLOCK_SIZE (line 67) | const LZ4_BLOCK_SIZE: usize = 0x800000; constant LZ4HC_CLEVEL_MAX (line 68) | const LZ4HC_CLEVEL_MAX: i32 = 12; constant LZ4_MAGIC (line 69) | const LZ4_MAGIC: u32 = 0x184c2102; type LZ4BlockEncoder (line 71) | struct LZ4BlockEncoder { function new (line 80) | fn new(write: W, is_lg: bool) -> Self { function encode_block (line 92) | fn encode_block(write: &mut W, out_buf: &mut [u8], chunk: &[u8]) -> std:... method write (line 106) | fn write(&mut self, buf: &[u8]) -> std::io::Result { method flush (line 111) | fn flush(&mut self) -> std::io::Result<()> { method write_all (line 115) | fn write_all(&mut self, mut buf: &[u8]) -> std::io::Result<()> { function finish (line 134) | fn finish(mut self: Box) -> std::io::Result { type LZ4BlockDecoder (line 148) | struct LZ4BlockDecoder { function new (line 157) | fn new(read: R) -> Self { method read (line 170) | fn read(&mut self, buf: &mut [u8]) -> std::io::Result { function get_encoder (line 219) | pub fn get_encoder<'a, W: Write + 'a>( function get_decoder (line 262) | pub fn get_decoder<'a, R: Read + 'a>( function compress_bytes (line 279) | pub fn compress_bytes(format: FileFormat, in_bytes: &[u8], out_fd: RawFd) { function decompress_bytes (line 290) | pub fn decompress_bytes(format: FileFormat, in_bytes: &[u8], out_fd: Raw... function decompress_cmd (line 302) | pub(crate) fn decompress_cmd(infile: &Utf8CStr, outfile: Option<&Utf8CSt... function compress_cmd (line 363) | pub(crate) fn compress_cmd( FILE: native/src/boot/cpio.rs type CpioCommand (line 33) | struct CpioCommand { type CpioAction (line 40) | enum CpioAction { type Test (line 57) | struct Test {} type Restore (line 61) | struct Restore {} type Patch (line 65) | struct Patch {} type Exists (line 69) | struct Exists { type Backup (line 76) | struct Backup { type Remove (line 85) | struct Remove { type Move (line 94) | struct Move { type Extract (line 103) | struct Extract { type MakeDir (line 110) | struct MakeDir { type Link (line 119) | struct Link { type Add (line 128) | struct Add { type List (line 139) | struct List { function print_cpio_usage (line 146) | pub(crate) fn print_cpio_usage() { type CpioHeader (line 186) | struct CpioHeader { type Cpio (line 203) | struct Cpio { method new (line 217) | fn new() -> Self { method load_from_data (line 223) | fn load_from_data(data: &[u8]) -> LoggedResult { method load_from_file (line 263) | fn load_from_file(path: &Utf8CStr) -> LoggedResult { method dump (line 269) | fn dump(&self, path: &str) -> LoggedResult<()> { method rm (line 312) | fn rm(&mut self, path: &str, recursive: bool) { method extract_entry (line 330) | fn extract_entry(&self, path: &str, out: &mut String) -> LoggedResult<... method extract (line 374) | fn extract(&self, path: Option<&mut String>, out: Option<&mut String>)... method exists (line 389) | fn exists(&self, path: &str) -> bool { method add (line 393) | fn add(&mut self, mode: mode_t, path: &str, file: &mut String) -> Logg... method mkdir (line 438) | fn mkdir(&mut self, mode: mode_t, dir: &str) { method ln (line 453) | fn ln(&mut self, src: &str, dst: &str) { method mv (line 468) | fn mv(&mut self, from: &str, to: &str) -> LoggedResult<()> { method ls (line 478) | fn ls(&self, path: &str, recursive: bool) { method patch (line 505) | fn patch(&mut self) { method test (line 539) | fn test(&self) -> i32 { method restore (line 562) | fn restore(&mut self) -> LoggedResult<()> { method backup (line 597) | fn backup(&mut self, origin: &mut String, skip_compress: bool) -> Logg... type CpioEntry (line 207) | struct CpioEntry { method compress (line 698) | pub(crate) fn compress(&mut self) -> bool { method decompress (line 715) | pub(crate) fn decompress(&mut self) -> bool { constant MAGISK_PATCHED (line 501) | const MAGISK_PATCHED: i32 = 1 << 0; constant UNSUPPORTED_CPIO (line 502) | const UNSUPPORTED_CPIO: i32 = 1 << 1; method fmt (line 736) | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { function cpio_commands (line 769) | pub(crate) fn cpio_commands(file: &Utf8CStr, cmds: &Vec) -> Logg... function x8u (line 826) | fn x8u(x: &[u8; 8]) -> LoggedResult { function align_4 (line 839) | fn align_4(x: usize) -> usize { function norm_path (line 844) | fn norm_path(path: &str) -> String { function parse_mode (line 851) | fn parse_mode(s: &str) -> Result { FILE: native/src/boot/dtb.rs type DtbAction (line 12) | pub(crate) enum DtbAction { type Print (line 20) | pub(crate) struct Print { type Patch (line 27) | pub(crate) struct Patch {} type Test (line 31) | pub(crate) struct Test {} function print_dtb_usage (line 33) | pub(crate) fn print_dtb_usage() { constant MAX_PRINT_LEN (line 53) | const MAX_PRINT_LEN: usize = 32; function print_node (line 55) | fn print_node(node: &FdtNode) { function for_each_fdt (line 139) | fn for_each_fdt LoggedResult<()>>( function find_fstab (line 180) | fn find_fstab<'b, 'a: 'b>(fdt: &'b Fdt<'a>) -> Option> { function dtb_print (line 184) | fn dtb_print(file: &Utf8CStr, fstab: bool) -> LoggedResult<()> { function dtb_test (line 202) | fn dtb_test(file: &Utf8CStr) -> LoggedResult { function dtb_patch (line 223) | fn dtb_patch(file: &Utf8CStr) -> LoggedResult { function dtb_commands (line 264) | pub(crate) fn dtb_commands(file: &Utf8CStr, action: &DtbAction) -> Logge... FILE: native/src/boot/format.rs type Err (line 7) | type Err = (); method from_str (line 9) | fn from_str(s: &str) -> Result { method fmt (line 25) | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { method as_cstr (line 31) | fn as_cstr(&self) -> &'static Utf8CStr { method ext (line 50) | pub fn ext(&self) -> &'static str { method is_compressed (line 62) | pub fn is_compressed(&self) -> bool { method formats (line 76) | pub fn formats() -> String { function fmt2name (line 94) | pub fn fmt2name(fmt: FileFormat) -> *const libc::c_char { function fmt_compressed (line 98) | pub fn fmt_compressed(fmt: FileFormat) -> bool { function fmt_compressed_any (line 102) | pub fn fmt_compressed_any(fmt: FileFormat) -> bool { FILE: native/src/boot/lib.rs type FileFormat (line 24) | enum FileFormat { type Utf8CStrRef (line 53) | type Utf8CStrRef<'a> = base::Utf8CStrRef<'a>; function cleanup (line 55) | fn cleanup(); function unpack (line 56) | fn unpack(image: Utf8CStrRef, skip_decomp: bool, hdr: bool) -> i32; function repack (line 57) | fn repack(src_img: Utf8CStrRef, out_img: Utf8CStrRef, skip_comp: bool); function split_image_dtb (line 58) | fn split_image_dtb(filename: Utf8CStrRef, skip_decomp: bool) -> i32; function check_fmt (line 59) | fn check_fmt(buf: &[u8]) -> FileFormat; function get_sha (line 64) | fn get_sha(use_sha1: bool) -> Box; function update (line 65) | fn update(self: &mut SHA, data: &[u8]); function finalize_into (line 66) | fn finalize_into(self: &mut SHA, out: &mut [u8]); function output_size (line 67) | fn output_size(self: &SHA) -> usize; function sha256_hash (line 68) | fn sha256_hash(data: &[u8], out: &mut [u8]); function compress_bytes (line 70) | fn compress_bytes(format: FileFormat, in_bytes: &[u8], out_fd: i32); function decompress_bytes (line 71) | fn decompress_bytes(format: FileFormat, in_bytes: &[u8], out_fd: i32); function fmt2name (line 72) | fn fmt2name(fmt: FileFormat) -> *const c_char; function fmt_compressed (line 73) | fn fmt_compressed(fmt: FileFormat) -> bool; function fmt_compressed_any (line 74) | fn fmt_compressed_any(fmt: FileFormat) -> bool; function sign_payload_for_cxx (line 77) | fn sign_payload_for_cxx(payload: &[u8]) -> Vec; function payload (line 87) | fn payload(self: &BootImage) -> &[u8]; function tail (line 89) | fn tail(self: &BootImage) -> &[u8]; function is_signed (line 90) | fn is_signed(self: &BootImage) -> bool; function tail_off (line 91) | fn tail_off(self: &BootImage) -> u64; function new (line 95) | fn new(img: Utf8CStrRef) -> UniquePtr; function verify_for_cxx (line 99) | fn verify_for_cxx(self: &BootImage) -> bool; function check_env (line 104) | pub(crate) fn check_env(env: &str) -> bool { FILE: native/src/boot/magiskboot.hpp type FileFormat (line 52) | enum class FileFormat : uint8_t function FileFormat (line 60) | static inline FileFormat check_fmt(rust::Slice bytes) { FILE: native/src/boot/patch.rs function remove_pattern (line 37) | fn remove_pattern(buf: &mut [u8], pattern_matcher: unsafe fn(&[u8]) -> O... function patch_verity (line 64) | pub fn patch_verity(buf: &mut [u8]) -> usize { function patch_encryption (line 82) | pub fn patch_encryption(buf: &mut [u8]) -> usize { function hex2byte (line 90) | fn hex2byte(hex: &[u8]) -> Vec { function hexpatch (line 105) | pub fn hexpatch(file: &Utf8CStr, from: &Utf8CStr, to: &Utf8CStr) -> bool { FILE: native/src/boot/payload.rs constant PAYLOAD_MAGIC (line 23) | const PAYLOAD_MAGIC: &str = "CrAU"; function extract_boot_from_payload (line 25) | pub fn extract_boot_from_payload( FILE: native/src/boot/sign.rs type SHA (line 33) | pub enum SHA { method update (line 39) | pub fn update(&mut self, data: &[u8]) { method output_size (line 46) | pub fn output_size(&self) -> usize { method finalize_into (line 53) | pub fn finalize_into(&mut self, out: &mut [u8]) { function get_sha (line 62) | pub fn get_sha(use_sha1: bool) -> Box { function sha1_hash (line 70) | pub fn sha1_hash(data: &[u8], out: &mut [u8]) { function sha256_hash (line 76) | pub fn sha256_hash(data: &[u8], out: &mut [u8]) { type SigningKey (line 83) | enum SigningKey { type VerifyingKey (line 91) | enum VerifyingKey { type Verifier (line 98) | struct Verifier { method from_public_key (line 104) | fn from_public_key(key: SubjectPublicKeyInfoRef) -> LoggedResult LoggedResult<()> { type Signer (line 151) | struct Signer { method from_private_key (line 157) | fn from_private_key(key: &[u8]) -> LoggedResult { method update (line 189) | fn update(&mut self, data: &[u8]) { method sign (line 193) | fn sign(mut self) -> LoggedResult> { type AuthenticatedAttributes (line 234) | struct AuthenticatedAttributes { type BootSignature (line 240) | struct BootSignature { method verify (line 249) | fn verify(self, payload: &[u8]) -> LoggedResult<()> { method verify (line 268) | pub fn verify(&self, cert: Option<&Utf8CStr>) -> LoggedResult<()> { method verify_for_cxx (line 285) | pub fn verify_for_cxx(&self) -> bool { type Bytes (line 290) | enum Bytes { method as_ref (line 296) | fn as_ref(&self) -> &[u8] { constant VERITY_PEM (line 304) | const VERITY_PEM: &[u8] = include_bytes!("../../../tools/keys/verity.x50... constant VERITY_PK8 (line 305) | const VERITY_PK8: &[u8] = include_bytes!("../../../tools/keys/verity.pk8"); function sign_boot_image (line 307) | pub fn sign_boot_image( function sign_payload_for_cxx (line 347) | pub fn sign_payload_for_cxx(payload: &[u8]) -> Vec { FILE: native/src/core/applet_stub.cpp function main (line 3) | int main(int argc, char *argv[]) { FILE: native/src/core/applets.cpp type Applet (line 8) | struct Applet { function main (line 22) | int main(int argc, char *argv[]) { FILE: native/src/core/bootstages.rs method setup_magisk_env (line 32) | fn setup_magisk_env(&self) -> bool { method post_fs_data (line 109) | fn post_fs_data(&self) -> bool { method late_start (line 163) | fn late_start(&self) { method boot_complete (line 173) | fn boot_complete(&self) { method boot_stage_handler (line 193) | pub fn boot_stage_handler(&self, client: UnixStream, code: RequestCode) { function check_data (line 226) | fn check_data() -> bool { FILE: native/src/core/build.rs function main (line 10) | fn main() { FILE: native/src/core/daemon.rs constant AID_ROOT (line 42) | pub const AID_ROOT: i32 = 0; constant AID_SHELL (line 43) | pub const AID_SHELL: i32 = 2000; constant AID_APP_START (line 44) | pub const AID_APP_START: i32 = 10000; constant AID_APP_END (line 45) | pub const AID_APP_END: i32 = 19999; constant AID_USER_OFFSET (line 46) | pub const AID_USER_OFFSET: i32 = 100000; function to_app_id (line 48) | pub const fn to_app_id(uid: i32) -> i32 { function to_user_id (line 52) | pub const fn to_user_id(uid: i32) -> i32 { type MagiskD (line 57) | pub struct MagiskD { method get (line 72) | pub fn get() -> &'static MagiskD { method sdk_int (line 76) | pub fn sdk_int(&self) -> i32 { method app_data_dir (line 80) | pub fn app_data_dir(&self) -> &'static Utf8CStr { method handle_request_sync (line 88) | fn handle_request_sync(&self, mut client: UnixStream, code: RequestCod... method handle_request_async (line 120) | fn handle_request_async(&self, mut client: UnixStream, code: RequestCo... method reboot (line 154) | fn reboot(&self) { method is_client (line 164) | fn is_client(&self, pid: i32) -> bool { method is_client (line 175) | fn is_client(&self, pid: i32) -> bool { method handle_requests (line 179) | fn handle_requests(&'static self, mut client: UnixStream) { function switch_cgroup (line 270) | fn switch_cgroup(cgroup: &str, pid: i32) { function daemon_entry (line 284) | fn daemon_entry() { function connect_daemon (line 430) | pub fn connect_daemon(code: RequestCode, create: bool) -> LoggedResult RawFd { FILE: native/src/core/db.rs function sqlite_err_str (line 19) | fn sqlite_err_str(code: i32) -> &'static Utf8CStr { type SqliteError (line 27) | pub struct SqliteError(i32); type SqliteResult (line 29) | pub type SqliteResult = Result; type SqliteReturn (line 31) | pub trait SqliteReturn { method sql_result (line 32) | fn sql_result(self) -> SqliteResult<()>; method sql_result (line 36) | fn sql_result(self) -> SqliteResult<()> { type SqlTable (line 45) | pub trait SqlTable { method on_row (line 46) | fn on_row(&mut self, columns: &[String], values: &DbValues); method on_row (line 53) | fn on_row(&mut self, columns: &[String], values: &DbValues) { method on_row (line 109) | fn on_row(&mut self, columns: &[String], values: &DbValues) { type DbSettings (line 59) | pub struct DbSettings { type RootAccess (line 70) | pub enum RootAccess { type MultiuserMode (line 80) | pub enum MultiuserMode { method default (line 88) | fn default() -> Self { method to_str (line 94) | fn to_str(self) -> &'static str { type Sqlite3 (line 134) | pub struct Sqlite3(NonNull); type SqlBindCallback (line 137) | type SqlBindCallback = Option { type DbArgs (line 156) | struct DbArgs<'a> { function bind_arguments (line 161) | unsafe extern "C" fn bind_arguments(v: *mut c_void, idx: i32, stmt: Pin<... function read_db_row (line 177) | unsafe extern "C" fn read_db_row( method with_db (line 189) | fn with_db i32>(&self, f: F) -> i32 { method db_exec_impl (line 201) | fn db_exec_impl( method db_exec_with_rows (line 227) | pub fn db_exec_with_rows(&self, sql: &str, args: &[DbArg], ... method db_exec (line 236) | pub fn db_exec(&self, sql: &str, args: &[DbArg]) -> i32 { method set_db_setting (line 240) | pub fn set_db_setting(&self, key: DbEntryKey, value: i32) -> SqliteResul... method get_db_setting (line 248) | pub fn get_db_setting(&self, key: DbEntryKey) -> i32 { method get_db_settings (line 273) | pub fn get_db_settings(&self) -> SqliteResult { method get_db_string (line 283) | pub fn get_db_string(&self, key: DbEntryKey) -> String { method rm_db_string (line 299) | pub fn rm_db_string(&self, key: DbEntryKey) -> SqliteResult<()> { method db_exec_for_cli (line 304) | pub fn db_exec_for_cli(&self, mut file: UnixStream) -> LoggedResult<()> { method set_db_setting_for_cxx (line 326) | pub fn set_db_setting_for_cxx(&self, key: DbEntryKey, value: i32) -> bool { function sql_exec_for_cxx (line 332) | unsafe extern "C" fn sql_exec_for_cxx( FILE: native/src/core/deny/cli.cpp function usage (line 10) | [[noreturn]] static void usage() { function denylist_handler (line 29) | void denylist_handler(int client) { function denylist_cli (line 65) | int denylist_cli(rust::Vec &args) { FILE: native/src/core/deny/deny.hpp type DenyRequest (line 7) | namespace DenyRequest { type DenyResponse (line 20) | namespace DenyResponse { FILE: native/src/core/deny/logcat.cpp type logger_entry (line 13) | struct logger_entry { type log_msg (line 25) | struct log_msg { type logger_entry (line 28) | struct logger_entry type AndroidLogEntry (line 32) | struct AndroidLogEntry { type android_event_header_t (line 45) | struct [[gnu::packed]] android_event_header_t { type android_event_int_t (line 49) | struct [[gnu::packed]] android_event_int_t { type android_event_string_t (line 54) | struct [[gnu::packed]] android_event_string_t { type android_event_list_t (line 60) | struct [[gnu::packed]] android_event_list_t { type android_event_am_proc_start (line 66) | struct [[gnu::packed]] android_event_am_proc_start { type logger_list (line 81) | struct logger_list type logger_list (line 82) | struct logger_list type logger_list (line 83) | struct logger_list type log_msg (line 83) | struct log_msg type logger_entry (line 28) | struct logger_entry type logger (line 84) | struct logger type logger_list (line 84) | struct logger_list type logger_entry (line 85) | struct logger_entry type stat (line 90) | struct stat function read_ns (line 93) | static int read_ns(const int pid, struct stat *st) { function parse_ppid (line 99) | static int parse_ppid(int pid) { function check_zygote (line 110) | static void check_zygote() { function process_main_buffer (line 130) | static void process_main_buffer(struct log_msg *msg) { function process_events_buffer (line 173) | static void process_events_buffer(struct log_msg *msg) { function run (line 234) | [[noreturn]] void run() { FILE: native/src/core/deny/utils.cpp function get_app_id (line 34) | static int get_app_id(const vector &users, const string &pkg) { function collect_users (line 46) | static void collect_users(vector &users) { function get_app_id (line 56) | static int get_app_id(const string &pkg) { function update_app_id (line 64) | static void update_app_id(int app_id, const string &pkg, bool remove) { function crawl_procfs (line 83) | static void crawl_procfs(const F &fn) { function str_eql (line 94) | static bool str_eql(string_view a, string_view b) { return a == b; } function str_starts_with (line 95) | static bool str_starts_with(string_view a, string_view b) { return a.sta... function proc_name_match (line 98) | static bool proc_name_match(int pid, string_view name) { function proc_context_match (line 110) | bool proc_context_match(int pid, string_view context) { function kill_process (line 122) | static void kill_process(const char *name, bool multi = false) { function validate (line 133) | static bool validate(const char *pkg, const char *proc) { function add_hide_set (line 169) | static bool add_hide_set(const char *pkg, const char *proc) { function scan_deny_apps (line 185) | void scan_deny_apps() { function clear_data (line 213) | static void clear_data() { function ensure_data (line 218) | static bool ensure_data() { function add_list (line 251) | static int add_list(const char *pkg, const char *proc) { function add_list (line 278) | int add_list(int client) { function rm_list (line 284) | static int rm_list(const char *pkg, const char *proc) { function rm_list (line 322) | int rm_list(int client) { function ls_list (line 328) | void ls_list(int client) { function enable_deny (line 352) | int enable_deny() { function disable_deny (line 392) | int disable_deny() { function initialize_denylist (line 400) | void initialize_denylist() { function is_deny_target (line 407) | bool is_deny_target(int uid, string_view process) { function update_deny_flags (line 433) | void update_deny_flags(int uid, rust::Str process, uint32_t &flags) { FILE: native/src/core/include/core.hpp function connect_daemon (line 22) | inline int connect_daemon(RequestCode req) { type ModuleInfo (line 30) | struct ModuleInfo function T (line 37) | T read_any(int fd) { function write_any (line 44) | void write_any(int fd, T val) { function read_int (line 48) | inline int read_int(int fd) { return read_any(fd); } function write_int (line 49) | inline void write_int(int fd, int val) { write_any(fd, val); } function write_vector (line 54) | void write_vector(int fd, const std::vector &vec) { function read_vector (line 59) | bool read_vector(int fd, std::vector &vec) { function Utf8CStr (line 88) | inline Utf8CStr get_magisk_tmp_rs() { return get_magisk_tmp(); } function resolve_preinit_dir_rs (line 89) | inline rust::String resolve_preinit_dir_rs(Utf8CStr base_dir) { FILE: native/src/core/include/sqlite.hpp type sqlite3 (line 15) | struct sqlite3 type sqlite3_stmt (line 16) | struct sqlite3_stmt type DbValues (line 21) | struct DbValues { method get_str (line 23) | rust::Str get_str(int index) const { return get_text(index); } type DbStatement (line 27) | struct DbStatement { type DbArg (line 45) | struct DbArg { method DbArg (line 54) | DbArg(int64_t v) : type(INT), int_val(v) {} method DbArg (line 55) | DbArg(const char *v) : type(TEXT), str_val(v) {} type DbArgs (line 58) | struct DbArgs { method DbArgs (line 59) | DbArgs() : curr(0) {} method DbArgs (line 60) | DbArgs(std::initializer_list list) : args(list), curr(0) {} method empty (line 62) | bool empty() const { return args.empty(); } function db_exec (line 74) | bool db_exec(const char *sql, DbArgs args, T &data) { FILE: native/src/core/lib.rs type RequestCode (line 49) | enum RequestCode { type RespondCode (line 74) | enum RespondCode { type DbEntryKey (line 82) | enum DbEntryKey { type MntNsMode (line 93) | enum MntNsMode { type SuPolicy (line 100) | enum SuPolicy { type ModuleInfo (line 107) | struct ModuleInfo { type ZygiskRequest (line 114) | enum ZygiskRequest { type ZygiskStateFlags (line 121) | enum ZygiskStateFlags { type SuRequest (line 129) | struct SuRequest { method write_to_fd (line 233) | fn write_to_fd(&self, fd: i32) { type Utf8CStrRef (line 143) | type Utf8CStrRef<'a> = base::Utf8CStrRef<'a>; function get_magisk_tmp (line 148) | fn get_magisk_tmp() -> Utf8CStrRef<'static>; function resolve_preinit_dir (line 150) | fn resolve_preinit_dir(base_dir: Utf8CStrRef) -> String; function check_key_combo (line 151) | fn check_key_combo() -> bool; function unlock_blocks (line 152) | fn unlock_blocks(); function update_deny_flags (line 153) | fn update_deny_flags(uid: i32, process: &str, flags: &mut u32); function initialize_denylist (line 154) | fn initialize_denylist(); function switch_mnt_ns (line 155) | fn switch_mnt_ns(pid: i32) -> i32; function exec_root_shell (line 156) | fn exec_root_shell(client: i32, pid: i32, req: &mut SuRequest, mode: Mnt... function exec_script (line 159) | fn exec_script(script: Utf8CStrRef); function exec_common_scripts (line 160) | fn exec_common_scripts(stage: Utf8CStrRef); function exec_module_scripts (line 161) | fn exec_module_scripts(state: Utf8CStrRef, modules: &Vec); function install_apk (line 162) | fn install_apk(apk: Utf8CStrRef); function uninstall_pkg (line 163) | fn uninstall_pkg(apk: Utf8CStrRef); function install_module (line 164) | fn install_module(zip: Utf8CStrRef); function denylist_cli (line 167) | fn denylist_cli(args: &mut Vec) -> i32; function denylist_handler (line 168) | fn denylist_handler(client: i32); function scan_deny_apps (line 169) | fn scan_deny_apps(); function sqlite3_errstr (line 177) | fn sqlite3_errstr(code: i32) -> *const c_char; function open_and_init_db (line 178) | fn open_and_init_db() -> *mut sqlite3; function get_int (line 179) | fn get_int(self: &DbValues, index: i32) -> i32; function get_text (line 181) | fn get_text(self: &DbValues, index: i32) -> &str; function bind_text (line 182) | fn bind_text(self: Pin<&mut DbStatement>, index: i32, val: &str) -> i32; function bind_int64 (line 183) | fn bind_int64(self: Pin<&mut DbStatement>, index: i32, val: i64) -> i32; function android_logging (line 187) | fn android_logging(); function zygisk_logging (line 188) | fn zygisk_logging(); function zygisk_close_logd (line 189) | fn zygisk_close_logd(); function zygisk_get_logd (line 190) | fn zygisk_get_logd() -> i32; function revert_unmount (line 191) | fn revert_unmount(pid: i32); function zygisk_should_load_module (line 192) | fn zygisk_should_load_module(flags: u32) -> bool; function send_fd (line 193) | fn send_fd(socket: i32, fd: i32) -> bool; function recv_fd (line 194) | fn recv_fd(socket: i32) -> i32; function recv_fds (line 195) | fn recv_fds(socket: i32) -> Vec; function write_to_fd (line 196) | fn write_to_fd(self: &SuRequest, fd: i32); function pump_tty (line 197) | fn pump_tty(ptmx: i32, pump_stdin: bool); function get_pty_num (line 198) | fn get_pty_num(fd: i32) -> i32; function lgetfilecon (line 199) | fn lgetfilecon(path: Utf8CStrRef, con: &mut [u8]) -> bool; function setfilecon (line 200) | fn setfilecon(path: Utf8CStrRef, con: Utf8CStrRef) -> bool; function get_prop (line 202) | fn get_prop(name: Utf8CStrRef) -> String; function resetprop_main (line 203) | unsafe fn resetprop_main(argc: i32, argv: *mut *mut c_char) -> i32; function connect_daemon_for_cxx (line 206) | fn connect_daemon_for_cxx(code: RequestCode, create: bool) -> i32; function magisk_main (line 207) | unsafe fn magisk_main(argc: i32, argv: *mut *mut c_char) -> i32; function default (line 214) | fn default() -> SuRequest; function sdk_int (line 220) | fn sdk_int(&self) -> i32; function zygisk_enabled (line 221) | fn zygisk_enabled(&self) -> bool; function get_db_setting (line 222) | fn get_db_setting(&self, key: DbEntryKey) -> i32; function set_db_setting_for_cxx (line 224) | fn set_db_setting_for_cxx(&self, key: DbEntryKey, value: i32) -> bool; function get (line 228) | fn get() -> &'static MagiskD; FILE: native/src/core/logging.rs type ALogPriority (line 32) | enum ALogPriority { function __android_log_write (line 45) | fn __android_log_write(prio: i32, tag: *const c_char, msg: *const c_char); function strftime (line 46) | fn strftime(buf: *mut c_char, len: usize, fmt: *const c_char, tm: *const... function level_to_prio (line 49) | fn level_to_prio(level: LogLevel) -> i32 { function android_log_write (line 58) | fn android_log_write(level: LogLevel, msg: &Utf8CStr) { function android_logging (line 64) | pub fn android_logging() { function magisk_logging (line 68) | pub fn magisk_logging() { function zygisk_logging (line 76) | pub fn zygisk_logging() { type LogMeta (line 86) | struct LogMeta { constant MAX_MSG_LEN (line 93) | const MAX_MSG_LEN: usize = PIPE_BUF - size_of::(); function write_log_to_pipe (line 95) | fn write_log_to_pipe(mut logd: &File, prio: i32, msg: &Utf8CStr) -> io::... function with_logd_fd (line 120) | fn with_logd_fd io::Result>(f: F) { function magisk_log_to_pipe (line 130) | fn magisk_log_to_pipe(prio: i32, msg: &Utf8CStr) { function zygisk_close_logd (line 137) | pub fn zygisk_close_logd() { function zygisk_get_logd (line 143) | pub fn zygisk_get_logd() -> i32 { function zygisk_log_to_pipe (line 178) | fn zygisk_log_to_pipe(prio: i32, msg: &Utf8CStr) { type LogFile (line 212) | enum LogFile { method as_write (line 218) | fn as_write(&mut self) -> &mut dyn Write { function logfile_write_loop (line 226) | fn logfile_write_loop(mut pipe: File) -> io::Result<()> { function setup_logfile (line 307) | pub fn setup_logfile() { function start_log_daemon (line 319) | pub fn start_log_daemon() { FILE: native/src/core/magisk.rs function print_usage (line 14) | fn print_usage() { type Cli (line 51) | struct Cli { type MagiskAction (line 58) | enum MagiskAction { method exec (line 184) | fn exec(self) -> LoggedResult { type LocalVersion (line 83) | struct LocalVersion {} type Version (line 87) | struct Version {} type VersionCode (line 91) | struct VersionCode {} type ListApplets (line 95) | struct ListApplets {} type RemoveModules (line 99) | struct RemoveModules { type InstallModule (line 106) | struct InstallModule { type StartDaemon (line 113) | struct StartDaemon {} type StopDaemon (line 117) | struct StopDaemon {} type PostFsData (line 121) | struct PostFsData {} type ServiceCmd (line 125) | struct ServiceCmd {} type BootComplete (line 129) | struct BootComplete {} type ZygoteRestart (line 133) | struct ZygoteRestart {} type UnlockBlocks (line 137) | struct UnlockBlocks {} type RestoreCon (line 141) | struct RestoreCon {} type CloneAttr (line 145) | struct CloneAttr { type CloneFile (line 154) | struct CloneFile { type Sqlite (line 163) | struct Sqlite { type PathCmd (line 170) | struct PathCmd {} type DenyList (line 174) | struct DenyList { type PreInitDevice (line 181) | struct PreInitDevice {} function magisk_main (line 288) | pub fn magisk_main(argc: i32, argv: *mut *mut c_char) -> i32 { FILE: native/src/core/module.rs constant MAGISK_BIN_INJECT_PARTITIONS (line 20) | const MAGISK_BIN_INJECT_PARTITIONS: [&Utf8CStr; 4] = [ constant SECONDARY_READ_ONLY_PARTITIONS (line 27) | const SECONDARY_READ_ONLY_PARTITIONS: [&Utf8CStr; 3] = type FsNodeMap (line 30) | type FsNodeMap = BTreeMap; function bind_mount (line 39) | fn bind_mount(reason: &str, src: &Utf8CStr, dest: &Utf8CStr, rec: bool) { function mount_dummy (line 47) | fn mount_dummy<'a>( type PathTracker (line 69) | struct PathTracker<'a> { function from (line 75) | fn from<'a>(path: &'a mut dyn Utf8CStrBuf) -> PathTracker<'a> { function append (line 80) | fn append(&mut self, name: &str) -> PathTracker<'_> { function reborrow (line 89) | fn reborrow(&mut self) -> PathTracker<'_> { method drop (line 96) | fn drop(&mut self) { type ModulePaths (line 102) | struct ModulePaths<'a> { function new (line 109) | fn new<'a>( function set_module (line 126) | fn set_module(&mut self, module: &str) -> ModulePaths<'_> { function append (line 134) | fn append(&mut self, name: &str) -> ModulePaths<'_> { function real (line 143) | fn real(&self) -> &Utf8CStr { function module (line 148) | fn module(&self) -> &Utf8CStr { function module_mnt (line 153) | fn module_mnt(&self) -> &Utf8CStr { type MountPaths (line 159) | struct MountPaths<'a> { function new (line 165) | fn new<'a>(real: &'a mut dyn Utf8CStrBuf, worker: &'a mut dyn Utf8CStrBu... function append (line 174) | fn append(&mut self, name: &str) -> MountPaths<'_> { function reborrow (line 181) | fn reborrow(&mut self) -> MountPaths<'_> { function real (line 189) | fn real(&self) -> &Utf8CStr { function worker (line 194) | fn worker(&self) -> &Utf8CStr { type FsNode (line 199) | enum FsNode { method new_dir (line 208) | fn new_dir() -> FsNode { method collect (line 214) | fn collect(&mut self, mut paths: ModulePaths) -> LoggedResult<()> { method parent_should_be_tmpfs (line 266) | fn parent_should_be_tmpfs(&self, target_path: &Utf8CStr) -> bool { method children (line 279) | fn children(&mut self) -> Option<&mut FsNodeMap> { method commit (line 286) | fn commit(&mut self, mut path: MountPaths, is_root_dir: bool) -> Logge... method commit_tmpfs (line 338) | fn commit_tmpfs(&mut self, mut path: MountPaths) -> LoggedResult<()> { function get_path_env (line 435) | fn get_path_env() -> String { function inject_magisk_bins (line 441) | fn inject_magisk_bins(system: &mut FsNode, is_emulator: bool) { function inject_zygisk_bins (line 567) | fn inject_zygisk_bins(name: &str, system: &mut FsNode) { function upgrade_modules (line 623) | fn upgrade_modules() -> LoggedResult<()> { function for_each_module (line 658) | fn for_each_module(mut func: impl FnMut(&DirEntry) -> LoggedResult<()>) ... function disable_modules (line 668) | pub fn disable_modules() { function run_uninstall_script (line 681) | fn run_uninstall_script(module_name: &Utf8CStr) { function remove_modules (line 689) | pub fn remove_modules() { function collect_modules (line 701) | fn collect_modules(zygisk_enabled: bool, open_zygisk: bool) -> Vec String { function revert_unmount (line 231) | pub fn revert_unmount(pid: i32) { FILE: native/src/core/package.rs constant EOCD_MAGIC (line 18) | const EOCD_MAGIC: u32 = 0x06054B50; constant APK_SIGNING_BLOCK_MAGIC (line 19) | const APK_SIGNING_BLOCK_MAGIC: [u8; 16] = *b"APK Sig Block 42"; constant SIGNATURE_SCHEME_V2_MAGIC (line 20) | const SIGNATURE_SCHEME_V2_MAGIC: u32 = 0x7109871A; constant PACKAGES_XML (line 21) | const PACKAGES_XML: &str = "/data/system/packages.xml"; function read_certificate (line 51) | fn read_certificate(apk: &mut File, version: i32) -> Vec { function find_apk_path (line 152) | fn find_apk_path(pkg: &str) -> LoggedResult { type Status (line 175) | enum Status { type ManagerInfo (line 181) | pub struct ManagerInfo { method check_dyn (line 233) | fn check_dyn(&mut self, daemon: &MagiskD, user: i32, pkg: &str) -> Sta... method check_stub (line 268) | fn check_stub(&mut self, user: i32, pkg: &str) -> Status { method check_orig (line 291) | fn check_orig(&mut self, user: i32) -> Status { method install_stub (line 314) | fn install_stub(&mut self) { method get_manager (line 336) | fn get_manager(&mut self, daemon: &MagiskD, user: i32, mut install: bo... method default (line 191) | fn default() -> Self { type TrackedFile (line 204) | struct TrackedFile { method new (line 210) | fn new(path: Utf8CString) -> TrackedFile { method is_same (line 219) | fn is_same(&self) -> bool { method get_package_uid (line 434) | fn get_package_uid(&self, user: i32, pkg: &str) -> i32 { method preserve_stub_apk (line 444) | pub fn preserve_stub_apk(&self) { method get_manager_uid (line 461) | pub fn get_manager_uid(&self, user: i32) -> i32 { method get_manager (line 467) | pub fn get_manager(&self, user: i32, install: bool) -> (i32, String) { method ensure_manager (line 473) | pub fn ensure_manager(&self) { method get_app_no_list (line 480) | pub fn get_app_no_list(&self) -> BitSet { FILE: native/src/core/resetprop/cli.rs type ResetProp (line 17) | struct ResetProp { method get (line 76) | fn get(&self, key: &Utf8CStr) -> Option { method print_all (line 103) | fn print_all(&self) { method set (line 123) | fn set(&self, key: &Utf8CStr, val: &Utf8CStr) { method delete (line 170) | fn delete(&self, key: &Utf8CStr) -> bool { method wait (line 180) | fn wait(&self) { method load_file (line 214) | fn load_file(&self, file: &Utf8CStr) -> LoggedResult<()> { method run (line 229) | fn run(self) -> LoggedResult<()> { function print_usage (line 38) | fn print_usage(cmd: &str) { function resetprop_main (line 256) | pub fn resetprop_main(argc: i32, argv: *mut *mut c_char) -> i32 { function set_prop (line 302) | pub fn set_prop(key: &Utf8CStr, val: &Utf8CStr) { function load_prop_file (line 311) | pub fn load_prop_file(file: &Utf8CStr) { function get_prop (line 320) | pub fn get_prop(key: &Utf8CStr) -> String { FILE: native/src/core/resetprop/mod.rs type PropInfo (line 17) | struct PropInfo { method read (line 101) | fn read(&self, reader: &mut PropReader) { method update (line 105) | fn update(&mut self, val: &Utf8CStr) { method is_long (line 109) | fn is_long(&self) -> bool { type CharPtr (line 21) | type CharPtr = *const c_char; type ReadCallback (line 22) | type ReadCallback = unsafe extern "C" fn(&mut PropReader, CharPtr, CharP... type ForEachCallback (line 23) | type ForEachCallback = unsafe extern "C" fn(&PropInfo, &mut PropReader); type PropReader (line 25) | enum PropReader<'a> { function put_cstr (line 32) | fn put_cstr(&mut self, key: CharPtr, val: CharPtr, serial: u32) { function put_str (line 52) | fn put_str(&mut self, key: String, val: String, serial: u32) { function get_sys_prop (line 72) | fn get_sys_prop() -> SysProp; function prop_info_is_long (line 74) | fn prop_info_is_long(info: &PropInfo) -> bool; function sys_prop_find (line 76) | fn sys_prop_find(key: CharPtr) -> Option<&'static mut PropInfo>; function sys_prop_update (line 78) | fn sys_prop_update(info: &mut PropInfo, val: CharPtr, val_len: u32) -> i32; function sys_prop_add (line 80) | fn sys_prop_add(key: CharPtr, key_len: u32, val: CharPtr, val_len: u32) ... function sys_prop_delete (line 82) | fn sys_prop_delete(key: CharPtr, prune: bool) -> i32; function sys_prop_get_context (line 84) | fn sys_prop_get_context(key: CharPtr) -> CharPtr; function sys_prop_area_serial (line 86) | fn sys_prop_area_serial() -> u32; type SysProp (line 90) | struct SysProp { method read (line 115) | fn read(&self, info: &PropInfo, reader: &mut PropReader) { method find (line 124) | fn find(&self, key: &Utf8CStr) -> Option<&'static PropInfo> { method find_mut (line 128) | fn find_mut(&self, key: &Utf8CStr) -> Option<&'static mut PropInfo> { method set (line 132) | fn set(&self, key: &Utf8CStr, val: &Utf8CStr) { method add (line 138) | fn add(&self, key: &Utf8CStr, val: &Utf8CStr) { method update (line 149) | fn update(&self, info: &mut PropInfo, val: &Utf8CStr) { method delete (line 155) | fn delete(&self, key: &Utf8CStr, prune: bool) -> bool { method for_each (line 159) | fn for_each(&self, reader: &mut PropReader) { method wait (line 168) | fn wait(&self, info: Option<&PropInfo>, old_serial: u32, new_serial: &... method get_context (line 174) | fn get_context(&self, key: &Utf8CStr) -> &'static Utf8CStr { method area_serial (line 178) | fn area_serial(&self) -> u32 { FILE: native/src/core/resetprop/persist.rs constant PERSIST_PROP_DIR (line 17) | const PERSIST_PROP_DIR: &str = "/data/property"; constant PERSIST_PROP (line 18) | const PERSIST_PROP: &str = concatcp!(PERSIST_PROP_DIR, "/persistent_prop... type PropExt (line 20) | trait PropExt { method find_index (line 21) | fn find_index(&self, name: &Utf8CStr) -> Result; method find (line 22) | fn find(self, name: &Utf8CStr) -> Option; method find_index (line 26) | fn find_index(&self, name: &Utf8CStr) -> Result { method find (line 31) | fn find(self, name: &Utf8CStr) -> Option { function check_proto (line 37) | fn check_proto() -> bool { function file_get_prop (line 41) | fn file_get_prop(name: &Utf8CStr) -> LoggedResult { function file_set_prop (line 52) | fn file_set_prop(name: &Utf8CStr, value: Option<&Utf8CStr>) -> LoggedRes... function proto_read_props (line 77) | fn proto_read_props() -> LoggedResult { function proto_write_props (line 90) | fn proto_write_props(props: &PersistentProperties) -> LoggedResult<()> { function persist_get_prop (line 106) | pub(super) fn persist_get_prop(key: &Utf8CStr) -> LoggedResult { function persist_get_all_props (line 125) | pub(super) fn persist_get_all_props(reader: &mut PropReader) -> LoggedRe... function persist_delete_prop (line 152) | pub(super) fn persist_delete_prop(key: &Utf8CStr) -> LoggedResult<()> { function persist_set_prop (line 164) | pub(super) fn persist_set_prop(key: &Utf8CStr, val: &Utf8CStr) -> Logged... FILE: native/src/core/resetprop/sys.cpp type SysProp (line 12) | struct SysProp { function prop_info_is_long (line 20) | bool prop_info_is_long(const prop_info &info) { function SysProp (line 24) | SysProp get_sys_prop() { FILE: native/src/core/scripting.cpp function set_script_env (line 23) | static void set_script_env() { function exec_script (line 32) | void exec_script(Utf8CStr script) { function exec_common_scripts (line 77) | void exec_common_scripts(Utf8CStr stage) { function exec_module_scripts (line 119) | void exec_module_scripts(Utf8CStr stage, const rust::Vec &mo... function install_apk (line 160) | void install_apk(Utf8CStr apk) { function uninstall_pkg (line 173) | void uninstall_pkg(Utf8CStr pkg) { function clear_pkg (line 186) | void clear_pkg(const char *pkg, int user_id) { function abort (line 193) | static void abort(FILE *fp, const char *fmt, ...) { function install_module (line 208) | void install_module(Utf8CStr file) { FILE: native/src/core/selinux.rs constant UNLABEL_CON (line 7) | const UNLABEL_CON: &Utf8CStr = cstr!("u:object_r:unlabeled:s0"); constant SYSTEM_CON (line 8) | const SYSTEM_CON: &Utf8CStr = cstr!("u:object_r:system_file:s0"); constant ADB_CON (line 9) | const ADB_CON: &Utf8CStr = cstr!("u:object_r:adb_data_file:s0"); constant ROOT_CON (line 10) | const ROOT_CON: &Utf8CStr = cstr!("u:object_r:rootfs:s0"); function restore_syscon_from_unlabeled (line 12) | fn restore_syscon_from_unlabeled( function restore_syscon (line 36) | fn restore_syscon(path: &mut dyn Utf8CStrBuf) -> LoggedResult<()> { function restorecon (line 54) | pub(crate) fn restorecon() { function restore_tmpcon (line 75) | pub(crate) fn restore_tmpcon() -> LoggedResult<()> { function lgetfilecon (line 99) | pub(crate) fn lgetfilecon(path: &Utf8CStr, con: &mut [u8]) -> bool { function setfilecon (line 104) | pub(crate) fn setfilecon(path: &Utf8CStr, con: &Utf8CStr) -> bool { FILE: native/src/core/socket.rs type Encodable (line 9) | pub trait Encodable { method encode (line 10) | fn encode(&self, w: &mut impl Write) -> io::Result<()>; method encode (line 40) | fn encode(&self, w: &mut impl Write) -> io::Result<()> { method encode (line 73) | fn encode(&self, w: &mut impl Write) -> io::Result<()> { method encode (line 91) | fn encode(&self, w: &mut impl Write) -> io::Result<()> { type Decodable (line 13) | pub trait Decodable: Sized + Encodable { method decode (line 14) | fn decode(r: &mut impl Read) -> io::Result; method decode (line 50) | fn decode(r: &mut impl Read) -> io::Result { method decode (line 80) | fn decode(r: &mut impl Read) -> io::Result { method decode (line 98) | fn decode(r: &mut impl Read) -> io::Result { type IpcRead (line 106) | pub trait IpcRead { method read_decodable (line 107) | fn read_decodable(&mut self) -> io::Result; method read_decodable (line 112) | fn read_decodable(&mut self) -> io::Result { type IpcWrite (line 117) | pub trait IpcWrite { method write_encodable (line 118) | fn write_encodable(&mut self, val: &E) -> io::R... method write_encodable (line 123) | fn write_encodable(&mut self, val: &E) -> io::R... type UnixSocketExt (line 128) | pub trait UnixSocketExt { method send_fds (line 129) | fn send_fds(&mut self, fd: &[RawFd]) -> io::Result<()>; method recv_fd (line 130) | fn recv_fd(&mut self) -> io::Result>; method recv_fds (line 131) | fn recv_fds(&mut self) -> io::Result>; method send_fds (line 135) | fn send_fds(&mut self, fds: &[RawFd]) -> io::Result<()> { method recv_fd (line 153) | fn recv_fd(&mut self) -> io::Result> { method recv_fds (line 191) | fn recv_fds(&mut self) -> io::Result> { function send_fd (line 217) | pub fn send_fd(socket: RawFd, fd: RawFd) -> bool { function recv_fd (line 226) | pub fn recv_fd(socket: RawFd) -> RawFd { function recv_fds (line 235) | pub fn recv_fds(socket: RawFd) -> Vec { FILE: native/src/core/sqlite.cpp function load_sqlite (line 50) | static bool load_sqlite() { function sql_exec_impl (line 103) | int sql_exec_impl( function sqlite3 (line 175) | sqlite3 *open_and_init_db() { function db_exec (line 313) | bool db_exec(const char *sql, DbArgs args, db_exec_callback exec_fn) { FILE: native/src/core/su/connect.rs type Extra (line 20) | struct Extra<'a> { type ExtraVal (line 25) | enum ExtraVal<'a> { function add_intent (line 33) | fn add_intent(&self, cmd: &mut Command) { function add_bind (line 56) | fn add_bind(&self, cmd: &mut Command) { function add_bind_legacy (line 82) | fn add_bind_legacy(&self, cmd: &mut Command) { type SuAppContext (line 93) | pub(super) struct SuAppContext<'a> { function exec_cmd (line 102) | fn exec_cmd(&self, action: &'static str, extras: &[Extra], use_provider:... function app_request (line 168) | fn app_request(&mut self) { function app_notify (line 232) | fn app_notify(&self) { function app_log (line 250) | fn app_log(&self) { function connect_app (line 297) | pub(super) fn connect_app(&mut self) { FILE: native/src/core/su/daemon.rs constant DEFAULT_SHELL (line 17) | const DEFAULT_SHELL: &str = "/system/bin/sh"; method default (line 20) | fn default() -> Self { type SuInfo (line 35) | pub struct SuInfo { method allow (line 72) | fn allow(uid: i32) -> SuInfo { method deny (line 85) | fn deny(uid: i32) -> SuInfo { type AccessInfo (line 44) | struct AccessInfo { method new (line 100) | fn new(settings: RootSettings) -> AccessInfo { method is_fresh (line 107) | fn is_fresh(&self) -> bool { method refresh (line 111) | fn refresh(&mut self) { method default (line 50) | fn default() -> Self { method default (line 63) | fn default() -> Self { method su_daemon_handler (line 117) | pub fn su_daemon_handler(&self, mut client: UnixStream, cred: UCred) { method get_su_info (line 201) | fn get_su_info(&self, uid: i32) -> Arc { method build_su_info (line 217) | fn build_su_info(&self, uid: i32) -> Arc { method build_su_info (line 290) | fn build_su_info(&self, uid: i32) -> Arc { FILE: native/src/core/su/db.rs method default (line 10) | fn default() -> Self { type RootSettings (line 16) | pub struct RootSettings { method on_row (line 23) | fn on_row(&mut self, columns: &[String], values: &DbValues) { type UidList (line 36) | struct UidList(Vec); method on_row (line 39) | fn on_row(&mut self, _: &[String], values: &DbValues) { method get_root_settings (line 45) | pub fn get_root_settings(&self, uid: i32, settings: &mut RootSettings) -... method prune_su_access (line 55) | pub fn prune_su_access(&self) { method uid_granted_root (line 85) | pub fn uid_granted_root(&self, mut uid: i32) -> bool { FILE: native/src/core/su/pts.rs constant TIOCGPTN (line 16) | const TIOCGPTN: u32 = 0x80045430; function ioctl (line 20) | fn ioctl(fd: c_int, request: u32, ...) -> i32; function get_pty_num (line 23) | pub fn get_pty_num(fd: i32) -> i32 { function sync_winsize (line 31) | fn sync_winsize(ptmx: i32) { function splice (line 38) | fn splice(fd_in: impl AsFd, fd_out: impl AsFd, len: usize) -> OsResult<'... function pump_via_copy (line 43) | fn pump_via_copy(mut fd_in: &File, mut fd_out: &File) -> LoggedResult<()> { function pump_via_splice (line 51) | fn pump_via_splice(fd_in: &File, fd_out: &File, pipe: &(File, File)) -> ... function set_stdin_raw (line 73) | fn set_stdin_raw() -> LoggedResult { function restore_stdin (line 91) | fn restore_stdin(term: Termios) -> LoggedResult<()> { function pump_tty_impl (line 98) | fn pump_tty_impl(ptmx: File, pump_stdin: bool) -> LoggedResult<()> { function pump_tty (line 165) | pub fn pump_tty(ptmx: RawFd, pump_stdin: bool) { FILE: native/src/core/su/su.cpp function usage (line 38) | [[noreturn]] static void usage(int status) { function sighandler (line 66) | static void sighandler(int sig) { function setup_sighandlers (line 81) | static void setup_sighandlers(void (*handler)(int)) { function su_client_main (line 89) | int su_client_main(int argc, char *argv[]) { function drop_caps (line 249) | static void drop_caps() { function proc_is_restricted (line 277) | static bool proc_is_restricted(pid_t pid) { function set_identity (line 310) | static void set_identity(int uid, const rust::Vec &groups) { function exec_root_shell (line 328) | void exec_root_shell(int client, int pid, SuRequest &req, MntNsMode mode) { FILE: native/src/core/thread.rs constant THREAD_IDLE_MAX_SEC (line 10) | const THREAD_IDLE_MAX_SEC: u64 = 60; constant CORE_POOL_SIZE (line 11) | const CORE_POOL_SIZE: i32 = 3; type ThreadPool (line 14) | pub struct ThreadPool { method pool_loop (line 28) | fn pool_loop(&self, is_core_pool: bool) { method exec_task_impl (line 67) | fn exec_task_impl(&self, f: impl FnOnce() + Send + 'static) { method exec_task (line 95) | pub fn exec_task(f: impl FnOnce() + Send + 'static) { type PoolInfo (line 21) | struct PoolInfo { FILE: native/src/core/utils.cpp function read_string (line 14) | bool read_string(int fd, std::string &str) { function string (line 21) | string read_string(int fd) { function write_string (line 27) | void write_string(int fd, string_view str) { function unlock_blocks (line 47) | void unlock_blocks() { function check_key_combo (line 68) | bool check_key_combo() { FILE: native/src/core/zygisk/api.hpp type zygisk (line 102) | namespace zygisk { type Api (line 104) | struct Api type AppSpecializeArgs (line 105) | struct AppSpecializeArgs method AppSpecializeArgs (line 166) | AppSpecializeArgs() = delete; type ServerSpecializeArgs (line 106) | struct ServerSpecializeArgs method ServerSpecializeArgs (line 177) | ServerSpecializeArgs() = delete; class ModuleBase (line 108) | class ModuleBase { method onLoad (line 113) | virtual void onLoad([[maybe_unused]] Api *api, [[maybe_unused]] JNIE... method preAppSpecialize (line 127) | virtual void preAppSpecialize([[maybe_unused]] AppSpecializeArgs *ar... method postAppSpecialize (line 132) | virtual void postAppSpecialize([[maybe_unused]] const AppSpecializeA... method preServerSpecialize (line 136) | virtual void preServerSpecialize([[maybe_unused]] ServerSpecializeAr... method postServerSpecialize (line 140) | virtual void postServerSpecialize([[maybe_unused]] const ServerSpeci... type AppSpecializeArgs (line 143) | struct AppSpecializeArgs { method AppSpecializeArgs (line 166) | AppSpecializeArgs() = delete; type ServerSpecializeArgs (line 169) | struct ServerSpecializeArgs { method ServerSpecializeArgs (line 177) | ServerSpecializeArgs() = delete; type internal (line 180) | namespace internal { type api_table (line 181) | struct api_table type module_abi (line 319) | struct module_abi { method module_abi (line 328) | module_abi(ModuleBase *module) : api_version(ZYGISK_API_VERSION), ... type api_table (line 336) | struct api_table { function entry_impl (line 352) | void entry_impl(api_table *table, JNIEnv *env) { type Option (line 186) | enum Option : int { type StateFlag (line 203) | enum StateFlag : uint32_t { type Api (line 213) | struct Api { type internal (line 317) | namespace internal { type api_table (line 181) | struct api_table type module_abi (line 319) | struct module_abi { method module_abi (line 328) | module_abi(ModuleBase *module) : api_version(ZYGISK_API_VERSION), ... type api_table (line 336) | struct api_table { function entry_impl (line 352) | void entry_impl(api_table *table, JNIEnv *env) { FILE: native/src/core/zygisk/daemon.rs constant NBPROP (line 18) | const NBPROP: &Utf8CStr = cstr!("ro.dalvik.vm.native.bridge"); constant ZYGISKLDR (line 19) | const ZYGISKLDR: &str = "libzygisk.so"; constant UNMOUNT_MASK (line 20) | const UNMOUNT_MASK: u32 = function zygisk_should_load_module (line 23) | pub fn zygisk_should_load_module(flags: u32) -> bool { function exec_zygiskd (line 28) | fn exec_zygiskd(is_64_bit: bool, remote: UnixStream) { type ZygiskState (line 62) | pub struct ZygiskState { method connect_zygiskd (line 69) | fn connect_zygiskd(&mut self, mut client: UnixStream, daemon: &MagiskD... method reset (line 110) | pub fn reset(&mut self, mut restore: bool) { method set_prop (line 129) | pub fn set_prop(&mut self) { method restore_prop (line 148) | pub fn restore_prop(&mut self) { method zygisk_handler (line 159) | pub fn zygisk_handler(&self, mut client: UnixStream) { method get_module_fds (line 178) | fn get_module_fds(&self, is_64_bit: bool) -> Option> { method get_process_info (line 191) | fn get_process_info(&self, mut client: UnixStream) -> LoggedResult<()> { method get_mod_dir (line 242) | fn get_mod_dir(&self, mut client: UnixStream) -> LoggedResult<()> { method zygisk_enabled (line 262) | pub fn zygisk_enabled(&self) -> bool { FILE: native/src/core/zygisk/entry.cpp function zygiskd (line 16) | static void zygiskd(int socket) { function zygisk_main (line 78) | int zygisk_main(int argc, char *argv[]) { FILE: native/src/core/zygisk/gen_jni_hooks.py class JType (line 6) | class JType: method __init__ (line 7) | def __init__(self, cpp: str, jni: str): class JArray (line 12) | class JArray(JType): method __init__ (line 13) | def __init__(self, type: JType): class Argument (line 21) | class Argument: method __init__ (line 22) | def __init__(self, name: str, type: JType, set_arg=False): method cpp (line 27) | def cpp(self) -> str: class Anon (line 32) | class Anon(Argument): method __init__ (line 35) | def __init__(self, type: JType): class Return (line 40) | class Return: method __init__ (line 41) | def __init__(self, value: str, type: JType): class JNIMethod (line 46) | class JNIMethod: method __init__ (line 47) | def __init__(self, name: str, ret: Return, args: list[Argument]): method arg_list_name (line 52) | def arg_list_name(self) -> str: method arg_list_cpp (line 55) | def arg_list_cpp(self) -> str: method cpp_fn_type (line 60) | def cpp_fn_type(self) -> str: method cpp_lambda_sig (line 63) | def cpp_lambda_sig(self) -> str: method jni_sig (line 66) | def jni_sig(self): class JNIHook (line 71) | class JNIHook(JNIMethod): method __init__ (line 72) | def __init__(self, ver: str, ret: Return, args: list[Argument]): method hook_target (line 76) | def hook_target(self): method body (line 79) | def body(self, orig_fn_ptr: str): function ind (line 83) | def ind(i): class ForkApp (line 96) | class ForkApp(JNIHook): method __init__ (line 97) | def __init__(self, ver, args): method hook_target (line 100) | def hook_target(self): method init_args (line 103) | def init_args(self): method body (line 106) | def body(self, orig_fn_ptr: str): class SpecializeApp (line 123) | class SpecializeApp(ForkApp): method __init__ (line 124) | def __init__(self, ver: str, args: list[Argument]): method hook_target (line 128) | def hook_target(self): class ForkServer (line 132) | class ForkServer(ForkApp): method hook_target (line 133) | def hook_target(self): method init_args (line 136) | def init_args(self): function gen_jni_def (line 615) | def gen_jni_def(field: str, methods: list[JNIHook]): FILE: native/src/core/zygisk/hook.cpp type HookContext (line 100) | struct HookContext : JniHookDefinitions { function JniHookDefinitions (line 134) | static JniHookDefinitions *get_defs() { function DCL_HOOK_FUNC (line 144) | DCL_HOOK_FUNC(static char *, strdup, const char * str) { function DCL_HOOK_FUNC (line 152) | DCL_HOOK_FUNC(int, fork) { function DCL_HOOK_FUNC (line 157) | DCL_HOOK_FUNC(static int, unshare, int flags) { function DCL_HOOK_FUNC (line 170) | DCL_HOOK_FUNC(static int, selinux_android_setcontext, function DCL_HOOK_FUNC (line 178) | DCL_HOOK_FUNC(static void, android_log_close) { function DCL_HOOK_FUNC (line 188) | DCL_HOOK_FUNC(static int, dlclose, void *handle) { function DCL_HOOK_FUNC (line 199) | DCL_HOOK_FUNC(static int, pthread_attr_destroy, void *target) { function get_fd_max (line 229) | static size_t get_fd_max() { function NativeBridgeRuntimeCallbacks (line 286) | static const NativeBridgeRuntimeCallbacks* find_runtime_callbacks(struct... type trace_arg (line 349) | struct trace_arg { function JNIMethodsDyn (line 464) | JNIMethodsDyn HookContext::get_jni_methods(JNIEnv *env, jclass clazz) co... function register_jni_methods (line 471) | static void register_jni_methods(JNIEnv *env, jclass clazz, JNIMethods m... function hook_entry (line 620) | void hook_entry() { function hookJniNativeMethods (line 625) | void hookJniNativeMethods(JNIEnv *env, const char *clz, JNINativeMethod ... FILE: native/src/core/zygisk/jni_hooks.hpp type JniHookDefinitions (line 4) | struct JniHookDefinitions type JniHookDefinitions (line 7) | struct JniHookDefinitions { FILE: native/src/core/zygisk/mod.rs function exec_companion_entry (line 9) | extern "C" fn exec_companion_entry(client: RawFd, companion_handler: ext... FILE: native/src/core/zygisk/module.cpp function zygisk_request (line 14) | static int zygisk_request(int req) { function sigmask (line 309) | static int sigmask(int how, int signum) { type stat (line 351) | struct stat FILE: native/src/core/zygisk/module.hpp type ZygiskContext (line 8) | struct ZygiskContext type RegisterInfo (line 244) | struct RegisterInfo { type IgnoreInfo (line 251) | struct IgnoreInfo { method is_child (line 276) | bool is_child() const { return pid <= 0; } type ZygiskModule (line 9) | struct ZygiskModule method onLoad (line 172) | void onLoad(void *env) { method clearApi (line 187) | void clearApi() { memset(&api, 0, sizeof(api)); } type AppSpecializeArgs_v1 (line 11) | struct AppSpecializeArgs_v1 method AppSpecializeArgs_v1 (line 89) | AppSpecializeArgs_v1(const AppSpecializeArgs_v5 *a) : type AppSpecializeArgs_v3 (line 13) | struct AppSpecializeArgs_v3 method AppSpecializeArgs_v3 (line 51) | AppSpecializeArgs_v3( type AppSpecializeArgs_v5 (line 15) | struct AppSpecializeArgs_v5 method AppSpecializeArgs_v5 (line 63) | AppSpecializeArgs_v5( type module_abi_v1 (line 17) | struct module_abi_v1 type api_abi_v1 (line 23) | struct api_abi_v1 type api_abi_v2 (line 24) | struct api_abi_v2 type api_abi_v4 (line 26) | struct api_abi_v4 type AppSpecializeArgs_v3 (line 31) | struct AppSpecializeArgs_v3 { method AppSpecializeArgs_v3 (line 51) | AppSpecializeArgs_v3( type AppSpecializeArgs_v5 (line 60) | struct AppSpecializeArgs_v5 : public AppSpecializeArgs_v3 { method AppSpecializeArgs_v5 (line 63) | AppSpecializeArgs_v5( type AppSpecializeArgs_v1 (line 71) | struct AppSpecializeArgs_v1 { method AppSpecializeArgs_v1 (line 89) | AppSpecializeArgs_v1(const AppSpecializeArgs_v5 *a) : type ServerSpecializeArgs_v1 (line 99) | struct ServerSpecializeArgs_v1 { method ServerSpecializeArgs_v1 (line 107) | ServerSpecializeArgs_v1( type module_abi_v1 (line 115) | struct module_abi_v1 { type api_abi_base (line 133) | struct api_abi_base { type api_abi_v1 (line 138) | struct api_abi_v1 : public api_abi_base { type api_abi_v2 (line 147) | struct api_abi_v2 : public api_abi_v1 { type api_abi_v4 (line 152) | struct api_abi_v4 : public api_abi_base { type ZygiskModule (line 170) | struct ZygiskModule { method onLoad (line 172) | void onLoad(void *env) { method clearApi (line 187) | void clearApi() { memset(&api, 0, sizeof(api)); } type ZygiskContext (line 227) | struct ZygiskContext { type RegisterInfo (line 244) | struct RegisterInfo { type IgnoreInfo (line 251) | struct IgnoreInfo { method is_child (line 276) | bool is_child() const { return pid <= 0; } FILE: native/src/core/zygisk/zygisk.hpp type NativeBridgeRuntimeCallbacks (line 31) | struct NativeBridgeRuntimeCallbacks { type NativeBridgeCallbacks (line 38) | struct NativeBridgeCallbacks { FILE: native/src/external/lz4-sys/src/lib.rs type size_t (line 40) | pub type size_t = usize; type LZ4FCompressionContext (line 44) | pub struct LZ4FCompressionContext(pub *mut c_void); type LZ4FDecompressionContext (line 49) | pub struct LZ4FDecompressionContext(pub *mut c_void); type LZ4FErrorCode (line 52) | pub type LZ4FErrorCode = size_t; type BlockSize (line 56) | pub enum BlockSize { method get_size (line 65) | pub fn get_size(&self) -> usize { type BlockMode (line 77) | pub enum BlockMode { type ContentChecksum (line 84) | pub enum ContentChecksum { type FrameType (line 91) | pub enum FrameType { type BlockChecksum (line 98) | pub enum BlockChecksum { type LZ4FFrameInfo (line 105) | pub struct LZ4FFrameInfo { type LZ4FPreferences (line 117) | pub struct LZ4FPreferences { type LZ4FCompressOptions (line 127) | pub struct LZ4FCompressOptions { type LZ4FDecompressOptions (line 136) | pub struct LZ4FDecompressOptions { type LZ4StreamEncode (line 144) | pub struct LZ4StreamEncode(c_void); type LZ4StreamDecode (line 148) | pub struct LZ4StreamDecode(c_void); constant LZ4F_VERSION (line 150) | pub const LZ4F_VERSION: c_uint = 100; function LZ4_compress_default (line 156) | pub fn LZ4_compress_default( function LZ4_compress_fast (line 165) | pub fn LZ4_compress_fast( function LZ4_compress_HC (line 175) | pub fn LZ4_compress_HC( function LZ4_decompress_safe (line 185) | pub fn LZ4_decompress_safe( function LZ4F_isError (line 193) | pub fn LZ4F_isError(code: size_t) -> c_uint; function LZ4F_getErrorName (line 196) | pub fn LZ4F_getErrorName(code: size_t) -> *const c_char; function LZ4F_createCompressionContext (line 212) | pub fn LZ4F_createCompressionContext( function LZ4F_freeCompressionContext (line 219) | pub fn LZ4F_freeCompressionContext(ctx: LZ4FCompressionContext) -> LZ4FE... function LZ4F_compressBegin (line 234) | pub fn LZ4F_compressBegin( function LZ4F_compressBound (line 248) | pub fn LZ4F_compressBound( function LZ4F_compressUpdate (line 270) | pub fn LZ4F_compressUpdate( function LZ4F_flush (line 292) | pub fn LZ4F_flush( function LZ4F_compressEnd (line 313) | pub fn LZ4F_compressEnd( function LZ4F_createDecompressionContext (line 334) | pub fn LZ4F_createDecompressionContext( function LZ4F_freeDecompressionContext (line 340) | pub fn LZ4F_freeDecompressionContext(ctx: LZ4FDecompressionContext) -> L... function LZ4F_getFrameInfo (line 358) | pub fn LZ4F_getFrameInfo( function LZ4F_decompress (line 401) | pub fn LZ4F_decompress( function LZ4_versionNumber (line 411) | pub fn LZ4_versionNumber() -> c_int; function LZ4_compressBound (line 414) | pub fn LZ4_compressBound(size: c_int) -> c_int; function LZ4_createStream (line 417) | pub fn LZ4_createStream() -> *mut LZ4StreamEncode; function LZ4_compress_continue (line 423) | pub fn LZ4_compress_continue( function LZ4_freeStream (line 431) | pub fn LZ4_freeStream(LZ4_stream: *mut LZ4StreamEncode) -> c_int; function LZ4_setStreamDecode (line 436) | pub fn LZ4_setStreamDecode( function LZ4_createStreamDecode (line 443) | pub fn LZ4_createStreamDecode() -> *mut LZ4StreamDecode; function LZ4_decompress_safe_continue (line 450) | pub fn LZ4_decompress_safe_continue( function LZ4_freeStreamDecode (line 459) | pub fn LZ4_freeStreamDecode(LZ4_stream: *mut LZ4StreamDecode) -> c_int; function LZ4F_resetDecompressionContext (line 466) | pub fn LZ4F_resetDecompressionContext(ctx: LZ4FDecompressionContext); function test_version_number (line 471) | fn test_version_number() { function test_frame_info_size (line 478) | fn test_frame_info_size() { FILE: native/src/external/lz4-sys/src/wasm_shim.rs constant USIZE_ALIGN (line 24) | const USIZE_ALIGN: usize = core::mem::align_of::(); constant USIZE_SIZE (line 25) | const USIZE_SIZE: usize = core::mem::size_of::(); function rust_lz4_wasm_shim_malloc (line 28) | pub extern "C" fn rust_lz4_wasm_shim_malloc(size: usize) -> *mut c_void { function rust_lz4_wasm_shim_memcmp (line 33) | pub extern "C" fn rust_lz4_wasm_shim_memcmp( function rust_lz4_wasm_shim_calloc (line 51) | pub extern "C" fn rust_lz4_wasm_shim_calloc(nmemb: usize, size: usize) -... function wasm_shim_alloc (line 57) | fn wasm_shim_alloc(size: usize) -> *mut c_void { function rust_lz4_wasm_shim_free (line 82) | pub unsafe extern "C" fn rust_lz4_wasm_shim_free(ptr: *mut c_void) { function rust_lz4_wasm_shim_memcpy (line 96) | pub unsafe extern "C" fn rust_lz4_wasm_shim_memcpy( function rust_lz4_wasm_shim_memmove (line 106) | pub unsafe extern "C" fn rust_lz4_wasm_shim_memmove( function rust_lz4_wasm_shim_memset (line 116) | pub unsafe extern "C" fn rust_lz4_wasm_shim_memset( FILE: native/src/external/xz-embedded/xz.h type xz_mode (line 56) | enum xz_mode { type xz_ret (line 112) | enum xz_ret { type xz_buf (line 140) | struct xz_buf { type xz_dec (line 153) | struct xz_dec type xz_mode (line 198) | enum xz_mode type xz_dec (line 218) | struct xz_dec type xz_buf (line 218) | struct xz_buf type xz_dec (line 231) | struct xz_dec type xz_dec (line 238) | struct xz_dec FILE: native/src/external/xz-embedded/xz_config.h function get_unaligned_le32 (line 76) | static inline uint32_t get_unaligned_le32(const uint8_t *buf) function get_unaligned_be32 (line 86) | static inline uint32_t get_unaligned_be32(const uint8_t *buf) function put_unaligned_le32 (line 96) | static inline void put_unaligned_le32(uint32_t val, uint8_t *buf) function put_unaligned_be32 (line 106) | static inline void put_unaligned_be32(uint32_t val, uint8_t *buf) FILE: native/src/external/xz-embedded/xz_crc32.c function XZ_EXTERN (line 30) | XZ_EXTERN void xz_crc32_init(void) function XZ_EXTERN (line 49) | XZ_EXTERN uint32_t xz_crc32(const uint8_t *buf, size_t size, uint32_t crc) FILE: native/src/external/xz-embedded/xz_dec_lzma2.c type dictionary (line 44) | struct dictionary { type rc_dec (line 95) | struct rc_dec { type lzma_len_dec (line 115) | struct lzma_len_dec { type lzma_dec (line 132) | struct lzma_dec { type lzma2_dec (line 214) | struct lzma2_dec { type xz_dec_lzma2 (line 253) | struct xz_dec_lzma2 { function dict_reset (line 286) | static void dict_reset(struct dictionary *dict, struct xz_buf *b) function dict_limit (line 300) | static void dict_limit(struct dictionary *dict, size_t out_max) function dict_has_space (line 309) | static inline bool dict_has_space(const struct dictionary *dict) function dict_get (line 320) | static inline uint32_t dict_get(const struct dictionary *dict, uint32_t ... function dict_put (line 333) | static inline void dict_put(struct dictionary *dict, uint8_t byte) function dict_repeat (line 346) | static bool dict_repeat(struct dictionary *dict, uint32_t *len, uint32_t... function dict_uncompressed (line 374) | static void dict_uncompressed(struct dictionary *dict, struct xz_buf *b, function dict_flush (line 416) | static uint32_t dict_flush(struct dictionary *dict, struct xz_buf *b) function rc_reset (line 438) | static void rc_reset(struct rc_dec *rc) function rc_read_init (line 449) | static bool rc_read_init(struct rc_dec *rc, struct xz_buf *b) function rc_limit_exceeded (line 463) | static inline bool rc_limit_exceeded(const struct rc_dec *rc) function rc_is_finished (line 472) | static inline bool rc_is_finished(const struct rc_dec *rc) function __always_inline (line 478) | static __always_inline void rc_normalize(struct rc_dec *rc) function __always_inline (line 497) | static __always_inline int rc_bit(struct rc_dec *rc, uint16_t *prob) function __always_inline (line 519) | static __always_inline uint32_t rc_bittree(struct rc_dec *rc, function __always_inline (line 535) | static __always_inline void rc_bittree_reverse(struct rc_dec *rc, function rc_direct (line 553) | static inline void rc_direct(struct rc_dec *rc, uint32_t *dest, uint32_t... type xz_dec_lzma2 (line 572) | struct xz_dec_lzma2 function lzma_literal (line 581) | static void lzma_literal(struct xz_dec_lzma2 *s) function lzma_len (line 619) | static void lzma_len(struct xz_dec_lzma2 *s, struct lzma_len_dec *l, function lzma_match (line 646) | static void lzma_match(struct xz_dec_lzma2 *s, uint32_t pos_state) function lzma_rep_match (line 688) | static void lzma_rep_match(struct xz_dec_lzma2 *s, uint32_t pos_state) function lzma_main (line 722) | static bool lzma_main(struct xz_dec_lzma2 *s) function lzma_reset (line 767) | static void lzma_reset(struct xz_dec_lzma2 *s) function lzma_props (line 799) | static bool lzma_props(struct xz_dec_lzma2 *s, uint8_t props) function lzma2_lzma (line 846) | static bool lzma2_lzma(struct xz_dec_lzma2 *s, struct xz_buf *b) function xz_ret (line 931) | xz_ret xz_dec_lzma2_run(struct xz_dec_lzma2 *s, function xz_dec_lzma2 (line 1104) | xz_dec_lzma2 *xz_dec_lzma2_create(enum xz_mode mode, function xz_ret (line 1128) | xz_ret xz_dec_lzma2_reset(struct xz_dec_lzma2 *s, uint8_t props) function XZ_EXTERN (line 1165) | XZ_EXTERN void xz_dec_lzma2_end(struct xz_dec_lzma2 *s) FILE: native/src/external/xz-embedded/xz_dec_stream.c type xz_dec_hash (line 20) | struct xz_dec_hash { type xz_dec (line 26) | struct xz_dec { function fill_temp (line 168) | static bool fill_temp(struct xz_dec *s, struct xz_buf *b) function dec_vli (line 186) | static enum xz_ret dec_vli(struct xz_dec *s, const uint8_t *in, function dec_block (line 229) | static enum xz_ret dec_block(struct xz_dec *s, struct xz_buf *b) function index_update (line 299) | static void index_update(struct xz_dec *s, const struct xz_buf *b) function dec_index (line 314) | static enum xz_ret dec_index(struct xz_dec *s, struct xz_buf *b) function crc_validate (line 365) | static enum xz_ret crc_validate(struct xz_dec *s, struct xz_buf *b, function check_skip (line 390) | static bool check_skip(struct xz_dec *s, struct xz_buf *b) function dec_stream_header (line 407) | static enum xz_ret dec_stream_header(struct xz_dec *s) function dec_stream_footer (line 443) | static enum xz_ret dec_stream_footer(struct xz_dec *s) type xz_ret (line 470) | enum xz_ret type xz_dec (line 470) | struct xz_dec type xz_ret (line 472) | enum xz_ret function dec_main (line 570) | static enum xz_ret dec_main(struct xz_dec *s, struct xz_buf *b) function xz_ret (line 760) | xz_ret xz_dec_run(struct xz_dec *s, struct xz_buf *b) function xz_dec (line 796) | xz_dec *xz_dec_init(enum xz_mode mode, uint32_t dict_max) function XZ_EXTERN (line 826) | XZ_EXTERN void xz_dec_reset(struct xz_dec *s) function XZ_EXTERN (line 838) | XZ_EXTERN void xz_dec_end(struct xz_dec *s) FILE: native/src/external/xz-embedded/xz_lzma2.h type lzma_state (line 42) | enum lzma_state { function lzma_state_literal (line 64) | static inline void lzma_state_literal(enum lzma_state *state) function lzma_state_match (line 75) | static inline void lzma_state_match(enum lzma_state *state) function lzma_state_long_rep (line 81) | static inline void lzma_state_long_rep(enum lzma_state *state) function lzma_state_short_rep (line 87) | static inline void lzma_state_short_rep(enum lzma_state *state) function lzma_state_is_literal (line 93) | static inline bool lzma_state_is_literal(enum lzma_state state) function lzma_get_dist_state (line 147) | static inline uint32_t lzma_get_dist_state(uint32_t len) FILE: native/src/external/xz-embedded/xz_private.h type xz_mode (line 109) | enum xz_mode type xz_dec_lzma2 (line 118) | struct xz_dec_lzma2 type xz_dec_lzma2 (line 122) | struct xz_dec_lzma2 type xz_buf (line 123) | struct xz_buf type xz_dec_lzma2 (line 126) | struct xz_dec_lzma2 type xz_dec_bcj (line 141) | struct xz_dec_bcj type xz_dec_bcj (line 148) | struct xz_dec_bcj type xz_dec_lzma2 (line 149) | struct xz_dec_lzma2 type xz_buf (line 150) | struct xz_buf FILE: native/src/external/xz-embedded/xz_stream.h type vli_type (line 43) | typedef uint64_t vli_type; type xz_check (line 52) | enum xz_check { FILE: native/src/include/codegen.rs type ResultExt (line 11) | trait ResultExt { method ok_or_exit (line 12) | fn ok_or_exit(self) -> T; function ok_or_exit (line 16) | fn ok_or_exit(self) -> T { function write_if_diff (line 27) | fn write_if_diff>(path: P, bytes: &[u8]) -> io::Result<()> { function gen_cxx_binding (line 39) | pub fn gen_cxx_binding(name: &str) { FILE: native/src/include/consts.rs constant POST_FS_DATA_WAIT_TIME (line 7) | pub const POST_FS_DATA_WAIT_TIME: i32 = 40; constant APPLET_NAMES (line 8) | pub const APPLET_NAMES: &[&str] = &["su", "resetprop"]; constant MAGISK_FULL_VER (line 12) | pub const MAGISK_FULL_VER: &str = concatcp!(MAGISK_VERSION, "(", MAGISK_... constant APP_PACKAGE_NAME (line 14) | pub const APP_PACKAGE_NAME: &str = "com.topjohnwu.magisk"; constant LOGFILE (line 16) | pub const LOGFILE: &str = "/cache/magisk.log"; constant SECURE_DIR (line 19) | pub const SECURE_DIR: &str = "/data/adb"; constant MODULEROOT (line 20) | pub const MODULEROOT: &str = concatcp!(SECURE_DIR, "/modules"); constant MODULEUPGRADE (line 21) | pub const MODULEUPGRADE: &str = concatcp!(SECURE_DIR, "/modules_update"); constant DATABIN (line 22) | pub const DATABIN: &str = concatcp!(SECURE_DIR, "/magisk"); constant MAGISKDB (line 23) | pub const MAGISKDB: &str = concatcp!(SECURE_DIR, "/magisk.db"); constant INTERNAL_DIR (line 26) | pub const INTERNAL_DIR: &str = ".magisk"; constant MAIN_CONFIG (line 27) | pub const MAIN_CONFIG: &str = concatcp!(INTERNAL_DIR, "/config"); constant PREINITMIRR (line 28) | pub const PREINITMIRR: &str = concatcp!(INTERNAL_DIR, "/preinit"); constant MODULEMNT (line 29) | pub const MODULEMNT: &str = concatcp!(INTERNAL_DIR, "/modules"); constant WORKERDIR (line 30) | pub const WORKERDIR: &str = concatcp!(INTERNAL_DIR, "/worker"); constant BBPATH (line 31) | pub const BBPATH: &str = concatcp!(INTERNAL_DIR, "/busybox"); constant DEVICEDIR (line 32) | pub const DEVICEDIR: &str = concatcp!(INTERNAL_DIR, "/device"); constant MAIN_SOCKET (line 33) | pub const MAIN_SOCKET: &str = concatcp!(DEVICEDIR, "/socket"); constant PREINITDEV (line 34) | pub const PREINITDEV: &str = concatcp!(DEVICEDIR, "/preinit"); constant LOG_PIPE (line 35) | pub const LOG_PIPE: &str = concatcp!(DEVICEDIR, "/log"); constant ROOTOVL (line 36) | pub const ROOTOVL: &str = concatcp!(INTERNAL_DIR, "/rootdir"); constant ROOTMNT (line 37) | pub const ROOTMNT: &str = concatcp!(ROOTOVL, "/.mount_list"); constant SELINUXMOCK (line 38) | pub const SELINUXMOCK: &str = concatcp!(INTERNAL_DIR, "/selinux"); constant SEPOL_PROC_DOMAIN (line 41) | pub const SEPOL_PROC_DOMAIN: &str = "magisk"; constant MAGISK_PROC_CON (line 42) | pub const MAGISK_PROC_CON: &str = concatcp!("u:r:", SEPOL_PROC_DOMAIN, "... constant SEPOL_FILE_TYPE (line 44) | pub const SEPOL_FILE_TYPE: &str = "magisk_file"; constant MAGISK_FILE_CON (line 45) | pub const MAGISK_FILE_CON: &str = concatcp!("u:object_r:", SEPOL_FILE_TY... constant SEPOL_LOG_TYPE (line 47) | pub const SEPOL_LOG_TYPE: &str = "magisk_log_file"; constant MAGISK_LOG_CON (line 48) | pub const MAGISK_LOG_CON: &str = concatcp!("u:object_r:", SEPOL_LOG_TYPE... FILE: native/src/init/build.rs function main (line 6) | fn main() { FILE: native/src/init/getinfo.cpp function string (line 18) | static string extract_quoted_str_until(chars, chars, function kv_pairs (line 43) | static kv_pairs parse_impl(chars, string_view str) { function kv_pairs (line 62) | static kv_pairs parse_cmdline(string_view str) { function kv_pairs (line 65) | static kv_pairs parse_bootconfig(string_view str) { function kv_pairs (line 68) | static kv_pairs parse_partition_map(std::string_view str) { function check_key_combo (line 74) | static bool check_key_combo() { FILE: native/src/init/getinfo.rs method print (line 6) | pub(crate) fn print(&self) { method check_two_stage (line 43) | pub(crate) fn check_two_stage(&self) -> bool { FILE: native/src/init/init.hpp function Utf8CStr (line 24) | static inline Utf8CStr split_plat_cil() { function Utf8CStr (line 28) | static inline Utf8CStr preload_lib() { function Utf8CStr (line 32) | static inline Utf8CStr preload_policy() { function Utf8CStr (line 36) | static inline Utf8CStr preload_ack() { FILE: native/src/init/init.rs method new (line 11) | fn new(argv: *mut *mut c_char) -> Self { method first_stage (line 33) | fn first_stage(&self) { method second_stage (line 47) | fn second_stage(&mut self) { method legacy_system_as_root (line 73) | fn legacy_system_as_root(&mut self) { method rootfs (line 84) | fn rootfs(&mut self) { method recovery_or_charger (line 91) | fn recovery_or_charger(&self) { method restore_ramdisk_init (line 97) | fn restore_ramdisk_init(&self) { method start (line 114) | fn start(&mut self) -> LoggedResult<()> { function main (line 174) | pub unsafe extern "C" fn main( FILE: native/src/init/lib.rs type KeyValue (line 22) | struct KeyValue { type BootConfig (line 27) | struct BootConfig { type MagiskInit (line 41) | struct MagiskInit { type Utf8CStrRef (line 53) | type Utf8CStrRef<'a> = base::Utf8CStrRef<'a>; function magisk_proxy_main (line 55) | unsafe fn magisk_proxy_main(argc: i32, argv: *mut *mut c_char) -> i32; function backup_init (line 56) | fn backup_init() -> Utf8CStrRef<'static>; function split_plat_cil (line 59) | fn split_plat_cil() -> Utf8CStrRef<'static>; function preload_lib (line 60) | fn preload_lib() -> Utf8CStrRef<'static>; function preload_policy (line 61) | fn preload_policy() -> Utf8CStrRef<'static>; function preload_ack (line 62) | fn preload_ack() -> Utf8CStrRef<'static>; function setup_klog (line 67) | fn setup_klog(); function inject_magisk_rc (line 68) | fn inject_magisk_rc(fd: i32, tmp_dir: Utf8CStrRef); function switch_root (line 69) | fn switch_root(path: Utf8CStrRef); function is_device_mounted (line 70) | fn is_device_mounted(dev: u64, target: Pin<&mut CxxString>) -> bool; function print (line 75) | fn print(self: &BootConfig); function init (line 78) | fn init(self: &mut BootConfig); function set (line 80) | fn set(self: &mut BootConfig, config: &kv_pairs); function parse_config_file (line 86) | fn parse_config_file(self: &mut MagiskInit); function mount_overlay (line 87) | fn mount_overlay(self: &mut MagiskInit, dest: Utf8CStrRef); function handle_sepolicy (line 88) | fn handle_sepolicy(self: &mut MagiskInit); function restore_overlay_contexts (line 89) | fn restore_overlay_contexts(self: &MagiskInit); function mount_system_root (line 93) | fn mount_system_root(self: &mut MagiskInit) -> bool; function patch_rw_root (line 94) | fn patch_rw_root(self: &mut MagiskInit); function patch_ro_root (line 95) | fn patch_ro_root(self: &mut MagiskInit); function setup_tmp (line 98) | unsafe fn setup_tmp(self: &mut MagiskInit, path: *const c_char); function collect_devices (line 99) | fn collect_devices(self: &MagiskInit); function mount_preinit_dir (line 100) | fn mount_preinit_dir(self: &mut MagiskInit); function find_block (line 101) | unsafe fn find_block(self: &MagiskInit, partname: *const c_char) -> u64; function patch_fissiond (line 102) | unsafe fn patch_fissiond(self: &mut MagiskInit, tmp_path: *const c_char); FILE: native/src/init/logging.rs function setup_klog (line 15) | pub fn setup_klog() { FILE: native/src/init/mount.cpp type devinfo (line 13) | struct devinfo { function parse_device (line 28) | static void parse_device(devinfo *dev, const char *uevent) { FILE: native/src/init/mount.rs function switch_root (line 19) | pub(crate) fn switch_root(path: &Utf8CStr) { function is_device_mounted (line 56) | pub(crate) fn is_device_mounted(dev: u64, target: Pin<&mut CxxString>) -... constant RAMFS_MAGIC (line 66) | const RAMFS_MAGIC: u32 = 0x858458f6; function is_rootfs (line 68) | pub(crate) fn is_rootfs() -> bool { method prepare_data (line 77) | pub(crate) fn prepare_data(&self) { method exec_init (line 95) | pub(crate) fn exec_init(&mut self) { FILE: native/src/init/preload.c function preload_init (line 7) | __attribute__((constructor)) function security_load_policy (line 14) | int security_load_policy(void *data, size_t len) { FILE: native/src/init/rootdir.cpp function unxz (line 18) | static bool unxz(int fd, rust::Slice bytes) { function patch_rc_scripts (line 44) | static bool patch_rc_scripts(const char *src_path, const char *tmp_path,... function load_overlay_rc (line 177) | static void load_overlay_rc(const char *overlay) { function recreate_sbin (line 205) | static void recreate_sbin(const char *mirror, bool use_bind_mount) { function extract_files (line 234) | static void extract_files(bool sbin) { function magisk_proxy_main (line 377) | int magisk_proxy_main(int, char *argv[]) { function unxz_init (line 403) | static void unxz_init(const char *init_xz, const char *init) { function Utf8CStr (line 412) | Utf8CStr backup_init() { FILE: native/src/init/rootdir.rs function inject_magisk_rc (line 13) | pub fn inject_magisk_rc(fd: RawFd, tmp_dir: &Utf8CStr) { type OverlayAttr (line 40) | pub struct OverlayAttr(Utf8CString, Utf8CString); method parse_config_file (line 43) | pub(crate) fn parse_config_file(&mut self) { method mount_impl (line 56) | fn mount_impl( method mount_overlay (line 91) | pub(crate) fn mount_overlay(&mut self, dest: &Utf8CStr) { method restore_overlay_contexts (line 100) | pub(crate) fn restore_overlay_contexts(&self) { FILE: native/src/init/selinux.rs constant MOCK_VERSION (line 15) | const MOCK_VERSION: &Utf8CStr = cstr!(concatcp!(SELINUXMOCK, "/version")); constant MOCK_LOAD (line 16) | const MOCK_LOAD: &Utf8CStr = cstr!(concatcp!(SELINUXMOCK, "/load")); constant MOCK_ENFORCE (line 17) | const MOCK_ENFORCE: &Utf8CStr = cstr!(concatcp!(SELINUXMOCK, "/enforce")); constant MOCK_REQPROT (line 18) | const MOCK_REQPROT: &Utf8CStr = cstr!(concatcp!(SELINUXMOCK, "/checkreqp... constant SELINUX_MNT (line 20) | const SELINUX_MNT: &str = "/sys/fs/selinux"; constant SELINUX_ENFORCE (line 21) | const SELINUX_ENFORCE: &Utf8CStr = cstr!(concatcp!(SELINUX_MNT, "/enforc... constant SELINUX_LOAD (line 22) | const SELINUX_LOAD: &Utf8CStr = cstr!(concatcp!(SELINUX_MNT, "/load")); constant SELINUX_REQPROT (line 23) | const SELINUX_REQPROT: &Utf8CStr = cstr!(concatcp!(SELINUX_MNT, "/checkr... type SePatchStrategy (line 25) | enum SePatchStrategy { function mock_fifo (line 50) | fn mock_fifo(target: &Utf8CStr, mock: &Utf8CStr) -> LoggedResult<()> { function mock_file (line 56) | fn mock_file(target: &Utf8CStr, mock: &Utf8CStr) -> LoggedResult<()> { method handle_sepolicy (line 63) | pub(crate) fn handle_sepolicy(&mut self) { method cleanup_and_load (line 67) | fn cleanup_and_load(&self, rules: &str) { method handle_sepolicy_impl (line 89) | fn handle_sepolicy_impl(&mut self) -> LoggedResult<()> { FILE: native/src/init/twostage.rs function hexpatch_init_for_second_stage (line 6) | pub(crate) fn hexpatch_init_for_second_stage(writable: bool) { method hijack_init_with_switch_root (line 45) | pub(crate) fn hijack_init_with_switch_root(&self) { FILE: native/src/sepolicy/api.cpp function as_str (line 11) | std::string as_str(const Arg &arg) { function print_rule (line 21) | static void print_rule(const char *action, Args ...args) { function expand (line 32) | static inline void expand(F &&f, T &&...args) { function expand (line 37) | static inline void expand(Str s, T &&...args) { function expand (line 42) | static inline void expand(const StrVec &vec, T &&...args) { function expand (line 53) | static inline void expand(const Xperms &vec, T &&...args) { FILE: native/src/sepolicy/build.rs function main (line 6) | fn main() { FILE: native/src/sepolicy/cli.rs type Cli (line 13) | struct Cli { function print_usage (line 42) | fn print_usage(cmd: &str) { function main (line 72) | pub unsafe extern "C" fn main( FILE: native/src/sepolicy/lib.rs type Xperm (line 16) | struct Xperm { type SePolicy (line 22) | struct SePolicy { method xperm_to_string (line 88) | fn xperm_to_string(perm: &ffi::Xperm) -> String { type Utf8CStrRef (line 32) | type Utf8CStrRef<'a> = base::Utf8CStrRef<'a>; function allow (line 36) | fn allow(self: &mut SePolicy, s: Vec<&str>, t: Vec<&str>, c: Vec<&str>, ... function deny (line 37) | fn deny(self: &mut SePolicy, s: Vec<&str>, t: Vec<&str>, c: Vec<&str>, p... function auditallow (line 38) | fn auditallow(self: &mut SePolicy, s: Vec<&str>, t: Vec<&str>, c: Vec<&s... function dontaudit (line 39) | fn dontaudit(self: &mut SePolicy, s: Vec<&str>, t: Vec<&str>, c: Vec<&st... function allowxperm (line 40) | fn allowxperm(self: &mut SePolicy, s: Vec<&str>, t: Vec<&str>, c: Vec<&s... function auditallowxperm (line 41) | fn auditallowxperm( function dontauditxperm (line 48) | fn dontauditxperm( function permissive (line 55) | fn permissive(self: &mut SePolicy, t: Vec<&str>); function enforce (line 56) | fn enforce(self: &mut SePolicy, t: Vec<&str>); function typeattribute (line 57) | fn typeattribute(self: &mut SePolicy, t: Vec<&str>, a: Vec<&str>); function type_ (line 59) | fn type_(self: &mut SePolicy, t: &str, a: Vec<&str>); function attribute (line 60) | fn attribute(self: &mut SePolicy, t: &str); function type_transition (line 61) | fn type_transition(self: &mut SePolicy, s: &str, t: &str, c: &str, d: &s... function type_change (line 62) | fn type_change(self: &mut SePolicy, s: &str, t: &str, c: &str, d: &str); function type_member (line 63) | fn type_member(self: &mut SePolicy, s: &str, t: &str, c: &str, d: &str); function genfscon (line 64) | fn genfscon(self: &mut SePolicy, s: &str, t: &str, c: &str); function strip_dontaudit (line 66) | fn strip_dontaudit(self: &mut SePolicy); function print_rules (line 68) | fn print_rules(self: &SePolicy); function to_file (line 69) | fn to_file(self: &SePolicy, file: Utf8CStrRef) -> bool; function from_file (line 72) | fn from_file(file: Utf8CStrRef) -> SePolicy; function from_split (line 74) | fn from_split() -> SePolicy; function compile_split (line 76) | fn compile_split() -> SePolicy; function from_data (line 78) | fn from_data(data: &[u8]) -> SePolicy; function xperm_to_string (line 83) | fn xperm_to_string(perm: &Xperm) -> String; FILE: native/src/sepolicy/policy.hpp type Xperm (line 13) | struct Xperm class sepol_impl (line 15) | class sepol_impl { method sepol_impl (line 42) | sepol_impl(policydb *db) : db(db) {} FILE: native/src/sepolicy/policydb.cpp function cmp_sha256 (line 15) | static bool cmp_sha256(const char *a, const char *b) { function check_precompiled (line 36) | static bool check_precompiled(const char *precompiled) { function load_cil (line 76) | static void load_cil(struct cil_db *db, const char *file) { function SePolicy (line 82) | SePolicy SePolicy::from_data(rust::Slice data) noexcept { function SePolicy (line 101) | SePolicy SePolicy::from_file(::Utf8CStr file) noexcept { function SePolicy (line 120) | SePolicy SePolicy::compile_split() noexcept { function SePolicy (line 217) | SePolicy SePolicy::from_split() noexcept { function vec_write (line 233) | static int vec_write(void *v, const char *buf, int len) { type stat (line 261) | struct stat FILE: native/src/sepolicy/rules.rs method magisk_rules (line 51) | pub fn magisk_rules(&mut self) { FILE: native/src/sepolicy/sepolicy.cpp type avtab_key (line 13) | struct avtab_key function auto_cast (line 37) | static auto_cast_wrapper auto_cast(T *p) { function copy_str (line 42) | static size_t copy_str(std::array &dest, rust::Str src) { function str_eq (line 58) | static bool str_eq(string_view a, rust::Str b) { function hashtab_find (line 62) | static auto hashtab_find(hashtab_t h, Str key) { function list_for_each (line 69) | static void list_for_each(Node *node_ptr, const Func &fn) { function Node (line 79) | static Node *list_find(Node *node_ptr, const Func &fn) { function hash_for_each (line 89) | static void hash_for_each(Node **node_ptr, int n_slot, const Func &fn) { function hashtab_for_each (line 96) | static void hashtab_for_each(hashtab_t htab, const Func &fn) { function avtab_for_each (line 101) | static void avtab_for_each(avtab_t *avtab, const Func &fn) { function for_each_attr (line 106) | static void for_each_attr(hashtab_t htab, const Func &fn) { function avtab_remove_node (line 114) | static int avtab_remove_node(avtab_t *h, avtab_ptr_t node) { function is_redundant (line 142) | static bool is_redundant(avtab_ptr_t node) { function avtab_ptr_t (line 153) | avtab_ptr_t sepol_impl::find_avtab_node(avtab_key_t *key, avtab_extended... function avtab_ptr_t (line 176) | avtab_ptr_t sepol_impl::insert_avtab_node(avtab_key_t *key) { function avtab_ptr_t (line 184) | avtab_ptr_t sepol_impl::get_avtab_node(avtab_key_t *key, avtab_extended_... FILE: native/src/sepolicy/statement.rs type Token (line 11) | pub enum Token<'a> { type Tokens (line 38) | type Tokens<'a> = Peekable>>; type ParseResult (line 39) | type ParseResult<'a, T> = Result>; type ParseError (line 41) | enum ParseError<'a> { function parse_id (line 62) | fn parse_id<'a>(tokens: &mut Tokens<'a>) -> ParseResult<'a, &'a str> { function parse_term (line 73) | fn parse_term<'a>(tokens: &mut Tokens<'a>) -> ParseResult<'a, Vec<&'a st... function parse_sterm (line 98) | fn parse_sterm<'a>(tokens: &mut Tokens<'a>) -> ParseResult<'a, Vec<&'a s... function parse_xperm (line 124) | fn parse_xperm<'a>(tokens: &mut Tokens<'a>) -> ParseResult<'a, Xperm> { function parse_xperms (line 153) | fn parse_xperms<'a>(tokens: &mut Tokens<'a>) -> ParseResult<'a, Vec(tokens: &mut Tokens<'a>, pattern: &str) -> ParseResu... function extract_token (line 214) | fn extract_token<'a>(s: &'a str, tokens: &mut Vec>) { function tokenize_statement (line 267) | fn tokenize_statement(statement: &str) -> Vec> { method load_rules (line 276) | pub fn load_rules(&mut self, rules: &str) { method load_rule_file (line 281) | pub fn load_rule_file(&mut self, filename: &Utf8CStr) { method load_rules_from_reader (line 291) | fn load_rules_from_reader(&mut self, reader: &mut T) { method parse_statement (line 298) | fn parse_statement(&mut self, statement: &str) { method exec_statement (line 329) | fn exec_statement<'a>(&mut self, tokens: &mut Tokens<'a>) -> ParseResult... method fmt (line 494) | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { method fmt (line 525) | fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { function format_statement_help (line 556) | pub(crate) fn format_statement_help(f: &mut dyn Write) -> std::fmt::Resu... FILE: tools/elf-cleaner/src/main.rs constant DT_AARCH64_BTI_PLT (line 8) | const DT_AARCH64_BTI_PLT: u32 = elf::DT_LOPROC + 1; constant DT_AARCH64_PAC_PLT (line 9) | const DT_AARCH64_PAC_PLT: u32 = elf::DT_LOPROC + 3; constant DT_AARCH64_VARIANT_PCS (line 10) | const DT_AARCH64_VARIANT_PCS: u32 = elf::DT_LOPROC + 5; constant SUPPORTED_DT_FLAGS (line 12) | const SUPPORTED_DT_FLAGS: u32 = elf::DF_1_NOW | elf::DF_1_GLOBAL; function print_remove_dynamic (line 14) | fn print_remove_dynamic(name: &str, path: &str) { function process_elf (line 18) | fn process_elf(path: &str) -> anyhow::Result<()> { function main (line 83) | fn main() -> anyhow::Result<()> { FILE: tools/rustup-wrapper/src/main.rs function main (line 20) | fn main() -> std::io::Result<()> {