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

    realme X RMX1901 (CN Chinese version) Halium 9

    Scheduled Pinned Locked Moved Unsolved Porting
    6 Posts 1 Posters 2.1k 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.
      • A Offline
        almas
        last edited by

        I followed Porting guide and created a halium-boot.img file and flashed with fastboot successfully.
        But my phone couldn't boot up with the error message "the current image (boot/recovery) have been destroyed and can not boot"
        index.jpeg

        I did following:

        1. mkdir halium && cd halium
        2. repo init -u https://github.com/Halium/android -b halium-9.0 --depth=1
        3. repo sync -c -j 16
        4. code ./halium/devices/manifests/realme_RMX1901.xml
          Added following:
        <?xml version="1.0" encoding="UTF-8"?>
        <manifest>
        	<remote name="sagar" fetch="https://github.com/SagarMakhar" />
        	<project path="device/realme/RMX1901" name="android_device_realme_RMX1901" remote="sagar" revision="lineage-16.0" />
        	<project path="device/realme/sdm710-common" name="android_device_realme_sdm710-common" remote="sagar" revision="lineage-16.0" />
        	<project path="kernel/realme/sdm710" name="android_kernel_realme_sdm710" remote="sagar" revision="lineage-16.0" />
        	<remote name="almas" fetch="https://github.com/almas" />
        	<project path="vendor/realme/RMX1901" name="android_vendor_tree_realme_RMX1901" remote="almas" revision="master" />
        </manifest>
        

        I didn't find official Lineage OS sources. But I found unofficial ones and used them.

        1. I extracted vendor blobs from stock firmware with the Android 9 version following the guide https://baalajimaestro.me/posts/extract-vendor/
          Then I created a repo and added extracted vendor blobs to the https://github.com/almas/android_vendor_tree_realme_RMX1901
        2. ./halium/devices/setup RMX1901
        3. hybris-patches/apply-patches.sh --mb
        4. source build/envsetup.sh
          result was:
        including vendor/lineage/vendorsetup.sh
        
        1. breakfast RMX1901
          result was:
        including vendor/lineage/vendorsetup.sh
        Trying dependencies-only mode on a non-existing device tree?
        
        ============================================
        PLATFORM_VERSION_CODENAME=REL
        PLATFORM_VERSION=9
        LINEAGE_VERSION=16.0-20221014-UNOFFICIAL-RMX1901
        TARGET_PRODUCT=lineage_RMX1901
        TARGET_BUILD_VARIANT=userdebug
        TARGET_BUILD_TYPE=release
        TARGET_ARCH=arm64
        TARGET_ARCH_VARIANT=armv8-a
        TARGET_CPU_VARIANT=kryo300
        TARGET_2ND_ARCH=arm
        TARGET_2ND_ARCH_VARIANT=armv8-a
        TARGET_2ND_CPU_VARIANT=cortex-a75
        HOST_ARCH=x86_64
        HOST_2ND_ARCH=x86
        HOST_OS=linux
        HOST_OS_EXTRA=Linux-5.15.0-50-generic-x86_64-Ubuntu-20.04.5-LTS
        HOST_CROSS_OS=windows
        HOST_CROSS_ARCH=x86
        HOST_CROSS_2ND_ARCH=x86_64
        HOST_BUILD_TYPE=release
        BUILD_ID=PQ3A.190801.002
        OUT_DIR=/home/dd/Projects/halium-9/out
        PRODUCT_SOONG_NAMESPACES= hardware/qcom/audio-caf/sdm845 hardware/qcom/display-caf/sdm845 hardware/qcom/media-caf/sdm845
        ============================================
        
        
        1. ./halium/halium-boot/check-kernel-config ./kernel/realme/sdm710/arch/arm64/configs/RMX1901_defconfig -w
          (I ran this 2 times and got the message "Config file checked, found no errors.")
        2. code device/realme/RMX1901/BoardConfig.mk
          Edited like below:
        #
        # Copyright (C) 2019 The LineageOS Project
        #
        # SPDX-License-Identifier: Apache-2.0
        #
        
        # Inherit from Xiaomi sdm710-common
        include device/realme/sdm710-common/BoardConfigCommon.mk
        
        DEVICE_PATH := device/realme/RMX1901
        
        # Assert
        TARGET_OTA_ASSERT_DEVICE := RMX1901,RMX1901CN
        
        # HIDL
        DEVICE_MANIFEST_FILE := $(DEVICE_PATH)/manifest.xml
        
        # Kernel
        TARGET_KERNEL_CONFIG := RMX1901_defconfig
        
        BOARD_BUILD_SYSTEM_ROOT_IMAGE := true
        
        # Verified Boot
        BOARD_AVB_ENABLE := true
        BOARD_AVB_MAKE_VBMETA_IMAGE_ARGS += --flag 2
        
        # Inherit from the proprietary version
        -include vendor/realme/RMX1901/BoardConfigVendor.mk
        BOARD_KERNEL_CMDLINE += console=tty0
        
        BOARD_ROOT_EXTRA_FOLDERS := \
         /firmware \
         /dsp \
         /persist
        
        
        1. mka mkbootimg
          No error and got message "#### build completed successfully (55 seconds) ####"
        2. export USE_HOST_LEX=yes
        3. mka halium-boot
          It created halium-boot.img file with size 19M. But boot.img file in stock firmware size was 64MB.

        What did I do wrong? Please help me.

        A 1 Reply Last reply Reply Quote 0
        • A Offline
          almas @almas
          last edited by

          I unpacked boot.img

          Stock:

          python ./unpack_bootimg.py --boot_img ./stock/boot.img                          
          boot magic: ANDROID!
          kernel_size: 13590538
          kernel load address: 0x00008000
          ramdisk size: 0
          ramdisk load address: 0x01000000
          second bootloader size: 0
          second bootloader load address: 0x00f00000
          kernel tags load address: 0x00000100
          page size: 4096
          os version: 9.0.0
          os patch level: 2019-08
          boot image header version: 1
          product name: 
          command line args: console=ttyMSM0,115200n8 earlycon=msm_geni_serial,0xA90000 androidboot.hardware=qcom androidboot.console=ttyMSM0 video=vfb:640x400,bpp=32,memsize=3072000 msm_rtb.filter=0x237 ehci-hcd.park=3 lpm_levels.sleep_disabled=1 service_locator.enable=1 androidboot.configfs=true androidboot.usbcontroller=a600000.dwc3 swiotlb=1 firmware_class.path=/vendor/firmware_mnt/image loop.max_part=7 buildvariant=user
          additional command line args: 
          recovery dtbo size: 0
          recovery dtbo offset: 0x0000000000000000
          boot header size: 1648
          

          My build:

          python ./unpack_bootimg.py --boot_img ./halium-boot.img 
          boot magic: ANDROID!
          kernel_size: 14909529
          kernel load address: 0x00008000
          ramdisk size: 4109941
          ramdisk load address: 0x01000000
          second bootloader size: 0
          second bootloader load address: 0x00f00000
          kernel tags load address: 0x00000100
          page size: 4096
          os version: 9.0.0
          os patch level: 2022-01
          boot image header version: 0
          product name: 
          command line args: console=ttyMSM0,115200n8 earlycon=msm_geni_serial,0xA90000 androidboot.hardware=qcom androidboot.console=ttyMSM0 video=vfb:640x400,bpp=32,memsize=3072000 msm_rtb.filter=0x237 ehci-hcd.park=3 lpm_levels.sleep_disabled=1 service_locator.enable=1 androidboot.configfs=true androidboot.usbcontroller=a600000.dwc3 swiotlb=1 firmware_class.path=/vendor/firmware_mnt/image loop.max_part=7 androidboot.selinux=permissive console=tty0
          additional command line args: 
          
          A 2 Replies Last reply Reply Quote 0
          • A Offline
            almas @almas
            last edited by

            I flashed vbmeta and dtbo before flash boot. Now it seems succeeded to boot. But it's in boot loop.

            fastboot flash vbmeta vbmeta.img --disable-verity --disable-verification
            fastboot flash dtbo dtbo.img
            fastboot flash boot halium-boot.img
            
            1 Reply Last reply Reply Quote 0
            • A Offline
              almas @almas
              last edited by

              @almas said in realme X RMX1901 (CN Chinese version) Halium 9:

              I unpacked boot.img

              Unpacked out files:

              Stock:

              kernel 13M 
              ramdisk 0B 
              

              My Build:

              kernel 14M 
              ramdisk 3.9M
              
              A 1 Reply Last reply Reply Quote 0
              • A Offline
                almas @almas
                last edited by

                1. Downloaded the Halium 9.0, arm64 (64 bit): ubuntu-touch-android9-arm64.tar.gz (https://ci.ubports.com/job/xenial-hybris-android9-rootfs-arm64/)
                2. Downloaded and extracted the Halium 9 LXC container image (GSI). (Link on the manual https://docs.ubports.com/en/latest/porting/build_and_boot/Halium_install.html was broken. I downloaded halium_halium_arm64.tar.xz from https://ci.ubports.com/job/UBportsCommunityPortsJenkinsCI/job/ubports%252Fporting%252Fcommunity-ports%252Fjenkins-ci%252Fgeneric_arm64/job/main/)
                3. Downloaded and extracted https://gitlab.com/JBBgameich/halium-install
                4. I executed the following commands when I entered custom recovery and plugged the phone into the computer.
                adb devices
                
                ./halium-install-master/halium-install  -p ut -s ./ubuntu-touch-android9-arm64.tar.gz ./system/var/lib/lxc/android/android-rootfs.img 
                

                But currently, it's in a boot loop...

                A 1 Reply Last reply Reply Quote 0
                • A Offline
                  almas @almas
                  last edited by

                  $ ./halium-install-master/halium-install  -p ut -s ./ubuntu-touch-android9-arm64.tar.gz ./system/var/lib/lxc/android/android-rootfs.img
                  

                  Here is the output:

                  D: Chosen rootfs is ./ubuntu-touch-android9-arm64.tar.gz
                  D: Chosen android image is ./system/var/lib/lxc/android/android-rootfs.img
                  D: Chosen release is ut
                  D: Compress images before pushing: false
                  
                  I: Writing rootfs into mountable image
                  I: Writing android image into mountable image
                  I: Running post installation tasks
                  enabling SSH ... [done]
                  Please enter a new password for the user 'phablet':
                  Enter new UNIX password: 
                  Retype new UNIX password: 
                  passwd: password updated successfully
                  I: Shrinking images
                  e2fsck 1.45.5 (07-Jan-2020)
                  resize2fs 1.45.5 (07-Jan-2020)
                  The filesystem is already 138429 (4k) blocks long.  Nothing to do!
                  
                  I: Unmounting images
                  I: Pushing rootfs and android image to /data via ADB
                  I:    Pushing rootfs to /data via ADB
                  .halium-install-imgs.DQXbh/rootfs.img: 1 file pushed. 32.9 MB/s (3221225472 bytes in 93.286s)
                  I:    Pushing android image to /data via ADB
                  .halium-install-imgs.DQXbh/system.img: 1 file pushed. 32.7 MB/s (576184320 bytes in 16.791s)
                  I:    Renaming to system-as-root compatible system image
                  
                  real	1m50,149s
                  user	0m0,650s
                  sys	0m4,607s
                  I: Cleaning up
                  umount: .halium-install-rootfs.anHND: not mounted.
                  
                  
                  1 Reply Last reply Reply Quote 0
                  • A almas referenced this topic on

                  Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                  Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                  With your input, this post could be even better 💗

                  Register Login
                  • First post
                    Last post