The factory images have landed and the OTAs are about to start rolling out shortly. As we already know, there are new emoji to fill out the Unicode 8.0 spec, band 12 support for T-Mobile, "until next alarm" for do not disturb mode, and a shortcut to launch the camera with a double-click of the power button. The December security updates are also an important part of the latest update. Of course, these aren't the only changes that take place, so we generate changelogs from the Android source code to find some of the other things going on with the OS.

The big update is of course Android 6.0.1. Unfortunately, this version technically originates from android-wear-5.1.1_r1 and includes thousands of redundant changes we've already seen from about a dozen large and small updates. Since that's not particularly useful to anybody, I've done a little processing to remove duplicates to produce a filtered version. I can't promise it's completely free of duplicates (especially since it includes the v5.1.1 security updates), but it's fairly close.

The leap from r26 to r30 on Android v5.1.1 is basically all about security updates and a couple of back-ported bug fixes, so there's not much else to add. Of course, we're still waiting on a few more factory images to show up for 5.1.1, so some more changelogs may be incoming.

There aren't a lot of immediately exciting changes in the big update, but a couple interesting bits have been spotted. Change cc07760 brings a significant performance improvement for the Android Runtime (ART) during app installation by doing a bit less cleanup in the dex2oat converter. The expanded comment mentions installing a fairly large app on a Nexus 9 and the conversion time went from 2.4 seconds to slightly more than 0.1 second with swap disabled, and from a massive 48.8 seconds to just under 0.2 seconds with swap enabled. This isn't going to completely erase install times, but it's definitely going to speed things up the next time you install an OTA or restore a device. There's also a notable fix for visual jank under certain circumstances for the intent chooser with change 6ef8578. – Thanks to Dominic Powell for digging these up.

There are effectively no changes in MMB29M (6.0.1_r3), which follows the big update to MMB29K; however there are some strange hijinks going on with the update to MMB29N (6.0.0_r41). Notice the version number actually steps down from 6.0.1 to 6.0.0, and the build number goes from M to N. (Note: the last slot in a build number is largely meaningless, so that's not too special.) Not only is the version number intentionally stepped down, but the only change it actually makes is to remove the recently added emoji additions. So, for those that are curious, the latest Nexus 6P build of 6.0.0 (MMB29N) is basically identical to 6.0.1 sans emoji. Of course, there could still be different binaries or customizations that don't appear in AOSP.

If you're in the mood to look through these changes for some funny jokes or interesting tweaks, the links are below. Again, I recommend skipping the full 6.0.1_r1 changelog since it's flooded with old commits.