Experimental root #90
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This pull request introduces support for root permissions as an alternative to Shizuku for several features, refactors permission checks to use a unified
ShellUtilsutility, and updates the UI and registries to reflect these changes. The update allows users to enable features using root access if available, improving flexibility and reliability, especially for advanced users. Additionally, the codebase now consistently uses the application context and the new permission logic across services and activities.Root permission support and permission logic refactor:
FeatureRegistryto dynamically set required permissions based on root availability. [1] [2] [3] [4]ShellUtilsfor unified root/Shizuku detection and command execution, replacing direct Shizuku calls. [1] [2] [3] [4] [5] [6] [7] [8]UI and user experience improvements:
SettingsActivityandFeatureSettingsActivity. [1] [2] [3] [4] [5] [6]Registry and context handling updates:
PermissionRegistry, ensuring correct mapping for feature dependencies.contextproperty toEssentialsAppfor consistent application context access, required by new permission logic.SettingsRepository.Bug fixes and minor improvements:
ShortcutHandlerActivitywhere the wrong context was passed toFreezeManager.unfreezeApp.These changes collectively improve feature reliability, user control, and maintainability by supporting root permissions and centralizing permission logic.