ReVanced / revanced-patches

🧩 Patches for ReVanced
https://revanced.app
GNU General Public License v3.0
2.36k stars 270 forks source link

feat: chatGPT - remove play store requirement #538

Closed shadoxxhd closed 4 months ago

shadoxxhd commented 1 year ago

Application

chatGPT (the official android application by OpenAI)

Issue

The application can't start if play store is disabled (or otherwise not installed).

Patch

The application should never check what other apps I have installed, and start whether or not play store is enabled.

Motivation

Store-specific lock in is extremely user-hostile behavior, and prevents anyone who is either security-conscious (reading play store ToS is not fun), on a Huawei device, or simply on an older android, from using the app at all.

Acknowledgements

oSumAtrIX commented 1 year ago

Show a picture how it looks like

shadoxxhd commented 1 year ago

image

ubergeek77 commented 1 year ago

I've manually patched apps that do this, it's usually pretty simple.

I could give it a try. Where can I find documentation on ReVanced's patch format? I.e. what directory structure is expected, what goes in the fingerprints/patch directories, what @Annotations are available, etc? Been searching for this stuff but I haven't been able to find anything.

oSumAtrIX commented 1 year ago

@ubergeek77 https://github.com/revanced/revanced-patches/tree/docs/docs here you go.

Google services may be required for the app for various reasons, give it a shot.

shadoxxhd commented 1 year ago

It's not just google services - those are installed. When I temporarily enable the Play Store app, ChatGPT works, and when I disable Play Store, it stops working again.

I can understand the app requiring google play services, but not the play store itself.

ubergeek77 commented 1 year ago

The more difficult problem is the app just segfaults if it's been recompiled/resigned, even if there were no changes. I'm pretty sure I'm combining and resigning it correctly, but it's only available as a split APK making it annoying to work with.

Here is the segfault:

08-02 14:29:45.908 22919 22919 F libc    : Fatal signal 11 (SIGSEGV), code 2 (SEGV_ACCERR), fault addr 0xb400007a6d0de070 in tid 22919 (.openai.chatgpt), pid 22919 (.openai.chatgpt)

But the only native library in the app is libpairipcore.so, and the copy in the app I'm trying to install is hash-identical to the ones in the original app (in base and in split_config.arm64_v8a). Genuinely no clue why it's segfaulting.

The Play Store check at least seems straightforward? There is a single function that kicks off the check and the following "fatal" errors that show this dialog. I was going to stub it out and see if that worked, but I can't even get a recompiled app to launch.

For reference, I think stubbing this out will at least let you get past this dialog. No word on if it will fail further along, but I think this is the starting point:

image

Would change to:

image

Unfortunately I can't go much further than this because I can't even get the app recompiled due to the segfault :/

Aunali321 commented 1 year ago

But the only native library in the app is libpairipcore.so, and the copy in the app I'm trying to install is hash-identical to the ones in the original app (in base and in split_config.arm64_v8a). Genuinely no clue why it's segfaulting.

libpairipcore.so is a drm.

ubergeek77 commented 1 year ago

Oh. Fun.

Welp, good luck folks.

irmo-de commented 1 year ago

libpairipcore.so is part of the Google Play Integrity API Using the Trusted Execution Environment (TEE) in Android, a mini OS responsible for security-relevant tasks. This also include a remote check for the phones integrity.

Google designed it mostly for banking apps. A total overkill for an app like ChatGPT.

If this trend goes on custom android roms will be useless.

shadoxxhd commented 1 year ago

Really sad to see that there is no legislation against this kind of behavior. If setting default browsers on first install is considered anticompetitive, forcing certain store/OS combinations should be much worse...

oSumAtrIX commented 4 months ago

Over time, a lot of feature requests have been made, which is why I am closing some according to the contribution guidelines:

Requests can be accepted or rejected at the discretion of maintainers of ReVanced Patches

This feature request has been closed for one or more of the following reasons:

Regardless, anyone who comes across this feature request can PR it. Thanks for the feature request!