rovo89 / android_art

Android ART with modifications for the Xposed framework.
Other
371 stars 211 forks source link

How to build? #5

Closed sorgelig closed 9 years ago

sorgelig commented 9 years ago

Can you give a short instructions about what to build from AOSP for Xposed?

I want to build it for x86 device because i don't think i can see pre-built xposed version for x86 anytime soon. Thus i want to test current alpha by myself.

I've downloaded source code of AOSP 5.0.0.r7 (Zenfone 2 kernel instruction asks me to use this version). I've downloaded https://github.com/rovo89/Xposed -> framework/base/cmds/xposed and https://github.com/rovo89/android_art -> art.

Can you give a list of binaries (for make command) i have to build? Since, Zenfone 2 has locked bootloader, i cannot use custom recovery. I only can create system.img image with all required files and then flash it (as i did to have superuser). So, can you tell what binaries/libraries i have to replace/rename to properly inject xposed?

sorgelig commented 9 years ago

Ok, i've managed to build xposed binaries/libraries. to build all required binaries and libraries i've issued this command:

make xposed dex2oat oatdump patchoat libxposed_art

am i correct?

It looks like working. I've tested on first found generic Lollipop Xposed module: Battery History XXL. Now I see more than 10 apps in battery history.

There was some minor issue i had to "fix" before i could boot: in build.prop of Zenfone 2 following features are used:

dalvik.vm.isa.x86.features=sse4_2,aes_in,popcnt,movbe 

Xposed(and AOSP as well) version of ART doesn't like these features. So, i had to simply add ignore code for them.

Also dex2opt doesn't like option --compiler-filter=O2. I'm not sure exact meaning of O2, so i've assigned it to --compiler-filter=speed because speed is always not enough :)

After disablingsse4_2,aes_in,popcnt,movbe i start to feel some slowdown of my device. Not much. Is there a source code of ART for x86 supporting these features?

rovo89 commented 9 years ago

Checkout https://github.com/rovo89/XposedTools for build instructions and scripts. The installation script is located here: https://github.com/rovo89/XposedTools/blob/master/zipstatic/META-INF/com/google/android/update-binary Your command seems to be ok (considering that dependencies are compiled automatically), but if you have more than one core, make sure that TARGET_CPU_SMP=true is set.

For the other two issues (unknown features, compiler filter), please open separate issues. I can't answer to them ad-hoc, but maybe someone else knows more about this. Any error messages and your fix/workaround could be helpful.