Website | Download | Donate | Documentation | Telegram
Download the BlissOS source code, based on AOSP & Android-x86
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 (16 Cores or better for a faster performance)
16GB RAM (32GB for Virtual Machine)
350GB Hard Drive (about 170GB for the Repo and then building space needed)
Time to compile:
Laptop: 6-8 hours
Desktop/Workstation: 4-6 hours
Server: 1-2 hours
sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses-dev x11proto-core-dev libx11-dev lib32z-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip squashfs-tools python3-mako libssl-dev ninja-build lunzip syslinux syslinux-utils gettext genisoimage gettext bc xorriso xmlstarlet meson glslang-tools git-lfs libncurses6 libncurses6:i386 libelf-dev aapt zstd rdfind nasm
Rust toolchain & programs are also required. We recommend you to install them using rustup !
First, remove distro' Rust toolchain:
sudo apt remove rustc bindgen cargo -y
Next install rustup by following this page:
https://www.rust-lang.org/tools/install
After getting rustup installed, install required programs & toolchain:
cargo install cargo-ndk
rustup target add x86_64-linux-android i686-linux-android
cargo install --version 0.69.1 bindgen-cli
cargo install cbindgen
As Ubuntu 24.04+ removed libncurses5, we need to symlink some libncurses6 libraries
to be libncurses5 in order to make the toolchain work.
!!!WARNING: These commands are poking into /lib, please proceed with cautions
sudo ln -s /lib/x86_64-linux-gnu/libncurses.so.6 /lib/x86_64-linux-gnu/libncurses.so.5
sudo ln -s /lib/x86_64-linux-gnu/libncursesw.so.6 /lib/x86_64-linux-gnu/libncursesw.so.5
sudo ln -s /lib/x86_64-linux-gnu/libtinfo.so.6 /lib/x86_64-linux-gnu/libtinfo.so.5
sudo ln -s /lib/i386-linux-gnu/libncurses.so.6 /lib/i386-linux-gnu/libncurses.so.5
sudo ln -s /lib/i386-linux-gnu/libncursesw.so.6 /lib/i386-linux-gnu/libncursesw.so.5
sudo ln -s /lib/i386-linux-gnu/libtinfo.so.6 /lib/i386-linux-gnu/libtinfo.so.5
Repo initialization
repo init -u https://github.com/BlissRoms-x86/manifest.git -b arcadia-x86 --git-lfs
Sync repo
repo sync -c --force-sync --no-tags --no-clone-bundle -j$(nproc --all) --optimized-fetch --prune
BLISS_BUILD_VARIANT - (vanilla, gapps, foss) - We currently use this to specify what type of extra apps and services to include 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
- 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
$ . build/envsetup.sh
$ lunch bliss_x86_64-userdebug
$ make iso_img
Adding build options
Before running lunch, you can add 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 MindTheGapps
export BLISS_BUILD_VARIANT=gapps
- 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
We do offer some extra libraries that can be compiled into the build. These include :
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
- You can reach us via Telegram (Android™-Generic (x86 PC) Community Development)

