Skip to content
This repository has been archived by the owner on Jun 1, 2023. It is now read-only.
rovo89 edited this page May 28, 2016 · 1 revision

Introduction

This page describes how to troubleshoot issues and report bugs in the Xposed Framework. It assumes that you have at least a bit of Android knowledge - otherwise, you should keep your hands off things like root access and Xposed!

TL;DR

Really? You don't have 10 minutes to read this page in order to provide a good bug report? And still you expect the developers to spend many hours to fix your problem? Sad.

Nevertheless, if you just need a checklist, here you go:

  • Get a clear picture about the issue, ideally with reproducable steps.
  • Try the latest version of Xposed (and modules).
  • Make sure that the issue still occurs with all Xposed modules deactivated.
  • Make sure that the issues doesn't occur when Xposed is completely uninstalled.
  • Check the web (e.g. XDA, GitHub) if other have the same issue.
  • If yes, either watch the issue or add more information. Avoid a simple "same for me".
  • If not, create a detailed GitHub issue (with logs!), be responsive to questions and confirm whether suggested fixes work.

For details, please take the time to read the following paragraphs.

What exactly is the issue?

First of all, make sure that you understand what kind of issue you have. Here are some typical categories:

  • Installation error (you can't even install the Xposed framework)
  • Boot loop (device is stuck on the boot screen for 10+ minutes)
  • System crash (you see the lockscreen or launcher, but "process xyz has stopped" make the device unusable)
  • App crash (a certain app crashes on start/after certain actions)
  • "Random" reboot (for no apparent reason, the device reboots)
  • App/system misbehavior (no crash, but something doesn't work as expected)
  • Performance (app starts/reacts slowly)

Afterwards, try to find out more details. Most important: Try to find a way to reproduce the issue.

If you can't describe the steps to trigger the issue, it will be very hard for the developer to understand what's going on and verify that potential fixes actually work. Reproducibility is also helpful to get more detailed information and logs later on.

Make sure the issue is actually caused by Xposed

Once you have identified a possible bug, you probably want to get it fixed.

Wait - maybe it has been fixed already, so ensure that you're using the latest version of Xposed and your modules. In rare cases, clearing the Dalvik cache can also be helpful.

The worst possiblity would be to post "it doesn't work!" in various places. With such little information, you're wasting the time of contributors who would be willing to help you (if you justed gave them a chance to do so), you might get some angry replies, the bug report won't reach those who could be able to fix it (because developers don't have the time to check the whole internet for bugs) and your bug won't get fixed. Nobody wins.

Fixing bugs is usually about narrowing down the issue, finally to a few lines in the code, and then adjusting the code. Although all of this sounds like a developer's tasks, your help is very crucial for the "narrowing down" part.

Therefore, it's essential that you try to reproduce the issue with all modules disabled. It's not necessary to uninstall them, just uncheck them in the Xposed Installer app and reboot. If the issue disappears, DO NOT report it as a bug in the Xposed Framework. Instead, enable the modules again one-by-one to find out which module is the culprit. Once you think you've found it, deactivate all other modules again to verify your theory. The following information on this page might still be useful for a good bug report to the module developer.

If the issue persists even without any active modules, please try to reproduce the issue after uninstalling Xposed. Chances are that Xposed isn't involved, and it would be a waste of time to report and investigate a "bug" in Xposed that's caused by something else.

You can (and should) install Xposed again afterwards.

Do others have the same issue?

OK, so you probably found a bug in Xposed. The next step is to find out if you others have already reported it.

For the Xposed Framework, you should search on XDA and GitHub.
For modules, there's usually a support URL mentioned in the module repository. This might be an XDA thread, a GitHub issue queue or similar.

If the issue is already reported, check if you can add further information (see below). If not, please don't post a simple "me too", as that makes it harder for everyone to find relevant information. You might use features like the "Thanks" button on XDA and the reactions on GitHub as an unintrusive way to show the developers that there are multiple people waiting for a solution.

What if somebody tells me to use an older version?

You can try that as a work-around, it's actually helpful to known which version broke a certain functionality. However, you should still report the bug to give the developers a chance to fix it. Only then, the latest version will be the greatest version again and you can profit from other improvements made in newer versions.

Creating a new bug report

If you're the first one to notice the issue, please open a new bug report.

For bugs in Xposed modules, please use the module's support URL. Don't bother to report them in any of the places mentioned below, we can't help you.

For bugs in the Xposed Framework, the one and only place to report them is GitHub. I (rovo89) don't have the time to check other places (e.g. XDA) for usually very vague bug reports, I'll only look at proper bug reports on GitHub. Bug reports via the contact form on repo.xposed.info are ignored as well.

As the framework consists of several parts, there are multiple issue queues. As an end-user, it's hard to define which one to use, so here are some hints:

It's OK if you can't find the right category, as long as you provide all the relevant information.

You can browse and search these queues without registration. In order to create a new issue, you'll need a free GitHub account.

Which information should I include in a bug report?

You should always include the following information:

  • Device (vendor and model)
  • ROM
  • Xposed version
  • Detailed description of the issue (including exact error messages if applicable)
  • Things you have already tried to resolve it
  • Steps to reproduce
  • Logs

Don't let the developers guess. The more details you provide, the higher the chance that the issue will be fixed soon.

How can I get logs?

Good question! You might have noticed that you can see logs in the Xposed Installer. These should be sufficient when you want to report an issue with a module to its developer (or if you're the module developer yourself). It mainly shows issues in the execution of modules. You can export it via the Xposed Installer app, or find it in /data/data/de.robv.android.xposed.installer/log/. There's also second log from the previous boot in the same location.

The Xposed logs are usually not sufficient for boot loops and app crashes. In those cases you'll need to provide a logcat. There are four ways to get a logcat:

  • via a logcat app
    There are apps like CatLog which let you easily take a logcat. However, there's usually two problems: The apps only work when the system boots properly, and the system stores only a certain amount of log lines. Once that limit is reached, older lines are overwritten. If the root cause is in the boot process, the app might no longer see the relevant lines. It might be sufficient to capture app crashes though.
  • via adb
    This requires that you have adb set up on your PC and connected the device via USB. Assuming you're experiencing a boot loop or system crashes, turn off the device and execute adb logcat -v time > logcat.txt in command line window. Then turn on the device and wait a few minutes. Then press Ctrl + C in the command line window to stop capturing. If you're just having issues with an app, it's enough to execute the logcat command, reproduce the issue and then press Ctrl + C.
    The good thing is that this way doesn't require root access or a custom recovery.
  • via Xposed
    Starting with version 85, Xposed has an option to write the complete logcat to the Xposed logs. To activate it, create an empty file called /data/data/de.robv.android.xposed.installer/conf/log_all (e.g. using adb shell, su, touch /data/data/de.robv.android.xposed.installer/conf/log_all). Once the logs have been written, you can fetch them from the location mentioned above, either in the recovery or after flashing the Xposed uninstaller.
  • via LiveBoot
    ChainFire's LiveBoot app has an option to persist logs to the /cache partition. It requires SuperSU to be installed and working.

Once you have the logs, please upload them somewhere, e.g. to Pastebin, Google Drive, ... and just include a link in your bug report. Please don't try to paste the whole log into the bug report itself.

What should I do after reporting the bug?

Be patient, give the developers some time to look at it. Avoid bumping, it's just annoying.

Even when you include all the information mentioned above, further clarification might be required, so please reply to the developers' questions. If they provide a test version, please be so kind and provide feedback whether it solves the issue. If it doesn't, it's usually good to post a new logcat.

Finally, the bug you reported will hopefully be fixed and released with the next official version. It's recommended that you install it over the test version, following the principle of always using the latest version.