ReVanced / revanced-manager

💊 Application to use ReVanced on Android
https://revanced.app
GNU General Public License v3.0
18.14k stars 747 forks source link

feat: usage of shizuku for silent-installation #357

Open THElegend5 opened 2 years ago

THElegend5 commented 2 years ago

Type

Functionality

Issue

Currently you have to wait for full app to complete patching just to click install in the end.

Feature

With Shizuku you can install apps silently in the background so you can start the app patch and it will install the app too on it's own in the background with no need to wait for the patch to complete.

This can also be used to do auto app updates for non - root user if ability to download apps was added to the manager itself in the future or if it able to patch the current installed youtube stable version from playstore if it detects an app update is available and is supported by majority of the patches being used.

Motivation

My main motivation was to make the last step to be automated too like the rest of the steps, the install prompt is also pretty easy go back out of so you have to patch the whole app again if you do so and if this gets implemented both of them will be solved.

Additional context

No response

Acknowledgements

arandomhooman commented 2 years ago

+1 would be a game changer

kittenvr commented 1 year ago

this might be able to help the devs

https://github.com/Iamlooker/Droid-ify/blob/main/installer/src/main/java/com/looker/installer/installers/ShizukuInstaller.kt

castdrian commented 10 months ago

this would be excellent for both manager updates and patched app installs. my device is managed since I use a work profile on it, so without shizuku the only way to use revanced is to use an adb shell manually which, quite frankly, sucks ass, using SAI is a decent workaround, but still using shizuku as general install method to update both manager and install patched apps would be lovely

Ushie commented 10 months ago

How does SAI do it? do you have to install SAI in the work profile then using it from there? or do you use it in the normal profile and it asks where you want to install it?

If there's an API to install things to other users, that could be implemented as a new feature, as shizuku itself wouldn't solve this issue automatically

castdrian commented 10 months ago

no you see I have both a personal profile and a work profile on my phone, so I can install regular apps from Google Play/Samsung Store, however to my begrudging, my companies device rules include blocking sideloading on the personal profile as well as the work profile

fortunately this policy doesn't interfere with ADB, which is what shizuku inherently is (api wrapper around an adb shell) so what SAI does is it offers 3 possible installation modes, default (package installer, which is blocked for me), root (which I can't do if I want to keep my work files), and shizuku, which uses the shizuku api to install packages

droidify (f droid store app thingy) also offers these three installation modes

https://github.com/RikkaApps/Shizuku-API

Whilst saving the apk and then installing it with SAI isn't super duper annoying compared to launching an adb shell manually, having a shizuku install option for both the manager update itself and the patched app install would be very forthcoming

Ushie commented 10 months ago

How would shizuku let you select work vs normal user though?

castdrian commented 10 months ago

it doesn't, installs happen on the personal profile, which is fine by me, I have no need to install non work apps into the work profile, since oneui kinda shows both anyway, work apps just have the little briefcase icon on them, anyhow point is, shizuku as installer alongside root and nonroot would be very favorable for cases like these were sideloading is blocked by some managed device policy

castdrian commented 10 months ago

I'm not very well versed with the world of jetpack compose, but in case no one else cares about this I'd be willing to see if I can manage a PR myself, however ngl I've barely ever touched compose at all

oSumAtrIX commented 10 months ago

Installation is handled in https://github.com/ReVanced/revanced-library. The https://github.com/ReVanced/revanced-library/tree/feat/installer branch is currently in development of an implementation of Android installers. In case you want to create a Shizuku installer you can look into https://github.com/ReVanced/revanced-library/blob/feat/installer/revanced-library/src/androidMain/kotlin/app/revanced/library/installation/installer/LocalInstaller.kt#L16

castdrian commented 10 months ago

well will I be damned, thank you, I'll go see what I can do

Ushie commented 10 months ago

it doesn't, installs happen on the personal profile, which is fine by me, I have no need to install non work apps into the work profile, since oneui kinda shows both anyway, work apps just have the little briefcase icon on them, anyhow point is, shizuku as installer alongside root and nonroot would be very favorable for cases like these were sideloading is blocked by some managed device policy

Oh I see the problem now, I missed the point in the initial message

Ushie commented 10 months ago

well will I be damned, thank you, I'll go see what I can do

Check this old PR https://github.com/ReVanced/revanced-manager-compose/pull/83, may be helpful

castdrian commented 10 months ago

I have in the meantime implemented a shizuku installer for a similar project as revanced, (https://github.com/vendetta-mod/VendettaManager/pull/55), so I do know how to do it now, as the links above to revanced-library suggest that that branch is still heavily WIP, I'll hold off messing with it until the regular installers are implemented

Ushie commented 3 months ago

@castdrian Still interested?

castdrian commented 3 months ago

I am a bit busy these days but I can have a look at it sometime