UBports Robot Logo UBports Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Register
    • Login

    Halium 12.0 + LineageOS 19.1 + Ubuntu Touch (Focal 20.04) for Samsung Galaxy S10 (beyond1lte) Build rootfs From Scratch

    Scheduled Pinned Locked Moved Porting
    4 Posts 2 Posters 120 Views 1 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
      Reply
      • Reply as topic
      Log in to reply
      This topic has been deleted. Only users with topic management privileges can see it.
      • B Offline
        BaShMu
        last edited by

        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.04

        The 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.

        F B 2 Replies Last reply Reply Quote 0
        • F Offline
          faveoled @BaShMu
          last edited by

          @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

          1 Reply Last reply Reply Quote 1
          • B Offline
            BaShMu @BaShMu
            last edited by

            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)

            1. 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
              
            2. 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

            1. Install ubuntu-device-flash and pmbootstrap if needed.

            2. 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 or halium-install.
            F 1 Reply Last reply Reply Quote 0
            • F Offline
              faveoled @BaShMu
              last edited by

              @BaShMu it's an old way of porting devices. Use the tutorial I linked

              1 Reply Last reply Reply Quote 0
              • First post
                Last post