To get started with Android/LineageOS/Project CiRCLE, you'll need to get familiar with Source Control Tools.
To initialize your local repository using the Project CiRCLE trees, use a command like this:
repo init -u https://github.com/ProjectCiRCLE-ROM/manifest.git -b 16.2 --git-lfs
Then to sync up:
repo sync
NixOS is primarily preferred to build Project CiRCLE. Our ready-made devshell flake makes it easy to prepare your environment for building.
To prepare your environment, you have two options: Using direnv and using nix develop.
If you use direnv, which you should since we specifically link a .envrc file for this purpose, use the following commands to enter the build environment:
direnv allow
aosp-env
Note that you have to run direnv allow only once, then you can just cd into the build root and run aosp-env in subsequent shell sessions.
If you don't use direnv, you can run the following command to enter the build environment:
nix develop path:external/devshell
You have to run this command every time you want to enter the build environment, so you better save it somewhere!
After you enter the build environment (or prepare the distro of your choice for building), use the following command to gather the functions required and run the vendorsetup scripts from your device trees:
source build/envsetup.sh
And then, to populate your environment with variables needed for your specific device:
lunch circle_$device-bp4a-userdebug
Finally, to start building:
m live
There are flags you can use to customize your build however you like.
To label your builds as experimental or unofficial:
CIRCLE_BUILDTYPE := EXPERIMENTAL | UNOFFICIAL
The builds are labeled unofficial by default (if the variable is empty or has an unrecognized definition).
To ship Google apps:
WITH_GMS := true
To set your alias as the maintainer:
CIRCLE_MAINTAINER := username
Make sure not to use spaces as this is passed to PRODUCT_PRODUCT_PROPERTIES as is. If you put space, only the content before first space is taken into consideration, and it will also mess up build.prop, like so:
# CIRCLE_MAINTAINER := First Last
ro.circle.maintainer=First
Last
If your device has a Mediatek chipset, the following flag might be useful for you:
PERF_ANIM_OVERRIDE := true
This flag works around a performance regression caused by fixed DP translations and fade animations.
- Project Kasumi Community: The idea and the driving force
- LineageOS: Base ROM
- halogenOS: Base Nix devshell
- DivestOS: Patches to nuke analytics
- Project Sakura: Some design ideas and specific features
- Halcyon: Specific features
- The Clover Project: Specific features and fonts
- crDroid: Specific fixes and improvements
- AxionOS: Specific fixes and improvements
- LineageOS-Ext: Specific fixes and improvements