Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Silent Installation without Root using Shizuku #102

Open
rollingmoai opened this issue Nov 2, 2021 · 55 comments
Open

Silent Installation without Root using Shizuku #102

rollingmoai opened this issue Nov 2, 2021 · 55 comments
Labels
wontfix This will not be worked on

Comments

@rollingmoai
Copy link

rollingmoai commented Nov 2, 2021

For example, SkyDroid allows for this (could use it with root as well):

Shizuku on SkyDroid

@pusherplayer
Copy link

You read my mind I was about to request the same.
Honestly it would be a good addition for people who
don't have root access to use adb through shizuku to install apps

@1Michael23
Copy link

You read my mind I was about to request the same. Honestly it would be a good addition for people who don't have root access to use adb through shizuku to install apps

More than just people without root, Shizuku is great with root too as its a more secure method of handing out permissions to apps.

@turtlegarden
Copy link

This would be really nice. I have not figured out how to get silent install working on Droidify (yet) but SkyDroid works.

@severtheskyline
Copy link

Any updates of this?

@k3b
Copy link

k3b commented Jul 8, 2022

If i understood correctly: Neo-Store is gpl (see https://github.com/NeoApplications/Neo-Store/blob/master/COPYING ).

Is Shizuku-License compatible with gpl?

From https://github.com/RikkaApps/Shizuku#License :

For the project as a whole, it is not free. You are FORBIDDEN to distribute the apk compiled by you (including modified, e.g.,
rename app name "Shizuku" to something else) to any store (IBNLT Google Play Store, F-Droid, Amazon Appstore etc.).

@Small-Ku
Copy link

Small-Ku commented Jul 9, 2022

The Shizuku API is MIT.
https://github.com/RikkaApps/Shizuku-API

@prirai
Copy link

prirai commented Jul 14, 2022

I also recommend that this be added. Many apps from F-droid also use this, like there is Tachiyomi, Insular, Darq, Hail, Termux and these apps benefit greatly by enabling Shizuku api.
[UPDATE]

MuntashirAkon/AppManager#67

https://github.com/RikkaApps/Shizuku#exceptions

So, Shizuku is somewhat non-free so we can wait for a fully FOSS app to enable this feature. I guess this should clear why the devs aren't adding Shizuku support therefore this thread might be close or replaced with another issue title for a similar app.

@rollingmoai
Copy link
Author

The closest thing that is Neo-Store can do right now are silent updates in Android 12 without needing root (#20)

@daemonspudguy
Copy link

@prirai that doesn't make any sense, though. The API is 100% FOSS and licensed under the MIT/Expat License.

@scientiac
Copy link

Shizuku has been a must have since I stopped rooting my phone. So there's no harm in adding the feature. Droidify has it but neo having many features than that of droidify doesn't have it. It doesn't make sense. I want to switch to neo so bad but this thing alone is keeping me with droidify.

@Offerel
Copy link

Offerel commented Dec 29, 2022

At least for me, none of the installer options from Droidify works. I have tested all of them for a while, but absolute no update of an app, was updated automatically.

Can you please tell me what I should choose (in Droidify), to get f-droid app updates installed, without that I have manually accept the update?

@prirai
Copy link

prirai commented Dec 31, 2022

@scientiac , @Offerel I use neo-store and have noticed that it suits silent updates. Not sure if it works on Android below 12. Silent updates doesn't work almost half the time though.

@scientiac
Copy link

@prirai I have android 13 and I don't see any "silent" installs

@rollingmoai
Copy link
Author

This was already implemented in Droid-ify a long time ago (Droid-ify/client#14). Updates on this?

@machiav3lli
Copy link
Member

Won't be added as long as Shizuku isn't free.

@rollingmoai
Copy link
Author

rollingmoai commented Feb 28, 2023

It's not entirely free, but how does that have to do with anything? Provide the user with the option at least.

@ghost
Copy link

ghost commented Mar 28, 2023

I've been indecisive about which of the two I should use since they started as a single project and look very identical.
I guess this makes the decision easier.

Droid-ify it is then.

@Xynonners
Copy link

isn't shizuku licensed under apache 2.0 with that single forbidden? I wouldn't see how that would make the app nonfree.

@machiav3lli
Copy link
Member

@Xynonners not really, it's a custom license having restrictions. The one restriction blocking this is the one realted to forbiding public builds and distribution of the app, with that it's not free in any sense, it's just code available.

@IzzySoft
Copy link

IzzySoft commented Jun 1, 2023

@meow-purr in a way. The license says so, but the TOS disagrees a little. When I last checked there was something with "thou shalt not distribute our binaries" or so.

For the project as a whole, it is not free. You are FORBIDDEN to distribute the apk compiled by you (including modified, e.g., rename app name "Shizuku" to something else) to any store (IBNLT Google Play Store, F-Droid, Amazon Appstore etc.).

Now tell me how "it is not free" matches the license specified.

   2. Grant of Copyright License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      copyright license to reproduce, prepare Derivative Works of,
      publicly display, publicly perform, sublicense, and distribute the
      Work and such Derivative Works in Source or Object form.

To highlight: the right to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form is explicitly granted by Apache-2.0. Forbidding the distribution of self-compiled/modified APKs (aka "Derivative Works") contradicts that. Which is why it's not entirely clear – as either the license voids the TOS, or the TOS the license. The TOS is clearly violating freedom-2 (The freedom to redistribute copies; counting starts with freedom-0 here).

Before you ask: I distribute their APK, and to make sure explicitly asked their permission. But it's quite dark gray area. In dubio pro reo (IANAL) I decided this way; F-Droid would definitely decide the other way as rules are stricter there.

@IzzySoft
Copy link

IzzySoft commented Jun 1, 2023

PS in your issue there, I've linked the answer. The reason specified was what drove my decision. I fully understand the reasoning, there are far too many copycats making money of other people's work. Just recently we succeeded in having Google deleting a developer account that had some 20 FOSS apps, which their resp. developers explicitly did not put on Play, "enriched" by ads and trackers in their list.

@machiav3lli
Copy link
Member

It doesn't need a lawer to clear the situation, it's clear that the dev(s) has added an exception of the license aka. customized it, blocking the aforementioned freedom-2. I don't see a need to discuss any further, concerning who have rights and what not.. I respect their wish (and understand the concern partialy - although it's always questionable if this added exception would stop the misuse of the code) and decide for this project to avoid supporting of this API.

@IzzySoft
Copy link

IzzySoft commented Jun 3, 2023

Funny thing is: I've just updated my local clone of fdroiddata from upstream master, and noticed this line:

create mode 100644 srclibs/shizuku.yml

And now I'm puzzled.

RepoType: git
Repo: https://github.com/RikkaApps/Shizuku

Prepare: git -c 'url.https://u:[email protected]/[email protected]:' submodule update --init

Seems like the API is deemed FOSS, as the TOS is just affecting the APK? 🤔

@IzzySoft
Copy link

IzzySoft commented Jun 3, 2023

@meow-purr you cannot simply take code from a developer and change the license. You have to honor the license they put it under. You can use e.g. MIT code in a GPL app (as GPL has the stricter requirements), but not vice versa.

That said, the said phrase indeed seems to only affect the app, not the libraries (I've just checked with the team).

@prirai
Copy link

prirai commented Jun 13, 2023

Silent updates work on Android 12 and above when using neo-store. Not sure if it is working for everyone.

@Offerel
Copy link

Offerel commented Jun 14, 2023

No, silent updates never worked for me with Android 12 or 13. I always have to click on "update all" to confirm a update start. Only when this confirmation is also omitted, it is an automatic silent update.

@Offerel
Copy link

Offerel commented Jun 15, 2023

I have tested some apps again today. I have installed apps with an older version. After installation was finished, i got immediately a notification that some apps have a new version. I don't touched this notification and don't opened NeoStore manually. After some time (don't know exactly how long, maybe some hours), the app was updated.

This was the first time I have seen that. My phone is on Android 13, I don't know which SDK this is or which target SDK is needed to get this working. One which works, is marked with "Target SDK 33".

Im happy with the current result and that it worked in this case the first time.

@machiav3lli
Copy link
Member

The limitation of the targetSDK of the to-be-updated apps is a system-side one, which unfortunately can't be overwritten, but luckily must of FOSS apps are following even when slowly…

@soredake
Copy link

@PeterKW
Copy link

PeterKW commented Aug 14, 2023

Does something like this be used? https://github.com/depau/fdroid_shizuku_privileged_extension
The extension seems to work with droidify https://github.com/Droid-ify/client

@machiav3lli
Copy link
Member

As already said multiple times, it's about Shizuku's license and not some technical aspects, an implementation isn't an issue at all!

@IzzySoft
Copy link

@machiav3lli as stated above, doesn't the license issue only affect the Shizuku app itself but not the library? Of course if your argument is the app would still be needed to make this useful (is that so?), the point is clear.

@PeterKW
Copy link

PeterKW commented Aug 15, 2023

Very sorry, I've been trying to learn about licenses but getting a bit confused. Are you saying the code is copy left but the documentation isn't?

Droidify uses Shizuku and looks like it has the same license although presumably there's something im missing?
https://github.com/Droid-ify/client/blob/main/LICENSE

Is it a problem for someone to fork under the same license Neo Store and do what Droidify have done calling the Shizuku protocols?

Sorry, if my confusion is complicated to answer. I've tried looking up about the licensing but got confused with all the information looping round and round

@IzzySoft
Copy link

Are you saying the code is copy left but the documentation isn't?

You must differentiate between the Shizuku APP (which to my understanding handles the actions) and the Shizuku LIBRARY. The latter is what is implemented in apps to communicate with the "core" in the Shizuku app. And that library is not disputed. Just the Shizuku app itself is.

So to my knowledge, the library is libre, but it needs to communicate with the Shizuku app. If the Shizuku app is not installed on the same device, the library would have no effect. But 1) IANAL and 2) I didn't really deeply dig into it.

@machiav3lli
Copy link
Member

@PeterKW it's not a license-issue in the conventional sense of such, it's the choice to not "nudge" the users into using a non-libre framework. Surely there may be individuals that may have another stance and decide to fork NS, but that's the freedom a libre project provides.

@IzzySoft exactly, it's the dependence on Shizuku app. One may argue: "but it'd be just optional", I'd say: options create nudges and discourses.

@mattdale77
Copy link

I would like to add my voice to them request for this. I see the discussion around it but it is supported from 4.2.4 in Aurora Store and this is on F-Droid and we know that F-Droid has very strict requirements so in my opinion there should be no issue in implementing the library within Neo Store

@machiav3lli
Copy link
Member

@mattdale77 I think you misunderstood the blocker. It's not whether this is an F-Droid blocker or not, it's about Shizuku being not free (freedoms 2 & 3 are infringed).

@machiav3lli
Copy link
Member

@meow-purr I think you misunderstood what SUI is. SUI requires Magisk/Zygisk, which means the user already have su/root, which NS already supports as an installer.

@PeterKW
Copy link

PeterKW commented Oct 22, 2023

Droidify can use Shizuku for FDroid installer
https://f-droid.org/packages/com.looker.droidify
https://www.f-droid.org/packages/org.fdroid.fdroid.privileged/

#102 (comment)

@CyanChanges
Copy link

CyanChanges commented Nov 25, 2023

You're facing to its API, not the implementation.
You can implement an non-free implementation. And every free-software use this API must remove it? Because of your call an implementation may not free enough?

And you're not using pure-AOSP, right?
You are using OS from manufacturer of your phone. And they may not open source at all, and you must call Android API in your Android App, which must call theirs code somehow.

@CompeyDev
Copy link

CompeyDev commented Mar 5, 2024

At least, would it be possible to provide a setting to select the installer app? Then, in that case one could use a package installer like pi in order to use shizuku or root as an installation method.

I think this is probably the way to go forward, avoiding any dependence on non-free software, while allowing the user to opt in to using alternate installation methods.

@machiav3lli
Copy link
Member

@CompeyDev Root is supported since ever and Muntashir's App Manager installer is supported on 1.0.0 (still in beta)

@CompeyDev
Copy link

The whole point of shizuku is to avoid root access, so I don't think that's what people want.

Never heard of the latter will give the build a test run and lyk.

@CompeyDev
Copy link

Any CI builds I can get my hands on? Or would I need to manually compile it?

@machiav3lli
Copy link
Member

Test builds are mainly available on the community channels on Telegram and Matrix.

On the shizuku thingy: I don't think that repeating the obvious/said helps anyone further...

@ky-bd
Copy link

ky-bd commented May 12, 2024

You're facing to its API, not the implementation. You can implement an non-free implementation. And every free-software use this API must remove it? Because of your call an implementation may not free enough?

And you're not using pure-AOSP, right? You are using OS from manufacturer of your phone. And they may not open source at all, and you must call Android API in your Android App, which must call theirs code somehow.

Even if our free-developer is using pure-AOSP, there are binary vendor firmwares being non-free. Not to mention the AArch64 ISA and SoCs from Quaxxmm, Mexxxxek, Saxxxng, Apxxe, etc. Is GitHub ever free? It must be the great sacrifice for our free-developer to stand on this free-world and live on the free-energy. F.

@machiav3lli
Copy link
Member

Even if our free-developer is using pure-AOSP, there are binary vendor firmwares being non-free. Not to mention the AArch64 ISA and SoCs from Quaxxmm, Mexxxxek, Saxxxng, Apxxe, etc. Is GitHub ever free? It must be the great sacrifice for our free-developer to stand on this free-world and live on the free-energy. F.

Maybe your poetic self can find sometime to fork (and maintain) the project and add the support it wishes.

@xiaoxiyao
Copy link

Considering Dhizuku?

@machiav3lli
Copy link
Member

@xiaoxiyao Already had the discussion in the community groups and with other devs. It's just a thin layer over using Shizuku.

@Brandon98SE
Copy link

Is there a way to do this without Shizuku on Android 15? I want silent background updates to my applications like with Droid-ify and Google Play.

@prirai
Copy link

prirai commented Nov 5, 2024

Is there a way to do this without Shizuku on Android 15? I want silent background updates to my applications like with Droid-ify and Google Play.

Android from 13.0 already allows for silent updation if the app you're trying to install was updated or installed before from the same store. So it will be taken care of automatically. However first installation of any app will be manual.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
wontfix This will not be worked on
Projects
None yet
Development

No branches or pull requests