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 · 65 comments
Open

Silent Installation without Root using Shizuku #102

rollingmoai opened this issue Nov 2, 2021 · 65 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.

@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.

@0x4c756e61
Copy link

Any progress here? I don't understand why everyone is debating on this since the issue is with the Shizuku app, which neo-store doesn't care about, it only needs the API, which is foss.

Furthermore, if it was really an issue, droid-ify wouldn't be using it either, and shizuku would be dead since no one would be able to use it.

@CompeyDev
Copy link

I'll quote the reason that app manager's maintainer gave for MuntashirAkon/AppManager#55:

RikkaApps doesn't have a license for Shizuku and the related issue (RikkaApps/Shizuku#56) is closed without any comment. They've also declined to publish their app on F-Droid (RikkaApps/Shizuku#69) which they can't because the app doesn't have any license (Even if I want, I can't even fork the app to provide a release on F-Droid for the same reason). They do have a license for their API but, I have to say, the whole thing is a bit shady and being a strong supported of freedom, I'm not going to support Shizuku.

@CyanChanges
Copy link

I'll quote the reason that app manager's maintainer gave for MuntashirAkon/AppManager#55:

RikkaApps doesn't have a license for Shizuku and the related issue (RikkaApps/Shizuku#56) is closed without any comment. They've also declined to publish their app on F-Droid (RikkaApps/Shizuku#69) which they can't because the app doesn't have any license (Even if I want, I can't even fork the app to provide a release on F-Droid for the same reason). They do have a license for their API but, I have to say, the whole thing is a bit shady and being a strong supported of freedom, I'm not going to support Shizuku.

Well, to being a strong support of freedom. You should stop using your phone. Almost every Android device have a close-source modded Android OS. Even if you unlock bootloader and flash Lineage or something, you can't get rid of the bootloader and the hardware though.

@0x4c756e61
Copy link

0x4c756e61 commented Jan 1, 2025

I might look like the advocate of the devil, but afaik the Shizuku app is under Apache-2 licence, with applied restrictions, restrictions applied for the artwork of course, and for the release of the app specifically on stores. And I think being forbidden from releasing a fork on the stores is a good thing, it sure is an annoyance, but Shizuku is a pretty critical app, and having a bad actor publish it on stores without any ways to remove it wouldn't be a fun time.

Nyow I agree the way the issue was handled isn't ideal, but that doesn't make the whole project bad or shady?

I think the current way the app is managed is a pretty good compromise.

And furthermore, your computer runs proprietary code, the cpu microcode, and you're on a Microsoft ran platform, GitHub, which isn't open source at all, you can't just self-host GitHub. So I think you're all stretching things a little too far, in my own opinion

@CompeyDev
Copy link

Well, to being a strong support of freedom. You should stop using your phone. Almost every Android device have a close-source modded Android OS. Even if you unlock bootloader and flash Lineage or something, you can't get rid of the bootloader and the hardware though.

You are strawmanning my argument. Furthermore, your statement isn't even true. There are plenty of open AOSP based ROMs that a lot of people use over OEM ones.

@0x4c756e61
Copy link

Well, to being a strong support of freedom. You should stop using your phone. Almost every Android device have a close-source modded Android OS. Even if you unlock bootloader and flash Lineage or something, you can't get rid of the bootloader and the hardware though.

You are strawmanning my argument. Furthermore, your statement isn't even true. There are plenty of open AOSP based ROMs that a lot of people use over OEM ones.

Yeah you are right, a lot of people uses AOSP based ROMs over the OEM ones, but that's nyot what Cyan said. They (correct me if I am using the wrong pronouns) said that the ROMs weren't everything, and that your device also ships a bootloader, which could be proprietary. To wich I add that the hardware could also require some proprietary drivers

Finally none of this has anything to do with neo-store including or not a free and open source API released under the MIT

@prirai
Copy link

prirai commented Jan 2, 2025

I believe the way the app is currently fine, and if the devs don't want to use shizuku it's fine. If you use shizuku you need to manually enable it on every reboot using wadb. However if you're rooted you can just use the root installer option. On an unrooted device device you can simply go with app manager or the default option as you can then be sure of what app you're installing and what the changelog is (if you're using app manager). Also, once and app is installed, the future updates are silent, so there isn't any dialog during updation. This is true for Android 13+.

@CompeyDev
Copy link

What benefit exactly do we get from Shizuku support? Neo store already supports app manager installation which already supports wadb installations, for privileged tasks.

Silent installs aren't really much of a concern either on Android versions >13.

@Cuteistfox
Copy link

This issue is becoming a meme. Does the unsubscribe button turn of notifications for this issue?

@0x4c756e61
Copy link

0x4c756e61 commented Jan 5, 2025

What benefit exactly do we get from Shizuku support? Neo store already supports app manager installation which already supports wadb installations, for privileged tasks.

Silent installs aren't really much of a concern either on Android versions >13.

We get more compatibility with already established installations, what I mean is that most people doesn't know about AppManager, secondly I assume most people using it don't know they can set it up to use adb (at least, I didn't unless I looked it up and configured it myself). Furthermore, shizuku is way more known and featured on a lot of android videos, just has a much broader audience and is more likely to be already installed on the user's device.

Lastly, the shizuku api provides much more than the possibility to (un)install apps, which could come in handy in the future

And yeah it isn't a concern for devices running android 13, but nyot everyone runs android 13 or higher, a lot of people, myself included, uses fdroid on old phones running custom ROMs, usually running android 11 or sometimes even lower.

I really don't see any negatives about adding the shizuku api to neo-store

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