The steps I am following are as follows;
Hereβs a streamlined step-by-step guide to build Halium 12.0 + LineageOS 19.x + Ubuntu Touch (Focal 20.04) for Samsung Galaxy S10 (beyond1lte) on Parrot Linux, using the exynos9820 kernel tree and vendor_samsung
.
π§° Prerequisites
System Setup (Parrot OS)
-
Install required packages:
sudo apt update sudo apt install git-core gnupg flex bison 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 \ fontconfig bc python-is-python3 python3-pip repo lzop
-
Set up git credentials:
git config --global user.name "Your Name" git config --global user.email "you@example.com"
οΈ Create Working Directories
mkdir -p ~/halium-12.0-beyond1lte
cd ~/halium-12.0-beyond1lte
Make sure your build location is on an ext4 partition, not NTFS, or it will fail.
Initialize and Sync Halium + LineageOS Trees
repo init -u https://github.com/Halium/android -b halium-12.0 --depth=1
repo sync -c -j$(nproc --all) --force-sync --no-clone-bundle --no-tags
Clone Required Device Trees
git clone https://github.com/LineageOS/android_device_samsung_beyond1lte -b lineage-19.1 device/samsung/beyond1lte
git clone https://github.com/LineageOS/android_device_samsung_exynos9820-common.git -b lineage-19.1 device/samsung/exynos9820-common
git clone https://github.com/TheMuppets/proprietary_vendor_samsung -b lineage-19.1 vendor/samsung
git clone https://github.com/LineageOS/android_kernel_samsung_exynos9820 -b lineage-19.1 kernel/samsung/exynos9820
οΈ Apply Halium Patches
Use Haliumβs helper script:
bash halium/devices/setup-device device/samsung/beyond1lte
Or apply relevant patches manually from:
https://github.com/Halium/halium-devices/
Make sure to patch:
init
system/core
build
system/sepolicy
οΈ Prepare Ubuntu Touch Rootfs
-
Install
ubuntu-device-flash
andpmbootstrap
if needed. -
Download rootfs:
mkdir -p ubuntu-touch cd ubuntu-touch wget https://cdimage.ubports.com/ubuntu-touch/edge/channel/halium/ubuntu-touch-android12-arm64-rootfs.tar.gz
π§± Build Halium System
source build/envsetup.sh
lunch lineage_beyond1lte-eng
mka halium-boot
mka systemimage
Output images will be in
out/target/product/beyond1lte/
Flash the Device (Example)
fastboot flash boot out/target/product/beyond1lte/halium-boot.img
fastboot flash system out/target/product/beyond1lte/system.img
Then push the rootfs and resize:
adb shell
mkdir /data/rootfs
exit
adb push ubuntu-touch-android12-arm64-rootfs.tar.gz /data/
adb shell
cd /data
tar -xzf ubuntu-touch-android12-arm64-rootfs.tar.gz
Final Steps
- Set up libhybris compatibility.
- Adjust fstab, init.rc, and udev.
- Test Halium Boot β If it gets to root shell, you're almost there.
- Deploy Ubuntu Touch via
ubports-installer
orhalium-install
.