Repost because I posted to the wrong community :)
I haven’t really kept up with android stuff for a while, but it looks like a handful of recent FOSS apps are using Shizuku for cool functionality. The new SDMaid uses it, and so do apps like Lemmy Redirect. In the list of apps, there’s also F-Droid, but I don’t really know what that’s for just yet.
What is it, and how does it work? Does it allow you to do anything you could otherwise need a Rooted device for? In that sense, is it unsafe / something Google will try to block in the future?
It’s not unsafe. You have a version on playstore. Basically, it allows you to use privileged APIs which would need manually using ADB or root. Some of my apps like Darq, droid-ify, takostats, and lemmy-redirect use it perform actions like enabling link handling, performing app installation, applying force dark mode without requiring root, etc.
Here’s the description pulled from fdroid:
using system APIs directly with adb/root privileges from normal apps
When developing apps that requires root, the most common method is to run some commands in the su shell. For example, there is app uses pm enable/disable command to enable/disable components. This method has very big disadvantages:
• Extremely slow (Multiple process creation)
• Needs to process texts (Super unreliable)
• The possibility is limited to available commands
• Even if adb has sufficient permissions, the app requires root privileges to run
Shizuku uses a completely different way. The most important feature Shizuku provides is something like be a middle man to receive requests from the app, sent to the system server, and send back the results. To the app, it is almost identical to the use system APIs directly. But it’s much faster as it hooks into the system directly.
Note that it is, however, unfree software, not FOSS:
- 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.).
The readme says licensed under Apache-2.0. The license itself allows modification and redistribution with some conditions. unless only parts of the source code are free. It should not be forbidden just because he says so. He does say image files may not be used unless for displaying shizuku. Regardless, it leaves a sour taste in the mouth.
The readme also states that you are not allowed to distribute built artifacts and that makes it unfree.
Free software OTOH must allow you to do anything you want with the covered software as long as you fulfil the duties the license requires of you.
See for instance requirement 3 of the OSI’s Open-Source Definition.I’ve opened a discussion on this topic upstream with more thorough explanations and alternatives: https://github.com/RikkaApps/Shizuku/discussions/359
deleted by creator
Thanks for moving this over!
It’s not as powerful as root but it does give you more capabilities. You would need to check the individual app for what functionality and limitations it has with Shizuku.