[ROM][N5] AlmostVanillaAOSP [6.0.1_r81-MOI10E] - 20171004

Search This thread

androcraze

Senior Member
Jan 11, 2013
2,254
1,661
AlmostVanillaAOSP Marshmallow 6.0.1_81 [MOI10E] ROM for the Nexus 5


Description
An "almost vanilla" AOSP-based Marshmallow ROM for the Nexus 5.


Disclaimer
I am not responsible for anything that happens to your device. By downloading and flashing or installing these zips, you automatically agree that I won't be held liable for anything that happens to your phone.


Background
AlmostVanillaAOSP is an AOSP-based ROM directly using Google's source code with a few functional modifications; these modifications are fully-sourced and easily-installed prior to building the ROM. Included modifications are designed to fix bugs, enhance security, and improve "in the field" function.

Many users prefer a "vanilla" version of AOSP, without added factory bloat and proprietary software; a basic version of AOSP is a great building block to create a custom-featured ROM, or it can be left as-is by users desiring to live outside Google's realm.

Users shouldn't see any visual or functional difference between this ROM and a vanilla AOSP build; all changes are "under the hood". Please note that there has been no attempt to remove functionality or user choice with this ROM.

If you're looking for a 100% pure AOSP ROM, please install BreckZeBoulay's UntouchedAOSP ROM IN THIS THREAD


Included Modifications


Enabled the Doze option: Google's Doze option (built-into the AOSP code base), is a set of rules that puts an idle phone to sleep, reducing battery drain. For Doze to work, you have to have Google Play Services (GApps) installed. If you don't have Play Services installed, nothing happens and the phone still works fine. For more details on Doze, read HERE.

Option to add Google's current WebView: The WebView included with AOSP Marshmallow is locked-in at version 52, and the only way it will get updated is by installing a later ROM. With the stock AOSP code, users have no option to upgrade to a newer version; trying to upgrade results in browser crashes and instability. This "fix" allows installing the "Android System WebView" from the Play Store (currently at version 58); the Play Store version is kept current by Google. If you choose not to install the Play Store WebView version, the included version works fine, although at an increased security risk due to not having updates. DO NOT REMOVE THE INCLUDED WEBVIEW VERSION! Keep the original version that's located in /system/app, if you install another version; it's not "bloat". The Play Store Android System WebView can be found HERE.

Addition of Sony's suggested (and disapproved) Power Menu reboot option: Sony made attempts to add a reboot option to the Power Menu in the AOSP code; their efforts were rejected. However, Sony generously posted the code changes needed to enable this option, and they are included in this ROM. An interesting read on Sony's attempts can be found HERE. For details on implementing this feature post-install, please read the "Implementing Reboot" section below.

Removal of broken AOSP applications (Browser, Calendar, Email, and Exchange): AOSP Browser, AOSP Calendar, and AOSP Email (and by extension, AOSP Exchange) are hopelessly broken. I refuse to put broken applications in a ROM, even for "completeness". The good news is that Lightning Browser, Etar Calendar, and K9 Mail are open source and even better than the originals. Look in the "Suggested Open Source Applications" section below for links to these apps.

Removal of LiveWallpapers: The LiveWallpaper bloat has been removed from the ROM. The LiveWallpaperPicker app remains, so the functionality is still there. They're something that few people (if any) actually use.

Updated Launcher Icons to Material theme: The Material Dialer Icon is usually the first item folks ask for in AOSP ROMs. The Calendar, Dialer, and Gallery launcher icons were borrowed from the Cyanogenmod Github. The QuickSearchBox and Music launcher icons were modified from the icon set provided by Rammist on this WEBSITE. No other changes were made to the apps other than their launcher icons.

Added Option to Utilize UnifiedNlp Location: UnifiedNlp is a FLOSS (Free/Libre and Open Source Software) Wi-Fi- and cell-tower-based geolocation tool for Android by MaR-V-iN. His XDA thread can be found HERE. All that's been done is the addition of a single entry (org.microg.nlp) during build to the list of the ROM's network location services. Users who don't add the UnifiedNlp app will see no change or function with the ROM. For details on implementing UnifiedNlp with this ROM, please review Post #2 in this thread.


Sources and Source Patches


Source tree:
Code:
https://android.googlesource.com/platform/manifest -b android-6.0.1_r81

Nexus 5 (GSM/LTE) binaries for Android 6.0.1 (M4B30Z):
Code:
https://developers.google.com/android/drivers

Source Patches Used for ROM Build:

Patch Installation Prior to Building ROM:
Put patch(es) in the AOSP build folder. This is how the patches and icon images were installed:
Code:
patch -p0 < M4B30X_Reboot.patch
patch -p0 < M4B30X_WebView.patch
patch -p0 < M4B30X_Doze.patch
patch -p0 < M4B30X_Bloat.patch
patch -p0 < MOB31T_Broken.patch
patch -p0 < MOB31T_UnifiedNlp.patch

unzip M4B30X_Reboot_Icons.zip
unzip M4B30X_Dialer-Gallery2-Calendar-Search-Music_Icons.zip

find . \( -name \*.orig -o -name \*.rej \) -delete

NOTE on ".rej" and ".orig" generated files:
Patches that succeed but have ***ANY*** issue generate additional ".orig" files in the same folders as the original files.
Patches that fail generate a ".rej" extension file in the same folder as the original file. A failed patch must be investigated before proceeding further.

For example:
Code:
frameworks/base/core/res/res/values/config.xml
frameworks/base/core/res/res/values/symbols.xml

Both of the above files are modified by two or more patch files. An initial patch will work fine, but subsequent patches are noted with notices like "Hunk #1 succeeded at 306 (offset 1 line)". The patch applied fine, but the patch command is notifying you that when it went to apply the patch, the lines weren't where they were originally expected to be (shifted down XX number of lines). As long as the patch didn't fail with output like "Hunk #1 FAILED at 58.", you're good. However, even though the patch was successful, it still generates a "config.xml.orig" or a "symbols.xml.orig" file when there is a conflict.

Now the problem: those ".xml.rej" and ".xml.orig" files, despite having incorrect endings and not being actual ".xml" files, are treated during build as valid .xml files. Since the config.xml.orig and config.xml file are in the same folder and almost identical, the build will fail as it's seeing the duplication. AOSP appears to parse all files in certain folders, regardless of extension.

The following command will eliminate those ".orig" and ".rej" files, should they appear:
Code:
find . \( -name \*.orig -o -name \*.rej \) -delete


To revert installed patches, with the patches in the AOSP build folder:
Execute the following commands:
Code:
patch -p0 -R < M4B30X_WebView.patch
patch -p0 -R < M4B30X_Reboot.patch
patch -p0 -R < M4B30X_Doze.patch
patch -p0 -R < M4B30X_Bloat.patch
patch -p0 -R < MOB31T_Broken.patch
patch -p0 -R < MOB31T_UnifiedNlp.patch

find . \( -name \*.orig -o -name \*.rej \) -delete

NOTE: any icon images you've unzipped can't be reverted.


Known Bugs
None yet.


GPL
The kernel included with this ROM was pulled directly from the AOSP source tree. No modifications have been made to any of the kernel sources or the kernel itself.

For the source tree for the AOSP-supplied kernel, please check HERE.

The GPL v2 license can be found HERE.


AlmostVanillaAOSP ROM Download

LATEST: AndroidFileHost | Mediafire

AlmostVanillaAOSP[6.0.1_r81-MOI10E]Hammerhead-20171004.zip
SHA256: 7fcdb2dd0e349b1b99eefc55f9e49b0fd07c9e2ad1054848840019a88434c2b5

OLDER RELEASES can be found here: AndroidFileHost


AOSP Changelogs - Does not include AlmostVanilla changes.

Generated using the following bash script:
Code:
#!/bin/bash
# 
# 
# 
repo forall -c '
if git rev-parse android-6.0.1_r79 >/dev/null 2>&1
then
git log --oneline --no-merges android-6.0.1_r79..android-6.0.1_r80
else
git log --oneline --no-merges android-6.0.1_r80
fi
' | cat

android-6.0.1_r79 to r80


Add-on Downloads - In TWRP-flashable format.

Radio/Modem Download, Version M4B30X_M8974A-2.0.50.2.30: AndroidFileHost | Mediafire
- The current modem-radio for the N5 is M8974A-2.0.50.2.30, from the M4B30X ROM.

Video Green Line Fix, Version 6.0.1_r77-M4B30Z: AndroidFileHost | Mediafire
- Fixes the green line along the edge of video frames.
- Pulled from the latest factory N5 ROM, M4B30Z_6.0.1_r77.

Qualcomm Time Service Fix, Version 6.0.1: AndroidFileHost | Mediafire | Older Versions
- Fixes the date and time resetting on successive boots.

UnifiedNlp(GAPPS), Version 1.6.8: AndroidFileHost | Mediafire
- A flashable version of UnifiedNlp(GAPPS) that installs to /system. Only for AlmostVanillaAOSP[6.0.1_r79-MOB31T]Hammerhead-20170418.zip or later versions WITH built-in UnifiedNlp support.
- For details on implementing UnifiedNlp with this ROM, please review Post #2 in this thread.

N5 Boot Animations: This THREAD has an assortment of N5 flashable and tested bootanimations.

Debloating Tools: Look at this thread THREAD for debloating scripts to eliminate unwanted or redundant applications.


Wallpapers

AOSP doesn't include any wallpapers for the Launcher/Home Screen. To help beautify your N5, I've included some links to stock Android and Nitrogen OS wallpaper in Post #3.


Installation

PLEASE ASK QUESTIONS IF YOU HAVE THEM!

General ROM & GApps Install Procedure:
--------
PREPARATION:
1. Flash current factory ROM via PC (to get current modem radio)
2. Install TWRP via adb
3. Create empty GApps text files as per directions HERE
4. Copy ROM, empty text files, and install items to phone from PC

FLASH & INSTALL:
1. Boot to TWRP
2. Reboot to recovery (TWRP) from within TWRP
3. Wipe everything but internal storage
4. Flash the ROM
5. Flash a bootanimation, TimeService, Green line fix
6. Reboot to System
7. Configure Time, WiFi, APN, Reboot Menu
8. Reboot to TWRP
9. Flash GApps (Delta GApps MM PROCEDURE
10. Reboot to System
11. Set permissions for GApps (Contacts, Play Store, Google Play Services)
12. Reboot back to System
13. Setup Google Account
14. Install Play Store Apps
15. Install APKs manually
16. Reboot to TWRP
17. Run debloat script.
18. Reboot to TWRP
19. Flash UnifiedNlp app
20. Install SuperUser (PHH's is fine)
21. Reboot to System.
22. Done

#6, rebooting to System BEFORE flashing GApps, is VERY important.

GOOD LUCK!


Screen Shots

aosp-shot1.png


aosp-shot2.png



FAQ

Q: How can I verify the running WebView version of my ROM?
A: Use HTML5test WebView from HERE.

Q: Does Doze work in this build?
A: Yes. You'll need GApps installed for it to work properly. You do not have to enable anything; it is active by default.

Q: How can I check and see if Doze is enabled on this ROM?
A: Download and install the APK from this THREAD.

Q: My date and time keeps resetting on successive boots?
A: Solution is to install the Qualcomm TimeService app (a proprietary application) - the 6.0.1 version is available HERE

Q: Can I use this ROM with Android Pay?
A: No. Only approved factory ROMs from Google can use Android Pay. If you want Android Pay on the Nexus 5, install a Marshmallow factory image.

Q: Where can I get the Marshmallow bootanimation? I'm only seeing the AOSP default framework bootanimation.
A: Try Post #1 in this Boot Animation Collection.

Q: Where can I find your build tree?
A: There is no build tree for this ROM, other than the full source code as provided by Google. Any modifications to this source code are noted under "Patches".

Q: Can you add new features to this ROM?
A: The goals of this ROM are a stock AOSP feel and security. "Features" other than bug-fixes and security enhancements aren't a priority and probably won't be added.

Q: Which GApps are recommended?
A: Deltadroid's GApps are highly recommended using this installation PROCEDURE

Q: How do I install GApps?
A: A general procedure to install ROM with GApps:
Don't flash the ROM together with GApps in the same ZIP queue because this will cause the Installation Wizard to run on first boot. Due to Google Play permissions errors the Wizard will keep crashing and you won't be able to bypass this. Solution:
1. Boot to TWRP
2. Reboot to recovery (TWRP) from within TWRP
3. Wipe everything but storage
4. Flash the ROM
5. Flash a bootanimation, TimeService, Green line fix
6. Reboot to System
7. Configure Time, WiFi, APN, Reboot Menu
8. Reboot to TWRP
9. Flash GApps
10. Reboot to System (Yes, you'll probably get Play Services "FC" messages until you perform #11, below)
11. Immediately toggle application permissions to "ON" under "Settings -> Apps -> ... -> System show" for:
Code:
- Google Contacts Sync
- Google Play Services
- Google Play Store
12. Reboot back to System
13. Setup Google Account via "Settings -> Accounts -> Add account -> Google"
14. Install Play Store Apps
15. Install APKs manually
16. Reboot to TWRP
17. Run debloat script.
18. Reboot to TWRP
19. Install SuperUser (PHH's is fine)
20. Reboot to System.
21. Done

Q: My Google Play Store / Google Play Services / Apps keep crashing?
A: This is a permissions issue. Please read the "Which GApps are recommended?" answer above.
You can try System Settings > Apps (top right menu button) > Show System,
and set the following to resolve most crashes:

Google Contacts Sync > Contacts permission
Google Play Services > All permissions
Google Play Store > All permissions

Q: Can you patch the ROM to deal directly with the GApps permissions issue?
A: No. It's a security policies issue, and there's no desire to override those policies.

Q: Where is the System Tuner UI?
A: Enable Developer Options (under "About Phone", tap "Build Number" seven times), then long-press the settings icon in the notification shade/bar.

Q: How do I get root?
A: PHH's SuperUser is highly recommended. Install the SuperUser APK (F-Droid or Play Store), then flash the superuser.zip from HERE. It works flawlessly, and it's open source.

Q: Can I use this ROM with MultiROM?
A: UntouchedAOSP users were successful with MultiROM. AlmostVanillaAOSP should work equally-well.

Q: AOSP Calendar (and Etar Calendar) won't sync with my on-line Google calendar. How can I make syncing work?
A: Flash the Google Calendar Sync addon for 6.0.0+ add-on from this THREAD, located under "Additional Kitkat, Lollipop, Marshmallow, and Nougat gapps addons". Ensure that permissions are granted in Settings -> Apps for "Google Calendar Sync". You'll need to enable "Show system" under the ". . ." in the upper right of the Apps window,

Q: I get a green line on one side of the frames when recording video. How can I fix this?
A: Go to the "Add-on Downloads" section in this post and get the "Video Green Line Fix" download.

Q: I'm having issues with Location and certain apps (Chronus, f.lux, Google Fit, etc.). How can I fix this?
A: This isn't a ROM issue; it's an AOSP issue. Review POST #2 in this AlmostVanillaAOSP thread for a solution using UnifiedNlp. For a long, detailed answer, look at Mar-v-in's initial response in this GITHUB POST. Hopefully the following will be a short-enough summary:
  • Google started with an open Location API that was used for AOSP and Google's factory ROMs.
  • Google created a new Play Services Location API that isn't included is AOSP code and it's only included in factory ROMs.
  • Google recommends that developers use the newer, closed API version.
  • Despite the fact that there are few differences between the old and new API, some developers are migrating solely to the new, stranding AOSP users.

Possible solutions for those AOSP users not having access to the new Location API:
  • Use the solution in POST #2 of this thread.
  • Forget about custom ROMs, only install factory ROMs (yeah, right!).
  • Only use and support apps that use the open Location API (all of the applications listed in post #1 of this thread -- requiring Location -- under "Suggested Open Source Applications" support the older Open Location API).
  • Ask developers if they're willing to modify their applications to fall-back to the open API if the Google one isn't available, or just use the open API.
  • For other AOSP ROMs, use the procedure as outlined by @alessio89g in this POST

Q: How about a Nougat ROM?
A: Until things stablize on the development front, no. There are driver issues for Nougat on the N5 that have yet to be resolved. It was hoped that there'd be a very vanilla Nougat N5 build, with very detailed modifications of the source tree; documented changes seem to be all over the place, with developers more focused on "features" than straightforward builds. There is a "CleanAOSP" Nougat ROM, but I don't know much about it.


Implementing Reboot

Activate Developer Options: Go to "Settings -> About phone", scroll-down to "Build number", and tap it seven (7) times (first image).
Activate System UI Tuner: Swipe the top of the screen twice, until you get the below image. Long-press the gear icon. When you let go, a wrench icon appears (second image).
reboot1.jpg


Go to "Settings -> System UI Tuner", toggle "Show restart in global actions menu":
reboot2.jpg


Go to "Settings -> Developer options", scroll down and verify "Restart shortcut" is toggled:
reboot3.jpg


NOTE:
"Developer options -> Restart shortcut" and
"System UI Tuner -> Show restart in global actions menu"

are tied together; toggling one automatically toggles the other.

Either method will activate the Reboot menu.


Suggested Open Source Applications


Thanks:
  • @BreckZeBoulay - for inspiration, guidance, keeping up the good fight, and teaching me how to build a ROM
  • @Deltadroid - for an awesome GApps package, and listening to users
  • @MattDN93 - for listening to users and being a cheerleader
  • @Scott - for his incredible walkthrough in this THREAD
 
Last edited:

androcraze

Senior Member
Jan 11, 2013
2,254
1,661
Using UnifiedNlp(GAPPS) with AlmostVanillaAOSP:

What is UnifiedNlp(GAPPS)?
The UnifiedNlp(GAPPS) tool (application) works WITH an installed version of Google's GApps to enhance Location capabilities on AOSP ROMs; the XDA thread for this tool can be found HERE.

Why do we need UnifiedNlp(GAPPS)?
Developer MaR-V-iN provides a detailed response in his initial reply to this GITHUB POST. The short version is:
  • Google started with an open Location API that was used for AOSP and Google's factory ROMs.
  • Google created a new Play Services Location API that isn't included in AOSP code and it's only included in factory ROMs.
  • Google recommends that developers use the newer, closed API version.
  • Despite the fact that there are few differences between the old and new APIs, some developers are migrating solely to the new API, stranding AOSP users.

Simply put, a growing list of applications (Chronus, f.lux, Google Fit, etc.) refuse to work with the older Open Location API; UnifiedNlp(GAPPS) adds functionality to get these unusable apps working on AOSP ROMs.

How does AlmostVanillaAOSP support UnifiedNlp(GAPPS)?
AlmostVanillaAOSP now includes a build patch (found in Post #1, under "Sources and Source Patches") that adds "org.microg.nlp" to the Location Services providers. It's a simple two-line addition (including one line for a comment). AlmostVanillaAOSP DOES NOT install the UnifiedNlp app; that's up to the user to decide if it's needed or wanted. A user opting to NOT install the UnifiedNlp app will see no performance or functional changes.

Notes
  • There is a UnifiedNlp(noGApps) version available. It's designed to work with the MicroG Services (an open substitute for Google Play Services). The directions in this post DO NOT apply to the "noGAPPS" version of this application.
  • Xposed: AlmostVanillaAOSP versions 20170418 and later have support for UnifiedNlp "compiled-in". There should be no need to install the UnifiedNlp Xposed module to get the app/tool to run.
  • The UnifiedNlp(GAPPS) tool must reside in /system, not in /data; the flashable zip will make installation much easier.
  • When installed properly, the UnifiedNlp(GAPPS) tool WILL NOT display under the Launcher Apps Menu; you'll find the tool listed under Settings -> Location.

Setup
1. Install AlmostVanillaAOSP[6.0.1_r79-MOB31T]-20170418, or a later ROM revision.
- Follow the suggested install process listed under "Installation" in Post #1.

2. Flash the the UnifiedNlp(GAPPS) app/tool.
- Found in Post #1, under "Add-on Downloads"
- This flashable version of UnifiedNlp is designed to work WITH GApps

3. Install your choice of UnifiedNlp "backend" APKs.
- See the "Backends" list below.
- Should be "side-loaded" via ABD or installed via file manager.
- You can install as many backends as you desire, but you should only have one active.
- The Apple, Mozilla, and OpenBMap backends are "interesting" for our purposes WITH GApps, and should be prioritized.

4. Go to System Settings --> Location:
- Ensure "Mode" is set to either "High accuracy" or "Battery saving", NOT "Device only".
- Ensure that "UnifiedNlp Settings" is listed under "Location services"

5. In System Settings --> Location --> Location services --> UnifiedNlp Settings:
- Enter "Configure location backends", add and configure desired backends.
- Return to "UnifiedNlp Settings".
- Enter "Self-Check", ensuring that all boxes are checked.


Backends
Again, the Apple, Mozilla, and OpenBMap location backends are probably best for easiest compatibility WITH GApps.


Location Backends:
Apple UnifiedNlp Backend - UnifiedNlp location provider (Apple WiFi) - F-Droid
UnifiedNlp backend that uses Apple's service to resolve wifi locations

MozillaNlpBackend - UnifiedNlp location provider (Mozilla) - F-Droid
UnifiedNlp backend that uses Mozilla Location Services to resolve locations (AKA IchnaeaNlpBackend).

OpenBmapNlpBackend - UnifiedNlp location provider (Openbmap) - F-Droid
UnifiedNlp (no GAPPS) backend that uses OpenBmap.


Address Lookup Backends:
NominatimNlpBackend - UnifiedNlp geocoding provider (MapQuest Nominatim) - F-Droid
UnifiedNlp (no GAPPS) backend that uses MapQuest's Nominatim service (based on OpenStreetMap) for geocoding.


Database Location Backends:
LocalGsmNlpBackend - UnifiedNlp location provider (local GSM database) - F-Droid
UnifiedNlp (no GAPPS) backend that uses local GSM data to resolve user location. Create a database using data from OpenCellId and/or Mozilla Location Services CSV files.

LocalWifiNlpBackend - UnifiedNlp location provider (local WiFi database) - F-Droid
UnifiedNlp (no GAPPS) backend that uses locally acquired WiFi AP data to resolve user location. Consists of two parts sharing a common database. One part passively monitors the GPS. If the GPS has acquired and has a good position accuracy, then the WiFi APs detected by the phone are stored.
 
Last edited:

androcraze

Senior Member
Jan 11, 2013
2,254
1,661
Wallpapers
AOSP doesn't include any wallpapers for the Launcher/Home Screen. Here are some links to beautify your N5; all of these images will automatically scale properly on the N5:

Stock Ice Cream Sandwich - Individual files | Full ZIP - 960x853 images

wallpapers-sample-ics1.png

wallpaper_architecture | wallpaper_bubblegum | wallpaper_canyon | wallpaper_chroma

wallpapers-sample-ics2.png

wallpaper_escape | wallpaper_fiber | wallpaper_fidelity | wallpaper_flora

wallpapers-sample-ics3.png

wallpaper_kepler | wallpaper_leaf | wallpaper_noir | wallpaper_outofthebox


Stock Jellybean - Individual files | Full ZIP - 1440x1280 images

wallpapers-sample-jb1.png

wallpaper_01 | wallpaper_02 | wallpaper_03 | wallpaper_04

wallpapers-sample-jb2.png

wallpaper_05 | wallpaper_08 | wallpaper_09 | wallpaper_10

wallpapers-sample-jb3.png

wallpaper_11 | wallpaper_12


Stock Kitkat - Adjusted - Individual files | Full ZIP - Scaled to 1920 pixels high

wallpapers-sample-kit1.png

default_wallpaper | wallpaper_15

wallpapers-sample-kit2.png

wallpaper_16 | wallpaper_17 | wallpaper_19 | wallpaper_20

wallpapers-sample-kit3.png

wallpaper_22 | wallpaper_50 | wallpaper_51


Stock Lollipop - Adjusted - Individual files | Full ZIP - Scaled to 1920 pixels high

wallpapers-sample-lolp1.png

wp_arc_001 | wp_arc_003 | wp_arc_004 | wp_geo_1243

wallpapers-sample-lolp2.png

wp_geo_1557 | wp_geo_2102 | wp_geo_2167

wallpapers-sample-lolp3.png

wp_geo_2170 | wp_geo_2278 | wp_paper_001


Stock Marshmallow - Adjusted - Individual files | Full ZIP - Scaled to 1920 pixels high

wallpapers-sample-marsh1.png

wallpaper-kleiner-google-blue | wallpaper-kleiner-google-red | wp_001

wallpapers-sample-marsh2.png

wp_002 | wp_003 | wp_004 | wp_005

wallpapers-sample-marsh3.png

wp_006 | wp_007 | wp_008

wallpapers-sample-marsh4.png

wp_009


Stock Nougat - Adjusted - Individual files | Full ZIP - Scaled to 1920 pixels high

wallpapers-sample-noug1.png

wallpaper-001 | wallpaper-002 | wallpaper-003 | wallpaper-004

wallpapers-sample-noug2.png

wallpaper-005


Stock Oreo - Adjusted - Individual files - Scaled to 1920 pixels high. Only one image at this time.

wallpapers-sample-oreo.png



Nitrogen OS - Individual files | Full ZIP - 2160x1920 images downloaded from HERE - Simply stunning

wallpapers-sample-nos1.png

nos_01 | nos_02 | nos_03 | nos_04

wallpapers-sample-nos2.png

nos_05 | nos_06 | nos_07 | nos_08

wallpapers-sample-nos3.png

nos_09 | nos_10 | nos_11 | nos_12

wallpapers-sample-nos4.png

nos_13 | nos_14 | nos_15 | nos_16

wallpapers-sample-nos5.png

nos_17 | nos_18 | nos_19 | nos_20

wallpapers-sample-nos6.png

nos_21 | nos_22 | nos_23 | nos_24
 
Last edited:

BreckZeBoulay

Senior Member
Oct 23, 2012
1,380
640
Boulay in Frankreich :D
Post #5 for me :D

Glad to see you sharing your job !
All options you propose, I do them after installation of Untouched with flashing zips and exposed. I think this rom could be my daily rom for now.
Bye bye Untouched, hello Almost ! :laugh:

And I make a suggestion !
Build a AOSP kernel with k-exec patch for MultiRom users ! :)
May be it's a little off topic but it could be included in the Almost zip no ?!
 
Last edited:
  • Like
Reactions: androcraze

androcraze

Senior Member
Jan 11, 2013
2,254
1,661
Post #5 for me :D

Glad to see you sharing your job !
All options you propose, I do them after installation of Untouched with flashing zips and exposed. I think this rom could be my daily rom for now.
Bye bye Untouched, hello Almost ! :laugh:

And I make a suggestion !
Build a AOSP kernel with k-exec patch for MultiRom users ! :)
May be it's a little off topic but it could be included in the Almost zip no ?!

Please keep Untouched; it needs to exist ;)

I'm guessing that should such a kernel already exist, you've have installed it by now. For humor, I'll take a look if you can show me the patch.

What am I missing, under-the-hood-wise, from this ROM? I'm mostly concerned about security and fixing broken things.

Are there items missing from the FAQ?
 

androcraze

Senior Member
Jan 11, 2013
2,254
1,661
Will this be moving up to 7.0 build soon?

Soon? No. Please read the FAQ.

EDIT: I'm hoping that I can start something with 7.0 soon, but despite building and patching things, I'm not a "coder". At this point, I'm not seeing a detailed, basic list of things required get get AOSP Nougat going on the N5. Viewing git repos (for those developers that actually bother to post changes) is a cluttered mess, without much explanation about why a commit was included.
 
Last edited:

androcraze

Senior Member
Jan 11, 2013
2,254
1,661
And I make a suggestion !
Build a AOSP kernel with k-exec patch for MultiRom users ! :)
May be it's a little off topic but it could be included in the Almost zip no ?!

I see the MultiROM patch and what it's for.... Do other developers make a kernel that works with Untouched and AlmostVanilla ROMs that supports MultiROM?

Right now, building a kernel looks do-able (I used to do it under Linux, and instructions for the N5 look straightforward). I wouldn't mind adding patches to change the scheduler from cfq to deadline, and drop the CPU minimum speed; it would get rid of an app that I have to install every time to do just that.

What's the advantage of including MultiROM support with this ROM vice flashing another kernel (other than the extra flashing step)?
 

BreckZeBoulay

Senior Member
Oct 23, 2012
1,380
640
Boulay in Frankreich :D
I see the MultiROM patch and what it's for....

Do other developers make a kernel that works with Untouched and AlmostVanilla ROMs that supports MultiROM?

What's the advantage of including MultiROM support with this ROM vice flashing another kernel (other than the extra flashing step)?
Just for information :
http://xdaforums.com/google-nexus-5/orig-development/mod-multirom-v24-t2571011

EX, Blue spark, Franco and may be others...

Just to have a stock AOSP kernel up to date.
At this time, I use EX because I need a kernel with k-exec patch and up to date.
But a stock kernel (with patch) is enough.
Anyway, it's not a priority at all.

---------- Post added at 08:32 AM ---------- Previous post was at 08:31 AM ----------

OK, I'll see what I can do. A screenshot of what? Apps? Desktop? What items do you think will visually give more info about this ROM?
Take the screenshots of Untouched ;)

And your paint shoped screenshots for System tuner are uglyyyyyy :p
 
Last edited:

androcraze

Senior Member
Jan 11, 2013
2,254
1,661
Just for information :
http://xdaforums.com/google-nexus-5/orig-development/mod-multirom-v24-t2571011

EX, Blue spark, Franco and may be others...

Just to have a stock AOSP kernel up to date.
At this time, I use EX because I need a kernel with k-exec patch and up to date.
But a stock kernel (with patch) is enough.
Anyway, it's not a priority at all.

---------- Post added at 08:32 AM ---------- Previous post was at 08:31 AM ----------


Take the screenshots of Untouched ;)

And your paint shoped screenshots for System tuner are uglyyyyyy :p

I'll take a look at the MultiROM patch. If it won't affect users in any way (other than the ability to use MultiROM), then it might be worthwhile.

I like my paint-shopped images; they convey the exact message that I wanted them to ;) I was actually more worried about the file size and image dimensions than artistry. I'll have to make newer ones when I get a chance.

I'll get some better screen shots.
 

androcraze

Senior Member
Jan 11, 2013
2,254
1,661
Today's Material Icon Day!

Yes, I have some screenshots included.

Added a new build with Material icons for Dialer, Calendar, QuickSearchBox, Music, and Gallery.

What do you think?
 
  • Like
Reactions: atjun kustiawan

Top Liked Posts

  • There are no posts matching your filters.
  • 19
    AlmostVanillaAOSP Marshmallow 6.0.1_81 [MOI10E] ROM for the Nexus 5


    Description
    An "almost vanilla" AOSP-based Marshmallow ROM for the Nexus 5.


    Disclaimer
    I am not responsible for anything that happens to your device. By downloading and flashing or installing these zips, you automatically agree that I won't be held liable for anything that happens to your phone.


    Background
    AlmostVanillaAOSP is an AOSP-based ROM directly using Google's source code with a few functional modifications; these modifications are fully-sourced and easily-installed prior to building the ROM. Included modifications are designed to fix bugs, enhance security, and improve "in the field" function.

    Many users prefer a "vanilla" version of AOSP, without added factory bloat and proprietary software; a basic version of AOSP is a great building block to create a custom-featured ROM, or it can be left as-is by users desiring to live outside Google's realm.

    Users shouldn't see any visual or functional difference between this ROM and a vanilla AOSP build; all changes are "under the hood". Please note that there has been no attempt to remove functionality or user choice with this ROM.

    If you're looking for a 100% pure AOSP ROM, please install BreckZeBoulay's UntouchedAOSP ROM IN THIS THREAD


    Included Modifications


    Enabled the Doze option: Google's Doze option (built-into the AOSP code base), is a set of rules that puts an idle phone to sleep, reducing battery drain. For Doze to work, you have to have Google Play Services (GApps) installed. If you don't have Play Services installed, nothing happens and the phone still works fine. For more details on Doze, read HERE.

    Option to add Google's current WebView: The WebView included with AOSP Marshmallow is locked-in at version 52, and the only way it will get updated is by installing a later ROM. With the stock AOSP code, users have no option to upgrade to a newer version; trying to upgrade results in browser crashes and instability. This "fix" allows installing the "Android System WebView" from the Play Store (currently at version 58); the Play Store version is kept current by Google. If you choose not to install the Play Store WebView version, the included version works fine, although at an increased security risk due to not having updates. DO NOT REMOVE THE INCLUDED WEBVIEW VERSION! Keep the original version that's located in /system/app, if you install another version; it's not "bloat". The Play Store Android System WebView can be found HERE.

    Addition of Sony's suggested (and disapproved) Power Menu reboot option: Sony made attempts to add a reboot option to the Power Menu in the AOSP code; their efforts were rejected. However, Sony generously posted the code changes needed to enable this option, and they are included in this ROM. An interesting read on Sony's attempts can be found HERE. For details on implementing this feature post-install, please read the "Implementing Reboot" section below.

    Removal of broken AOSP applications (Browser, Calendar, Email, and Exchange): AOSP Browser, AOSP Calendar, and AOSP Email (and by extension, AOSP Exchange) are hopelessly broken. I refuse to put broken applications in a ROM, even for "completeness". The good news is that Lightning Browser, Etar Calendar, and K9 Mail are open source and even better than the originals. Look in the "Suggested Open Source Applications" section below for links to these apps.

    Removal of LiveWallpapers: The LiveWallpaper bloat has been removed from the ROM. The LiveWallpaperPicker app remains, so the functionality is still there. They're something that few people (if any) actually use.

    Updated Launcher Icons to Material theme: The Material Dialer Icon is usually the first item folks ask for in AOSP ROMs. The Calendar, Dialer, and Gallery launcher icons were borrowed from the Cyanogenmod Github. The QuickSearchBox and Music launcher icons were modified from the icon set provided by Rammist on this WEBSITE. No other changes were made to the apps other than their launcher icons.

    Added Option to Utilize UnifiedNlp Location: UnifiedNlp is a FLOSS (Free/Libre and Open Source Software) Wi-Fi- and cell-tower-based geolocation tool for Android by MaR-V-iN. His XDA thread can be found HERE. All that's been done is the addition of a single entry (org.microg.nlp) during build to the list of the ROM's network location services. Users who don't add the UnifiedNlp app will see no change or function with the ROM. For details on implementing UnifiedNlp with this ROM, please review Post #2 in this thread.


    Sources and Source Patches


    Source tree:
    Code:
    https://android.googlesource.com/platform/manifest -b android-6.0.1_r81

    Nexus 5 (GSM/LTE) binaries for Android 6.0.1 (M4B30Z):
    Code:
    https://developers.google.com/android/drivers

    Source Patches Used for ROM Build:

    Patch Installation Prior to Building ROM:
    Put patch(es) in the AOSP build folder. This is how the patches and icon images were installed:
    Code:
    patch -p0 < M4B30X_Reboot.patch
    patch -p0 < M4B30X_WebView.patch
    patch -p0 < M4B30X_Doze.patch
    patch -p0 < M4B30X_Bloat.patch
    patch -p0 < MOB31T_Broken.patch
    patch -p0 < MOB31T_UnifiedNlp.patch
    
    unzip M4B30X_Reboot_Icons.zip
    unzip M4B30X_Dialer-Gallery2-Calendar-Search-Music_Icons.zip
    
    find . \( -name \*.orig -o -name \*.rej \) -delete

    NOTE on ".rej" and ".orig" generated files:
    Patches that succeed but have ***ANY*** issue generate additional ".orig" files in the same folders as the original files.
    Patches that fail generate a ".rej" extension file in the same folder as the original file. A failed patch must be investigated before proceeding further.

    For example:
    Code:
    frameworks/base/core/res/res/values/config.xml
    frameworks/base/core/res/res/values/symbols.xml

    Both of the above files are modified by two or more patch files. An initial patch will work fine, but subsequent patches are noted with notices like "Hunk #1 succeeded at 306 (offset 1 line)". The patch applied fine, but the patch command is notifying you that when it went to apply the patch, the lines weren't where they were originally expected to be (shifted down XX number of lines). As long as the patch didn't fail with output like "Hunk #1 FAILED at 58.", you're good. However, even though the patch was successful, it still generates a "config.xml.orig" or a "symbols.xml.orig" file when there is a conflict.

    Now the problem: those ".xml.rej" and ".xml.orig" files, despite having incorrect endings and not being actual ".xml" files, are treated during build as valid .xml files. Since the config.xml.orig and config.xml file are in the same folder and almost identical, the build will fail as it's seeing the duplication. AOSP appears to parse all files in certain folders, regardless of extension.

    The following command will eliminate those ".orig" and ".rej" files, should they appear:
    Code:
    find . \( -name \*.orig -o -name \*.rej \) -delete


    To revert installed patches, with the patches in the AOSP build folder:
    Execute the following commands:
    Code:
    patch -p0 -R < M4B30X_WebView.patch
    patch -p0 -R < M4B30X_Reboot.patch
    patch -p0 -R < M4B30X_Doze.patch
    patch -p0 -R < M4B30X_Bloat.patch
    patch -p0 -R < MOB31T_Broken.patch
    patch -p0 -R < MOB31T_UnifiedNlp.patch
    
    find . \( -name \*.orig -o -name \*.rej \) -delete

    NOTE: any icon images you've unzipped can't be reverted.


    Known Bugs
    None yet.


    GPL
    The kernel included with this ROM was pulled directly from the AOSP source tree. No modifications have been made to any of the kernel sources or the kernel itself.

    For the source tree for the AOSP-supplied kernel, please check HERE.

    The GPL v2 license can be found HERE.


    AlmostVanillaAOSP ROM Download

    LATEST: AndroidFileHost | Mediafire

    AlmostVanillaAOSP[6.0.1_r81-MOI10E]Hammerhead-20171004.zip
    SHA256: 7fcdb2dd0e349b1b99eefc55f9e49b0fd07c9e2ad1054848840019a88434c2b5

    OLDER RELEASES can be found here: AndroidFileHost


    AOSP Changelogs - Does not include AlmostVanilla changes.

    Generated using the following bash script:
    Code:
    #!/bin/bash
    # 
    # 
    # 
    repo forall -c '
    if git rev-parse android-6.0.1_r79 >/dev/null 2>&1
    then
    git log --oneline --no-merges android-6.0.1_r79..android-6.0.1_r80
    else
    git log --oneline --no-merges android-6.0.1_r80
    fi
    ' | cat

    android-6.0.1_r79 to r80


    Add-on Downloads - In TWRP-flashable format.

    Radio/Modem Download, Version M4B30X_M8974A-2.0.50.2.30: AndroidFileHost | Mediafire
    - The current modem-radio for the N5 is M8974A-2.0.50.2.30, from the M4B30X ROM.

    Video Green Line Fix, Version 6.0.1_r77-M4B30Z: AndroidFileHost | Mediafire
    - Fixes the green line along the edge of video frames.
    - Pulled from the latest factory N5 ROM, M4B30Z_6.0.1_r77.

    Qualcomm Time Service Fix, Version 6.0.1: AndroidFileHost | Mediafire | Older Versions
    - Fixes the date and time resetting on successive boots.

    UnifiedNlp(GAPPS), Version 1.6.8: AndroidFileHost | Mediafire
    - A flashable version of UnifiedNlp(GAPPS) that installs to /system. Only for AlmostVanillaAOSP[6.0.1_r79-MOB31T]Hammerhead-20170418.zip or later versions WITH built-in UnifiedNlp support.
    - For details on implementing UnifiedNlp with this ROM, please review Post #2 in this thread.

    N5 Boot Animations: This THREAD has an assortment of N5 flashable and tested bootanimations.

    Debloating Tools: Look at this thread THREAD for debloating scripts to eliminate unwanted or redundant applications.


    Wallpapers

    AOSP doesn't include any wallpapers for the Launcher/Home Screen. To help beautify your N5, I've included some links to stock Android and Nitrogen OS wallpaper in Post #3.


    Installation

    PLEASE ASK QUESTIONS IF YOU HAVE THEM!

    General ROM & GApps Install Procedure:
    --------
    PREPARATION:
    1. Flash current factory ROM via PC (to get current modem radio)
    2. Install TWRP via adb
    3. Create empty GApps text files as per directions HERE
    4. Copy ROM, empty text files, and install items to phone from PC

    FLASH & INSTALL:
    1. Boot to TWRP
    2. Reboot to recovery (TWRP) from within TWRP
    3. Wipe everything but internal storage
    4. Flash the ROM
    5. Flash a bootanimation, TimeService, Green line fix
    6. Reboot to System
    7. Configure Time, WiFi, APN, Reboot Menu
    8. Reboot to TWRP
    9. Flash GApps (Delta GApps MM PROCEDURE
    10. Reboot to System
    11. Set permissions for GApps (Contacts, Play Store, Google Play Services)
    12. Reboot back to System
    13. Setup Google Account
    14. Install Play Store Apps
    15. Install APKs manually
    16. Reboot to TWRP
    17. Run debloat script.
    18. Reboot to TWRP
    19. Flash UnifiedNlp app
    20. Install SuperUser (PHH's is fine)
    21. Reboot to System.
    22. Done

    #6, rebooting to System BEFORE flashing GApps, is VERY important.

    GOOD LUCK!


    Screen Shots

    aosp-shot1.png


    aosp-shot2.png



    FAQ

    Q: How can I verify the running WebView version of my ROM?
    A: Use HTML5test WebView from HERE.

    Q: Does Doze work in this build?
    A: Yes. You'll need GApps installed for it to work properly. You do not have to enable anything; it is active by default.

    Q: How can I check and see if Doze is enabled on this ROM?
    A: Download and install the APK from this THREAD.

    Q: My date and time keeps resetting on successive boots?
    A: Solution is to install the Qualcomm TimeService app (a proprietary application) - the 6.0.1 version is available HERE

    Q: Can I use this ROM with Android Pay?
    A: No. Only approved factory ROMs from Google can use Android Pay. If you want Android Pay on the Nexus 5, install a Marshmallow factory image.

    Q: Where can I get the Marshmallow bootanimation? I'm only seeing the AOSP default framework bootanimation.
    A: Try Post #1 in this Boot Animation Collection.

    Q: Where can I find your build tree?
    A: There is no build tree for this ROM, other than the full source code as provided by Google. Any modifications to this source code are noted under "Patches".

    Q: Can you add new features to this ROM?
    A: The goals of this ROM are a stock AOSP feel and security. "Features" other than bug-fixes and security enhancements aren't a priority and probably won't be added.

    Q: Which GApps are recommended?
    A: Deltadroid's GApps are highly recommended using this installation PROCEDURE

    Q: How do I install GApps?
    A: A general procedure to install ROM with GApps:
    Don't flash the ROM together with GApps in the same ZIP queue because this will cause the Installation Wizard to run on first boot. Due to Google Play permissions errors the Wizard will keep crashing and you won't be able to bypass this. Solution:
    1. Boot to TWRP
    2. Reboot to recovery (TWRP) from within TWRP
    3. Wipe everything but storage
    4. Flash the ROM
    5. Flash a bootanimation, TimeService, Green line fix
    6. Reboot to System
    7. Configure Time, WiFi, APN, Reboot Menu
    8. Reboot to TWRP
    9. Flash GApps
    10. Reboot to System (Yes, you'll probably get Play Services "FC" messages until you perform #11, below)
    11. Immediately toggle application permissions to "ON" under "Settings -> Apps -> ... -> System show" for:
    Code:
    - Google Contacts Sync
    - Google Play Services
    - Google Play Store
    12. Reboot back to System
    13. Setup Google Account via "Settings -> Accounts -> Add account -> Google"
    14. Install Play Store Apps
    15. Install APKs manually
    16. Reboot to TWRP
    17. Run debloat script.
    18. Reboot to TWRP
    19. Install SuperUser (PHH's is fine)
    20. Reboot to System.
    21. Done

    Q: My Google Play Store / Google Play Services / Apps keep crashing?
    A: This is a permissions issue. Please read the "Which GApps are recommended?" answer above.
    You can try System Settings > Apps (top right menu button) > Show System,
    and set the following to resolve most crashes:

    Google Contacts Sync > Contacts permission
    Google Play Services > All permissions
    Google Play Store > All permissions

    Q: Can you patch the ROM to deal directly with the GApps permissions issue?
    A: No. It's a security policies issue, and there's no desire to override those policies.

    Q: Where is the System Tuner UI?
    A: Enable Developer Options (under "About Phone", tap "Build Number" seven times), then long-press the settings icon in the notification shade/bar.

    Q: How do I get root?
    A: PHH's SuperUser is highly recommended. Install the SuperUser APK (F-Droid or Play Store), then flash the superuser.zip from HERE. It works flawlessly, and it's open source.

    Q: Can I use this ROM with MultiROM?
    A: UntouchedAOSP users were successful with MultiROM. AlmostVanillaAOSP should work equally-well.

    Q: AOSP Calendar (and Etar Calendar) won't sync with my on-line Google calendar. How can I make syncing work?
    A: Flash the Google Calendar Sync addon for 6.0.0+ add-on from this THREAD, located under "Additional Kitkat, Lollipop, Marshmallow, and Nougat gapps addons". Ensure that permissions are granted in Settings -> Apps for "Google Calendar Sync". You'll need to enable "Show system" under the ". . ." in the upper right of the Apps window,

    Q: I get a green line on one side of the frames when recording video. How can I fix this?
    A: Go to the "Add-on Downloads" section in this post and get the "Video Green Line Fix" download.

    Q: I'm having issues with Location and certain apps (Chronus, f.lux, Google Fit, etc.). How can I fix this?
    A: This isn't a ROM issue; it's an AOSP issue. Review POST #2 in this AlmostVanillaAOSP thread for a solution using UnifiedNlp. For a long, detailed answer, look at Mar-v-in's initial response in this GITHUB POST. Hopefully the following will be a short-enough summary:
    • Google started with an open Location API that was used for AOSP and Google's factory ROMs.
    • Google created a new Play Services Location API that isn't included is AOSP code and it's only included in factory ROMs.
    • Google recommends that developers use the newer, closed API version.
    • Despite the fact that there are few differences between the old and new API, some developers are migrating solely to the new, stranding AOSP users.

    Possible solutions for those AOSP users not having access to the new Location API:
    • Use the solution in POST #2 of this thread.
    • Forget about custom ROMs, only install factory ROMs (yeah, right!).
    • Only use and support apps that use the open Location API (all of the applications listed in post #1 of this thread -- requiring Location -- under "Suggested Open Source Applications" support the older Open Location API).
    • Ask developers if they're willing to modify their applications to fall-back to the open API if the Google one isn't available, or just use the open API.
    • For other AOSP ROMs, use the procedure as outlined by @alessio89g in this POST

    Q: How about a Nougat ROM?
    A: Until things stablize on the development front, no. There are driver issues for Nougat on the N5 that have yet to be resolved. It was hoped that there'd be a very vanilla Nougat N5 build, with very detailed modifications of the source tree; documented changes seem to be all over the place, with developers more focused on "features" than straightforward builds. There is a "CleanAOSP" Nougat ROM, but I don't know much about it.


    Implementing Reboot

    Activate Developer Options: Go to "Settings -> About phone", scroll-down to "Build number", and tap it seven (7) times (first image).
    Activate System UI Tuner: Swipe the top of the screen twice, until you get the below image. Long-press the gear icon. When you let go, a wrench icon appears (second image).
    reboot1.jpg


    Go to "Settings -> System UI Tuner", toggle "Show restart in global actions menu":
    reboot2.jpg


    Go to "Settings -> Developer options", scroll down and verify "Restart shortcut" is toggled:
    reboot3.jpg


    NOTE:
    "Developer options -> Restart shortcut" and
    "System UI Tuner -> Show restart in global actions menu"

    are tied together; toggling one automatically toggles the other.

    Either method will activate the Reboot menu.


    Suggested Open Source Applications


    Thanks:
    • @BreckZeBoulay - for inspiration, guidance, keeping up the good fight, and teaching me how to build a ROM
    • @Deltadroid - for an awesome GApps package, and listening to users
    • @MattDN93 - for listening to users and being a cheerleader
    • @Scott - for his incredible walkthrough in this THREAD
    11
    Updated ROM to AlmostVanillaAOSP [6.0.1_r80-MOB31Z] - 20170719

    Notes:
    - Doze works
    - WebView works
    - Reboot Menu works
    - UnifiedNlp works

    Only "issue" is that Candy Crush (from the Play Store) now says it's incompatible with my N5; I was able to manually install the APK fine.
    EDIT: Manually installing Candy Crush allows the Play Store to show "compatible" again.

    The changelog shows many, many, many security bug fixes and stability fixes.
    8
    Syncing. I'll build 6.0.1_r80 this evening.

    EDIT: Strange.... No platform is listed:

    https://source.android.com/source/build-numbers

    MOB31Z android-6.0.1_r80

    Perhaps a gift to the community?
    7
    AlmostVanillaAOSP [6.0.1_r79-MOB31T] - 20170418
    - A new build based-on 6.0.1_r79 (MOB31T).

    Changes:
    - Built-in support for UnifiedNlp(GAPPS) app; this addition will allow using troublesome apps (Chronus, f.lux, Google Fit, etc.) requiring location. Users no longer have to install Xposed to get this function working.

    - Created flashable UnifiedNlp(GAPPS) app zip that installs to /system; this should allow smooth functioning of UnifiedNlp location (see "Add-on Downloads in Post #1).

    - Removed AOSP Calendar from the build. It's been broken for a while now, and Etar Calendar (F-Droid | Play Store) is a much more reliable option.

    - Added SHA256sum hash for paranoid users.

    Users NOT using UnifiedNlp will NOT see a benefit in upgrading from AlmostVanillaAOSP[6.0.1_r79-MOB31T]Hammerhead-20170306.zip. But really, you're itching to try it, aren't ya?!
    7
    OK. ROM 6.0.1_r81 installed properly with no issues.

    When installing, please reboot from TWRP to recovery (TWRP) when installing the ROM; it prevents install errors. You only have to do this for the ROM, not anything else.

    6.0.1_r81-MOI30E installs and works (as far as I can check without a SIM card).

    1. Stock apps all launch correctly.

    2. Checked for Doze support: I didn't have GApps installed, but everything else checked-OK. I suspect it will work fine.

    3. I'll let someone else do the HTML test; it wanted Play Services, and I didn't install GApps.

    4. Followed the directions in post #1 to enable the reboot menu, and everything works.

    5. Check UnifiedNlp: installed fine, and the backend seemed to work.

    6. Check for BlueBorne susceptibility: Good news! The BlueBorne app shows that this build isn't susceptible. So some security fixes were done.

    7. Security patch level is October 1, 2017