I have a few questions about normal devices (non-x86) and x86 devices:

  1. Why, sometimes, an app that isn't designed for x86 devices works, but sometimes it just crashes when starting them?
  2. I've seen a lot of rooting apps (e.g. Xmodgames) that don't support x86. Why is that?

1 Answer 1


The answer for questions 1 and 2 is that some apps on Android are compiled purely in Java/Dalvik bytecode, and others are compiled as native C/C++. Since Dalvik bytecode is not native, it has separate interpreters for different architectures. However, since C/C++ native apps and libraries are compiled for a specific architecture, they can be run only on the specific architecture.

Since most of the rooting apps use exploits of the Android system, they need to be compiled in C. This prevents them from being universally used, and require them to be recompiled for each architecture.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .