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

    Sony Xperia XZ (F8331 / Kagura) Porting

    Scheduled Pinned Locked Moved Porting
    16 Posts 4 Posters 2.7k Views 3 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.
      • S Offline
        sjll
        last edited by

        Hi,
        Don't use the tree on Tone-keep-on-4-4. It is too complex. I already bring up a ubuntu touch tree for Xperia X Performance.
        You only need to rewrite the device tree for kagura. The other trees could use the same as dora.

        J 2 Replies Last reply Reply Quote 0
        • J Offline
          joe @sjll
          last edited by

          @sjll Thanks for your help. Do links to the tree for Xperia X Performance?

          1 Reply Last reply Reply Quote 0
          • J Offline
            joe @sjll
            last edited by

            @sjll I just realized that I think you made this as well:

            https://forum.xda-developers.com/xperia-xz/development/8-1-lineage-15-1-xperia-xz-t4072083

            This tree would be helpful to make the Ubuntu Touch port I think, but I couldn't find a github link.

            Thank you!

            1 Reply Last reply Reply Quote 1
            • J Offline
              joe
              last edited by

              I wonder if you can treblize the XZ:
              https://forum.xda-developers.com/xperia-xz/development/f8331-2-project-treble-xperia-xz-t4029421

              Then you might be able to install the Ubuntu Touch GSI:
              https://t.me/ErfanGSI

              1 Reply Last reply Reply Quote 0
              • J Offline
                joe
                last edited by

                Looks like Konrad has pretty much completed this port!
                https://github.com/konradybcio/device-sony-kagura

                The manifest has been requested to be merged into halium.

                Hoping to build the images and see how it goes...

                1 Reply Last reply Reply Quote 1
                • R Offline
                  ressan627
                  last edited by

                  Keep me updated as I was away for a while doing some other activities..

                  J 1 Reply Last reply Reply Quote 0
                  • J Offline
                    joe @ressan627
                    last edited by

                    @ressan627 I was able to get it running on Kagura thanks to Konrad's help.

                    Issues:

                    • No camera. Even with gstreamer
                    • Graphical performance is a bit sluggish
                    • No fingerprint reader
                    • Wifi won't automatically connect after reboot
                    • Phone reboots when plugged into usb attached to computer
                    • Using suru dark system theme causes text fields in browser to be all black with black text (i.e. unreadable)
                    • No flashlight

                    This device may show up in the installer some time, but here is what I did to get it running. Pieced together from docs.ubports.com , docs.halium.org and some documents from the telegram group: @ubports_porting

                    Building and Installing

                    If you don't want to build the images yourself, then contact me and I can find a way to send them to you.

                    Porting Environment

                    http://docs.halium.org/en/latest/porting/first-steps.html

                    sudo dpkg --add-architecture i386

                    sudo apt update

                    sudo apt install git gnupg flex bison gperf build-essential \
                      zip bzr curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \
                      libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \
                      libgl1-mesa-dev g++-multilib mingw-w64-i686-dev tofrodos \
                      python-markdown libxml2-utils xsltproc zlib1g-dev:i386 schedtool \
                      repo liblz4-tool bc lzop imagemagick libncurses5 rsync
                    

                    The problem with 20.04 is that repo doesn't exist in the repositories. You will have to install the package and dependency from eoan.

                    Download packages:
                    downloaded the packages manually:

                    python-kerberos from https://packages.ubuntu.com/eoan/python-kerberos
                    repo from https://packages.ubuntu.com/eoan/repo
                    

                    I then installed them using sudo dpkg -i <filename>, python-kerberos first.

                    It may complain about python version, but it will work.

                    Get Halium Source

                    This takes a long time and a lot of space (~15GB).

                    mkdir halium && cd halium

                    repo init -u https://github.com/Halium/android -b halium-7.1 --depth=1

                    repo sync -c -j 16

                    Manifest

                    For Kagura the manifest is now part of halium source. So you don't need to do anything here.

                    But for reference, this is what needs to be done for devices not included.
                    // You need to make sure the correct manifest for the devices is in:
                    // /halium/halium/devices/manifests

                    // If you don't have a manifest, then you will have to create it for your device:
                    // http://docs.halium.org/en/latest/porting/get-sources.html

                    Get Devices Source

                    First get devices source (pulled from info in manifest)
                    ./halium/devices/setup kagura --force-sync
                    // had to use force-sync or no kernel folder would show up

                    Fix Mounts

                    Not sure. Seems not applicable to kagura

                    Kernel Check

                    Run Kernel check for Ubuntu Touch
                    ./halium/halium-boot/check-kernel-config kernel/sony/kagura/arch/arm64/configs/aosp_tone_kagura_defconfig -w

                    Also ran on :
                    ./halium/halium-boot/check-kernel-config kernel/sony/kagura/arch/arm64/configs/defconfig -w

                    It will fix a few things. Run it again until everything is fixed.

                    BUILD IMAGE

                    Build the image

                    Once halium-boot is in place, you can build it quite simply. You will also need to rebuild system.img due to our changes.

                    cd to your Halium BUILDDIR
                    source build/envsetup.sh
                    Run `lunch` and select the correct device
                    `mka halium-boot`
                    `export USE_HOST_LEX=yes` // fixes an error 
                    `mka systemimage`
                    

                    Anothe 15GB or so are needed to build these things.

                    Installing Ubuntu Touch

                    Get Halium-Install

                    Clone this repository

                    https://gitlab.com/JBBgameich/halium-install

                    Install dependencies: sudo apt install [those packages below]
                    qemu-user-static
                    qemu-system-arm
                    e2fsprogs
                    simg2img

                    Download rootfs:
                    https://ci.ubports.com/job/xenial-hybris-edge-rootfs-arm64/

                    Install Halium:
                    ./path/to/halium-install -p ut path/to/rootfs.tar.gz path/to/system.img // using the correct paths and changed root password

                    After install. Reboot.

                    Do some fixes and updates

                    NOTE: I'm not sure if all this needs to be done before flashing the tone file (See last step. That might actually work as is) but if not.

                    Device should boot, show a purple indicator light briefly, and then hang at the Sony logo. It is actually booted at the moment.
                    There should be a new wired connection that shows up on the connected computer. When that shows "connected" you can ssh to the phone.

                    SSH:

                    ssh phablet@10.15.19.82

                    // sometimes requires a reboot first

                    Connect to wifi:

                    nmtui

                    Make device writable:

                    sudo mount -o remount,rw /

                    Edit and update:

                    sudo -i

                    Add Udev rules:

                    cat /var/lib/lxc/android/rootfs/ueventd*.rc|grep ^/dev|sed -e 's/^\/dev\///'|awk '{printf "ACTION==\"add\", KERNEL==\"%s\", OWNER=\"%s\", GROUP=\"%s\", MODE=\"%s\"\n",$1,$3,$4,$2}' | sed -e 's/\r//' >/usr/lib/lxc-android-config/70-kagura.rules

                    Install xenial arm 64 stuff:

                    ubports-qa install xenial_-_arm64

                    apt update && apt upgrade

                    apt install mir-platform-graphics-android-caf15

                    Change Lib path

                    nano /etc/environment
                    edited to LD_LIBRARY_PATH=/vendor/lib64:/system/lib64

                    Platform Apis

                    NOTE: I think NOT doing this allows the light sensor to work. Not sure which option is better.

                    comment out the if and fi in /usr/share/upstart/sessions/unity8.conf

                    Example:
                    # if [ ! -f /system/lib/libubuntu_application_api.so ]; then
                    initctl set-env --global UBUNTU_PLATFORM_API_BACKEND=test.so.3
                    initctl set-env --global UBUNTU_PLATFORM_API_SENSOR_TEST=/etc/ubuntusensors/test.sensors
                    # fi

                    Flash the Tone file

                    This is a key step to actually boot into Ubuntu Touch

                    Download:
                    https://developer.sony.com/file/download/software-binaries-for-aosp-nougat-android-7-1-kernel-4-4-tone/

                    Boot to bootloader

                    fastboot flash oem [filename]

                    1 Reply Last reply Reply Quote 1
                    • J Offline
                      joe
                      last edited by joe

                      This post is deleted!
                      1 Reply Last reply Reply Quote 0
                      • J Offline
                        joe
                        last edited by

                        It's in the installer now. Maybe this thread can be closed?

                        KenedaK 1 Reply Last reply Reply Quote 0
                        • KenedaK Offline
                          Keneda @joe
                          last edited by

                          @joe said in Sony Xperia XZ (F8331 / Kagura) Porting:

                          It's in the installer now. Maybe this thread can be closed?

                          Or maybe you can let it open for support purposes ^^

                          2015-2023 : Meizu MX4 ☠️⚰️✝️
                          2023-2024 : Nexus 5 ☠️⚰️✝️
                          2024-***** : FPOS Fairphone 5 waiting UT for freedom 😉
                          🇲🇫🇬🇧

                          J 1 Reply Last reply Reply Quote 0
                          • J Offline
                            joe @Keneda
                            last edited by

                            @Keneda Good thinking!

                            Here's the updated video:
                            https://youtu.be/_aocnYkQcnc

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