[Kernel] (ver 041) Mako KK 4.4 (UV/OTG/CPU/GPU OC/Hybrid Linux 3.4+) [08-02-14]

Search This thread

aventu

Senior Member
Apr 17, 2011
413
786
Can someone explain to me what exactly snake charmer does.

Sent from my Nexus 4 using xda premium

when deactivated the max MHz will only change for core0, but not for core 1-3. So you get something like this for max 1,4GHz at 100% clock:

0: 1,4GHz 1: 1,5GHz 2: 1,5GHz 3: 1,5GHz

Please correct me if I'm wrong.
 
Last edited:

Carter07

Senior Member
Nov 10, 2012
177
35
Brian Klug from AnandTech just posted this on his twitter..

could maybe be a help for faux? :

I took a look at them. Throttling is different in Droid Dna because:

1) It is not based entirely on battery sensor but on multiple sensors (maybe placed in cpu/gpu)
2) gpu can be throttled up to 325mhz, it never reachs 200mhz as nexus 4
3) cpu frequency can be lowered more than nexus 4 (up to 384mhz) but with extreme high temperature

Don't copy and paste them to nexus 4 because they won't work.
 
Last edited:

ExMM

Senior Member
Jul 3, 2010
698
98
Japan
Same here -175mv and so far so good.

Update: I have noticed that UV stick on boot even if I didn't enable "set on boot", and now I have a little lag with the same settings as before (384min/1.134max), Eco mode on.

Sent from my Nexus 4 using xda premium
 
Last edited:

joey3002

Senior Member
Mar 27, 2009
1,126
74
Can anyone share their settings they are using in faux's app that seem to offer best battery life? I would love to see screenshots as for a few of them, I am lost..
thanks
 

mzanette

Senior Member
Sep 19, 2012
164
30
Richmond Hill
I keep setting the max CPU to 1.35 but after a while I'll go back into the app and it's back up to 1.5.

UV stays at -175mV and I have eco-mode on. Also I selected intellidemand for the governor

So 1.35 doesn't seem to "stick" for me


Sent from my Nexus 4 using xda app-developers app
 

Razer(x)

Senior Member
Sep 2, 2010
7,242
4,711
Bologna
www.infinitum-project.com
Same here -175mv and so far so good.

Update: I have noticed that UV stick on boot even if I didn't enable "set on boot", and now I have a little lag with the same settings as before (384min/1.134max), Eco mode on.

Sent from my Nexus 4 using xda premium

I told this to faux becase i got two bootlop because of that
 
Last edited:
  • Like
Reactions: ExMM

quattro_rs

Senior Member
Jun 21, 2008
235
17
after flashing the 003kernel and playing with the settings from your app (just UV -100 and UC to 1.2) i wanted to test if my setting will stick so i rebooted my phone and im now stuck on the Nexus logo !!!
what i tried:
- wipe cache and Dalvik Cache and reboot .no luck
- wipe cache and Dalvik Cache then flashed 003kernel .no luck

any help appreciated
 

jra89027

Senior Member
Oct 17, 2010
181
1
battery life

has anyone gotten improved battery life? i would love to see screenshots of what you guys may be doing? thanks everyone . and one question does this kernel, negate the fact that because of project butter, anytime you touch the screen it hikes the cpu to 1026mhz? waking the cpu like that, although for performance is great, has to kill the battery, im using the matrix kernel, and someone posted on there, that faux kernel negates that, which would be awesome. i am more concerned about battery life. i use set cpu to set max to 1026mhz and it runs just fine for me. thanks guys i appreciate all your help, and faux thank you for always making awesome kernels, ive used yours in almost all my previous devices.
 

ExMM

Senior Member
Jul 3, 2010
698
98
Japan
I keep setting the max CPU to 1.35 but after a while I'll go back into the app and it's back up to 1.5.

UV stays at -175mV and I have eco-mode on. Also I selected intellidemand for the governor

So 1.35 doesn't seem to "stick" for me


Same here, but you can try to limit the LMF Max Freq to the clock you want and press apply. It does work for me.

Sent from my Nexus 4 using xda premium
 

Seferi

Senior Member
Sep 16, 2011
383
91
after flashing the 003kernel and playing with the settings from your app (just UV -100 and UC to 1.2) i wanted to test if my setting will stick so i rebooted my phone and im now stuck on the Nexus logo !!!
what i tried:
- wipe cache and Dalvik Cache and reboot .no luck
- wipe cache and Dalvik Cache then flashed 003kernel .no luck

any help appreciated

Try flashing reset kernel or just flash the rom on top. That should fix it..

Sent from my Nexus 4 using xda premium
 

Somairotevoli

Senior Member
May 31, 2011
989
255
after flashing the 003kernel and playing with the settings from your app (just UV -100 and UC to 1.2) i wanted to test if my setting will stick so i rebooted my phone and im now stuck on the Nexus logo !!!
what i tried:
- wipe cache and Dalvik Cache and reboot .no luck
- wipe cache and Dalvik Cache then flashed 003kernel .no luck

any help appreciated

If you're using twrp, use the built in file manager. Navigate to /data/data and delete com.teamkang.fauxclock folder.

Sent from my Nexus 4 using Xparent ICS Tapatalk 2
 

quattro_rs

Senior Member
Jun 21, 2008
235
17
You don't have a rom zip in the memory? Just reboot to recovery and flash that on top. Or restore a backup..

Sent from my Nexus 4 using xda premium

unfortunately i have no backups nor a .zip rom in SD , im on stuck JB rom only rooted ....
If you're using twrp, use the built in file manager. Navigate to /data/data and delete com.teamkang.fauxclock folder.

Sent from my Nexus 4 using Xparent ICS Tapatalk 2
i have the regular clockworkmod recovery and ther is no file manager :( .


is there any way i can access the phone's SD from my PC to extract my stuff ?
 
Last edited:

bongostl

Senior Member
Apr 28, 2010
1,111
569
Could someone explain mpdecision? I've googled to no success.....

Sent from my Nexus 4 using Tapatalk 2
 

sideeffects

Senior Member
Dec 23, 2010
169
28
unfortunately i have no backups nor a .zip rom in SD , im on stuck JB rom only rooted ....

i have to regular clockworkmod recovery and ther is no file manager :( .


is there any way i can access the phone's SD from my PC to extract my stuff ?

1. You can use sideload from within clockworkmod. IN CWM menu select install from sideload.
2. Connect USB from phone to PC and using command prompt change directory to where adb is installed. (see 4)
3. I use Google Nexus 4 ToolKit Which installs adb to C:\Google Nexus 4 ToolKit
4. Windows Command prompt as administrator type "CD C:\Google Nexus 4 ToolKit"
5. in command box type "adb-toolkit sideload nameofzip.zip"

It will flash the Kernel or ROM you require.
Edit- Or just use Google Nexus toolkit to install TWRP kernel for file manager :)
 
Last edited:

quattro_rs

Senior Member
Jun 21, 2008
235
17
1. You can use sideload from within clockworkmod. IN CWM menu select install from sideload.
2. Connect USB from phone to PC and using command prompt change directory to where adb is installed. (see 4)
3. I use Google Nexus 4 ToolKit Which installs adb to C:\Google Nexus 4 ToolKit
4. Windows Command prompt as administrator type "CD C:\Google Nexus 4 ToolKit"
5. in command box type "adb-toolkit sideload nameofzip.zip"

It will flash the Kernel or ROM you require.
Edit- Or just use Google Nexus toolkit to install TWRP kernel for file manager :)

ok i managed to flash 001kernel using sideload but now im stuck in google screen "with the unlock symbol !!!!
can you please tell me how to install TWRP from the toolkit ?
 

Top Liked Posts

  • There are no posts matching your filters.
  • 990
    NOTICE: This is COMPATIBLE with ALL Google Rooted Stock and Custom ROMs based on JellyBean 4.2!

    Just a statement regarding kernel source: The Kernel Source is of course covered under GPL version 2. Free software does NOT mean no work or time was spent working on it. I have donated a large sum of my free time to hack this kernel. If you use my modified kernel source in parts or in its entirety, I kindly ask you mention its origins and to send me a github pull request or PM whenever you find bugs or think you can help improve my kernel hack further. This way the entire community will truly benefit from the spirit of open source. Thank you ![/b][/center]

    Hi XDA members and fellow Nexus users:

    This is my twenty-third kernel hack. I want to thank T0dbld, Turl and rest of my teammates, and several others I cannot recall for inspiring me to venture into this unfamiliar territory for me.

    What is a Kernel? The Kernel is the Foundation in which everything else builds upon in any software system.
    [Car Analogy]: Kernel is like the Engine, Electrical system and the Transmission to a car. The Library, Framework and the Apps [AKA ROM] are the body frame and the rest of the Car.


    THIS KERNEL is BASED ON Google Source Code. So it is COMPATIBLE WITH ALL AOSP JB 4.2 Builds.

    DO NOT use any task killers, they DO NOT improve performance nor battery life. They INTERFERE with your phone's stability (more crashes) and App compatibility (Forced Close).


    Kernel Features:

    So what type of kernel is this? Well, this kernel is based on Linux 3.4.y (says so from the version string)
    Features in Magenta are identical as the latest Linux 3.4+

    Memory Management subsystem:
    Init:
    Core Kernel:
    *** RCU:
    *** Scheduler:
    Power Management:
    File System:
    Block I/O:
    Kernel Features:
    Device Drivers:
    Library Support:

    Installation Instructions:

    Change Log => Change Log

    Beta 4.4 Kernel => Beta kernel

    Mainline 4.4 Kernel => mako kernel <== (Stock CPU frequencies, Stock GPU frequencies 400MHz)

    Ultimate 4.4 Kernel => mako kernel <== (CPU frequencies up to 1.8 GHz, GPU frequencies up to 450 MHz)


    Deprecated JELLYBEAN kernels:

    Stock Plus Change Log => Change Log
    JWR Stock Plus Kernel => http://faux.romhost.me/mako/sp/mako-SP-JB43-JWR_r2.zip
    JSS Stock Plus Kernel => http://faux.romhost.me/mako/sp/mako-SP-JB43-JSS_r2.zip


    Mirrors ;) http://androidhosting.org/Devs/Faux/

    Here's a step by step instruction to install this kernel:

    1. download the above file (via phone directly or to a PC)
    2. copy the downloaded zip file to /sdcard/download/
    3. Open ROM Manager and select "Reboot into Recovery" and select "OK"
    4. Once in recovery, select "wipe cache partition", select "Yes", then select "advanced", then select "Wipe Dalvik Cache", then select "Yes" again. Once finished, click the back button to go back to the main recovery menu. On that menu, select "Install Zip From SDCad", then select "Choose zip from SDCard", then go to /sdcard/download and select the downloaded zip file and let it run its script.
    5. Once the script is done, select "reboot system now"

    Note: After FLASHING, the first reboot may take longer than usual, please be patient... After the first reboot, it may lag during initial load (let everything finish loading). Once everything is loaded and phone is ready for use, reboot the phone a 2nd time and the lag will be gone and everything should be silky smooth...


    [ Advanced Users: ]

    [ Optional: ]

    If you encountered any funny / weird / strange issues coming from other than 100% pure stock ROMs or my kernels, the following "Reset Kernel" will restore the kernel to its Original Stock Settings.
    After applying the reset kernel, then load my latest kernel again.


    *** JellyBean -- RESET KERNEL (FOR STOCK BASED ROM ONLY. FORC CM SIMPLY REFLASH THE LATEST NIGHTLY, then FLASH my KERNEL AFTERWARDS) ***

    JellyBean 4.2.x Reset kernel for STOCK ROMs ONLY (Cyanogenmod, simply reflash nightly again to reset)

    *** 4.2.2 ***
    http://faux.romhost.me/mako/mako_422_reset_kernel.zip

    *** 4.2.1 ***
    http://faux.romhost.me/mako/mako_421_reset_kernel.zip

    Tmobile LTE Hybrid Modem hack:

    http://xdaforums.com/showpost.php?p=43926154&postcount=12988


    [ For Kernel Devlopers ONLY: ]

    NEWS BULLETIN:

    Version 029 is OUT!

    (lurking, no more open betas :()!


    Please don't hesitate to talk among yourselves and help each other out... The XDA community is what inspired me to hack kernels for everyone since everyone here is nice and helpful to each other... Keep helping each other.... Famous proverb: It's better to give than to receive...

    BUGS:

    Not All CHIPS ARE CREATED EQUAL


    TO DO:

    version 0.x.x -- more to come...

    History:

    See Post below...

    Standard Disclaimer: Not responsible for bricking your phone, voiding your warranty, or any other pain or suffering you may feel as result of using this kernel!!!

    My github Complying with GPL and XDA rulez

    Follow me on :

    If you find this Kernel useful, feel free to hit the [Thanks] button below


    429
    FauxClock App recommended Settings"

    CPU Control
    • Max clock - GHz 1.512 GHz for performance, 1.242 GHz for battery
    • Min clock - MHz 384 MHz for both
    • CPU Governor - Intellidemand for performance AND battery
    • mpdecision - Off
    • Snake Charmer - OFF for performance, On for Battery
    • Eco Mode - Off for performance, On for battery
    • Set On Boot - On

    SOC Control
    • Set On Boot - On
    • C0 - On
    • C1 - On
    • C3 - On (Note: N4 AP modem is very sensitive to some of the deeper sleep states, if you experienced Green/Yellow AP Modem Watchdog Bark screens, I recommend disabling C2/C3 states).

    Voltage Control
    • Set On Boot -
    • Global CPU Voltage - mV

    intellidemand gov control
    • Up Threshold - 95 for both
    • Up Threshold Any CPU Load - 85 for both
    • Up Threshold Multi Core - 75 for both
    • Boost Frequency - 1026000 for both
    • Two Phase Freq - 1134000 for both
    • Optimal Freq - 1242000 for both
    • Synchro Freq - 756000 for both
    • Set On Boot - On

    GPU Control
    • GPU Governor - Simple for both
    • GPU Clock - 400 MHz for performance and 320 MHz for battery
    • GPU Vsync Toggle - On for both
    • Set On Boot - On for both

    I/O Scheduler Control
    • I/O Scheduler (eMMC) - FIOPS for both
    • Readhead Size (eMMC) - 2048 for both
    • Set On Boot - On for both

    Misc Control
    • Dynamic File Sync - On for both
    • TCP Congestion Control - Westwood for both

    Vibration Control
    • Set On Boot - On for both
    • Vibration Control - 70 for both

    Screen Color
    • Set On Boot - On for both
    • Factory Presets - LG Presets
    • Color Adjustments - R, G, B 255, 250, 245
    • Gamma Amp Adjust 0 - R, G, B 13, 20, 22
    • Gamma Amp Adjust 1 - R, G, B 0, 2, 3

    Z-Control
    • Set On Boot - On for both
    • ZRAM Disk size - 150~200 Megabytes (or 50 MB when disabled)
    • ZRAM Enable/Disable - Enable if you mult-task often
    • Clear VFS Cache After Boot - On
    • Auto FS Writeback Delay Mode - On
    • Swappiness - 100% if ZRAM enabled, 0% if disabled
    • VFS Cache Pressure - 100% if ZRAM enabled, 150% if disabled
    • Dirty Ratio - 20% for both
    • Dirty Background Ratio - 5% for both

    Above is what I use personally. MAY NOT be optimal for all :fingers-crossed:

    Updated on September 6, 2013
    284
    FAQ:

    1. Why don't my settings "stick" when using FauxClock App?

    #1 issue with settings NOT sticking is superuser Switch to SuperSU should solve 95% of issues
    https://play.google.com/store/apps/...51bGwsMSwxLDEsImV1LmNoYWluZmlyZS5zdXBlcnN1Il0.
    UPDATE: Koush's new Superuser is also compatible with my apps!


    2. Why doesn't my Max frequency settings NOT "stick" when using intellidemand governor with FauxClock App?

    Intellidemand will AUTOMATICALLY UNDERCLOCK when there's a CONSTANT load for greater than 3 minutes. (Load spikes will NOT trigger the auto underclock, only CONSTANT loads). After the load is gone, it will restore back to original Max Clock. Constant load will drain the battery quite quickly, intellidemand governor will detect this behavior and automatically underclock to save more battery without ANY user intervention at all!

    3. Why does the CPU freq slider move when I touch the screen?

    Qualcomm's closed source mpdecision is the culprit. mpdecision raise the minimum CPU frequency to 1.026 GHz to "cheat" or increase UI smoothness. While this is a good idea, it is too aggressive and overkill causing unnecessary battery drains. And because it is closed sourced, it is NOT POSSIBLE to tweak its behaviors. I highly recommend turning off mpdecision when using my kernels in combination with intellidemand/intelli_plug

    4. What is Intelli_plug? How do I use it?

    Intelli_plug is my open source solution to Qualcomm's closed source mpdecision. Intelli_plug is enabled automatically upon boot, so NO need to turn on or off. However, it conflicts with mpdecsion, so I HIGHLY recommend turning off mpdecision when using my kernels! To turn off mpdecision, either use fauxclock app under CPU page or use terminal / init.d script and write "stop mpdecsion"

    5. What is Eco Mode in FauxClock App?

    Eco Mode is a special power savings mode part of the intelli_plug where the kernel automatically reconfigures its decisions in real time and optimizes to use only 2 out of 4 cores. Cores 3 and 4 are turned off completely.

    6. My Gamma/Color settings do NOT stick when I removed FauxClock App from memory!

    FauxClock app MUST be running to retain the colors. This is a limitation of the stock kernel and FauxClock app was designed to overcome this issue, so therefore it has to be running and be in memory (Avoid all Task Killers!!!)

    7. If FauxClock has to be running all the time, does it CAUSE MORE DRAIN?

    NO, FauxClock is a normal behaving app which does NOT HOLD or request ANY wakelocks from Android system. Therefore it does NOT cause any drain at all while running (matter of fact, it's suspended most of the time until it's needed)

    8. What is "SnakeCharmer" ?

    SnakeCharmer is an extension that I created to tame the Qualcomm Krait CPUs. Due to asynchronous SMP cpu design, each CPU can have its own independent min/max frequencies. SnakeCharmer allows you to set a specific max cpu frequency to all cores at the same time, so if you want to UNDERCLOCK your CPUs to a specific frequency, you should enable it under FauxClock.

    9. I enabled "SnakeCharmer" but I occasionally see it still goes to max 1.512 GHz, why?

    SnakeCharmer works flawlessly. FauxClock app is a Java app which runs on top of Linux. Sometimes it gets out of sync with the kernel, so it will display a frequency that's higher than the maximum "SnakeCharmer" frequency. This is a PURE DISPLAY issue with FauxClock App. SnakeCharmer works advertised! (Confirmed using CPUSpy by multiple users).

    10. I have BOTH FauxClock and FauxDisplay apps but I seemed to lost the Screen Adjustment Tab under FauxClock? (Nexus 4 Only)

    FauxDisplay (aka Advanced Gamma Control has full 27 controls unlocked, it supersedes the basic controls provided by FauxClock

    11. What is Turbo Boost and how do I enable it? (Nexus 4 ONLY)

    Turbo Boost is similar to Intel's Turbo Boost for the x86 CPUs. It increase the clock frequencies when 2 or less cores are active. (TB-U allows up to 1.9.44 GHz, TB-M allows up to 1.836 GHz). To enable turbo boost, simply slide the CPU max frequency slider all the way to the right!

    12. Why can't I Undervolt below 600mv?

    Ever since I created the UV interface for Qualcomm phones on 2010, 600mv minimum voltage has been chosen for a reason. There are typically 2~4 different "binnnings" for the same CPU chip (each binning has their own voltage tables) and therefore NOT ALL CHIPS are created equal. The 600mv limit was put through many different tests and was found to be stable ACROSS many many different chips/binnings combinations (No crash or sleep-of-death aka SOD) and it has been proven time and time again to be a good value for minimum voltage value.

    SOC Sleep States demystified! (Corrected for incorrect information thanks for G+ comments!)​

    Often times users using many apps like CPU Spy will say post how much time their phone spent in "deep sleep" and thinking that "deep sleep" is only 1 state, unfortunately, it is WRONG. For many modern CPUs there are several C-States (sleep states), and the term "deep sleep" does NOT correctly describe them all.

    Just like in real life, there are several stages of "sleep", the shallowest sleep is C0 State. As in real life, C0 state is very easy to wake up from with almost NO latency at all (real life will be like grogginess, so C0 is just like when you first doze off but any little distraction will instantly wake you up). The deeper the sleep, the harder it is to wake up from. It takes longer for CPU to re-initialize itself to a waking state (just like real life where once you enter REM sleep, it's very hard to wake up from it).

    For most processors, C3 is the Deepest sleep state. C3 state is ALMOST like turning it off using the absolutely minimum power.

    C0 - Shallowest sleep (dozing off) with instant wake up
    C1 - slightly deeper sleep with slight latency when waking up
    C2 - deeper sleep with longer latency when waking up
    C3 - really deep sleep (like REM sleep in real life) with longest latency when waking up


    My pyramid (Sensation 4G) kernel has Intellidemand Governor 2.0 (Grand daddy of the Mako's Intellidemand governor) where I disabled ALL hotplugging when screen is on (ie, both cores stays ON the WHOLE TIME) but I enabled C2 state for both processors, so even though at first you think it may draw more battery than hotplugging (turning off the core when not using), many of my users have experienced better battery life than with hotplugging (Hotplugging is VERY expensive, the act of turning cores on/off drains battery as well).

    On Nexus 4 (Mako), for some reason, Qualcomm has decided to only allow for C0 state (the shallowest sleep) and so the "deep sleep" isn't really that deep. With my FauxClock app + my kernel, I give you all the "deeper" sleep states so when idling, you phone can experience deeper sleep. There's a hardware bug for Krait processors where the secondary cores, 1~3, cannot achieve deeper sleep state independently, so hotplugging is still necessary to save power for cores 1~3 but for core 0 (and core 0 is the master CPU and it's NEVER hotplugged) being able to go into deeper sleep state will help to conserve more power.

    FauxClock is designed with forward compatibility. With the newer Qualcomm Krait 600/800 series, they have fixed a few of the hardware bugs from the Krait processors, and so for those newer SOCs, you can go into deeper sleep with all cores like the like older 8x60 SOCs.
    177
    DUE TO MY EXTREMELY BUSY SCHEDULE BOTH @ WORK AND @ HOME, I WILL ONLY MAKE MAJOR ANNOUNCEMENTS ONCE PER WEEK
    Open Beta may not be stable and may cause issues with your phone!


    By loading open beta you have agreed to:

    1. To report all random reboots with associated /proc/last_kmsg
    2. To provide feedback on errors or bugs with detail phone information such as ROM, kernel version, and apps
    3. Participate in Forum discussions for the beta software with others without FLAMING each other or post useless information such as:
    a) Phone doesn't boot (without providing any additional information, ROM versions etc)
    B) phone is too hot (without providing any additional information, ie OC freq, UV etc)

    The Open Beta system is designed to have the community help each other and the developers. This way, all potential bugs are flushed out so the final released version will be stable and error free. The more actively you participate in Beta Testing the better the final product will be (you are really helping yourself to create a better community software).

    If you do NOT agree with the statements above, DO NOT load my Open Beta software.



    Kernel 00x Open Beta 0x is now CLOSED!
    112
    Forgive my ignorance, but can you explain what a CAF, or CAF clone means? This is interesting to me.

    I may be wrong, so don't take my word for it. I will attempt to answer.

    CAF is code that isn't in AOSP. It is from Code Aurora (https://www.codeaurora.org/). At first, CM was basing their kernels with AOSP, which made it easier for faux to create kernels for AOSP ROMs. Now that CM is switching to CAF, it makes it harder for faux, since I think not all CAF code is open source (don't quote me on that. I thought I read it somewhere...maybe I read it from faux). AOSP is all open source.

    snip...

    Geek Talk Below:

    CAF == Qualcomm's open source branch.

    CAF's kernel sources are 100% open as required by GPL. Their libraries, however, are under Apache which means you can use them as you see fit, but not all are open (some are strictly as proprietary lib files).

    For ALL NON-Nexus Qualcomm devices, CAF's kernel + libraries will be the closest to AOSP experience (Even Google's AOSP still depends heavily on these proprietary libraries from various vendors including Qualcom/CAF).

    Historically, Qualcomm often creates a separate less optimized version of their proprietary libraries for Google to use on Nexus devices (I guess because Google didn't pay them to be their premium partners like Samsung, HTC and LG), but this didn't stop Google from turning these basic libraries and create amazing experiences on their Nexus devices (HTC's Nexus One, Google's Nexus 4, Google's Nexus 7 2013 and the upcoming Nexus 5).

    So now you know there are two distinct branches of libraries, AOSP and CAF's own version. Although both were created by CAF, but there exist some differences between the two (These differences are what creates bugs when you mix match the libraries and kernel source).

    For reasons unknown, CM has decided to ditch the less optimized libraries and opted for CAF's own libraries for Nexus 7 2013... This created a massive headaches for many novice users and developers. If you load the AOSP kernel on CM ROM, you now have a mismatching kernel / library combination which led to video glitches and broken Slimport on Nexus 7 2013.

    It looks like for Nexus 4, they are slowly doing the same thing by replacing the AOSP libraries with CAF versions... over time, the AOSP kernel will no longer be 100% compatible with CAF based ROM... This will eventually lead to fragmentation of Nexus kernels (just like Nexus 7 2013 :( )

    I am HIGHLY AGAINST this move towards CAF for pure Nexus devices. Nexus devices already work quite well with what's given, and it enjoyed wide compatibility with ALL AOSP derived ROMs. By moving towards using CAF libraries on Nexus devices creates unnecessary FRAGMENTATION and incompatibilities within a Nexus device family!

    Also I am not sure about the legality of using CAF libraries... Basically if you build a ROM based from it, you are redistributing the Qualcomm proprietary blobs and Qualcomm has EXTREMELY strict redistribution clause with their binary blobs (basically they need to grant you explicit permissions) where as AOSP it is less stringent than Qualcomm. Whenever you deal with proprietary libraries in general, you are in the gray area of legality and you have to tread very carefully. (This legal issue was what kept Nexus 7 2013 from releasing their factory images for a while between Qualcomm and Google. This is also what eventually led to JBQ leaving Google).