[INFO] Android 4.3 JSS15J&JSS15Q vs. JWR66V&JWR66Y, Custom Kernels and Graphic Issues

Search This thread

markd0wn

Senior Member
May 24, 2012
350
784
[INFO] Android 4.3 JSS15J&JSS15Q vs. JWR66V&JWR66Y, Custom Kernels and Graphic Issues

So, since this issue pops up often in various threads ever since 4.3 was released, I thought I'd make a thread I could point people to instead of repeating the same explanation over and over.

This has been discussed greatly in various Kernel/ROM development threads and I've been even getting PM's about it so I'll try explaining everything here. Most info is taken from discussions made on CyanogenMod-related threads, Franco kernel thread, thracemerin's WiFi-fix thread, and Google-related sources, so thanks also goes to everyone who participated.

On to business...

Background:

When Google released Android 4.3, it came in a few forms. One is the familiar OTA update zip and factory images. This is what people refer to as 'stock'. The build number for that stock release is JWR66V, also known as Android 4.3r1. This was later updated to JWR66Y (Android 4.3r1.1).

As you all know, Android is open source, which leads us to the Android Open Source Project (AOSP). This is where the source for Android located, and one could build the operating system/kernel (with provided drivers) from scratch and make a working flashable operating system. This is also the 'base' for custom ROMs.

AOSP has newer android revisions - Android 4.3r2.1, build number JSS15J, and Android 4.3r2.2, build number JSS15Q. These builds are newer than 'stock' JWR66V/JWR66Y, but they are official, are made by Google, and are available for anyone to build from scratch, just like JWR66V/JWR66Y. The differences are Google Apps, such as Google+, YouTube, Gmail, etc, which will not be included in an AOSP build, but could be downloaded from the store (or available as a flashable zip) anyway. AOSP also has a different browser while 'stock' comes with Google Chrome (which you could manually download if you wanted to). The system itself is still the same Android. If one decides to build Android from the older JWR66V/JWR66Y revisions, they will have the same system as someone else who flashed stock.

Why didn't Google release JSS15J as stock?
A Google employee mistakenly thought that JSS15J only has changes related exclusively to the new Nexus 7 device. He later apologized and acknowledged his mistake. JSS15J has an updated Nexus 4 kernel with dozens of GPU commits/improvements.

Which build is better?
Depending on who you ask. If newer is better, JSS15Q is better. If factory images are better, JWR66Y is better.

Which build should I use?
People who like factory images will stay with factory images. People who like the stock experience but care less about "factory images" could use a clean non-customized JSS15Q build. In a way, JSS15Q could be considered 'stock AOSP' if it's not customized. It's even more minimalistic than what comes with the factory images, because applications such as Google Keep/Earth/Maps and so on are not forced as system apps, and can be optionally installed from the store only if you want them.

Any other differences besides the updated kernel/GPU commits?
Most changes are under-the-hood. There was an updated network setting found in JSS15J/Q that doesn't exist in JWR66V/Y.

I heard something about a Wi-Fi change though?
There is indeed a major difference related to Wi-Fi. I won't get into many details here as there is a dedicated thread with months of discussions, but in short, JWR66V & JWR66Y still have the Wi-Fi notification delay issue that 4.2.2 had. This is because Google turned off ARP offloading for those builds, but later turned it on in JSS15J & JSS15Q. It was also on in JWR66N, the leaked unofficial build that we got prior to the official release.

If Google were to build a new factory images now from JSS15Q, it would have ARP offloading on, and Wi-Fi notification delays fixed. The change is only to an .ini file and the drivers are the same, so while a fix is needed for JWR66V/JWR66Y, it's a simpler fix. If you use JSS15Q you don't have to flash any Wi-Fi fixes at all.

What does this mean for Custom ROMs?
Custom ROMs are usually synced with the latest AOSP revisions and changes. CyanogenMod's Android build is JSS15Q, and the same goes for rasbeanjelly, Carbon, and most custom ROMs. Clean or clean-ish JSS15Q AOSP builds are also available for those who still want both the newest revision and the stock experience, just check the development threads.

HELP! My screen is stuttering and/or has weird green colors and/or doesn't respond properly to touch and/or is yelling at me!
That is mostly why this thread was needed. As mentioned before, JSS15J&JSS15Q have an updated kernel with some GPU fixes. This means that your kernel MUST match your ROM for the issue to go away. There are workarounds, such as disabling hardware overlays, but that is not really a solution. No hardware overlays = reduced performance and possibly other issues.

The basic rule is this:
If you use JWR66V/JWR66Y, either stay with its stock kernel, or MAKE SURE the custom kernel you flash was based on JWR sources.
If you use JSS15J/JSS15Q, either stay with its stock kernel, or MAKE SURE the custom kernel you flash was based on JSS sources.

This is of course a headache for kernel developers, as they need to either drop support for one version, or release two versions each time. Many kernel developers are already offering two version of their kernels - one for JWR-based builds and one for JSS-builds.

This means that if you use the AOSP build or most custom ROMs, you will have the screen issues if you use JWR-based kernels.

So there you have it. Unless some other solution is found, there will have to be 2 kernels - one for each build.
 
Last edited:

jaju123

Senior Member
Jul 27, 2010
1,117
120
Anyone have links to a pure AOSP build with literally no alterations?

Sent from my Nexus 4 using Tapatalk 4 Beta
 

markd0wn

Senior Member
May 24, 2012
350
784

rosswaa

Senior Member
Apr 13, 2010
1,389
172
Cheers for the clear up, was doing my head in with all the weird builds

Sent from my Nexus 4 using Tapatalk 4 Beta
 

redsmith

Senior Member
Apr 11, 2011
748
391
Is there any way we can (nicely) ask Google to release a factory image from the JSS build? I think that would be the perfect solution, and I don't think it is really too hard for them to push it.
 

markd0wn

Senior Member
May 24, 2012
350
784
Is there any way we can (nicely) ask Google to release a factory image from the JSS build? I think that would be the perfect solution, and I don't think it is really too hard for them to push it.

They could definitely do it if they wanted to, probably somewhat easily too. The OTA is being pushed slowly for a reason - not just for bandwidth purposes, but so that if some mistake happened, not all devices would be affected. It's probably not a very high priority for them like what happened previously with the December bug, but they could release a JSS15J-from-JDQ39 OTA to devices that haven't been updated yet, and JSS15J-from-JWR6V for those who did update. Posting factory images is easier, and the binaries are already good for both JWR6V and JSS15J. If they chose to release it, we'd forget about this whole thing 1-2 weeks later. But it's hard to say if they'll listen. Might be worth a try as long as it's done in nice/acceptable ways and not by spamming/yelling/threatening and so on.
 

Marcb

Senior Member
Aug 11, 2008
724
189
They won't release new factory images...
Jean-Baptiste Queru said so...

He said both branchs are the same with the only difference in JSS15J being the new stuff for Nexus 7...

The new GPU commits are from the other branch... So that both matchs and don't give tearing effects or other problems...

Enviado do meu Nexus 4
 
  • Like
Reactions: tarroyo

markd0wn

Senior Member
May 24, 2012
350
784
He had some update statements since. Here they are:

In theory, JSS15J should work just as well as JWR66V for the existing devices. In practice, I expect that there could be minor differences (except for the new Nexus 7 where there are big differences), so if you're targeting a single device you might as well use the source code that matches the retail version the most. Personally, I like to live more on the bleeding edge, so when I carry an AOSP device I'm more likely to be running the master branch.

Here's an long-ish explanation of what happened:

-For a number of reasons, the kernel is built separately from the Android tree. We submit binaries of the kernel in the Android tree.

-Those binaries are large. In Google's internal tree, there are 1.5GB of Nexus 4 kernel binaries. With the way our tools work, that's 1.5GB of data that needs to be downloaded and stored by each user in each source tree. At the same time, the binaries don't have any significant value, since the value is in the source history, which is stored separately.

-To avoid making every AOSP user download gigabytes of unnecessary kernel binaries, starting with Nexus 4 (and now also in the new Nexus 7), we've been storing kernel binaries in dedicated projects, and I maintain a parallel history for AOSP that only contains the binaries that are necessary. Right now for Nexus 4, that tree is 31MB (to compare to 1.5GB).

-The retail release process of a new version is actually different for existing devices and for the new Nexus 7. To better reflect that, they each got their release branch, with existing devices in the JW branch (jb-mr2-release) and the new Nexus 7 in the JS branch (jb-mr2.0-release). JW entered final stabilization earlier than JS, which means that the jb-mr2-dev branch and the master branch in AOSP are closer to JS than to JW.

-To save space in the AOSP kernel projects, I try to have as few kernel binaries as possible in there, which means that I prepare those branches at the last minute (in this case I did that on Monday). During testing, I don't stage those projects and I manually use kernels directly from the development branches. For Nexus 4, when I did the final staging on Monday, I only included into the AOSP what ships to end users, i.e. from the JW branch, so I explicitly didn't include the kernel from the JS branch and I used the kernel from JW everywhere instead.

-Since the only changes in JS (compared to JW) were supposed to be related to the new devices, I assumed that the N4 kernel would be the same between the two (without actually checking), and I did all my testing of jb-mr2.0-release, jb-mr2-dev and master with the JS kernel (which was easier as it allowed me to use the same process for Nexus 4 and for the new Nexus 7). One of the changes done for the new devices was in the GPU code, in a way that required a new kernel for Nexus 4.

-The fix was to add the JS kernel to the relevant branches in AOSP.

So, there you have it: I mistakenly assumed there there'd be no kernel changes for N4 between JW and JS, and from there I did all my testing with the wrong kernel.

Sorry about that.
JBQ
 
  • Like
Reactions: tarroyo

markd0wn

Senior Member
May 24, 2012
350
784
So peolple who are on stock are outdated and still not enjoying all the gpu optizations?
Correct me if im wrong

typed from my NeXuS 4 tasting some revamped Jellybeans (stock 4.3).

Technically you are not wrong. It's a fact that JSS15J and its kernel has GPU optimizations/commits that are not included in the JWR66V build.
 

C4SCA

Senior Member
May 2, 2012
2,333
1,026
28
Samsung Galaxy Note 10.1
OnePlus One
Technically you are not wrong. It's a fact that JSS15J and its kernel has GPU optimizations/commits that are not included in the JWR66V build.

So this 4.3 update is a huge fail for nexus 4 owners... And i was thinking that i wasnt going root it again...

Google messed up this time
4.3 is almost all about the gpu opt. and now people dont have it all on stock? ? ?

typed from my NeXuS 4 tasting some revamped Jellybeans (stock 4.3).
 

markd0wn

Senior Member
May 24, 2012
350
784
So this 4.3 update is a huge fail for nexus 4 owners... And i was thinking that i wasnt going root it again...

Google messed up this time
4.3 is almost all about the gpu opt. and now people dont have it all on stock? ? ?

typed from my NeXuS 4 tasting some revamped Jellybeans (stock 4.3).

I don't know how huge those optimizations are. I'm sure someone will do some GPU-specific benchmark comparison between the builds at some point and see. But yes, a mistake did occur. The average person will be updated to JWR66V (at least at this point) only. Others could install JSS15J manually from one of the threads mentioned in the previous page.
 

mattkroeder

Senior Member
Oct 1, 2011
314
63
Thanks for the info. I flashed the factory images last night thinking I would much rather go with official images from now on. This thread tempted me to give the AOSP builds another try.

Honestly though, I don't know important the optimizations are. Maybe it's just me. Maybe it's just my own device...... but I find the stock build smoother than the AOSP builds. I get stutters while scrolling through my mms messages, for instance. And transitions on the stock feel smoother so far.

How does one know if we have delays in our wifi notifications though?
 

redsmith

Senior Member
Apr 11, 2011
748
391
They could definitely do it if they wanted to, probably somewhat easily too. The OTA is being pushed slowly for a reason - not just for bandwidth purposes, but so that if some mistake happened, not all devices would be affected. It's probably not a very high priority for them like what happened previously with the December bug, but they could release a JSS15J-from-JDQ39 OTA to devices that haven't been updated yet, and JSS15J-from-JWR6V for those who did update. Posting factory images is easier, and the binaries are already good for both JWR6V and JSS15J. If they chose to release it, we'd forget about this whole thing 1-2 weeks later. But it's hard to say if they'll listen. Might be worth a try as long as it's done in nice/acceptable ways and not by spamming/yelling/threatening and so on.

Agreed. Any way we can contact them? Maybe in their support pages? I'm kind of lost here =D

We should definitely give it a try, we've got nothing to lose.
 

simorangkir_dcs

Senior Member
Oct 9, 2012
451
140
Jakarta
Vivo X60 Pro
Why I can't boot into recovery?

I flashed factory image JWR few days ago, everything was good until today I just realized that I cannot boot into stock recovery. Everytime I enter bootloader and select recovery I only get dead android image with red exclamation mark.

Anybody experience this too?
 

hol17

Senior Member
Sep 16, 2009
454
85
Edmonton
I flashed factory image JWR few days ago, everything was good until today I just realized that I cannot boot into stock recovery. Everytime I enter bootloader and select recovery I only get dead android image with red exclamation mark.

Anybody experience this too?

Hold volume up + down and press the power button (may have to do it a few times). The stock recovery has its options hidden unless you press that combination once you get to the screen you are seeing.

Sent from my Nexus 4 using Tapatalk 4 Beta
 

Raijin

Senior Member
Nov 22, 2011
367
105
Thanks for the info. I flashed the factory images last night thinking I would much rather go with official images from now on. This thread tempted me to give the AOSP builds another try.

Honestly though, I don't know important the optimizations are. Maybe it's just me. Maybe it's just my own device...... but I find the stock build smoother than the AOSP builds. I get stutters while scrolling through my mms messages, for instance. And transitions on the stock feel smoother so far.

How does one know if we have delays in our wifi notifications though?

Can someone confirm this?
 
  • Like
Reactions: joenun

max4wdc

Senior Member
Dec 25, 2011
299
157
Thanks for the info. I flashed the factory images last night thinking I would much rather go with official images from now on. This thread tempted me to give the AOSP builds another try.

Honestly though, I don't know important the optimizations are. Maybe it's just me. Maybe it's just my own device...... but I find the stock build smoother than the AOSP builds. I get stutters while scrolling through my mms messages, for instance. And transitions on the stock feel smoother so far.

How does one know if we have delays in our wifi notifications though?

Same too ,i feel stock smoother than AOSP .

Sent from my Nexus 4 using Tapatalk 4 Beta
 
  • Like
Reactions: joenun

Top Liked Posts

  • There are no posts matching your filters.
  • 533
    [INFO] Android 4.3 JSS15J&JSS15Q vs. JWR66V&JWR66Y, Custom Kernels and Graphic Issues

    So, since this issue pops up often in various threads ever since 4.3 was released, I thought I'd make a thread I could point people to instead of repeating the same explanation over and over.

    This has been discussed greatly in various Kernel/ROM development threads and I've been even getting PM's about it so I'll try explaining everything here. Most info is taken from discussions made on CyanogenMod-related threads, Franco kernel thread, thracemerin's WiFi-fix thread, and Google-related sources, so thanks also goes to everyone who participated.

    On to business...

    Background:

    When Google released Android 4.3, it came in a few forms. One is the familiar OTA update zip and factory images. This is what people refer to as 'stock'. The build number for that stock release is JWR66V, also known as Android 4.3r1. This was later updated to JWR66Y (Android 4.3r1.1).

    As you all know, Android is open source, which leads us to the Android Open Source Project (AOSP). This is where the source for Android located, and one could build the operating system/kernel (with provided drivers) from scratch and make a working flashable operating system. This is also the 'base' for custom ROMs.

    AOSP has newer android revisions - Android 4.3r2.1, build number JSS15J, and Android 4.3r2.2, build number JSS15Q. These builds are newer than 'stock' JWR66V/JWR66Y, but they are official, are made by Google, and are available for anyone to build from scratch, just like JWR66V/JWR66Y. The differences are Google Apps, such as Google+, YouTube, Gmail, etc, which will not be included in an AOSP build, but could be downloaded from the store (or available as a flashable zip) anyway. AOSP also has a different browser while 'stock' comes with Google Chrome (which you could manually download if you wanted to). The system itself is still the same Android. If one decides to build Android from the older JWR66V/JWR66Y revisions, they will have the same system as someone else who flashed stock.

    Why didn't Google release JSS15J as stock?
    A Google employee mistakenly thought that JSS15J only has changes related exclusively to the new Nexus 7 device. He later apologized and acknowledged his mistake. JSS15J has an updated Nexus 4 kernel with dozens of GPU commits/improvements.

    Which build is better?
    Depending on who you ask. If newer is better, JSS15Q is better. If factory images are better, JWR66Y is better.

    Which build should I use?
    People who like factory images will stay with factory images. People who like the stock experience but care less about "factory images" could use a clean non-customized JSS15Q build. In a way, JSS15Q could be considered 'stock AOSP' if it's not customized. It's even more minimalistic than what comes with the factory images, because applications such as Google Keep/Earth/Maps and so on are not forced as system apps, and can be optionally installed from the store only if you want them.

    Any other differences besides the updated kernel/GPU commits?
    Most changes are under-the-hood. There was an updated network setting found in JSS15J/Q that doesn't exist in JWR66V/Y.

    I heard something about a Wi-Fi change though?
    There is indeed a major difference related to Wi-Fi. I won't get into many details here as there is a dedicated thread with months of discussions, but in short, JWR66V & JWR66Y still have the Wi-Fi notification delay issue that 4.2.2 had. This is because Google turned off ARP offloading for those builds, but later turned it on in JSS15J & JSS15Q. It was also on in JWR66N, the leaked unofficial build that we got prior to the official release.

    If Google were to build a new factory images now from JSS15Q, it would have ARP offloading on, and Wi-Fi notification delays fixed. The change is only to an .ini file and the drivers are the same, so while a fix is needed for JWR66V/JWR66Y, it's a simpler fix. If you use JSS15Q you don't have to flash any Wi-Fi fixes at all.

    What does this mean for Custom ROMs?
    Custom ROMs are usually synced with the latest AOSP revisions and changes. CyanogenMod's Android build is JSS15Q, and the same goes for rasbeanjelly, Carbon, and most custom ROMs. Clean or clean-ish JSS15Q AOSP builds are also available for those who still want both the newest revision and the stock experience, just check the development threads.

    HELP! My screen is stuttering and/or has weird green colors and/or doesn't respond properly to touch and/or is yelling at me!
    That is mostly why this thread was needed. As mentioned before, JSS15J&JSS15Q have an updated kernel with some GPU fixes. This means that your kernel MUST match your ROM for the issue to go away. There are workarounds, such as disabling hardware overlays, but that is not really a solution. No hardware overlays = reduced performance and possibly other issues.

    The basic rule is this:
    If you use JWR66V/JWR66Y, either stay with its stock kernel, or MAKE SURE the custom kernel you flash was based on JWR sources.
    If you use JSS15J/JSS15Q, either stay with its stock kernel, or MAKE SURE the custom kernel you flash was based on JSS sources.

    This is of course a headache for kernel developers, as they need to either drop support for one version, or release two versions each time. Many kernel developers are already offering two version of their kernels - one for JWR-based builds and one for JSS-builds.

    This means that if you use the AOSP build or most custom ROMs, you will have the screen issues if you use JWR-based kernels.

    So there you have it. Unless some other solution is found, there will have to be 2 kernels - one for each build.
    8
    Just a heads up, Franco is now considering making two kernels as well, one for JSS and one for JWR. This is great news for Franco fans and newer-android-build-fans. Most other popular kernel developers have already offered 2 versions, and Franco was the most high-profile developer that only offered one version, so this solves dilemmas for people who considered changing a ROM build to use Franco, or ditching Franco to use a newer ROM build. Now they could enjoy both worlds.

    This still won't solve the mess and people are bound to install wrong versions and ask why they have screen issues, but eventually most people will be familiarized with the issue, and it's a good thing that users will still have a variety of choices in terms of custom kernels regardless of the ROM they use.
    6
    Yeah but has anyone already built one? Can't find one and would like to use it. But as I already stated I can't do it by myself

    Here you go http://xdaforums.com/showthread.php?p=43949102 don't forget to hit thanks ;)

    Sent from the wizard of OZ
    5
    I am using JWR66V
    can I just flash a custom rom based on JSS15J directly?
    Yea! Go for it! Then maybe you'll read before asking questions.
    4
    Well done

    Wayne Tech Nexus