FORUMS
Remove All Ads from XDA

[4.4/4.4.x][PATCH] Qualcomm-optimized Dalvik & Bionic libraries

1,342 posts
Thanks Meter: 1,536
 
By AlkaliV2, Senior Member on 14th December 2013, 11:36 AM
Post Reply Email Thread
UPDATE:
For those who are still giving this a try there seems to be incompatibility with all ROMs that have switched to Unified build. The CM11 patch was intended to fix it, but I've not had a successful boot with the CM11 patch and any d2 unified builds. This may still work on certain ROMs that did not create unified builds based on CM, but otherwise this is likely obsolete. I will post an update if this is resolved through a workable patch!


Qualcomm-Optimized Dalvik Libraries for Faster Overall Dalvik Performance!


Everyone is talking about ART on 4.4 right now and once it is made final I imagine it is going to be a very impressive run-time...

It isn't here yet though and thanks to kszaq over in the Nexus 4 forums we have a Qualcomm-Optimized Dalvik library that is compatible with the S3 and improves performance of the Dalvik Cache on our phones!

I stumbled across this information in the Verizon S4 thread here which shows the benchmark improvements on the S4 and I figured, "why not our phone?" So I grabbed the 4.4.1 Gummy Rom and got to flashing. I did a scoring run in AnTuTu before and after and saw an increase of 500 points in the dalvik testing section.

In his FAQ he mentions that if you are on CM11 4.4.x, or something based on that build, that it may have an improved bionic library installed and it isn't necessary to flash it. Having said that I flashed both files and saw a performance gain. Try it on your 4.4 set-ups and let us know what works best. At the very least we can fill this thread with synthetic benchmark pics!

Bottom-line


Flash these files and enjoy the responsiveness boost (4.4 and 4.4.x only)

How to install:


1.) Read the Q&A below!
2.) Copy both files (optimized-bionic and optimized dalvik) to your internal or external SD
3.) Reboot into recovery and make a nandroid (always!)
4.)flash optimized-dalvik (optimized-bionic is optional)
5.) Wipe Dalvik Cache in the Advanced menu of CWM and PhilZ (thanks CNexus!)
6.) Reboot and enjoy!


Note: If you get to the point where the phone won't boot just use the restore file (KOT49E) first and if it still fails to boot restore your nandroid.


Here is the original thread and please thank kszaq while you are there: http://forum.xda-developers.com/show....php?t=2546120


Here is the Q&A that kszaq set-up on his post:

Quote:

Before using, please read the following Q&A.

Q: Will this void my warranty?
A: Yes. Flash at your own risk.

Q: Can I use it?
A: Yes, if you're on any 4.4/4.4.x ROM.

Q: How does this work?
A: This patch consists of two files that include optimized bionic and Dalvik libraries for any KitKat ROM.

Q: What is bionic?
A: It is a vital system library that provides i.a. basic math and memory access functions to every other library and application in Android.

Q: What is Dalvik?
A: In short, Dalvik is a virtual machine in which every not-native-code app runs. You can read more about it in a Wikipedia article.

Q: How do I benefit from this patch?
A: In two ways: bionic patch provides faster memory access and optimized some of the math operations, dalvik provides optimized Dalvik Virtual Machine library that allows faster code execution.

Q: Do I need this patch?
A: It depends on what ROM you are using:

Quote:

Originally Posted by xboxfanj
if you're on stock ROM, you'll benefit from flashing both bionic and dalvik patches, if you're using a custom ROM, you most probably don't need bionic patch, as these are already included in most custom ROMs. You'd benefit only from flashing dalvik patch (if it's not already included by your ROM maintainer, of course), don't use the bionic patch on CyanogenMod, PSX and probably others, because they already have more optimized versions!

Q: Why aren't these patches included in stock ROM?
A: As for bionic - I don't know. Maybe that's because Google didn't want to include vendor-specific optimizations in AOSP or maybe simply because Qualcomm never posted them in Android Code Review to be merged. As for dalvik - because they are closed-source. Here'a a good explanation by @xboxfanj:
Quote:
Quote:

Originally Posted by xboxfanj
Part of the point of Nexus devices is that AOSP can produce nearly identical images minus GApps. Google would not use a proprietary dalvik as that is one of the core libraries. Using a proprietary dalvik would undermine AOSP. Although, an open libqc-dalvik or even just giving us that binary would be nice. Google could have a device specific extension similar to the adreno extensions onto renderscript and egl for dalvik. Proprietary dalvik won't happen, but an adreno extension could be cool.

Q: Where do these patches come from?
A: These have been authored by Qualcomm. Bionic patch comes from Code Aurora Forum, Dalvik library has been extracted from Moto X 4.4. ROM. Another good read by @xboxfanj:

Quote:

Originally Posted by xboxfanj
CAF has all Qualcomm's bionic patches and slight dalvik tweaks, however, the dalvik patches that are used here in the Moto X and any QCOM (non-Nexus) device, are mostly closed source. If you look at the change here: https://www.codeaurora.org/cgit/quic...739455dfd3cf57

You will see that most of that change is supporting other libraries (libqc-opt and libqc-dalvik), which is where their optimizations are. Unfortunately, both of those are closed source. libqc-opt is included in QCOM ROM zips as a shared library, so we can use that, however, libqc-dalvik is a static library, so we can't pull that from anywhere, as it is included in the libraries themselves and not put in system. This means that our only option to get all of Qualcomm's dalvik optimizations is to use their binaries rather than building from source, since building from source would mean missing any optimizations brought by libqc-dalvik, libqc-sqlite, and libqc-skia (the last two haven't been included in any patch, but are QCOM static libraries).

TLDR: QCOM's dalvik optimizations are closed source, so we are forced to use their binaries.
Remember to thank @xboxfanj for his very useful posts!

Q: What is the reason for including installd file?
A: The installd binary is from stock Nexus 4 ROM and is included for compatibility with CyanogenMod and CM-based ROMs. This is because CyanogenMod changed installd to work with their dexopt-on-cache (see here: https://github.com/CyanogenMod/andro.../cmds/installd) and it you don't flash stock installd you'd get hundreds of FCs and unusable ROM.

Q: How do I use this patch?

A: Simple flash it over your current ROM in recovery. Remember to wipe Dalvik Cache after flashing. Full wipe is not needed.

Q: How do I revert?
A: Simply flash over your current ROM and wipe Dalvik Cache afterwards. Full wipe is not needed.

Q: Can I flash it over an ODEXed ROM?
A: Yes, but it is strongly recommended to use a deodexed ROM if you want to use Dalvik patch.

Q: How will this affect my battery life?
A: It will be at least the same, if not better. Better performance = less CPU time spent on calculations = better battery life.

Q: I don't see any performance gains in some app, why is that?
A: The dalvik patch doesn't affect apps that use native libraries, i.e. you won't see much performance gain in Chrome etc.

Q: I'm on X kernel, can I use it?
A: Yes, use it with any kernel you like.

Q: Can I use it on other devices?
A: Yes, you can use this patch on every Krait device that uses AOSP-based ROM (examples: Nexus 5, Nexus 7 2013). Don't flash it on stock ROM on non-Nexus devices, as they already include these optimizations (that includes Galaxy S4 and HTC One Google Play editions!).

Q: What if I use it on stock ROM and OTA arrives? Can I install the OTA straight away?
A: You can't. You have to revert to stock libraries first. Keep in mind that every modification to stock ROM can mean problems when installing an OTA. You should revert to fully stock ROM to properly apply an OTA. For your courtesy, there's a revert ZIP attached for KRT15S and KOT49E ROMs. Remember that the safest way it to flash system.img from a factory image before applying an OTA once you made modifications to your /system partition!

Q: Can I use these patches on 4.4.1/4.4.2 stock ROM (KOT49E/KOT49H)?
A: Yes, you can.

Q: Can I use ART with this patch installed?
A: Yes, but you won't see any performance gains. In fact, with this patch Dalvik is faster than ART. I suppose ART will supersede Dalvik in performance in the future, but not yet.

Q: Where can I see some benchmark results before I flash?
A: Head over to Nexus 4 Benchmarks thread.

Q: Do I need to be rooted to flash this?
A: No. The only thing you need is custom recovery (CWM, TWRP etc.).

Q: Do I have to flash these patches every time I install an update/new ROM?
A: Yes.

KOT49E revert ZIP == KOT49H revert ZIP

Thanks to:
kszaq for the files and the spectacular Q&A
Xboxfanj for his contribution to the Q&A
prsterero for trying it on his S4 first
Google for taking a company name and turning it into common household verb...and for the awesome library files that were on their device
and I want to thank everyone who takes the time to develop on XDA. All of you make our devices do amazing things

I am limited to 8 thanks a day, but rest assured I will meet my quota!
Attached Files
File Type: zip 4.4_qc-optimized_bionic.zip - [Click for QR Code] (366.4 KB, 704 views)
File Type: zip 4.4_qc-optimized_dalvik.zip - [Click for QR Code] (572.4 KB, 951 views)
File Type: zip KOT49E_stock_revert.zip - [Click for QR Code] (768.5 KB, 231 views)
File Type: zip KRT16S_stock_revert.zip - [Click for QR Code] (764.6 KB, 105 views)
The Following 24 Users Say Thank You to AlkaliV2 For This Useful Post: [ View ] Gift AlkaliV2 Ad-Free
14th December 2013, 09:48 PM |#2  
AlkaliV2's Avatar
OP Senior Member
Flag ¯\_(ツ)_/¯
Thanks Meter: 1,536
 
More
I thought I would post some before and after stats from my device and see how they compare. I used Vellamo because it is optimized for Qualcomm processors and Android 4.4! So I ran the Metal Test to see if I get improvement in both categories. I also ran quadrant to see if it would reflect the same score increases. My test setup is Gummy Rom Nightly 12-14-13 4.4.2 w/ leankernel 9.0 Beta. Not overclocked and running interactiveX governor.

No Dalvik Optimization
Vellamo Metal Test: 630
Quadrant Benchmark: 5039

Only Optimized-Dalvik Flashed
Vellamo Metal: 623
Quadrant: 6365

Optimized Dalvik and Bionic Libraries Flashed
Vellamo Metal: 598
Quadrant: 6119

So it seems as far as Vellamo is concerned dalvik upgrade doesn't matter too much to the processor tests. However, the bionic library does make an impact as seen in the last test. Quadrant however showed marked improvement in a full benchmark run and I personally saw a loss in performance with the bionic libraries flashed. So on my device and setup I am going to run Optimized-dalvik only because the responsive seems to be higher overall.

I personally wanted to make sure it wasn't a placebo effect so here is the way I tested improvement you can see. On a clean install I would turn off the screen, turn it back on and then swipe left to get to the Google Now screen. Before flashing any of the optimized dalvik files I could see a small stutter as it would bring up the page. After I flashed optimized dalvik the small lag went away. That is how I am verifying it and mostly the phone seems smoother overall, especially with third party apps.

These were my results on one rom nightly and a specific kernel. If you get awesome results please let us know!
Attached Thumbnails
Click image for larger version

Name:	metalbreakdown.png
Views:	956
Size:	172.0 KB
ID:	2454844   Click image for larger version

Name:	metalscore.jpg
Views:	973
Size:	89.9 KB
ID:	2454845   Click image for larger version

Name:	Quadrant.png
Views:	1052
Size:	103.5 KB
ID:	2454846  
The Following User Says Thank You to AlkaliV2 For This Useful Post: [ View ] Gift AlkaliV2 Ad-Free
14th December 2013, 11:57 PM |#3  
bthorne79's Avatar
Senior Member
Flag ChuckTown
Thanks Meter: 3,504
 
Donate to Me
More
So did xboxfanj have his hands in this

Sent from my SPH-L710 using Tapatalk
15th December 2013, 02:00 AM |#4  
AlkaliV2's Avatar
OP Senior Member
Flag ¯\_(ツ)_/¯
Thanks Meter: 1,536
 
More
Quote:
Originally Posted by bthorne79

So did xboxfanj have his hands in this

Sent from my SPH-L710 using Tapatalk

My guess is yes. kszaq thanked him for his useful posts in the original thread and so I wanted to make sure I thanked him in mine. If I missed credit anywhere let me know and I'll edit it ASAP.
15th December 2013, 02:58 AM |#5  
bthorne79's Avatar
Senior Member
Flag ChuckTown
Thanks Meter: 3,504
 
Donate to Me
More
I'll give it a go I xboxfanj is a boss

Sent from my SPH-L710 using Tapatalk

---------- Post added at 08:58 PM ---------- Previous post was at 08:38 PM ----------


I can handle that gave me 1500 more

Sent from my SPH-L710 using Tapatalk
The Following 2 Users Say Thank You to bthorne79 For This Useful Post: [ View ] Gift bthorne79 Ad-Free
15th December 2013, 09:46 PM |#6  
Member
Thanks Meter: 5
 
More
Unhappy the bionic killed my S3
after flashing the bionic tweak , all I can see is the samsung logo and i get black screen.
15th December 2013, 11:04 PM |#7  
AlkaliV2's Avatar
OP Senior Member
Flag ¯\_(ツ)_/¯
Thanks Meter: 1,536
 
More
Quote:
Originally Posted by kayiman74

after flashing the bionic tweak , all I can see is the samsung logo and i get black screen.

depending on the custom rom you are using it may not play nicely if you try to change up the bionic math libraries. Did you nandroid restore and just flash the Dalvik?


Edit: I don't know why I forgot, but with the restore files you can flash the KOT49E from recovery and it will put both back to stock. Depending on the recovery you can push the files to your SD card without having to boot into your ROM. I can't tell you how because I don't know what recovery you use, but it would restore your phone back to the original libraries so you could just flash Dalvik.

Also keep in mind, you absolutely have to wipe Dalvik cache when you flash either or both of these files.
The Following User Says Thank You to AlkaliV2 For This Useful Post: [ View ] Gift AlkaliV2 Ad-Free
15th December 2013, 11:14 PM |#8  
AlkaliV2's Avatar
OP Senior Member
Flag ¯\_(ツ)_/¯
Thanks Meter: 1,536
 
More
Quote:
Originally Posted by bthorne79

I'll give it a go I xboxfanj is a boss

Sent from my SPH-L710 using Tapatalk[COLOR="Silver"]

I can handle that gave me 1500 more

Sent from my SPH-L710 using Tapatalk

You scored about the same as a quad-core LG Optimus G in Quadrant at 7K and you actually blew by the Sprint Note 2 which scores a 6k and the Note 2 can't use these libraries to boost it's score. At least I don't think they can since it is an Exynos processor.
16th December 2013, 12:03 AM |#9  
ksmullins88's Avatar
Senior Member
Flag Detroit, MI
Thanks Meter: 1,216
 
Donate to Me
More
Not bad :thumbup:

Sent from my SPH-L710 using xda app-developers app
Attached Thumbnails
Click image for larger version

Name:	uploadfromtaptalk1387148612224.jpg
Views:	520
Size:	58.2 KB
ID:	2456864  
16th December 2013, 12:11 AM |#10  
bthorne79's Avatar
Senior Member
Flag ChuckTown
Thanks Meter: 3,504
 
Donate to Me
More
Gummy 12/15
Before and after. Flash of course the low number is before and stock kernel settings both

Sent from my SPH-L710 using xda app-developers app
Edit first one was still gummy but not 12/15 sorry just seen that
Attached Thumbnails
Click image for larger version

Name:	uploadfromtaptalk1387149011384.jpg
Views:	571
Size:	61.9 KB
ID:	2456888   Click image for larger version

Name:	uploadfromtaptalk1387149028544.jpg
Views:	565
Size:	62.9 KB
ID:	2456889  
16th December 2013, 05:50 AM |#11  
AlkaliV2's Avatar
OP Senior Member
Flag ¯\_(ツ)_/¯
Thanks Meter: 1,536
 
More
Alright I need the two of you to stop holding out because I can't even break 6700 and I'm OC stable at 1.7Ghz on Leankernel 9.0 on Gummy 12/15. I want to be in the 7000 range
Post Reply Subscribe to Thread

Tags
cache, dalvik, galaxy s3, optimized dalvik & bionic libraries, responsiveness

Guest Quick Reply (no urls or BBcode)
Message:
Previous Thread Next Thread
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes