Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

bug(Duolingo - Unlock super): App crashes with a java verify error #2452

Closed
3 tasks done
Gregman-js opened this issue Aug 28, 2023 · 13 comments · Fixed by ReVanced/revanced-patches-template#3023
Closed
3 tasks done
Labels
Bug report Something isn't working

Comments

@Gregman-js
Copy link

Gregman-js commented Aug 28, 2023

Type

Error at runtime

Bug description

In new release there is a patch to duolingo to unlock super. #2862
After patching duolingo in app and installing it I can't login to app.
After clicking Sign in button is changing state to loading and nothing more happen.

Steps to reproduce

Step 1: Download duolingo apk. Tested with v 5.116.4 and 5.117.4. Source: apkmirror
Step 2: Patch apk in revanced app
Step 3: Install patched apk
Step 4: open app and click I already have an account and fill form
Step 5: click sign in and wait endlessly

Relevant log output

FATAL EXCEPTION: RxComputationThreadPool-1
08-28 12:32:03.020 10709 10828 E AndroidRuntime: Process: com.duolingo, PID: 10709
08-28 12:32:03.020 10709 10828 E AndroidRuntime: wk.e: The exception could not be delivered to the consumer because it has already canceled/disposed the flow or the exception has nowhere to go to begin with. Further reading: https://github.com/ReactiveX/RxJava/wiki/What's-different-in-2.0#error-handling | java.lang.VerifyError: Verifier rejected class com.duolingo.user.q: void com.duolingo.user.q.<init>(com.duolingo.ads.AdsConfig, c4.k, com.duolingo.user.BetaStatus, java.lang.String, org.pcollections.l, org.pcollections.l, boolean, com.duolingo.shop.Outfit, org.pcollections.l, long, c4.m, com.duolingo.core.legacymodel.Direction, java.lang.String, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, org.pcollections.h, java.lang.String, org.pcollections.h, com.duolingo.shop.h, com.duolingo.user.GlobalAmbassadorStatus, java.lang.String, boolean, boolean, boolean, boolean, y7.f, java.lang.String, org.pcollections.l, long, int, java.lang.String, java.lang.String, java.lang.String, org.pcollections.l, org.pcollections.l, org.pcollections.l, java.lang.String, java.lang.String, org.pcollections.l, org.pcollections.h, org.pcollections.l, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, ia.j, boolean, org.pcollections.l, org.pcollections.l, org.pcollections.h, boolean, boolean, boolean, com.duolingo.user.StreakData, org.pcollections.l, java.lang.String, long, y4.r, java.lang.String, org.pcollections.l, com.duolingo.session.hi, boolean, com.duolingo.user.o, boolean, boolean, org.pcollections.l) failed to verify: void com.duolingo.user.q.<init>(com.duolingo.ads.AdsConfig, c4.k, com.duolingo.user.BetaStatus, java.lang.String, org.pcollections.l, org.pcollections.l, boolean, com.duolingo.shop.Outfit, org.pcollections.l, long, c4.m, com.duolingo.core.legacymodel.Direction, java.lang.String, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, org.pcollections.h, java.lang.String, org.pcollections.h, com.duolingo.shop.h, com.duolingo.user.GlobalAmbassadorStatus, java.lang.String, boolean, boolean, boolean, boolean, y7.f, java.lang.String, org.pcollections.l, long, int, java.lang.String, java.lang.String, java.lang.String, org.pcollections.l, org.pcollections.l, org.pcollections.l, java.lang.String, java.lang.String, org.pcollections.l, org.pcollections.h, org.pcollections.l, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, ia.j, boolean, org.pcollections.l, org.pcollections.l, org.pcollections.h, boolean, boolean, boolean, com.duolingo.user.StreakData, org.pcollections.l, java.lang.String, long, y4.r, java.lang.String, org.pcollections.l, com.duolingo.session.hi, boolean, com.duolingo.user.o, boolean, boolean, org.pcollections.l): [0x14] register v11 has type Undefined but expected Precise Reference: java.lang.String (declaration of 'com.duolingo.user.q' appears in /data/app/~~bvl59fr-yJPGNvh67taehQ==/com.duolingo-bfnCO2Wma8kKJsNNeVKGpQ==/base.apk!classes4.dex)
08-28 12:32:03.020 10709 10828 E AndroidRuntime: 	at ql.a.b(Unknown Source:45)
08-28 12:32:03.020 10709 10828 E AndroidRuntime: 	at il.l.run(Unknown Source:62)
08-28 12:32:03.020 10709 10828 E AndroidRuntime: 	at il.l.call(Unknown Source:0)
08-28 12:32:03.020 10709 10828 E AndroidRuntime: 	at java.util.concurrent.FutureTask.run(FutureTask.java:264)
08-28 12:32:03.020 10709 10828 E AndroidRuntime: 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:307)
08-28 12:32:03.020 10709 10828 E AndroidRuntime: 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1137)
08-28 12:32:03.020 10709 10828 E AndroidRuntime: 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:637)
08-28 12:32:03.020 10709 10828 E AndroidRuntime: 	at java.lang.Thread.run(Thread.java:1012)
08-28 12:32:03.020 10709 10828 E AndroidRuntime: Caused by: java.lang.VerifyError: Verifier rejected class com.duolingo.user.q: void com.duolingo.user.q.<init>(com.duolingo.ads.AdsConfig, c4.k, com.duolingo.user.BetaStatus, java.lang.String, org.pcollections.l, org.pcollections.l, boolean, com.duolingo.shop.Outfit, org.pcollections.l, long, c4.m, com.duolingo.core.legacymodel.Direction, java.lang.String, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, org.pcollections.h, java.lang.String, org.pcollections.h, com.duolingo.shop.h, com.duolingo.user.GlobalAmbassadorStatus, java.lang.String, boolean, boolean, boolean, boolean, y7.f, java.lang.String, org.pcollections.l, long, int, java.lang.String, java.lang.String, java.lang.String, org.pcollections.l, org.pcollections.l, org.pcollections.l, java.lang.String, java.lang.String, org.pcollections.l, org.pcollections.h, org.pcollections.l, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, ia.j, boolean, org.pcollections.l, org.pcollections.l, org.pcollections.h, boolean, boolean, boolean, com.duolingo.user.StreakData, org.pcollections.l, java.lang.String, long, y4.r, java.lang.String, org.pcollections.l, com.duolingo.session.hi, boolean, com.duolingo.user.o, boolean, boolean, org.pcollections.l) failed to verify: void com.duolingo.user.q.<init>(com.duolingo.ads.AdsConfig, c4.k, com.duolingo.user.BetaStatus, java.lang.String, org.pcollections.l, org.pcollections.l, boolean, com.duolingo.shop.Outfit, org.pcollections.l, long, c4.m, com.duolingo.core.legacymodel.Direction, java.lang.String, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, org.pcollections.h, java.lang.String, org.pcollections.h, com.duolingo.shop.h, com.duolingo.user.GlobalAmbassadorStatus, java.lang.String, boolean, boolean, boolean, boolean, y7.f, java.lang.String, org.pcollections.l, long, int, java.lang.String, java.lang.String, java.lang.String, org.pcollections.l, org.pcollections.l, org.pcollections.l, java.lang.String, java.lang.String, org.pcollections.l, org.pcollections.h, org.pcollections.l, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, ia.j, boolean, org.pcollections.l, org.pcollections.l, org.pcollections.h, boolean, boolean, boolean, com.duolingo.user.StreakData, org.pcollections.l, java.lang.String, long, y4.r, java.lang.String, org.pcollections.l, com.duolingo.session.hi, boolean, com.duolingo.user.o, boolean, boolean, org.pcollections.l): [0x14] register v11 has type Undefined but expected Precise Reference: java.lang.String (declaration of 'com.duolingo.user.q' appears in /data/app/~~bvl59fr-yJPGNvh67taehQ==/com.duolingo-bfnCO2Wma8kKJsNNeVKGpQ==/base.apk!classes4.dex)
08-28 12:32:03.020 10709 10828 E AndroidRuntime: 	at o3.p0.I(Unknown Source:104)
08-28 12:32:03.020 10709 10828 E AndroidRuntime: 	at com.duolingo.core.repositories.e2.e(Unknown Source:12)
08-28 12:32:03.020 10709 10828 E AndroidRuntime: 	at com.duolingo.core.repositories.e2.c(Unknown Source:10)
08-28 12:32:03.020 10709 10828 E AndroidRuntime: 	at com.duolingo.core.repositories.e2$c.apply(Unknown Source:24)
08-28 12:32:03.020 10709 10828 E AndroidRuntime: 	at dl.z1$b.onNext(Unknown Source:27)
08-28 12:32:03.020 10709 10828 E AndroidRuntime: 	at dl.a1$c.d(Unknown Source:39)
08-28 12:32:03.020 10709 10828 E AndroidRuntime: 	at dl.a1$a.run(Unknown Source:17)
08-28 12:32:03.020 10709 10828 E AndroidRuntime: 	at il.l.run(Unknown Source:21)
08-28 12:32:03.020 10709 10828 E AndroidRuntime: 	... 6 more

Screenshots or videos

photo_2023-08-28_14-08-11

Solution

n/a

Additional context

n/a

Acknowledgements

  • I have searched the existing issues and this is a new and no duplicate or related to another open issue.
  • I have written a short but informative title.
  • I filled out all of the requested information in this issue properly.
@Gregman-js Gregman-js added the Bug report Something isn't working label Aug 28, 2023
@LisoUseInAIKyrios
Copy link
Contributor

Does the app work without signing in?

@Gregman-js
Copy link
Author

I think its not possible to use the app without sign in or sign up screens. There is not "skip" button

@LisoUseInAIKyrios
Copy link
Contributor

It definitely is possible to use without signing up or in. I briefly tried using the app before I got irritated by how lame it is and deleted it, and I never signed up or logged in.

I was using the prior version and not the latest release that came out this week.

@Gregman-js
Copy link
Author

Maybe it used to be an option.
Now I checked more thoroughly and I still say it's not there.
On the login screen there are buttons: sign in, google, Facebook and back.
On 'get started' screen my app is crashing on select 'what would you like to learn' step.
But as I remember in the end step they are asking you to register.

@LisoUseInAIKyrios
Copy link
Contributor

LisoUseInAIKyrios commented Aug 28, 2023

I tried the app again, and you can by pass creating an account if you select "get started" and complete the first level. It never prompts to create an account or login.

But, the patch is still broken if this is done. The app crashes immediately after choosing the language.

Just to verify a bit more, I tried patching with a universal patch (remove screen shot restrictions) and not include unlock super. Installed that, went thru the first level and it worked just fine (of course super features were not unlocked). Then repatched and included unlock super, updated the app, and on launch it crashes every time.

This was with version 5.117.3, which is the version the patch was developed against.

Edit:
The log posted shows it's a java verify error:

java.lang.VerifyError: Verifier rejected class com.duolingo.user.q: void com.duolingo.user.q.<init>(com.duolingo.ads.AdsConfig, c4.k, com.duolingo.user.BetaStatus, java.lang.String, org.pcollections.l, org.pcollections.l, boolean, com.duolingo.shop.Outfit, org.pcollections.l, long, c4.m, com.duolingo.core.legacymodel.Direction, java.lang.String, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, org.pcollections.h, java.lang.String, org.pcollections.h, com.duolingo.shop.h, com.duolingo.user.GlobalAmbassadorStatus, java.lang.String, boolean, boolean, boolean, boolean, y7.f, java.lang.String, org.pcollections.l, long, int, java.lang.String, java.lang.String, java.lang.String, org.pcollections.l, org.pcollections.l, org.pcollections.l, java.lang.String, java.lang.String, org.pcollections.l, org.pcollections.h, org.pcollections.l, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, ia.j, boolean, org.pcollections.l, org.pcollections.l, org.pcollections.h, boolean, boolean, boolean, com.duolingo.user.StreakData, org.pcollections.l, java.lang.String, long, y4.r, java.lang.String, org.pcollections.l, com.duolingo.session.hi, boolean, com.duolingo.user.o, boolean, boolean, org.pcollections.l) failed to verify: void com.duolingo.user.q.<init>(com.duolingo.ads.AdsConfig, c4.k, com.duolingo.user.BetaStatus, java.lang.String, org.pcollections.l, org.pcollections.l, boolean, com.duolingo.shop.Outfit, org.pcollections.l, long, c4.m, com.duolingo.core.legacymodel.Direction, java.lang.String, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, org.pcollections.h, java.lang.String, org.pcollections.h, com.duolingo.shop.h, com.duolingo.user.GlobalAmbassadorStatus, java.lang.String, boolean, boolean, boolean, boolean, y7.f, java.lang.String, org.pcollections.l, long, int, java.lang.String, java.lang.String, java.lang.String, org.pcollections.l, org.pcollections.l, org.pcollections.l, java.lang.String, java.lang.String, org.pcollections.l, org.pcollections.h, org.pcollections.l, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, ia.j, boolean, org.pcollections.l, org.pcollections.l, org.pcollections.h, boolean, boolean, boolean, com.duolingo.user.StreakData, org.pcollections.l, java.lang.String, long, y4.r, java.lang.String, org.pcollections.l, com.duolingo.session.hi, boolean, com.duolingo.user.o, boolean, boolean, org.pcollections.l): [0x14] register v11 has type Undefined but expected Precise Reference: java.lang.String (declaration of 'com.duolingo.user.q' appears in /data/app/~~bvl59fr-yJPGNvh67taehQ==/com.duolingo-bfnCO2Wma8kKJsNNeVKGpQ==/base.apk!classes4.dex) 08-28 12:32:03.020 10709 10828 E AndroidRuntime: at ql.a.b(Unknown Source:45)

@LisoUseInAIKyrios LisoUseInAIKyrios changed the title bug(duolingo/unlocksuper): Cannot Login to duolingo app with patch applied bug(Duolingo - Unlock super): App crashes with a java verify error Aug 28, 2023
@Andurilll

This comment was marked as spam.

@eiqnepm
Copy link
Contributor

eiqnepm commented Aug 29, 2023

Can confirm, app crashes after selecting a language to learn, and login is not functional.

While the priority should be being able to use the app at all, the login feature is quite crucial to the features of the app, being unable to have progression sync for example is a big hit in the ease of use.

Prebuilt packages exist that work just fine with login, however they're obviously not open source, so I wouldn't want to use them personally.

@Andurilll
Copy link

I now Made my Account a teacher Account and now i have Unlimited hearts

@eiqnepm
Copy link
Contributor

eiqnepm commented Aug 29, 2023

I now Made my Account a teacher Account and now i have Unlimited hearts

Whoa, so it does, nice! Does this also remove the post lesson ads?

@linuzzx
Copy link

linuzzx commented Aug 31, 2023

I tried logging into the unpatched version, backuping the data, patching it, and recovering the app data, the app just crashes.
Same behavior if you root install the patch while having the original app logged in.

@ImArghya7

This comment was marked as spam.

@TestNintendo

This comment was marked as spam.

@rejuanad99

This comment was marked as spam.

@ReVanced ReVanced locked as spam and limited conversation to collaborators Sep 23, 2023
@oSumAtrIX oSumAtrIX reopened this Dec 16, 2023
@ReVanced ReVanced unlocked this conversation Dec 16, 2023
@oSumAtrIX oSumAtrIX transferred this issue from ReVanced/revanced-patches-template Dec 16, 2023
@ReVanced ReVanced locked and limited conversation to collaborators Dec 16, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Bug report Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

9 participants