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?

https://github.com/ThePBone/awesome-shizuku

  • limerod@reddthat.com
    link
    fedilink
    English
    arrow-up
    7
    ·
    8 months ago

    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.

    • Atemu@lemmy.ml
      link
      fedilink
      English
      arrow-up
      2
      ·
      edit-2
      8 months ago

      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.).
      • limerod@reddthat.com
        link
        fedilink
        English
        arrow-up
        2
        ·
        8 months ago

        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.

        • Atemu@lemmy.ml
          link
          fedilink
          English
          arrow-up
          2
          ·
          8 months ago

          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

  • anonymous_bot@lemmy.world
    link
    fedilink
    English
    arrow-up
    2
    ·
    8 months ago

    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.