#
Build Bliss OS (v14.x)
#
Starting Off
We also offer Android-Generic Project 2.0 as an easy to learn method of building Android 11 for PC's. Checkout the project README.md for more info.
Download the BlissRoms source code, based on AOSP, phhusson & BlissRoms
Please read the AOSP building instructions before proceeding.
#
What you need to build BlissOS
Latest Ubuntu LTS Releases https://www.ubuntu.com/download/server
Decent CPU (Dual Core or better for a faster performance)
8GB RAM (16GB for Virtual Machine)
250GB Hard Drive (about 170GB for the Repo and then building space needed)
Installing Java 8
sudo add-apt-repository ppa:openjdk/ppa
sudo apt-get update && upgrade
sudo apt-get install openjdk-8-jdk
update-alternatives --config java (make sure Java 8 is selected)
update-alternatives --config javac (make sure Java 8 is selected)
reboot
#
Grabbing Dependencies
$ sudo apt-get install git-core git-lfs gnupg flex bison maven gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip squashfs-tools python-mako libssl-dev ninja-build lunzip syslinux syslinux-utils gettext genisoimage gettext bc xorriso libncurses5 xmlstarlet build-essential git imagemagick lib32readline-dev lib32z1-dev liblz4-tool libncurses5-dev libsdl1.2-dev libxml2 lzop pngcrush rsync schedtool python-enum34 python3-mako libelf-dev aapt zstd rdfind nasm rustc bindgen
If you plan on building the kernel with the NO_KERNEL_CROSS_COMPILE flag, you will need to also have gcc-10+ installed:
$ sudo apt-get install gcc-10 g++-10
#
Initializing Repository
Repo initialization :
## Releases Repo ##
repo init -u https://github.com/BlissRoms-x86/manifest.git -b r11-x86 --git-lfs
sync repo :
$ repo sync -c --force-sync --no-tags --no-clone-bundle -j$(nproc --all) --optimized-fetch --prune
#
Options
BLISS_BUILD_VARIANT - (vanilla, opengapps, foss) - We currently use this to specify what type of extra apps and services to iunclude in the build.
Note: Default BLISS_BUILD_VARIANT is VANILLA.
BLISS_SPECIAL_VARIANT - This can be custom set if you wanna build a version for a specific device
for example -jupiter for Steam Deck or -surface for Microsoft Surface series
BLISS_SPECIAL_VARIANT - This can be custom set if you wanna build a version for a specific device for example -jupiter for Steam Deck or -surface for Microsoft Surface series
## Building
```text
$ . build/envsetup.sh
$ export NO_KERNEL_CROSS_COMPILE=true
$ export BLISS_BUILD_VARIANT=foss
$ lunch bliss_x86_64-userdebug && make blissify iso_img -j23
#
Setup FOSS apps or OpenGapps
- If you want to build with FOSS (this will include microG Services & some extra apps), go to vendor/foss and then type
./update.sh
And then choose 1 (x86/x86_64) to fetch all the apps. If you want to include Bromite Webview in, type this instead
./update.sh "" bromite
- If you want to build with OpenGapps, first make sure to get
git-lfs
(already listed in above). Once you gotgit-lfs
, type this
repo forall -c git lfs pull
To fetch the packages.
#
Building
$ . build/envsetup.sh
$ lunch bliss_x86_64-userdebug
$ make iso_img
Adding build options
Before running make iso_img
, you can adding variables into the build to integrate more stuff into the image.
Note that you can put different variables into the build.
- To build with FOSS
export BLISS_BUILD_VARIANT=foss
- To build with OpenGapps
export BLISS_BUILD_VARIANT=opengapps
- To build with proprietary libhoudini extracted from WSA
export ANDROID_USE_INTEL_HOUDINI=true
- To add a custom label into a device-specific build
export BLISS_SPECIAL_VARIANT=-Jupiter
- To build the special "surface" variant which include kernel with patches from linux-surface and the iptsd userspace touchscreen daemon
export BOARD_IS_SURFACE_BUILD=true
- To build the special "go" variant for BlissOS Go
export BOARD_IS_GO_BUILD=true
More build options will be in Extras part including proprietary native-bridge/widevine libraries
#
Extras
We do offer some extra libraries that can be compiled into the build. These include :
ChromeOS's libhoudini/Widevine DRM L3
https://github.com/supremegamers/android_vendor_google_chromeos-x86
Clone to vendor/google/chromeos-x86
, go to the folder and open terminal
./extract-files.sh
The variable to activate this is USE_CROS_HOUDINI_NB=true
for libhoudini and USE_WIDEVINE=true
for Widevine.
Prebuilt Widevine from Windows Subsystem for Android
https://github.com/supremegamers/vendor_google_proprietary_widevine-prebuilt
Clone to vendor/google/proprietary/widevine-prebuilt
, The variable to activate this is USE_WIDEVINE=true
Windows Subsystem for Android's libhoudini
https://github.com/supremegamers/vendor_intel_proprietary_houdini
Clone to vendor/intel/proprietary/houdini
, The variable to activate this is ANDROID_USE_INTEL_HOUDINI=true
#
Report build issues
- You can reach us via Telegram (Android™-Generic (x86 PC) Community Development)