Sony includes Xperia XZ Premium to Open Devices Program, AOSP build guide included

Sony is one of the few companies that actually take the OHA seriously and while various other companies tend to shy away from releasing device trees and libraries, Sony takes it all a step further with their Open Devices Program
The inclusion of XZ Premium to Sony’s Open Devices program enables you to build and flash any flavour of Android on your device. It must be noted that the software is meant for developers and ‘flashaholics’ and can be unstable due to its early stage implementation.
Building an AOSP ROM
Given below is a detailed set of instructions in case anyone is interested in building an AOSP ROM for the device
Prerequisites
- Software binaries for AOSP | Download
This guide assumes you run Ubuntu, but it should work in a similar way on any Linux-based system. To use these instructions, you should be familiar with Android development. Follow the steps below to build Android Nougat on an unlocked Xperia device.
- Prepare Your Java Environment
In a terminal window, enter the following commands:sudo apt-get purge openjdk-\* icedtea-\* icedtea6-\* sudo apt-get update sudo apt-get install openjdk-8-jdk java -version
- Install the necessary tools to make an Android build
In a terminal window, enter the following commands, all at once:sudo apt-get install bison g++-multilib git gperf libxml2-utils make zlib1g-dev:i386 zip
- Download Repo tool and set PATH
In a terminal window, enter the following commands to download and install Repo, and set the right access rules for it:mkdir ~/bin curl https://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo chmod a+x ~/bin/repo
Open the bashrc file included in the repo tool:
sudo nano ~/.bashrc
To set the right path for your local bin folder, paste the following code to a new line at the very bottom of the bashrc file, and then save the file using Ctrl+X:
export PATH=~/bin:$PATH
Reload bash variables to include the new path:
source ~/.bashrc
- Initialise the AOSP tree
In a terminal window, enter the following commands:mkdir ~/android cd ~/android repo init -u https://android.googlesource.com/platform/manifest -b android-7.1.2_r17
Clone the local_manifests from GitHub using the following commands
cd .repo git clone https://github.com/sonyxperiadev/local_manifests cd local_manifests git checkout n-mr1_4.4 cd ../..
To download the code into the device repos created above, run the command
repo sync
- Add necessary patches from the AOSP upstream branch
In a terminal window, enter:cd external/toybox git fetch https://android.googlesource.com/platform/external/toybox refs/changes/74/265074/1 && git cherry-pick FETCH_HEAD git cherry-pick d3e8dd1bf56afc2277960472a46907d419e4b3da git cherry-pick 1c028ca33dc059a9d8f18daafcd77b5950268f41 git cherry-pick cb49c305e3c78179b19d6f174ae73309544292b8 cd ../libnfc-nci git fetch https://android.googlesource.com/platform/external/libnfc-nci refs/changes/52/371052/1 && git cherry-pick FETCH_HEAD cd ../../hardware/qcom/bt git fetch https://android.googlesource.com/platform/hardware/qcom/bt refs/changes/99/422499/1 && git cherry-pick FETCH_HEAD git fetch https://android.googlesource.com/platform/hardware/qcom/bt refs/changes/00/422500/1 && git cherry-pick FETCH_HEAD cd ../audio git fetch https://android.googlesource.com/platform/hardware/qcom/audio refs/changes/91/294291/1 && git cherry-pick FETCH_HEAD git fetch https://android.googlesource.com/platform/hardware/qcom/audio refs/changes/35/274235/9 && git cherry-pick FETCH_HEAD git fetch https://android.googlesource.com/platform/hardware/qcom/audio refs/changes/86/333386/1 && git cherry-pick FETCH_HEAD cd ../media git fetch https://android.googlesource.com/platform/hardware/qcom/media refs/changes/39/422439/1 && git cherry-pick FETCH_HEAD git fetch https://android.googlesource.com/platform/hardware/qcom/media refs/changes/79/422379/1 && git cherry-pick FETCH_HEAD cd ../../../system/core git fetch https://android.googlesource.com/platform/system/core refs/changes/52/269652/1 && git cherry-pick FETCH_HEAD git fetch https://android.googlesource.com/platform/system/core refs/changes/12/373812/1 && git cherry-pick FETCH_HEAD cd ../../packages/apps/Music git cherry-pick 6036ce6127022880a3d9c99bd15db4c968f3e6a3 cd ../../../frameworks/av git fetch https://android.googlesource.com/platform/frameworks/av refs/changes/92/384692/2 && git cherry-pick FETCH_HEAD cd ../../
- Build AOSP images that can be flashed
Enter the following commands:source build/envsetup.sh && lunch make –j
- Flash AOSP image to your device
On your device: Connect the device to your computer in Fastboot mode, by pressing volume up while inserting the USB cable. When the device is in Fastboot mode, the LED on the device will be illuminated in blue.
On your computer: Flash the boot, system and userdata images by entering the following commands in a terminal window:fastboot –S 256M flash boot out/target/product//boot.img fastboot –S 256M flash system out/target/product//system.img fastboot –S 256M flash userdata out/target/product//userdata.img
If all steps are followed correctly, your device should now be running an AOSP Nougat 7.1 build.