Porting Ubuntu Touch (@UBPorts) to karin (Sony Xperia Z4 Tablet SGP771) and karin_windy (Sony Xperia Z4 Tablet SGP712)
I've been working on porting Ubuntu Touch on
karin_windy, a high end
Sony Xperia Tablet Z4-seriegot out on market in late 2015 with Android 6, so suitable to work with Halium-7.1.
See the HAL port specific details: https://github.com/Halium/projectmanagement/issues/44 created by Andreas Pokorny.
The device is equipped with:
Dimensions: 10,1" IPS 2560x1600 (299 PPI) RAM: 3GB, ROM: 32 GB, Qualcomm(c): MSM8994 Snapdragon(c): 810 CPU: Octa-core Cortex-A53 & Cortex-A57 4 x 2.0 Ghz + 4 x 1.5 Ghz Architecture: arm64 GPU: Adreno 430 SIM: Nano-SIM (4G LTE) Bluetooth: 4.1 with A2DP + aptX Wi-fi: 802.11 a/b/g/n/ac, Dual-band, Wi-Fi Direct, DLNA, Hotspot Sensors: Accelerometer, Gyroscope, Proximity sensor, Light sensor, GPS Camera: (front) 5.1 MP F/2.4, No flash, (rear) 8.1 MP F/2.0, LED flash Battery: Non-removable Li-Ion 6000 mAh
as its specs are available in this page.
Already successfully tested to boot from systempart, as required by Ubuntu Touch OTA: ready to be a community device.
Nowadays the device has reached an interesting level of support, as the following features works well:
Kernel 3.10.84-perf+ (arm64) Graphical User Interface: works with unity8/lomiri (8.20+ubports) and mir (0.31.2+0) for 64 bits libraries, Wifi: works, Audio: works (audio and video playback), GPS: works Sensors (HAL, rotation, ...): work, Buttons: work Power, Volume up and down buttons Printscreen: works by pressing at the same time Volume+ and Volume- during 2-3 seconds Notification: works, Vibration: works, Cameras: main and selfie cameras both work with @peat_psuwit's gst-droid and nemo-qtmultimedia-plugins LED: works Apparmor: works Convergence: works with MHL cable (even though in poor resolution) Bluetooth: works (update 2020-11-14)
What does not work yet:
[ ] Data connection: GSM/4G/SMS, Sim is not detected yet
[ ] Hotspot (tethering with linked devices)
Kitakami (common part of platform): https://github.com/ubports/android_device_sony_kitakami-common
Kitakami (common): https://github.com/ubports/android_kernel_sony_msm8994
Sources (devices) from LineageOS:
Recovery (only to be tested when it will be a community device): recovery.img
Otherwise TWRP: TWRP-3.1.1-lineageos-karin-20170520.img
Important note for UT rootfs to work
You can download you latest nightly built rootfs here.
If you can't access to ssh, in TWRP you need to execute the following commands:
$ mount /data/rootfs.img /mnt $ echo manual | tee /mnt/etc/init/rsyslog.override $ umount /mnt $ sync
To bootstrap from system partition, in TWRP, you need to:
$ mount -o loop /data/rootfs.img /system $ cp /data/system.img /system/var/lib/lxc/android/system.img $ umount /system $ dd if=/data/rootfs.img of=/dev/block/mmcblk0p44 $ sync
To manually enable
bluetoothto work (update of Nov 14th 2020), you need to:
- if you bootstrap from
systempart, then flash the following halium-boot, more commonly if you install your system with halium-install, flash this halium-boot,
- execute the following commands:
root@ubuntu-phablet:~# hciattach -p -t 30 /dev/ttyHS0 bcm43xx 115200 flow bcm43xx_init Cannot open directory '/etc/firmware': No such file or directory Patch not found, continue anyway Set Controller UART speed to 115200 bit/s Device setup complete 4669 root@ubuntu-phablet:~# hciconfig -a hci0: Type: Primary Bus: UART BD Address: B6:balblablabla:97 ACL MTU: 1021:8 SCO MTU: 64:1 UP RUNNING PSCAN RX bytes:745 acl:0 sco:0 events:50 errors:0 TX bytes:3943 acl:0 sco:0 commands:50 errors:0 Features: 0xbf 0xfe 0xcf 0xfe 0xdb 0xff 0x7b 0x87 Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3 Link policy: RSWITCH SNIFF Link mode: MASTER Name: 'ubuntu-phablet' Class: 0x3c011c Service Classes: Rendering, Capturing, Object Transfer, Audio Device Class: Computer, Unknown (reserved) minor device class HCI Version: 4.1 (0x7) Revision: 0x2000 LMP Version: 4.1 (0x7) Subversion: 0x230f Manufacturer: Broadcom Corporation (15) root@ubuntu-phablet:~#
- if you bootstrap from
Thanks for the detailed writeup, although I prefer booting from an .img instead of the partition. This way I can just reflash boot and have my Android back
By the way, I saw that you are struggling with the bluetooth as well. Did you make any progress there (assuming that karin has the same bcrm43... as suzuran)? I believe (might be totally wrong) that Bluedroid is located pretty deep in the kernel, and you cannot really get access from the outside (meaning that this is a kernel issue). I never found what to (back)port from other devices to make it work, though.
@ignne I read somewhere that karin's chipset works as
romeone so that it can be backported, as experienced by some xiaomi porters. I need to find some time to apply patches and try to backport for better compatibility with blue 5.x or later
My install for karin (SGP771) was succesful with these instructions. Thank you.
Based on the feature list above, Anbox is supposed to work. What is needed to achieve this? The device is not officially supported and the image does not seem to work for that purpose as such:
phablet@ubuntu-phablet:~$ anbox-tool install Anbox kernel is not installed! Please flash this first!
Also, how can I update to the OTA-13 release?
stanwood last edited by
@masa I guess that you first have to flash the image as described in the first green box here: http://docs.ubports.com/en/latest/userguide/dailyuse/anbox.html
Than you can install anbox tool & APKs
Read carefully the previous guide. Installing Anbox is only recommended for experienced users.
Thanks @stanwood. But what would be the variable CODENAME in the green box you mentioned? I mean is an anbox image available for this device as supposed in the documentation you linked?
Keneda last edited by Keneda
I guess your device codename is "karin"...
But in the "Supported devices" for daily use from stanwood given link, there is not your device (nor mine, wich is MX4 a.k.a. "arale").
It is not listed here : https://cdimage.ubports.com/anbox-images/
@masa I worked for me with the following instructions:
sudo apt install anbox-ubuntu-touch mkdir anbox-data wget -q --show-progress -O /home/phablet/anbox-data/android.img http://cdimage.ubports.com/anbox-images/android-armhf-64binder.img touch /home/phablet/anbox-data/.enable mkdir anbox-data/data sudo chmod -R o+wrx /home/phablet/anbox-data/data sudo start -q anbox-container start -q anbox-session
at this point, you need to reboot
Respect the official instruction, it seems to work for me the
wgetcommand without using
@Keneda Don't worry about that: information might not be up-to-date
@masa This list if for legacy and official supported device, rather than community ones (like karin is supposed to become soon).
Anyway it is not supported on kernel yet:
anbox porting on karin is on going
@ignne yesterday, I got bluetooth work on my BCM43 devices. At the moment, manually:
root@ubuntu-phablet:~# chmod 0660 /sys/class/rfkill/rfkill0/state && chmod 0660 /sys/class/rfkill/rfkill0/type && chgrp dialout /sys/class/rfkill/rfkill0/state && chgrp dialout /sys/class/rfkill/rfkill0/type && rfkill unblock bluetooth root@ubuntu-phablet:~# hciattach -p -t 30 /dev/ttyHS0 bcm43xx 115200 flow bcm43xx_init Cannot open directory '/etc/firmware': No such file or directory Patch not found, continue anyway Set Controller UART speed to 115200 bit/s Device setup complete 4669 root@ubuntu-phablet:~# hciconfig -a hci0: Type: Primary Bus: UART BD Address: B6:balblablabla:97 ACL MTU: 1021:8 SCO MTU: 64:1 UP RUNNING PSCAN RX bytes:745 acl:0 sco:0 events:50 errors:0 TX bytes:3943 acl:0 sco:0 commands:50 errors:0 Features: 0xbf 0xfe 0xcf 0xfe 0xdb 0xff 0x7b 0x87 Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3 Link policy: RSWITCH SNIFF Link mode: MASTER Name: 'ubuntu-phablet' Class: 0x3c011c Service Classes: Rendering, Capturing, Object Transfer, Audio Device Class: Computer, Unknown (reserved) minor device class HCI Version: 4.1 (0x7) Revision: 0x2000 LMP Version: 4.1 (0x7) Subversion: 0x230f Manufacturer: Broadcom Corporation (15) root@ubuntu-phablet:~#