librepods-org / librepods-org/librepods

Android 13 (MIUI) crashes on the main interface

Open
#592 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

android bug
Dominant language
Kotlin
Stars
29.9k
Forks
1.7k
PR merge metrics
No merged PRs in 30d

Description

App version

LibrePods 0.25 / 0.29

App source

GitHub

Device

Redmi Note 11T Pro

Android / OS version

Android 13

Root / hook method

Magisk + Xposed

AirPods model

AirPods Pro 3

AirPods firmware

No response

What happened

Xposed Framework: LSPosed v2.02-7668 / Vector v2.0-3043

The app crashes on the main interface immediately upon opening, and the home screen widgets can still display the battery level normally

The image is a screenshot of the moment before the crash.

Image
Logs
java.lang.RuntimeException: Error receiving broadcast Intent { act=me.kavishdevar.librepods.BATTERY_DATA flg=0x10 pkg=me.kavishdevar.librepods (has extras) } in z6@6c45fad
	at android.app.LoadedApk$ReceiverDispatcher$Args.lambda$getRunnable$0$android-app-LoadedApk$ReceiverDispatcher$Args(LoadedApk.java:1852)
	at android.app.LoadedApk$ReceiverDispatcher$Args$$ExternalSyntheticLambda0.run(Unknown Source:2)
	at android.os.Handler.handleCallback(Handler.java:942)
	at android.os.Handler.dispatchMessage(Handler.java:99)
	at android.os.Looper.loopOnce(Looper.java:210)
	at android.os.Looper.loop(Looper.java:299)
	at android.app.ActivityThread.main(ActivityThread.java:8136)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:580)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1028)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.Class.isInterface()' on a null object reference
	at java.lang.Class.isAssignableFrom(Class.java:589)
	at android.os.Parcel.readParcelableCreatorInternal(Parcel.java:4853)
	at android.os.Parcel.readParcelableInternal(Parcel.java:4766)
	at android.os.Parcel.readValue(Parcel.java:4532)
	at android.os.Parcel.readValue(Parcel.java:4312)
	at android.os.Parcel.readListInternal(Parcel.java:5276)
	at android.os.Parcel.readArrayListInternal(Parcel.java:5295)
	at android.os.Parcel.readValue(Parcel.java:4562)
	at android.os.Parcel.readValue(Parcel.java:4312)
	at android.os.Parcel.-$$Nest$mreadValue(Unknown Source:0)
	at android.os.Parcel$LazyValue.apply(Parcel.java:4410)
	at android.os.Parcel$LazyValue.apply(Parcel.java:4369)
	at android.os.BaseBundle.getValueAt(BaseBundle.java:394)
	at android.os.BaseBundle.getValue(BaseBundle.java:374)
	at android.os.BaseBundle.getArrayList(BaseBundle.java:1486)
	at android.os.Bundle.getParcelableArrayList(Bundle.java:1070)
	at android.content.Intent.getParcelableArrayListExtra(Intent.java:8988)
	at z6.onReceive(r8-map-id-5c927ea2c087e398865ad40438479a0f0690a192cc51a2bd81b573e6019be15c:60)
	at android.app.LoadedApk$ReceiverDispatcher$Args.lambda$getRunnable$0$android-app-LoadedApk$ReceiverDispatcher$Args(LoadedApk.java:1838)
	... 9 more
Additional context

No response

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

The crash occurs in z6.onReceive while handling the me.kavishdevar.librepods.BATTERY_DATA broadcast and reading a parcelable array list from the Intent. Start by tracing that receiver and reproducing the failure on Android 13 with MIUI and LSPosed or Vector. Done means the main interface no longer crashes when the battery broadcast is received, while the battery data remains available.

Written by the indexing model from the issue text.

Assessment

Tech stack
android, kotlin
Domain
mobile
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.