librepods-org / librepods-org/librepods
Android 13 (MIUI) crashes on the main interface
Nobody has claimed this yet.
- 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.
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
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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