Halium 12.0 + LineageOS 19.1 + Ubuntu Touch (Focal 20.04) for Samsung Galaxy S10 (beyond1lte) Build rootfs From Scratch
-
I'm trying to build a root file system for the device;
Device codename: beyond1lte
Device model: Samsung Galaxy S10 (SM-G973F)
Chipset: Exynos 9820
Halium version: 12.0
LineageOS version: 19.1
Ubuntu Touch version: Focal 20.04The instructions I'm using come from ChatGPT which appears to be very outdated in this instance. It tells me to make the file system with UBports rootfs-builder from;
https://github.com/ubports/rootfs-builder.git
Which isn't available at that link.
Can anyone please point me in the right direction to this tool or something similar for building file systems for Ubuntu Touch.
-
@BaShMu this tutorial includes kernel compilation and rootfs creation after it:
https://docs.ubports.com/en/latest/porting/build_and_boot/standalone_kernel_build.html -
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
.
-
-
@BaShMu it's an old way of porting devices. Use the tutorial I linked