Since Android Jelly Bean 4.3 was released, people have noticed that 2 versions have been spotted. JWR66V and JSS15J. In this post I will be shedding some light as to what the differences are between the 2, thanks to the XDA-Developers forum.
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.
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 a newer android revision – Android 4.3r2.1, build number JSS15J. This build is newer than ‘stock’ JWR66V, but is official, is made by Google, and is available for anyone to build from scratch, just like JWR66V. 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 anyway. AOSP also has a different browser while ‘stock’ comes with Google Chrome. The system itself is still the same Android. If one decides to build Android from the older JWR66V revision, 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. Based on most recent information, Google is planning on releasing JSS15J factory images for the new Nexus 7 only, but not for the Nexus 4.
Which build is better?
Depending on who you ask. If newer is better, JSS15J is better. If factory images are better, JWR66V 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 JSS15J build. In a way, JSS15J 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 that doesn’t exist in JWR66V.
I heard something about a Wi-Fi change though?
There is indeed a major difference related to Wi-Fi. In short, JWR66V still has the Wi-Fi notification delay issue that 4.2.2 had. This is because Google turned off ARP offloading for that build, but later turned it on in JSS15J. 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 JSS15J, it would have ARP offloading on, and Wi-Fi notification delays fixed. As far as I know, the change is only to an .ini file and the drivers are the same, so while a fix is needed for JWR66V, it’s a simpler fix. If you use JSS15J 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 JSS15J, and the same goes for rasbeanjelly, Carbon, AOKP and most custom ROMs. A clean JSS15J AOSP build is also available for those who still want both the newest revision and the stock experience.
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 has 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, either stay with its stock kernel, or MAKE SURE the custom kernel you flash was based on JWR66V sources.
If you use JSS15J, either stay with its stock kernel, or MAKE SURE the custom kernel you flash was based on JSS15J sources.
This is of course a headache for kernel developers, as they would either need to drop support for one version, or release two versions each time.
This means that if you use the AOSP build or any custom ROM, you will have the screen issues if you use JWR66V-based kernels.
Franco is now considering releasing two kernel versions as well – one for JSS builds and one for JWR builds.
So there you have it. Unless some other solution is found, there will have to be 2 kernels – one for each build. The perfect solution would be Google releasing an OTA/Factory Images for JSS15J, but that’s unlikely, unfortunately.