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 and karin_windy, a high end Sony Xperia Tablet Z4-serie got 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
    Anbox: works
    Apparmor: works
    Convergence: works with MHL cable (even though in poor resolution)
    

    What does not work yet:
    [ ] Data connection: GSM/4G/SMS, Sim is not detected yet
    [ ] Hotspot (tethering with linked devices)
    [ ] Bluetooth: despite recognized in dmesg, it can't attach to devices (i.e. hci)

    Sources (devices):
    Kitakami (common part of platform): https://github.com/ubports/android_device_sony_kitakami-common
    Karin: https://github.com/ubports/android_device_sony_karin
    Karin_windy: https://github.com/ubports/android_device_sony_karin_windy

    Sources (kernel):
    Kitakami (common): https://github.com/ubports/android_kernel_sony_msm8994

    Sources (devices) from LineageOS:
    Karin: https://github.com/LineageOS/android_device_sony_karin
    Karin_windy: https://github.com/LineageOS/android_device_sony_karin_windy

    Available images:
    System: system.img
    Halium-boot: halium-boot.img
    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 install it in data partition, you need to use this halium-boot and halium-install.



  • 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 rome one 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


Log in to reply