gitextract_upudqvso/ ├── .github/ │ ├── FUNDING.yml │ ├── dependabot.yml │ └── workflows/ │ ├── copilot-setup-steps.yml │ ├── dev-check.yml │ ├── manual-build.yml │ ├── production-deploy.yml │ ├── release-manager.yml │ └── telegram-release.yml ├── .gitignore ├── .idea/ │ ├── .gitignore │ ├── AndroidProjectSystem.xml │ ├── codeStyles/ │ │ ├── Project.xml │ │ └── codeStyleConfig.xml │ ├── compiler.xml │ ├── copilot.data.migration.agent.xml │ ├── copilot.data.migration.ask.xml │ ├── copilot.data.migration.ask2agent.xml │ ├── copilot.data.migration.edit.xml │ ├── deviceManager.xml │ ├── dictionaries/ │ │ └── project.xml │ ├── google-java-format.xml │ ├── gradle.xml │ ├── inspectionProfiles/ │ │ └── Project_Default.xml │ ├── kotlinc.xml │ ├── markdown.xml │ ├── migrations.xml │ ├── misc.xml │ ├── runConfigurations/ │ │ └── Generate_Baseline_Profile_for_app.xml │ ├── runConfigurations.xml │ └── vcs.xml ├── LICENSE ├── PROJECT_CONTEXT.md ├── README.md ├── app/ │ ├── .gitignore │ ├── baselineprofile/ │ │ ├── .gitignore │ │ ├── build.gradle.kts │ │ └── src/ │ │ └── main/ │ │ ├── AndroidManifest.xml │ │ └── java/ │ │ └── com/ │ │ └── valhalla/ │ │ └── thor/ │ │ └── baselineprofile/ │ │ ├── BaselineProfileGenerator.kt │ │ └── StartupBenchmarks.kt │ ├── build.gradle.kts │ ├── proguard-rules-foss.pro │ ├── proguard-rules.pro │ ├── schemas/ │ │ └── com.valhalla.thor.data.source.local.room.AppDatabase/ │ │ ├── 1.json │ │ └── 2.json │ └── src/ │ ├── androidTest/ │ │ └── java/ │ │ └── com/ │ │ └── valhalla/ │ │ └── thor/ │ │ └── ExampleInstrumentedTest.kt │ ├── main/ │ │ ├── AndroidManifest.xml │ │ ├── assets/ │ │ │ └── adi-registration.properties │ │ ├── java/ │ │ │ ├── android/ │ │ │ │ └── content/ │ │ │ │ └── pm/ │ │ │ │ ├── IPackageInstaller.java │ │ │ │ └── IPackageManager.java │ │ │ └── com/ │ │ │ └── valhalla/ │ │ │ └── thor/ │ │ │ ├── HomeActivity.kt │ │ │ ├── ThorApplication.kt │ │ │ ├── core/ │ │ │ │ └── ThorShellConfig.kt │ │ │ ├── data/ │ │ │ │ ├── Constants.kt │ │ │ │ ├── gateway/ │ │ │ │ │ ├── DhizukuSystemGateway.kt │ │ │ │ │ ├── RootSystemGateway.kt │ │ │ │ │ └── ShizukuSystemGateway.kt │ │ │ │ ├── receivers/ │ │ │ │ │ └── InstallReceiver.kt │ │ │ │ ├── repository/ │ │ │ │ │ ├── AppAnalyzerImpl.kt │ │ │ │ │ ├── AppRepositoryImpl.kt │ │ │ │ │ ├── InstallerRepositoryImpl.kt │ │ │ │ │ ├── PreferenceRepositoryImpl.kt │ │ │ │ │ └── SystemRepositoryImpl.kt │ │ │ │ ├── security/ │ │ │ │ │ └── BiometricHelper.kt │ │ │ │ ├── source/ │ │ │ │ │ └── local/ │ │ │ │ │ ├── ShellDataSource.kt │ │ │ │ │ ├── dhizuku/ │ │ │ │ │ │ ├── Dhizuku.kt │ │ │ │ │ │ └── DhizukuReflector.kt │ │ │ │ │ ├── room/ │ │ │ │ │ │ ├── AppDao.kt │ │ │ │ │ │ ├── AppDatabase.kt │ │ │ │ │ │ ├── AppEntity.kt │ │ │ │ │ │ └── AppTypeConverters.kt │ │ │ │ │ ├── root/ │ │ │ │ │ │ └── RootMain.kt │ │ │ │ │ └── shizuku/ │ │ │ │ │ ├── PackageManagerExt.kt │ │ │ │ │ ├── Packages.kt │ │ │ │ │ ├── Shizuku.kt │ │ │ │ │ ├── ShizukuPackageInstallerUtils.kt │ │ │ │ │ ├── ShizukuReflector.kt │ │ │ │ │ └── Targets.kt │ │ │ │ └── util/ │ │ │ │ ├── ApksMetadataGenerator.kt │ │ │ │ └── PackageVerifier.kt │ │ │ ├── di/ │ │ │ │ └── Modules.kt │ │ │ ├── domain/ │ │ │ │ ├── InstallState.kt │ │ │ │ ├── InstallerEventBus.kt │ │ │ │ ├── gateway/ │ │ │ │ │ └── SystemGateway.kt │ │ │ │ ├── model/ │ │ │ │ │ ├── ApkDetails.kt │ │ │ │ │ ├── AppClickAction.kt │ │ │ │ │ ├── AppInfo.kt │ │ │ │ │ ├── AppInstallable.kt │ │ │ │ │ ├── AppListType.kt │ │ │ │ │ ├── AppMetadata.kt │ │ │ │ │ ├── FilterType.kt │ │ │ │ │ ├── HistoryRecord.kt │ │ │ │ │ ├── MultiAppAction.kt │ │ │ │ │ ├── PrivilegeMode.kt │ │ │ │ │ ├── SortBy.kt │ │ │ │ │ ├── ThemeMode.kt │ │ │ │ │ └── UserPreferences.kt │ │ │ │ ├── repository/ │ │ │ │ │ ├── AppAnalyzer.kt │ │ │ │ │ ├── AppRepository.kt │ │ │ │ │ ├── InstallerRepository.kt │ │ │ │ │ ├── PreferenceRepository.kt │ │ │ │ │ └── SystemRepository.kt │ │ │ │ └── usecase/ │ │ │ │ ├── GetAppDetailsUseCase.kt │ │ │ │ ├── GetInstalledAppsUseCase.kt │ │ │ │ ├── ManageAppUseCase.kt │ │ │ │ └── ShareAppUseCase.kt │ │ │ ├── presentation/ │ │ │ │ ├── appList/ │ │ │ │ │ ├── AppListScreen.kt │ │ │ │ │ └── AppListViewModel.kt │ │ │ │ ├── common/ │ │ │ │ │ ├── ShizukuPermissionHandler.kt │ │ │ │ │ └── components/ │ │ │ │ │ └── ConnectedButtonGroup.kt │ │ │ │ ├── freezer/ │ │ │ │ │ ├── FreezerScreen.kt │ │ │ │ │ └── FreezerViewModel.kt │ │ │ │ ├── home/ │ │ │ │ │ ├── AppDestinations.kt │ │ │ │ │ ├── HomeScreen.kt │ │ │ │ │ ├── HomeViewModel.kt │ │ │ │ │ └── components/ │ │ │ │ │ ├── AnimatedCounter.kt │ │ │ │ │ ├── AppDistributionChart.kt │ │ │ │ │ ├── DashboardHeader.kt │ │ │ │ │ ├── SocialLinksRow.kt │ │ │ │ │ └── SummaryStatRow.kt │ │ │ │ ├── installer/ │ │ │ │ │ ├── InstallerViewModel.kt │ │ │ │ │ ├── PortableInstaller.kt │ │ │ │ │ └── PortableInstallerActivity.kt │ │ │ │ ├── main/ │ │ │ │ │ ├── MainScreen.kt │ │ │ │ │ ├── MainViewModel.kt │ │ │ │ │ └── ThorNavigationBar.kt │ │ │ │ ├── security/ │ │ │ │ │ ├── AuthState.kt │ │ │ │ │ ├── BiometricPromptHandler.kt │ │ │ │ │ ├── BiometricScreen.kt │ │ │ │ │ └── SecurityViewModel.kt │ │ │ │ ├── settings/ │ │ │ │ │ ├── SettingsScreen.kt │ │ │ │ │ └── SettingsViewModel.kt │ │ │ │ ├── theme/ │ │ │ │ │ ├── Color.kt │ │ │ │ │ ├── Motion.kt │ │ │ │ │ ├── Theme.kt │ │ │ │ │ └── Type.kt │ │ │ │ ├── utils/ │ │ │ │ │ ├── AppIconLoader.kt │ │ │ │ │ ├── CacheScanner.kt │ │ │ │ │ └── UiUtils.kt │ │ │ │ └── widgets/ │ │ │ │ ├── AffirmationDialog.kt │ │ │ │ ├── AnimateLottieRaw.kt │ │ │ │ ├── AppInfoDialog.kt │ │ │ │ ├── AppList.kt │ │ │ │ ├── MultiSelectToolBox.kt │ │ │ │ ├── TermLogger.kt │ │ │ │ └── TypeWriterText.kt │ │ │ └── util/ │ │ │ ├── LocaleManager.kt │ │ │ └── Logger.kt │ │ └── res/ │ │ ├── drawable/ │ │ │ ├── android.xml │ │ │ ├── apk_install.xml │ │ │ ├── apps.xml │ │ │ ├── arrow_downward.xml │ │ │ ├── arrow_drop_down.xml │ │ │ ├── arrow_upward.xml │ │ │ ├── bolt.xml │ │ │ ├── brand_github.xml │ │ │ ├── brand_patreon.xml │ │ │ ├── brand_telegram.xml │ │ │ ├── cat.xml │ │ │ ├── check_circle.xml │ │ │ ├── clear_all.xml │ │ │ ├── danger.xml │ │ │ ├── delete.xml │ │ │ ├── delete_forever.xml │ │ │ ├── dhizuku.xml │ │ │ ├── exit_to_app.xml │ │ │ ├── filter_list.xml │ │ │ ├── force_close.xml │ │ │ ├── freeze_off.xml │ │ │ ├── frozen.xml │ │ │ ├── grid_view.xml │ │ │ ├── home.xml │ │ │ ├── home_outline.xml │ │ │ ├── ic_launcher_background.xml │ │ │ ├── ic_launcher_foreground.xml │ │ │ ├── ios_share.xml │ │ │ ├── key.xml │ │ │ ├── key_outline.xml │ │ │ ├── list.xml │ │ │ ├── magisk_icon.xml │ │ │ ├── open_in.xml │ │ │ ├── open_in_new.xml │ │ │ ├── privacy_tip.xml │ │ │ ├── round_close.xml │ │ │ ├── round_key.xml │ │ │ ├── round_search.xml │ │ │ ├── settings.xml │ │ │ ├── settings_backup_restore.xml │ │ │ ├── settings_outline.xml │ │ │ ├── share.xml │ │ │ ├── shield.xml │ │ │ ├── shield_bad.xml │ │ │ ├── shield_countdown.xml │ │ │ ├── shield_encrypted.xml │ │ │ ├── shield_maybe.xml │ │ │ ├── shield_search.xml │ │ │ ├── shield_verified.xml │ │ │ ├── shield_with_heart.xml │ │ │ ├── shizuku.xml │ │ │ ├── shizuku_outline_icon.xml │ │ │ ├── snowflake.xml │ │ │ ├── sort.xml │ │ │ ├── sort_by_alpha.xml │ │ │ ├── storage.xml │ │ │ ├── theme_panel.xml │ │ │ ├── thor_animated.xml │ │ │ ├── thor_drawn_foreground.xml │ │ │ ├── thor_icon_foreground.xml │ │ │ ├── thor_mono.xml │ │ │ ├── unfreeze.xml │ │ │ ├── view_stream.xml │ │ │ └── warning.xml │ │ ├── mipmap-anydpi-v26/ │ │ │ ├── thor_drawn.xml │ │ │ └── thor_drawn_round.xml │ │ ├── raw/ │ │ │ └── rearrange.json │ │ ├── raw-night/ │ │ │ └── rearrange.json │ │ ├── values/ │ │ │ ├── colors.xml │ │ │ ├── font_certs.xml │ │ │ ├── non-translatable.xml │ │ │ ├── strings.xml │ │ │ ├── themes.xml │ │ │ ├── thor_drawn_background.xml │ │ │ └── thor_icon_background.xml │ │ ├── values-ar/ │ │ │ └── strings.xml │ │ ├── values-es/ │ │ │ └── strings.xml │ │ ├── values-fr/ │ │ │ └── strings.xml │ │ ├── values-v31/ │ │ │ └── themes.xml │ │ ├── values-zh-rCN/ │ │ │ └── strings.xml │ │ └── xml/ │ │ ├── backup_rules.xml │ │ ├── data_extraction_rules.xml │ │ ├── locales_config.xml │ │ └── provider_paths.xml │ └── test/ │ └── java/ │ └── com/ │ └── valhalla/ │ └── thor/ │ └── ExampleUnitTest.kt ├── build.gradle.kts ├── bypass/ │ ├── .gitignore │ ├── README.md │ ├── build.gradle.kts │ ├── consumer-rules.pro │ ├── proguard-rules.pro │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ └── java/ │ └── com/ │ └── valhalla/ │ └── bypass/ │ └── Bypass.kt ├── fastlane/ │ ├── Appfile │ ├── Fastfile │ └── metadata/ │ └── android/ │ └── en-US/ │ ├── changelogs/ │ │ └── 1600.txt │ ├── full_description.txt │ ├── short_description.txt │ └── title.txt ├── gradle/ │ ├── gradle-daemon-jvm.properties │ ├── libs.versions.toml │ └── wrapper/ │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradle.properties ├── gradlew ├── gradlew.bat ├── settings.gradle.kts ├── suCore/ │ ├── .gitignore │ ├── README.md │ ├── build.gradle.kts │ ├── proguard-rules.pro │ └── src/ │ └── main/ │ ├── AndroidManifest.xml │ ├── aidl/ │ │ └── com/ │ │ └── valhalla/ │ │ └── superuser/ │ │ └── ipc/ │ │ └── IIPC.aidl │ └── java/ │ └── com/ │ └── valhalla/ │ └── superuser/ │ ├── CallbackList.kt │ ├── NoShellException.kt │ ├── Shell.kt │ ├── ShellUtils.kt │ ├── internal/ │ │ ├── BuilderImpl.kt │ │ ├── CoroutineStreamGobbler.kt │ │ ├── JobTask.kt │ │ ├── MainShell.kt │ │ ├── PendingJob.kt │ │ ├── ResultFuture.kt │ │ ├── ResultHolder.kt │ │ ├── ResultImpl.kt │ │ ├── ShellImpl.kt │ │ ├── ShellInputSource.kt │ │ ├── ShellJob.kt │ │ ├── StreamGobbler.kt │ │ ├── UiThreadHandler.kt │ │ └── Utils.kt │ ├── ktx/ │ │ ├── ShellExtensions.kt │ │ └── ShellRepository.kt │ └── utils/ │ ├── Logger.kt │ └── ShellUtils.kt └── vm-runtime/ ├── README.md ├── build.gradle.kts └── src/ └── main/ └── java/ └── dalvik/ └── system/ └── VMRuntime.java