gitextract_zn19wufn/ ├── .gitattributes ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.md │ │ └── config.yml │ ├── actions/ │ │ └── setup/ │ │ ├── action.yml │ │ └── sccache.sh │ ├── ci.prop │ ├── kvm.sh │ └── workflows/ │ └── build.yml ├── .gitignore ├── .gitmodules ├── LICENSE ├── README.MD ├── app/ │ ├── .gitignore │ ├── apk/ │ │ ├── build.gradle.kts │ │ ├── proguard-rules.pro │ │ └── src/ │ │ └── main/ │ │ ├── AndroidManifest.xml │ │ ├── java/ │ │ │ └── com/ │ │ │ └── topjohnwu/ │ │ │ └── magisk/ │ │ │ ├── arch/ │ │ │ │ ├── AsyncLoadViewModel.kt │ │ │ │ ├── BaseFragment.kt │ │ │ │ ├── BaseViewModel.kt │ │ │ │ ├── NavigationActivity.kt │ │ │ │ ├── UIActivity.kt │ │ │ │ ├── ViewEvent.kt │ │ │ │ └── ViewModelHolder.kt │ │ │ ├── databinding/ │ │ │ │ ├── DataBindingAdapters.kt │ │ │ │ ├── DiffObservableList.kt │ │ │ │ ├── MergeObservableList.kt │ │ │ │ ├── ObservableHost.kt │ │ │ │ ├── RecyclerViewItems.kt │ │ │ │ └── RvItemAdapter.kt │ │ │ ├── dialog/ │ │ │ │ ├── DarkThemeDialog.kt │ │ │ │ ├── EnvFixDialog.kt │ │ │ │ ├── LocalModuleInstallDialog.kt │ │ │ │ ├── ManagerInstallDialog.kt │ │ │ │ ├── MarkDownDialog.kt │ │ │ │ ├── OnlineModuleInstallDialog.kt │ │ │ │ ├── SecondSlotWarningDialog.kt │ │ │ │ ├── SuperuserRevokeDialog.kt │ │ │ │ └── UninstallDialog.kt │ │ │ ├── events/ │ │ │ │ └── ViewEvents.kt │ │ │ ├── ui/ │ │ │ │ ├── MainActivity.kt │ │ │ │ ├── deny/ │ │ │ │ │ ├── AppProcessInfo.kt │ │ │ │ │ ├── DenyListFragment.kt │ │ │ │ │ ├── DenyListRvItem.kt │ │ │ │ │ └── DenyListViewModel.kt │ │ │ │ ├── flash/ │ │ │ │ │ ├── ConsoleItem.kt │ │ │ │ │ ├── FlashFragment.kt │ │ │ │ │ └── FlashViewModel.kt │ │ │ │ ├── home/ │ │ │ │ │ ├── DeveloperItem.kt │ │ │ │ │ ├── HomeFragment.kt │ │ │ │ │ ├── HomeViewModel.kt │ │ │ │ │ └── RebootMenu.kt │ │ │ │ ├── install/ │ │ │ │ │ ├── InstallFragment.kt │ │ │ │ │ └── InstallViewModel.kt │ │ │ │ ├── log/ │ │ │ │ │ ├── LogFragment.kt │ │ │ │ │ ├── LogRvItem.kt │ │ │ │ │ ├── LogViewModel.kt │ │ │ │ │ └── SuLogRvItem.kt │ │ │ │ ├── module/ │ │ │ │ │ ├── ActionFragment.kt │ │ │ │ │ ├── ActionViewModel.kt │ │ │ │ │ ├── ModuleFragment.kt │ │ │ │ │ ├── ModuleRvItem.kt │ │ │ │ │ └── ModuleViewModel.kt │ │ │ │ ├── settings/ │ │ │ │ │ ├── BaseSettingsItem.kt │ │ │ │ │ ├── SettingsFragment.kt │ │ │ │ │ ├── SettingsItems.kt │ │ │ │ │ └── SettingsViewModel.kt │ │ │ │ ├── superuser/ │ │ │ │ │ ├── PolicyRvItem.kt │ │ │ │ │ ├── SuperuserFragment.kt │ │ │ │ │ └── SuperuserViewModel.kt │ │ │ │ ├── surequest/ │ │ │ │ │ ├── SuRequestActivity.kt │ │ │ │ │ └── SuRequestViewModel.kt │ │ │ │ └── theme/ │ │ │ │ ├── Theme.kt │ │ │ │ ├── ThemeFragment.kt │ │ │ │ └── ThemeViewModel.kt │ │ │ ├── utils/ │ │ │ │ ├── AccessibilityUtils.kt │ │ │ │ ├── MotionRevealHelper.kt │ │ │ │ └── TextHolder.kt │ │ │ ├── view/ │ │ │ │ ├── MagiskDialog.kt │ │ │ │ ├── TappableHeadlineItem.kt │ │ │ │ └── TextItem.kt │ │ │ └── widget/ │ │ │ └── ConcealableBottomNavigationView.java │ │ └── res/ │ │ ├── anim/ │ │ │ ├── fragment_enter.xml │ │ │ ├── fragment_enter_pop.xml │ │ │ ├── fragment_exit.xml │ │ │ └── fragment_exit_pop.xml │ │ ├── color/ │ │ │ ├── color_card_background_color_selector.xml │ │ │ ├── color_error_transient.xml │ │ │ ├── color_menu_tint.xml │ │ │ ├── color_on_primary_transient.xml │ │ │ ├── color_primary_error_transient.xml │ │ │ ├── color_primary_transient.xml │ │ │ ├── color_state_primary_transient.xml │ │ │ └── color_text_transient.xml │ │ ├── drawable/ │ │ │ ├── avd_bug_from_filled.xml │ │ │ ├── avd_bug_to_filled.xml │ │ │ ├── avd_circle_check_from_filled.xml │ │ │ ├── avd_circle_check_to_filled.xml │ │ │ ├── avd_home_from_filled.xml │ │ │ ├── avd_home_to_filled.xml │ │ │ ├── avd_module_from_filled.xml │ │ │ ├── avd_module_to_filled.xml │ │ │ ├── avd_settings_from_filled.xml │ │ │ ├── avd_settings_to_filled.xml │ │ │ ├── avd_superuser_from_filled.xml │ │ │ ├── avd_superuser_to_filled.xml │ │ │ ├── bg_line_bottom_rounded.xml │ │ │ ├── bg_line_top_rounded.xml │ │ │ ├── bg_selection_circle_green.xml │ │ │ ├── ic_action_md2.xml │ │ │ ├── ic_back_md2.xml │ │ │ ├── ic_bug_filled_md2.xml │ │ │ ├── ic_bug_md2.xml │ │ │ ├── ic_bug_outlined_md2.xml │ │ │ ├── ic_check_circle_checked_md2.xml │ │ │ ├── ic_check_circle_md2.xml │ │ │ ├── ic_check_circle_unchecked_md2.xml │ │ │ ├── ic_check_md2.xml │ │ │ ├── ic_close_md2.xml │ │ │ ├── ic_day.xml │ │ │ ├── ic_day_night.xml │ │ │ ├── ic_delete_md2.xml │ │ │ ├── ic_download_md2.xml │ │ │ ├── ic_folder_list.xml │ │ │ ├── ic_forth_md2.xml │ │ │ ├── ic_home_filled_md2.xml │ │ │ ├── ic_home_md2.xml │ │ │ ├── ic_home_outlined_md2.xml │ │ │ ├── ic_install.xml │ │ │ ├── ic_manager.xml │ │ │ ├── ic_module_filled_md2.xml │ │ │ ├── ic_module_md2.xml │ │ │ ├── ic_module_outlined_md2.xml │ │ │ ├── ic_module_storage_md2.xml │ │ │ ├── ic_night.xml │ │ │ ├── ic_notifications_md2.xml │ │ │ ├── ic_paint.xml │ │ │ ├── ic_restart.xml │ │ │ ├── ic_save_md2.xml │ │ │ ├── ic_search_md2.xml │ │ │ ├── ic_settings_filled_md2.xml │ │ │ ├── ic_settings_md2.xml │ │ │ ├── ic_settings_outlined_md2.xml │ │ │ ├── ic_superuser_filled_md2.xml │ │ │ ├── ic_superuser_md2.xml │ │ │ ├── ic_superuser_outlined_md2.xml │ │ │ └── ic_update_md2.xml │ │ ├── layout/ │ │ │ ├── activity_main_md2.xml │ │ │ ├── activity_request.xml │ │ │ ├── dialog_magisk_base.xml │ │ │ ├── dialog_settings_app_name.xml │ │ │ ├── dialog_settings_download_path.xml │ │ │ ├── dialog_settings_update_channel.xml │ │ │ ├── fragment_action_md2.xml │ │ │ ├── fragment_deny_md2.xml │ │ │ ├── fragment_flash_md2.xml │ │ │ ├── fragment_home_md2.xml │ │ │ ├── fragment_install_md2.xml │ │ │ ├── fragment_log_md2.xml │ │ │ ├── fragment_module_md2.xml │ │ │ ├── fragment_settings_md2.xml │ │ │ ├── fragment_superuser_md2.xml │ │ │ ├── fragment_theme_md2.xml │ │ │ ├── include_home_magisk.xml │ │ │ ├── include_home_manager.xml │ │ │ ├── include_log_magisk.xml │ │ │ ├── include_log_superuser.xml │ │ │ ├── item_console_md2.xml │ │ │ ├── item_developer.xml │ │ │ ├── item_hide_md2.xml │ │ │ ├── item_hide_process_md2.xml │ │ │ ├── item_icon_link.xml │ │ │ ├── item_list_single_line.xml │ │ │ ├── item_log_access_md2.xml │ │ │ ├── item_log_textview.xml │ │ │ ├── item_log_track_md2.xml │ │ │ ├── item_module_download.xml │ │ │ ├── item_module_md2.xml │ │ │ ├── item_policy_md2.xml │ │ │ ├── item_settings.xml │ │ │ ├── item_settings_section.xml │ │ │ ├── item_spinner.xml │ │ │ ├── item_tappable_headline.xml │ │ │ ├── item_text.xml │ │ │ ├── item_theme.xml │ │ │ ├── item_theme_container.xml │ │ │ └── markdown_window_md2.xml │ │ ├── menu/ │ │ │ ├── menu_bottom_nav.xml │ │ │ ├── menu_deny_md2.xml │ │ │ ├── menu_flash.xml │ │ │ ├── menu_home_md2.xml │ │ │ ├── menu_log_md2.xml │ │ │ └── menu_reboot.xml │ │ ├── navigation/ │ │ │ └── main.xml │ │ ├── values/ │ │ │ ├── attrs.xml │ │ │ ├── dimens.xml │ │ │ ├── ids.xml │ │ │ ├── styles_md2.xml │ │ │ ├── styles_md2_appearance.xml │ │ │ ├── styles_md2_impl.xml │ │ │ ├── styles_view_md2.xml │ │ │ ├── theme_overlay.xml │ │ │ ├── themes.xml │ │ │ ├── themes_md2.xml │ │ │ └── themes_override.xml │ │ ├── values-night/ │ │ │ ├── styles_md2.xml │ │ │ └── themes_md2.xml │ │ └── values-v27/ │ │ └── themes.xml │ ├── apk-ng/ │ │ ├── build.gradle.kts │ │ ├── proguard-rules.pro │ │ └── src/ │ │ └── main/ │ │ ├── AndroidManifest.xml │ │ ├── java/ │ │ │ └── com/ │ │ │ └── topjohnwu/ │ │ │ └── magisk/ │ │ │ ├── arch/ │ │ │ │ ├── AsyncLoadViewModel.kt │ │ │ │ ├── BaseViewModel.kt │ │ │ │ └── ViewModelFactory.kt │ │ │ ├── terminal/ │ │ │ │ ├── TerminalBuffer.kt │ │ │ │ ├── TerminalEmulator.kt │ │ │ │ ├── TerminalProcess.kt │ │ │ │ ├── TerminalRow.kt │ │ │ │ ├── TerminalStyle.kt │ │ │ │ └── WcWidth.kt │ │ │ ├── ui/ │ │ │ │ ├── MainActivity.kt │ │ │ │ ├── MainScreen.kt │ │ │ │ ├── component/ │ │ │ │ │ ├── Dialog.kt │ │ │ │ │ └── MenuPositionProvider.kt │ │ │ │ ├── deny/ │ │ │ │ │ ├── AppProcessInfo.kt │ │ │ │ │ ├── DenyListScreen.kt │ │ │ │ │ └── DenyListViewModel.kt │ │ │ │ ├── flash/ │ │ │ │ │ ├── FlashScreen.kt │ │ │ │ │ ├── FlashUtils.kt │ │ │ │ │ └── FlashViewModel.kt │ │ │ │ ├── home/ │ │ │ │ │ ├── HomeScreen.kt │ │ │ │ │ └── HomeViewModel.kt │ │ │ │ ├── install/ │ │ │ │ │ └── InstallViewModel.kt │ │ │ │ ├── log/ │ │ │ │ │ ├── LogScreen.kt │ │ │ │ │ ├── LogViewModel.kt │ │ │ │ │ └── MagiskLogParser.kt │ │ │ │ ├── module/ │ │ │ │ │ ├── ActionScreen.kt │ │ │ │ │ ├── ActionViewModel.kt │ │ │ │ │ ├── ModuleScreen.kt │ │ │ │ │ └── ModuleViewModel.kt │ │ │ │ ├── navigation/ │ │ │ │ │ ├── CollectNavEvents.kt │ │ │ │ │ ├── Navigator.kt │ │ │ │ │ └── Routes.kt │ │ │ │ ├── settings/ │ │ │ │ │ ├── SettingsScreen.kt │ │ │ │ │ └── SettingsViewModel.kt │ │ │ │ ├── superuser/ │ │ │ │ │ ├── SuperuserDetailScreen.kt │ │ │ │ │ ├── SuperuserScreen.kt │ │ │ │ │ └── SuperuserViewModel.kt │ │ │ │ ├── surequest/ │ │ │ │ │ ├── SuRequestActivity.kt │ │ │ │ │ ├── SuRequestScreen.kt │ │ │ │ │ └── SuRequestViewModel.kt │ │ │ │ ├── terminal/ │ │ │ │ │ ├── TerminalRenderer.kt │ │ │ │ │ └── TerminalScreen.kt │ │ │ │ ├── theme/ │ │ │ │ │ ├── MagiskTheme.kt │ │ │ │ │ └── Theme.kt │ │ │ │ └── util/ │ │ │ │ └── DrawablePainter.kt │ │ │ └── utils/ │ │ │ └── AccessibilityUtils.kt │ │ └── res/ │ │ ├── color/ │ │ │ ├── color_card_background_color_selector.xml │ │ │ ├── color_error_transient.xml │ │ │ ├── color_menu_tint.xml │ │ │ ├── color_on_primary_transient.xml │ │ │ ├── color_primary_error_transient.xml │ │ │ ├── color_primary_transient.xml │ │ │ ├── color_state_primary_transient.xml │ │ │ └── color_text_transient.xml │ │ ├── drawable/ │ │ │ ├── avd_bug_from_filled.xml │ │ │ ├── avd_bug_to_filled.xml │ │ │ ├── avd_circle_check_from_filled.xml │ │ │ ├── avd_circle_check_to_filled.xml │ │ │ ├── avd_home_from_filled.xml │ │ │ ├── avd_home_to_filled.xml │ │ │ ├── avd_module_from_filled.xml │ │ │ ├── avd_module_to_filled.xml │ │ │ ├── avd_settings_from_filled.xml │ │ │ ├── avd_settings_to_filled.xml │ │ │ ├── avd_superuser_from_filled.xml │ │ │ ├── avd_superuser_to_filled.xml │ │ │ ├── ic_bug_filled_md2.xml │ │ │ ├── ic_bug_md2.xml │ │ │ ├── ic_bug_outlined_md2.xml │ │ │ ├── ic_check_circle_checked_md2.xml │ │ │ ├── ic_check_circle_md2.xml │ │ │ ├── ic_check_circle_unchecked_md2.xml │ │ │ ├── ic_check_md2.xml │ │ │ ├── ic_delete_md2.xml │ │ │ ├── ic_download_md2.xml │ │ │ ├── ic_home_filled_md2.xml │ │ │ ├── ic_home_md2.xml │ │ │ ├── ic_home_outlined_md2.xml │ │ │ ├── ic_install.xml │ │ │ ├── ic_manager.xml │ │ │ ├── ic_module_filled_md2.xml │ │ │ ├── ic_module_md2.xml │ │ │ ├── ic_module_outlined_md2.xml │ │ │ ├── ic_module_storage_md2.xml │ │ │ ├── ic_notifications_md2.xml │ │ │ ├── ic_restart.xml │ │ │ ├── ic_save_md2.xml │ │ │ ├── ic_search_md2.xml │ │ │ ├── ic_settings_filled_md2.xml │ │ │ ├── ic_settings_md2.xml │ │ │ ├── ic_settings_outlined_md2.xml │ │ │ ├── ic_superuser_filled_md2.xml │ │ │ ├── ic_superuser_md2.xml │ │ │ ├── ic_superuser_outlined_md2.xml │ │ │ └── ic_update_md2.xml │ │ ├── values/ │ │ │ ├── attrs.xml │ │ │ ├── dimens.xml │ │ │ ├── styles_md2.xml │ │ │ ├── styles_md2_appearance.xml │ │ │ ├── styles_md2_impl.xml │ │ │ ├── themes.xml │ │ │ ├── themes_md2.xml │ │ │ └── themes_override.xml │ │ ├── values-night/ │ │ │ ├── styles_md2.xml │ │ │ └── themes_md2.xml │ │ └── values-v27/ │ │ └── themes.xml │ ├── build.gradle.kts │ ├── buildSrc/ │ │ ├── build.gradle.kts │ │ ├── settings.gradle.kts │ │ └── src/ │ │ └── main/ │ │ └── java/ │ │ ├── AddCommentTask.kt │ │ ├── DesugarClassVisitorFactory.kt │ │ ├── Plugin.kt │ │ ├── Setup.kt │ │ └── Stub.kt │ ├── core/ │ │ ├── build.gradle.kts │ │ ├── proguard-rules.pro │ │ └── src/ │ │ └── main/ │ │ ├── AndroidManifest.xml │ │ ├── aidl/ │ │ │ └── com/ │ │ │ └── topjohnwu/ │ │ │ └── magisk/ │ │ │ └── core/ │ │ │ └── utils/ │ │ │ └── IRootUtils.aidl │ │ ├── java/ │ │ │ └── com/ │ │ │ └── topjohnwu/ │ │ │ └── magisk/ │ │ │ ├── core/ │ │ │ │ ├── App.kt │ │ │ │ ├── AppContext.kt │ │ │ │ ├── Config.kt │ │ │ │ ├── Const.kt │ │ │ │ ├── Hacks.kt │ │ │ │ ├── Info.kt │ │ │ │ ├── JobService.kt │ │ │ │ ├── Provider.kt │ │ │ │ ├── Receiver.kt │ │ │ │ ├── Service.kt │ │ │ │ ├── base/ │ │ │ │ │ ├── BaseActivity.kt │ │ │ │ │ ├── BaseJobService.kt │ │ │ │ │ ├── BaseProvider.kt │ │ │ │ │ ├── BaseReceiver.kt │ │ │ │ │ ├── BaseService.kt │ │ │ │ │ └── SplashScreen.kt │ │ │ │ ├── data/ │ │ │ │ │ ├── RetrofitInterfaces.kt │ │ │ │ │ ├── SuLogDao.kt │ │ │ │ │ └── magiskdb/ │ │ │ │ │ ├── MagiskDB.kt │ │ │ │ │ ├── PolicyDao.kt │ │ │ │ │ ├── SettingsDao.kt │ │ │ │ │ └── StringDao.kt │ │ │ │ ├── di/ │ │ │ │ │ ├── Networking.kt │ │ │ │ │ └── ServiceLocator.kt │ │ │ │ ├── download/ │ │ │ │ │ ├── DownloadEngine.kt │ │ │ │ │ ├── DownloadProcessor.kt │ │ │ │ │ ├── Interfaces.kt │ │ │ │ │ └── Subject.kt │ │ │ │ ├── ktx/ │ │ │ │ │ ├── XAndroid.kt │ │ │ │ │ ├── XJVM.kt │ │ │ │ │ └── XSU.kt │ │ │ │ ├── model/ │ │ │ │ │ ├── UpdateInfo.kt │ │ │ │ │ ├── module/ │ │ │ │ │ │ ├── LocalModule.kt │ │ │ │ │ │ ├── Module.kt │ │ │ │ │ │ └── OnlineModule.kt │ │ │ │ │ └── su/ │ │ │ │ │ ├── SuLog.kt │ │ │ │ │ └── SuPolicy.kt │ │ │ │ ├── repository/ │ │ │ │ │ ├── DBConfig.kt │ │ │ │ │ ├── LogRepository.kt │ │ │ │ │ ├── NetworkService.kt │ │ │ │ │ └── PreferenceConfig.kt │ │ │ │ ├── signing/ │ │ │ │ │ ├── ApkSignerV2.java │ │ │ │ │ ├── ByteArrayStream.java │ │ │ │ │ ├── JarMap.java │ │ │ │ │ ├── SignApk.java │ │ │ │ │ └── ZipUtils.java │ │ │ │ ├── su/ │ │ │ │ │ ├── SuCallbackHandler.kt │ │ │ │ │ ├── SuEvents.kt │ │ │ │ │ └── SuRequestHandler.kt │ │ │ │ ├── tasks/ │ │ │ │ │ ├── AppMigration.kt │ │ │ │ │ ├── FlashZip.kt │ │ │ │ │ └── MagiskInstaller.kt │ │ │ │ ├── utils/ │ │ │ │ │ ├── AXML.kt │ │ │ │ │ ├── Desugar.java │ │ │ │ │ ├── DummyList.kt │ │ │ │ │ ├── Keygen.kt │ │ │ │ │ ├── LocaleSetting.kt │ │ │ │ │ ├── MediaStoreUtils.kt │ │ │ │ │ ├── NetworkObserver.kt │ │ │ │ │ ├── ProgressInputStream.kt │ │ │ │ │ ├── RequestAuthentication.kt │ │ │ │ │ ├── RequestInstall.kt │ │ │ │ │ ├── RootUtils.kt │ │ │ │ │ └── ShellInit.kt │ │ │ │ └── view/ │ │ │ │ ├── Notifications.kt │ │ │ │ └── Shortcuts.kt │ │ │ └── test/ │ │ │ ├── AdditionalTest.kt │ │ │ ├── BaseTest.kt │ │ │ ├── Environment.kt │ │ │ └── MagiskAppTest.kt │ │ └── res/ │ │ ├── drawable/ │ │ │ ├── ic_extension.xml │ │ │ ├── ic_favorite.xml │ │ │ ├── ic_fingerprint.xml │ │ │ ├── ic_github.xml │ │ │ ├── ic_logo.xml │ │ │ ├── ic_magisk.xml │ │ │ ├── ic_magisk_outline.xml │ │ │ ├── ic_magisk_padded.xml │ │ │ ├── ic_more.xml │ │ │ ├── ic_patreon.xml │ │ │ ├── ic_paypal.xml │ │ │ ├── ic_superuser.xml │ │ │ ├── ic_twitter.xml │ │ │ ├── sc_extension.xml │ │ │ └── sc_superuser.xml │ │ ├── drawable-v26/ │ │ │ ├── ic_launcher.xml │ │ │ ├── sc_extension.xml │ │ │ └── sc_superuser.xml │ │ ├── values/ │ │ │ ├── arrays.xml │ │ │ ├── colors.xml │ │ │ ├── resources.xml │ │ │ ├── strings.xml │ │ │ └── themes.xml │ │ ├── values-ar/ │ │ │ └── strings.xml │ │ ├── values-ast/ │ │ │ └── strings.xml │ │ ├── values-az/ │ │ │ └── strings.xml │ │ ├── values-b+sr+Latn/ │ │ │ └── strings.xml │ │ ├── values-be/ │ │ │ └── strings.xml │ │ ├── values-bg/ │ │ │ └── strings.xml │ │ ├── values-bn/ │ │ │ └── strings.xml │ │ ├── values-ca/ │ │ │ └── strings.xml │ │ ├── values-cs/ │ │ │ └── strings.xml │ │ ├── values-de/ │ │ │ └── strings.xml │ │ ├── values-el/ │ │ │ └── strings.xml │ │ ├── values-es/ │ │ │ └── strings.xml │ │ ├── values-et/ │ │ │ └── strings.xml │ │ ├── values-fa/ │ │ │ └── strings.xml │ │ ├── values-fr/ │ │ │ └── strings.xml │ │ ├── values-hi/ │ │ │ └── strings.xml │ │ ├── values-hn/ │ │ │ └── strings.xml │ │ ├── values-hr/ │ │ │ └── strings.xml │ │ ├── values-hu/ │ │ │ └── strings.xml │ │ ├── values-in/ │ │ │ └── strings.xml │ │ ├── values-it/ │ │ │ └── strings.xml │ │ ├── values-iw/ │ │ │ └── strings.xml │ │ ├── values-ja/ │ │ │ └── strings.xml │ │ ├── values-ka/ │ │ │ └── strings.xml │ │ ├── values-kk/ │ │ │ └── strings.xml │ │ ├── values-ko/ │ │ │ └── strings.xml │ │ ├── values-ku/ │ │ │ └── strings.xml │ │ ├── values-lt/ │ │ │ └── strings.xml │ │ ├── values-mk/ │ │ │ └── strings.xml │ │ ├── values-ml/ │ │ │ └── strings.xml │ │ ├── values-nb/ │ │ │ └── strings.xml │ │ ├── values-night/ │ │ │ └── colors.xml │ │ ├── values-nl/ │ │ │ └── strings.xml │ │ ├── values-pa/ │ │ │ └── strings.xml │ │ ├── values-pl/ │ │ │ └── strings.xml │ │ ├── values-pt-rBR/ │ │ │ └── strings.xml │ │ ├── values-pt-rPT/ │ │ │ └── strings.xml │ │ ├── values-ro/ │ │ │ └── strings.xml │ │ ├── values-ru/ │ │ │ └── strings.xml │ │ ├── values-sk/ │ │ │ └── strings.xml │ │ ├── values-sq/ │ │ │ └── strings.xml │ │ ├── values-sr/ │ │ │ └── strings.xml │ │ ├── values-sv/ │ │ │ └── strings.xml │ │ ├── values-sw/ │ │ │ └── strings.xml │ │ ├── values-ta/ │ │ │ └── strings.xml │ │ ├── values-th/ │ │ │ └── strings.xml │ │ ├── values-tr/ │ │ │ └── strings.xml │ │ ├── values-uk/ │ │ │ └── strings.xml │ │ ├── values-ur/ │ │ │ └── strings.xml │ │ ├── values-v31/ │ │ │ └── themes.xml │ │ ├── values-v34/ │ │ │ └── resources.xml │ │ ├── values-vi/ │ │ │ └── strings.xml │ │ ├── values-zh-rCN/ │ │ │ └── strings.xml │ │ ├── values-zh-rTW/ │ │ │ └── strings.xml │ │ └── xml/ │ │ └── locale_config.xml │ ├── gradle/ │ │ ├── libs.versions.toml │ │ └── wrapper/ │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties │ ├── gradle.properties │ ├── gradlew │ ├── gradlew.bat │ ├── settings.gradle.kts │ ├── shared/ │ │ ├── build.gradle.kts │ │ └── src/ │ │ ├── debug/ │ │ │ └── AndroidManifest.xml │ │ └── main/ │ │ ├── AndroidManifest.xml │ │ └── java/ │ │ └── com/ │ │ └── topjohnwu/ │ │ └── magisk/ │ │ ├── ProviderInstaller.java │ │ ├── StubApk.java │ │ └── utils/ │ │ ├── APKInstall.java │ │ ├── CompoundEnumeration.java │ │ └── DynamicClassLoader.java │ ├── stub/ │ │ ├── .gitignore │ │ ├── build.gradle.kts │ │ ├── proguard-rules.pro │ │ └── src/ │ │ └── main/ │ │ ├── AndroidManifest.xml │ │ ├── java/ │ │ │ └── com/ │ │ │ └── topjohnwu/ │ │ │ └── magisk/ │ │ │ ├── ClassLoaders.java │ │ │ ├── DelegateComponentFactory.java │ │ │ ├── DownloadActivity.java │ │ │ ├── DynLoad.java │ │ │ ├── StubApplication.java │ │ │ ├── StubRootService.java │ │ │ ├── dummy/ │ │ │ │ ├── DummyProvider.java │ │ │ │ ├── DummyReceiver.java │ │ │ │ └── DummyService.java │ │ │ └── net/ │ │ │ ├── BadRequest.java │ │ │ ├── ErrorHandler.java │ │ │ ├── Networking.java │ │ │ ├── Request.java │ │ │ └── ResponseListener.java │ │ └── res/ │ │ ├── values/ │ │ │ └── strings.xml │ │ ├── values-ar/ │ │ │ └── strings.xml │ │ ├── values-ast/ │ │ │ └── strings.xml │ │ ├── values-az/ │ │ │ └── strings.xml │ │ ├── values-b+sr+Latn/ │ │ │ └── strings.xml │ │ ├── values-be/ │ │ │ └── strings.xml │ │ ├── values-bg/ │ │ │ └── strings.xml │ │ ├── values-ca/ │ │ │ └── strings.xml │ │ ├── values-cs/ │ │ │ └── strings.xml │ │ ├── values-de/ │ │ │ └── strings.xml │ │ ├── values-el/ │ │ │ └── strings.xml │ │ ├── values-es/ │ │ │ └── strings.xml │ │ ├── values-et/ │ │ │ └── strings.xml │ │ ├── values-fa/ │ │ │ └── strings.xml │ │ ├── values-fr/ │ │ │ └── strings.xml │ │ ├── values-hi/ │ │ │ └── strings.xml │ │ ├── values-hn/ │ │ │ └── strings.xml │ │ ├── values-hr/ │ │ │ └── strings.xml │ │ ├── values-hu/ │ │ │ └── strings.xml │ │ ├── values-in/ │ │ │ └── strings.xml │ │ ├── values-it/ │ │ │ └── strings.xml │ │ ├── values-iw/ │ │ │ └── strings.xml │ │ ├── values-ja/ │ │ │ └── strings.xml │ │ ├── values-ka/ │ │ │ └── strings.xml │ │ ├── values-kk/ │ │ │ └── strings.xml │ │ ├── values-ko/ │ │ │ └── strings.xml │ │ ├── values-ku/ │ │ │ └── strings.xml │ │ ├── values-lt/ │ │ │ └── strings.xml │ │ ├── values-mk/ │ │ │ └── strings.xml │ │ ├── values-ml/ │ │ │ └── strings.xml │ │ ├── values-nb/ │ │ │ └── strings.xml │ │ ├── values-nl/ │ │ │ └── strings.xml │ │ ├── values-pa/ │ │ │ └── strings.xml │ │ ├── values-pl/ │ │ │ └── strings.xml │ │ ├── values-pt-rBR/ │ │ │ └── strings.xml │ │ ├── values-pt-rPT/ │ │ │ └── strings.xml │ │ ├── values-ro/ │ │ │ └── strings.xml │ │ ├── values-ru/ │ │ │ └── strings.xml │ │ ├── values-sk/ │ │ │ └── strings.xml │ │ ├── values-sq/ │ │ │ └── strings.xml │ │ ├── values-sr/ │ │ │ └── strings.xml │ │ ├── values-sv/ │ │ │ └── strings.xml │ │ ├── values-sw/ │ │ │ └── strings.xml │ │ ├── values-ta/ │ │ │ └── strings.xml │ │ ├── values-th/ │ │ │ └── strings.xml │ │ ├── values-tr/ │ │ │ └── strings.xml │ │ ├── values-uk/ │ │ │ └── strings.xml │ │ ├── values-vi/ │ │ │ └── strings.xml │ │ ├── values-zh-rCN/ │ │ │ └── strings.xml │ │ └── values-zh-rTW/ │ │ └── strings.xml │ └── test/ │ ├── .gitignore │ ├── build.gradle.kts │ ├── proguard-rules.pro │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ └── java/ │ └── com/ │ └── topjohnwu/ │ └── magisk/ │ └── test/ │ ├── AppMigrationTest.kt │ └── Runners.kt ├── build.py ├── config.prop.sample ├── docs/ │ ├── README.md │ ├── app_changes.md │ ├── boot.md │ ├── build.md │ ├── changes.md │ ├── details.md │ ├── faq.md │ ├── guides.md │ ├── install.md │ ├── ota.md │ └── tools.md ├── native/ │ ├── .gitignore │ └── src/ │ ├── .cargo/ │ │ └── config.toml │ ├── Android-rs.mk │ ├── Android.mk │ ├── Application.mk │ ├── Cargo.toml │ ├── base/ │ │ ├── Android.mk │ │ ├── Cargo.toml │ │ ├── argh.rs │ │ ├── base.cpp │ │ ├── build.rs │ │ ├── cstr.rs │ │ ├── cxx_extern.rs │ │ ├── derive/ │ │ │ ├── Cargo.toml │ │ │ ├── argh/ │ │ │ │ ├── errors.rs │ │ │ │ ├── mod.rs │ │ │ │ └── parse_attrs.rs │ │ │ ├── decodable.rs │ │ │ └── lib.rs │ │ ├── dir.rs │ │ ├── files.rs │ │ ├── include/ │ │ │ └── base.hpp │ │ ├── lib.rs │ │ ├── logging.rs │ │ ├── misc.rs │ │ ├── mount.rs │ │ ├── result.rs │ │ └── xwrap.rs │ ├── boot/ │ │ ├── .gitignore │ │ ├── Cargo.toml │ │ ├── bootimg.cpp │ │ ├── bootimg.hpp │ │ ├── build.rs │ │ ├── cli.rs │ │ ├── compress.rs │ │ ├── cpio.rs │ │ ├── dtb.rs │ │ ├── format.rs │ │ ├── lib.rs │ │ ├── magiskboot.hpp │ │ ├── patch.rs │ │ ├── payload.rs │ │ ├── proto/ │ │ │ └── update_metadata.proto │ │ └── sign.rs │ ├── core/ │ │ ├── Cargo.toml │ │ ├── applet_stub.cpp │ │ ├── applets.cpp │ │ ├── bootstages.rs │ │ ├── build.rs │ │ ├── daemon.rs │ │ ├── db.rs │ │ ├── deny/ │ │ │ ├── cli.cpp │ │ │ ├── deny.hpp │ │ │ ├── logcat.cpp │ │ │ └── utils.cpp │ │ ├── include/ │ │ │ ├── core.hpp │ │ │ └── sqlite.hpp │ │ ├── lib.rs │ │ ├── logging.rs │ │ ├── magisk.rs │ │ ├── module.rs │ │ ├── mount.rs │ │ ├── package.rs │ │ ├── resetprop/ │ │ │ ├── .gitignore │ │ │ ├── cli.rs │ │ │ ├── mod.rs │ │ │ ├── persist.rs │ │ │ ├── proto/ │ │ │ │ └── persistent_properties.proto │ │ │ └── sys.cpp │ │ ├── scripting.cpp │ │ ├── selinux.rs │ │ ├── socket.rs │ │ ├── sqlite.cpp │ │ ├── su/ │ │ │ ├── connect.rs │ │ │ ├── daemon.rs │ │ │ ├── db.rs │ │ │ ├── mod.rs │ │ │ ├── pts.rs │ │ │ └── su.cpp │ │ ├── thread.rs │ │ ├── utils.cpp │ │ └── zygisk/ │ │ ├── api.hpp │ │ ├── daemon.rs │ │ ├── entry.cpp │ │ ├── gen_jni_hooks.py │ │ ├── hook.cpp │ │ ├── jni_hooks.hpp │ │ ├── mod.rs │ │ ├── module.cpp │ │ ├── module.hpp │ │ └── zygisk.hpp │ ├── exported_sym.txt │ ├── external/ │ │ ├── Android.mk │ │ ├── lz4-sys/ │ │ │ ├── Cargo.toml │ │ │ └── src/ │ │ │ ├── lib.rs │ │ │ └── wasm_shim.rs │ │ ├── xz-embedded/ │ │ │ ├── xz.h │ │ │ ├── xz_config.h │ │ │ ├── xz_crc32.c │ │ │ ├── xz_dec_lzma2.c │ │ │ ├── xz_dec_stream.c │ │ │ ├── xz_lzma2.h │ │ │ ├── xz_private.h │ │ │ └── xz_stream.h │ │ └── xz_config/ │ │ └── config.h │ ├── include/ │ │ ├── codegen.rs │ │ ├── consts.hpp │ │ └── consts.rs │ ├── init/ │ │ ├── Cargo.toml │ │ ├── build.rs │ │ ├── getinfo.cpp │ │ ├── getinfo.rs │ │ ├── init.hpp │ │ ├── init.rs │ │ ├── lib.rs │ │ ├── logging.rs │ │ ├── mount.cpp │ │ ├── mount.rs │ │ ├── preload.c │ │ ├── rootdir.cpp │ │ ├── rootdir.rs │ │ ├── selinux.rs │ │ └── twostage.rs │ ├── rustfmt.toml │ └── sepolicy/ │ ├── Cargo.toml │ ├── api.cpp │ ├── build.rs │ ├── cli.rs │ ├── include/ │ │ └── sepolicy.hpp │ ├── lib.rs │ ├── policy.hpp │ ├── policydb.cpp │ ├── rules.rs │ ├── sepolicy.cpp │ └── statement.rs ├── scripts/ │ ├── addon.d.sh │ ├── app_functions.sh │ ├── avd.sh │ ├── boot_patch.sh │ ├── cuttlefish.sh │ ├── flash_script.sh │ ├── host_patch.sh │ ├── live_setup.sh │ ├── module_installer.sh │ ├── release.sh │ ├── test_common.sh │ ├── uninstaller.sh │ ├── update_binary.sh │ └── util_functions.sh └── tools/ ├── bootctl ├── bootctl.patch ├── elf-cleaner/ │ ├── .gitignore │ ├── Cargo.toml │ └── src/ │ └── main.rs ├── futility ├── keys/ │ ├── kernel.keyblock │ ├── kernel_data_key.vbprivk │ ├── verity.pk8 │ └── verity.x509.pem └── rustup-wrapper/ ├── .gitignore ├── Cargo.toml └── src/ └── main.rs