Ubuntu Touch on Sony Xperia X
Now that the port has reached a certain state I'd like to present the status of this project to a wider audience,
- Full AppArmor support
- Adequate Mir performance
- Full ofono/rild support
- Passing most hybris tests
Unable to enumerate rotation status and updates
- Audio doesn't work
- Camera doesn't work
Click package support incomplete
The full build instructions are available on the Halium project management issue page.
Halium port project management, HAL port specific issues:
Wow that's a great achievement, when can i expect a daily use image.
You can try to build the image and see for yourself. :)
Currently I'm trying to get the audio working, I'd probably need
some help figuring out which component of Unity8 is responsible for
setting a global rotation lock and acting according to user preferences.
AFAICT getting the camera to work now requires at least a rebuild of ubuntu-touch
specific qt platform changes.
Sorry sir i would love to, but i got no knowledge of programming or coding.
Sir any progress
beidl last edited by
Progress update: I managed to get Bluetooth working, currently investigating ways on how to enable audio support.
Out-of-the-box ALSA-only audio seems to be further away than anticipated.
If anyone with a Sony Xperia X (single- or dual-SIM) would like to help, contributions are welcome. :)
Device sensors like the orientation sensor as well as GPS location should now work.
Also, due to recent changes in the rootfs itself it should be possible to boot Ubuntu Touch (xenial-edge) using the Halium 7.1 based device HAL.
Merging all required changes to the device-specific repo manifest back into Halium is pending
, so if anyone is interested in helping it's necessary to sync the repositories from my GitHub.
EDIT: Pushing most current state will be done as soon as I'm not on a metered internet connection.
Remaining graphical issues:
repowerdSIGSEGV (SIGILL under gdb)
unity-system-compositorarmhf builds to run on arm64 kernels
Remaining issues related to media support, specifically:
- Audio (calling is untested)
- Video decoding
- Camera (incl. video encoding)
repowerd SIGSEGV (SIGILL under gdb)
You can type
continueto keep running after a SIGILL in GDB. It seems pretty common for Hybris software to throw those.
dobey last edited by
@unisuperbox It's openssl I think, which is probing for features and traps SIGILL, but when running under gdb, it pops up. So yeah, probably should tell gdb to ignore SIGILL, to be able to run anything under it.
I've assembled an image for those who are interested in testing and contributing to Ubuntu Touch.
Instructions (tested on Ubuntu 18.04):
- Linux PC with adb and fastboot properly set up
- Recent UBPorts rootfs image from the edge channel (tested with build #88):
- TWRP Recovery (tested with version 3.2.3-0)
- Android 7.1 (Kernel 4.4) Loire OEM binaries
- Flash script: halium-install
After successfully flashing the recovery image the OEM binaries need to be flashed onto the oem partition:
unzip SW_binaries_for_Xperia_AOSP_N_MR1_5.7_r1_v08_loire.zip fastboot flash oem SW_binaries_for_Xperia_AOSP_N_MR1_5.7_r1_v08_loire.img
./halium-install -p ut ubports-touch.rootfs-xenial-edge-armhf.tar.gz system.img adb reboot bootloader fastboot flash boot halium-boot.img fastboot reboot
Two manual fixes are required to get a graphical interface up and running, which have to be applied using an SSH connection.
Make sure to properly set up the USB-Ethernet connection which will show up after plugging in the device via USB.
You can scp the patched unity-system-compositor from your host PC to the device afterwards:
scp unity-system-compositor_0.7.2+ubports+0~20180901204329.1~1.gbp1f8669_armhf.deb email@example.com:~/
SSH shell connection:
# Mount rootfs read-write sudo mount -o remount,rw / # Fix permissions for dbus-daemon-launcher-helper sudo chown root:messagebus /usr/lib/dbus-1.0/dbus-daemon-launch-helper sudo chmod 4754 /usr/lib/dbus-1.0/dbus-daemon-launch-helper # Unpack compatible unity-system-compositor on top of the current version sudo dpkg -x ~/unity-system-compositor_0.7.2+ubports+0~20180901204329.1~1.gbp1f8669_armhf.deb / # Mount rootfs read-only and reboot sync && sudo mount -o remount,ro / && sudo reboot
Thank you sir, i will try to flush ubuntu touch on my xperia x as soon as my broken screen is fixed.
Sir can you help me with link to buy original screen for xperia x. If we are allowed to share such information on this forum.
@beidl First of all, thanks a lot for trying to port Ubuntu Touch to Xperia X.
I'm trying to follow your guide, but I'm getting stuck at halium-install.
adb: error: failed to copy '.halium-install-imgs.yk2k5/rootfs.img' to '/data/rootfs.img': remote couldn't create file: Permission denied .halium-install-imgs.yk2k5/rootfs.img: 0 files pushed. 154.0 MB/s (2817704 bytes in 0.017s) adb: error: failed to copy '.halium-install-imgs.yk2k5/system.img' to '/data/system.img': remote couldn't create file: Permission denied .halium-install-imgs.yk2k5/system.img: 0 files pushed. 116.0 MB/s (2686648 bytes in 0.022s)
My Xperia's current status is that I've flashed twrp and the oem binaries via fastboot.
The phone is on Android 8.0, and not rooted.
Any idea what could be wrong?
beidl last edited by
@gmelchett Have you tried wiping data, cache and system partitions? Make sure to create a backup before wiping those partitions and flashing the Ubuntu Touch port.
@beidl Thanks for a quick reply. No, I didn't wipe data, cache and system partitions.
I've done that now from twrp, but there seems to be no mobile-side adb running when in twrp. And because I did wiping system, I have no Android to boot.
Any idea how to progress?
@gmelchett could be you're missing udev rules on your Linux host to establish an adb connection. If you're on Ubuntu 18.04 you could try the following command:
sudo apt install android-sdk-platform-tools-common
Else I could publish a much bigger version of the udev rules file in a GitHub gist.
EDIT: on the other hand, adb wouldn't even be able to respond with a "permission denied" error in case the device-side adb daemon wasn't up and running.
@beidl adb was running just fine when I tried halium-install before wiping system + data + cache. I tested with adb shell. (Then I couldn't even ls /data without getting permission denied.) On second though, why is halium-install pushing files to /data and not
/storage/0/emulated (or what the "internal sd" card path's is.)?
A wild guess is that the system.img that halium-install creates is the provided system.img + the .tar.gz file. Maybe that could be fastboot flash'ed into system? But then, where would rootfs.img go? Hmm.
I don't know android's file system layout good enough. Have to do some reading up.
gmelchett last edited by gmelchett
Success at last! It is apparently very import to unlock at "latest android". I unlocked at Android 6.
I installed twrp like this:
sudo fastboot flash boot boot.img
It will then always boot into twrp, but I didn't manage to flashing it to the recovery area to work.
Once booted into twrp, I had to format system, data & cache since the phone got encrypted by default.
Btw, ip configurtion from console:
sudo ip addr add 10.15.19.1/24 dev -your device-
For those of us that don't have a fancy GUI to help you with.
ubports on xperia x feels a bit sluggish compared to the nexus 5. A look at top, shows that unity8 consumes quite a lot of cpu when doing some ui interaction. I suspect no hw acceleration enabled?
edit: Some language corrections.
I've been playing around from time to time with Ubuntu Touch on the Xperia X. Over all it works very well, but a few things that are not really working (and not mentioned not to work above):
- Of the sensors, only accelerometer works
- A fully charged battery is reported to be at 67%.
- After pressing the power, it takes a few seconds before I can unlock it. Maybe related to the lack of graphic hw acceleration?
@beidl Sir any update on ut on xperia X