Skip to content

Conversation

@LisoUseInAIKyrios
Copy link
Contributor

Finished prior work of adding root install in the simple homepage.

@LisoUseInAIKyrios
Copy link
Contributor Author

LisoUseInAIKyrios commented Dec 11, 2025

The only way to know a device is rooted, is to do something that requires root, and magisk/etc prompts the user to grant root.

So, that makes it tricky presenting a "Use root installation" UI switch in the simple settings when root status has not been confirmed.

The choices are:

  1. Always show a "Use root installation" switch in the simple settings, with the downside that the 99% of users who don't have root will be presented with a setting that cannot be used.
  2. Don't show any simple mode root settings until root is granted. But try to request root, either when patching starts or when they open the simple settings menu. If the user grants root access, then show the "use root installation" switch in the simple settings, and unless the user turns off the switch then also install with root by default.
  3. Don't show any root options in the simple settings, and don't automatically request root access. To use root the user must go into the advanced settings menu and change the primary installer to root, then approve the magisk prompt.

I don't like option 1 because it shows settings that are meaningless and potentially confusing to 99% of users.

Option 2 is by far the easiest and most seamless for the end user. But is it rude requesting root preemptively? The user can deny the magisk popup, and it would only ask once ever. But it is concerning the app is requesting root without the user knowing why.

Option 3 is the safest/laziest. We don't request root unless the user opts in using the advanced settings and the user changes the installer type to root.

I am in favor of option 2 or option 3. Option 3 is the lowest code maintenance and less likely to have future bugs.

@LisoUseInAIKyrios
Copy link
Contributor Author

I'm going to do option 3 because it's the simplest, root users are rare, and non-root install can change the app icon.

Simple install mode will still show the slightly different instructions that were previously added.

@LisoUseInAIKyrios LisoUseInAIKyrios force-pushed the feat/root_home_screen_install branch from 35ba0f9 to 1fdcf20 Compare December 12, 2025 06:03
Comment on lines 65 to 69
// Install type is needed for UI components.
// Ideally this logic is part of some other code, but for now this is simple and works.
val usingMountInstall =
prefs.installerPrimary.getBlocking() == InstallerPreferenceTokens.AUTO_SAVED &&
dashboardViewModel.rootInstaller?.hasRootAccess() == true
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This could be improved, but for now it works and makes no changes to upstream URV

@LisoUseInAIKyrios
Copy link
Contributor Author

@MarcaDian If you want to make any adjustments to the mount (root) dialogs or anything else about root usage, then feel free. Otherwise I think this is ready to merge.

@MarcaDian
Copy link
Contributor

I'm some busy at real job, so I'll check later tonight.

Has the second dialog been fixed? In the previous code it showed the same instructions for root users as for non-root users. Can you write here the steps of the instructions?

Also, might need to use a different solution for landscape mode instead of scrolling.
We could try scrolling the content in the dialog instead of the entire dialog, or try adapting the text/content size based on the height.

The hard way is to completely disable landscape mode and remove the adaptation code, but this might be a problem for those who will use the manager on non-standard devices such as TVs or tablets.

@LisoUseInAIKyrios
Copy link
Contributor Author

All the dialogs show the correct information for root and non root. I'll post screenshots later.

Can show root UI by changing usingMountInstall to true:

val usingMountInstall = prefs.installerPrimary.getBlocking() == InstallerPreferenceTokens.AUTO_SAVED &&
dashboardViewModel.rootInstaller.hasRootAccess()

@MarcaDian

This comment was marked as outdated.

@LisoUseInAIKyrios
Copy link
Contributor Author

maybe remove the cancel button entirely? The user can press back button if they must.

@LisoUseInAIKyrios
Copy link
Contributor Author

Maybe remove the icon from the top too. Keep everything on screen as minimal as possible so there's less to read/process.

@LisoUseInAIKyrios
Copy link
Contributor Author

From what I can find, it might be possible for Manager to monitor the device downloads and automatically check for the expected APK. It only works with more recent Android releases, but it seems that if a criteria is given (such as apk files), then files in the download folder can be scanned without requiring approval from the end user.

This could remove the need for the user to pick the file when they return to the app, because Manager would detect the correct apk (correct version number, and could check the download date to verify it's new and not some old patched apk).,

Maybe it was A.I. hallucinating this feature, but could explore this more at a later time.

@MarcaDian
Copy link
Contributor

MarcaDian commented Dec 12, 2025

I think it's ready (I didn't check the root layout)

Also I didn't notice at what point the patch update function broke.

@LisoUseInAIKyrios
Copy link
Contributor Author

LisoUseInAIKyrios commented Dec 12, 2025

I have patch update almost fixed in the other PR. It broke with 1.6.0 update.

@LisoUseInAIKyrios LisoUseInAIKyrios merged commit 8ed769f into dev Dec 12, 2025
1 check passed
@LisoUseInAIKyrios LisoUseInAIKyrios deleted the feat/root_home_screen_install branch December 12, 2025 20:46
LisoUseInAIKyrios pushed a commit that referenced this pull request Jan 1, 2026
# app [1.0.0-dev.2](v1.0.0-dev.1...v1.0.0-dev.2) (2025-12-15)

### Bug Fixes

* After changing pre-release, show snackbar and block starting patching until bundles are updated ([1fe7aa1](1fe7aa1))
* Change first greeting message shown to be more traditional and easier to understand what to do ([c8f797f](c8f797f))
* Correct rounding errors of progress value ([eb31b73](eb31b73))
* Do not show patches update snackbar unless user is manually refreshing ([8d35d28](8d35d28))
* Fix app console warning of provider not found ([d2c76b7](d2c76b7))
* Hide update on metered connection from advanced settings menu ([91ae275](91ae275))
* Show patches update UI when using advanced mode ([309f7db](309f7db))
* Use Morphe patches API ([#12](#12)) ([01cdffc](01cdffc))

### Features

* Add a delay at 100% before showing success screen ([abb5ab5](abb5ab5))
* Adjust layout of patches list and change log in modal patches bundle ([#13](#13)) ([0dcf5b9](0dcf5b9))
* Morphe homepage root installation ([#10](#10)) ([8ed769f](8ed769f))
github-actions bot pushed a commit that referenced this pull request Jan 1, 2026
# app 1.0.0 (2026-01-01)

### Bug Fixes

* After changing pre-release, show snackbar and block starting patching until bundles are updated ([1fe7aa1](1fe7aa1))
* Allow all files as .mpp files are not available in file picker ([80ad1ec](80ad1ec))
* Change first greeting message shown to be more traditional and easier to understand what to do ([c8f797f](c8f797f))
* Correct rounding errors of progress value ([eb31b73](eb31b73))
* Do not show empty space above the About section ([e2eaf7d](e2eaf7d))
* Do not show patches update snackbar unless user is manually refreshing ([8d35d28](8d35d28))
* Fix `isBundleUpdating` state after merge upstream changes ([7598e6d](7598e6d))
* Fix `lateinit property eventHandler has not been initialized` ([#25](#25)) ([d074a14](d074a14))
* Fix apk picker ([ae813d6](ae813d6))
* Fix app console warning of provider not found ([d2c76b7](d2c76b7))
* Fix build ([fe5250b](fe5250b))
* Fix the dack theme color picker ([24d4c5f](24d4c5f))
* Hide update on metered connection from advanced settings menu ([91ae275](91ae275))
* Increase installer timeout ([934305b](934305b))
* Increase installer timeout wait time ([648f22b](648f22b))
* Remove blinking when opening dialog, use gradient instead of blur (works on A12+ but not well) ([b851913](b851913))
* Resolve bundle fetching from upstream merge ([#11](#11)) ([d9166b8](d9166b8))
* Restore only delete button ([bf7c045](bf7c045))
* Show "Patches are loading" on fresh install ([170d17f](170d17f))
* Show "Patches are loading" toast if bundles are downloading ([3d59980](3d59980))
* Show patches update UI when using advanced mode ([309f7db](309f7db))
* Skip if patch doesn't exist in this bundle ([6482987](6482987))
* Update changelog after bundle update ([ed9c173](ed9c173))
* Use Morphe patches API ([#12](#12)) ([01cdffc](01cdffc))
* Use the appropriate string ([7661989](7661989))

### Features

* Add a delay at 100% before showing success screen ([abb5ab5](abb5ab5))
* Add adaptive landscape mode ([#8](#8)) ([3bbc62e](3bbc62e))
* Add haptic feedback to About setting item ([d3f8e33](d3f8e33))
* Add in-app patches options ([#27](#27)) ([2ce57a7](2ce57a7))
* Add link to the Crowdin ([b0b94cb](b0b94cb))
* Add more haptic feedback ([967f9ca](967f9ca))
* Adjust layout of patches list and change log in modal patches bundle ([#13](#13)) ([0dcf5b9](0dcf5b9))
* Change buttons priority ([85fdd86](85fdd86))
* Change Particles background to Space ([9575446](9575446))
* Custom Morphe home screen ([515d08c](515d08c))
* Morphe homepage root installation ([#10](#10)) ([8ed769f](8ed769f))
* Refactor color row elements ([86b11b6](86b11b6))
* UI & UX Improvements ([#17](#17)) ([9e72b08](9e72b08))
* Use fullscreen dialog for manager update ([91bb4d1](91bb4d1))
github-actions bot pushed a commit that referenced this pull request Jan 1, 2026
# app 1.0.0 (2026-01-01)

### Bug Fixes

* After changing pre-release, show snackbar and block starting patching until bundles are updated ([1fe7aa1](1fe7aa1))
* Allow all files as .mpp files are not available in file picker ([80ad1ec](80ad1ec))
* Change first greeting message shown to be more traditional and easier to understand what to do ([c8f797f](c8f797f))
* Correct rounding errors of progress value ([eb31b73](eb31b73))
* Do not show empty space above the About section ([e2eaf7d](e2eaf7d))
* Do not show patches update snackbar unless user is manually refreshing ([8d35d28](8d35d28))
* Fix `isBundleUpdating` state after merge upstream changes ([7598e6d](7598e6d))
* Fix `lateinit property eventHandler has not been initialized` ([#25](#25)) ([d074a14](d074a14))
* Fix apk picker ([ae813d6](ae813d6))
* Fix app console warning of provider not found ([d2c76b7](d2c76b7))
* Fix build ([fe5250b](fe5250b))
* Fix the dack theme color picker ([24d4c5f](24d4c5f))
* Hide update on metered connection from advanced settings menu ([91ae275](91ae275))
* Increase installer timeout ([934305b](934305b))
* Increase installer timeout wait time ([648f22b](648f22b))
* Remove blinking when opening dialog, use gradient instead of blur (works on A12+ but not well) ([b851913](b851913))
* Resolve bundle fetching from upstream merge ([#11](#11)) ([d9166b8](d9166b8))
* Restore only delete button ([bf7c045](bf7c045))
* Show "Patches are loading" on fresh install ([170d17f](170d17f))
* Show "Patches are loading" toast if bundles are downloading ([3d59980](3d59980))
* Show patches update UI when using advanced mode ([309f7db](309f7db))
* Skip if patch doesn't exist in this bundle ([6482987](6482987))
* Update changelog after bundle update ([ed9c173](ed9c173))
* Use Morphe patches API ([#12](#12)) ([01cdffc](01cdffc))
* Use the appropriate string ([7661989](7661989))

### Features

* Add a delay at 100% before showing success screen ([abb5ab5](abb5ab5))
* Add adaptive landscape mode ([#8](#8)) ([3bbc62e](3bbc62e))
* Add haptic feedback to About setting item ([d3f8e33](d3f8e33))
* Add in-app patches options ([#27](#27)) ([2ce57a7](2ce57a7))
* Add link to the Crowdin ([b0b94cb](b0b94cb))
* Add more haptic feedback ([967f9ca](967f9ca))
* Adjust layout of patches list and change log in modal patches bundle ([#13](#13)) ([0dcf5b9](0dcf5b9))
* Change buttons priority ([85fdd86](85fdd86))
* Change Particles background to Space ([9575446](9575446))
* Custom Morphe home screen ([515d08c](515d08c))
* Morphe homepage root installation ([#10](#10)) ([8ed769f](8ed769f))
* Refactor color row elements ([86b11b6](86b11b6))
* UI & UX Improvements ([#17](#17)) ([9e72b08](9e72b08))
* Use fullscreen dialog for manager update ([91bb4d1](91bb4d1))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants