## Compile Waydroid - Lineage OS based images
# Getting started
# To get started with Android/LineageOS, you'll need to get familiar with  and its git workflow.

sudo apt install git repo python3-kerberos

## Initializing
# To initialize your local repository using the LineageOS trees, use a command like this:
lineage_git="https://github.com/LineageOS/android.git"
# lineage_branch="lineage-18.1"
lineage_branch="lineage-20"

repo init -u ${lineage_git} -b ${lineage_branch} --git-lfs
repo sync build/make

# Then we grab the Waydroid local_manifests
# https://github.com/waydroid/android_vendor_waydroid
wget -O - https://raw.githubusercontent.com/waydroid/android_vendor_waydroid/${lineage_branch}/manifest_scripts/generate-manifest.sh | bash

## Syncing
# Then to sync up:
repo sync

# Then we setup the local build environment:
${PWD} build/envsetup.sh

## Patching
# After that is complete, we apply the Waydroid patches:
apply-waydroid-patches

# How to build
# Please see the lineageOS wiki for building environment setup.

# Waydroid AOSP Lunch Options:
# lineage_waydroid_arm-userdebug
# lineage_waydroid_arm64-userdebug
# lineage_waydroid_x86-userdebug
# lineage_waydroid_x86_64-userdebug

# Waydroid Build Commands:
${PWD} build/envsetup.sh
lunch lineage_waydroid_arm64-userdebug
make systemimage -j"$(nproc --all)"
make vendorimage -j"$(nproc --all)"

## Image Generation From Sparse Image:
# The default output of the AOSP build system is an "Android Sparse Image". We need raw fileystems instead. From the same terminal where you just built a system and a vendor image, run:
simg2img "${OUT}"/system.img ~/system.img
simg2img "${OUT}"/vendor.img ~/vendor.img

# to obtain your target raw images at ~/system.img and ~/vendor.img

## Troubleshooting
# Local Manifest:
# To manually regenerate the local_manifests, we also have added a function to do so
# waydroid-generate-manifest

# After doing that you will want to resync (this will wipe out any local changes, so make sure you save your work to a different branch)
