Android 7.0 Nougat is now truly official and available to those of us toting around certain Nexus devices. The hardware support will grow soon, and seemingly more quickly than versions in the past. We've already seen much of what 7.0 has to offer, but there's surely much more to discover.

As always, along with the brand new firmware comes some brand new source code. There's entirely too much for one person to look through, so we instead generate a log of the changes from a previous version to make it easier to read. This is how we get some idea of what the developers at Google have been up to while they were behind the curtain.

The first official build of Nougat is NRD90M and tagged v7.0.0_r1. Unfortunately, this one is based on M Preview 2. Yes, you read that right... The final build of Nougat is based on the second developer preview of Marshmallow. That means development on many of the new features of 7.0 had to have started sometime around July of last year.

Along the way, all of the monthly security patches, bug fixes, and other improvements have been progressively integrated into the codebase for the release we have today. Unfortunately, that also means there are going to be thousands of code commits that were present in previous changelogs. (I planned to have solved this by now, but teardowns and other posts have kept me really busy. I'm still planning to crack this problem.)

Are you reading the changelogs?

There are a lot of questions and confusion surrounding changelogs, so here are a few reminders and tips that might clear some things up.

To begin with, all changelogs are named with their starting and ending tags. That's because changelogs pick up where previous changelogs left off, but the names and numbers aren't necessarily sequential. For example, 6.0.1_r56 is based on r48, not on r55. Changelogs always build off of another changelog, sometimes even in the same month. Also remember that while most patches are only written once, they may be copied across multiple development branches running in parallel, so a single patch may appear in more than one changelog.

Also remember that these changelogs only list changes uploaded to the Android Open Source Project. They do not include changes made to the closed source proprietary binaries used to build the final firmware for a device. Sometimes a new tag and build number are created for updates where only those binaries have been replaced, which usually results in a virtually empty changelog.

Finally, changelogs for developer previews contain only a short list of changes. This is because Google does not post the full code for a new version of Android until the OS is final. Most of the code disclosed prior to a final OS release is usually for compliance with the GPL or similarly licensed projects, or belonging to projects Google itself chooses to make available in advance.

If you're ready to dive in, hit the link below and start digging. This is a hefty one at just over 5 MB and roughly 35,000 commits, so it's usually a good idea to start with the projects you're most interested in. There's plenty to choose from and quite a few gems have already turned up. The developers are always injecting little bits of humor and colorful comments for each other and for us to find. Good luck and have fun!

NRD90M android-m-preview-2 –> android-7.0.0_r1