cross-posted from: https://lemm.ee/post/42024710

Android apps are blocking sideloading and forcing Google Play versions instead

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.

  • onlinepersona@programming.dev
    link
    fedilink
    English
    arrow-up
    27
    arrow-down
    1
    ·
    edit-2
    3 months ago

    It’s not the store that’s the problem. The integrity API is a web API. First the app collects data about your phone locally and then it sends it to google asking “is this phone ‘safe’?”. Google then responds with how safe it believes the phone to be and the app itself makes a decision. The alternative app store is completely out of the loop.

    Anti Commercial-AI license

    • koper@feddit.nl
      link
      fedilink
      English
      arrow-up
      34
      ·
      edit-2
      3 months ago

      “Safe” being defined in a user-hostile manier, i.e. with unmodified Google components and not rooted.

      “Google-controlled” would be a better word.

    • 𝕸𝖔𝖘𝖘@infosec.pub
      link
      fedilink
      English
      arrow-up
      7
      ·
      3 months ago

      Ah. I misunderstood. I thought the store answers the call. If Google answers, that could be a problem for custom roms, censorship, and privacy.

      • onlinepersona@programming.dev
        link
        fedilink
        English
        arrow-up
        6
        ·
        3 months ago

        Indeed. I’m not sure what the format is and whether a man in the middle or fake service could be run on the device, which pretends to be google’s attestation service and just responds with a “yep, this device is fine” in the correct format. It may be easier than rewriting an entire app and be applicable to other apps as well.

        Anti Commercial-AI license

        • 𝕸𝖔𝖘𝖘@infosec.pub
          link
          fedilink
          English
          arrow-up
          5
          ·
          3 months ago

          This will be their live trial on web attestation, and they’ll use it as a “see how well this works here? We can roll out to the entire web” test. Google needs to be degoogled.