Android apps are blocking sideloading and forcing Google Play versions instead - eviltoast

You might sideload an Android app, or manually install its APK package, if you’re using a custom version of Android that doesn’t include Google’s Play Store. Alternately, the app might be experimental, under development, or perhaps no longer maintained and offered by its developer. Until now, the existence of sideload-ready APKs on the web was something that seemed to be tolerated, if warned against, by Google.

This quiet standstill is being shaken up by a new feature in Google’s Play Integrity API. As reported by Android Authority, developer tools to push “remediation” dialogs during sideloading debuted at Google’s I/O conference in May, have begun showing up on users’ phones. Sideloaders of apps from the British shop Tesco, fandom app BeyBlade X, and ChatGPT have reported “Get this app from Play” prompts, which cannot be worked around. An Android gaming handheld user encountered a similarly worded prompt from Diablo Immortal on their device three months ago.

Google’s Play Integrity API is how apps have previously blocked access when loaded onto phones that are in some way modified from a stock OS with all Google Play integrations intact. Recently, a popular two-factor authentication app blocked access on rooted phones, including the security-minded GrapheneOS. Apps can call the Play Integrity API and get back an “integrity verdict,” relaying if the phone has a “trustworthy” software environment, has Google Play Protect enabled, and passes other software checks.

Graphene has questioned the veracity of Google’s Integrity API and SafetyNet Attestation systems, recommending instead standard Android hardware attestation. Rahman notes that apps do not have to take an all-or-nothing approach to integrity checking. Rather than block installation entirely, apps could call on the API only during sensitive actions, issuing a warning there. But not having a Play Store connection can also deprive developers of metrics, allow for installation on incompatible devices (and resulting bad reviews), and, of course, open the door to paid app piracy.

  • subignition@piefed.social
    link
    fedilink
    English
    arrow-up
    51
    ·
    2 months ago

    It’s not like dedicated people aren’t going to be able to just patch out the calls to this API from the apps themselves…

    This feels like yet another attempt at DRM that is doing more harm than help.

    • Azzu@lemm.ee
      link
      fedilink
      English
      arrow-up
      9
      ·
      2 months ago

      Indeed, I already bypass SafetyNet and Play integrity with some kind of xposed module, I don’t expect this to change.

        • Azzu@lemm.ee
          link
          fedilink
          English
          arrow-up
          6
          ·
          2 months ago

          Xposed is just an API which is provided by the LSPosed Magisk module.

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

        Can you tell me which modules you use? I am trying to pass SafetyNet on Waydroid but can’t pass even basic integrity.

        • Azzu@lemm.ee
          link
          fedilink
          English
          arrow-up
          3
          ·
          2 months ago

          idk where I got it from, but it’s called “Universal SafetyNet Fix” by kdrag0n

          • mrvictory1@lemmy.world
            link
            fedilink
            English
            arrow-up
            2
            ·
            edit-2
            2 months ago

            Did you just install the module and passed safetynet or did you have to use custom fingerprint? Also are you on custom or stock rom?

        • whats_all_this_then@lemmy.world
          link
          fedilink
          English
          arrow-up
          3
          ·
          2 months ago

          I’ve used Magisk with the safetynet module + hiding root from apps with like a 95% success rate. Quick search for “magisk safetynet” and look at the xdadevelopers threads

    • vin@lemmynsfw.com
      link
      fedilink
      English
      arrow-up
      1
      ·
      2 months ago

      Why would that be possible? Wouldn’t the developer have their server rejected any calls from “unsigned” apps?

      • subignition@piefed.social
        link
        fedilink
        arrow-up
        2
        ·
        2 months ago

        If functionality exists in the client app, there’s nothing to be done to stop someone from bypassing checks.

        Looking into it further this looks like it’s an API between the backend of a service and Google though. That would be difficult to defeat, but you could probably spoof the identity of the requesting device with enough effort

      • doctortran@lemm.ee
        link
        fedilink
        English
        arrow-up
        1
        ·
        edit-2
        2 months ago

        Possibly, but many apps don’t actually need to phone home to function.

        Of course that doesn’t stop developers arbitrarily requiring it.