Skip to content

Instantly share code, notes, and snippets.

@NotKit
Last active December 2, 2022 15:21
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save NotKit/1903121eb2857abf3ceaf1a75cf93bb5 to your computer and use it in GitHub Desktop.
Save NotKit/1903121eb2857abf3ceaf1a75cf93bb5 to your computer and use it in GitHub Desktop.
Gemini PDA - UBPorts

Running Ubuntu Touch on Gemini PDA

Installation

Use prebuild system.img and get the ubports edge rootfs from here.

Boot into TWRP and install it with the JBB's halium-install script.

./halium-install -p ut ubports-touch.rootfs-xenial-edge-armhf.tar.gz system.img
adb push halium-boot.img /tmp

In TWRP, go to Install -> Install image -> /tmp/halium-boot.img -> select boot partition

Some command are needed in order to get Ubuntu Touch running -> either chroot into rootfs.img or boot into rootfs, connect over USB network and remount / read-write:

cd /
ln -s android/nvcfg nvcfg
ln -s android/nvdata nvdata
wget https://raw.githubusercontent.com/gemian/lxc-android/master/var/lib/lxc/android/fstab.mt6797 -O var/lib/lxc/android/fstab.mt6797
wget https://raw.githubusercontent.com/gemian/lxc-android/master/var/lib/lxc/android/pre-start.sh -O var/lib/lxc/android/pre-start.sh
chmod 0755 var/lib/lxc/android/pre-start.sh

wget https://raw.githubusercontent.com/gemian/lxc-android/master/etc/udev/rules.d/998-droid-system.rules -O etc/udev/rules.d/998-droid-system.rules
wget https://raw.githubusercontent.com/gemian/lxc-android/master/etc/udev/rules.d/80-keyboard.rules -O etc/udev/rules.d/80-keyboard.rules

echo 'SUBSYSTEM=="input", ATTRS{name}=="mtk-tpd", ENV{ID_INPUT}="1", ENV{ID_INPUT_TOUCHSCREEN}="1", ENV{LIBINPUT_CALIBRATION_MATRIX}="0 1 0 -1 0 1"' > etc/udev/rules.d/80-touchscreen.rules

cat <<EOF > etc/init/gemini-pda-init.conf
start on ((filesystem
           and android)
          or runlevel PREVLEVEL=S)

task

script
        mount /dev/disk/by-partlabel/nvcfg /nvcfg
        mount /dev/disk/by-partlabel/nvdata /nvdata

        # Wait for Android LXC container to start
        sleep 5

        echo 1 > /dev/wmtWifi
end script
EOF

cat <<EOF > etc/ubuntu-touch-session.d/aeon6797_6m_n.conf
GRID_UNIT_PX=20
QTWEBKIT_DPR=2.0
NATIVE_ORIENTATION=landscape
FORM_FACTOR=tablet
EOF

cat etc/ubuntu-touch-session.d/aeon6797_6m_n.conf >> etc/ubuntu-touch-session.d/android.conf

cd /tmp
wget https://ci.ubports.com/job/pulseaudio-modules-droid/job/xenial/lastSuccessfulBuild/artifact/pulseaudio-modules-droid-24_11.1.76+0~20190225160736.7~1.gbpfe649b_armhf.deb
dpkg -i pulseaudio-modules-droid-24_11.1.76+0~20190225160736.7~1.gbpfe649b_armhf.deb
sed -i -e "s/load-module module-droid-discover voice_virtual_stream=true/load-module module-droid-card-24 rate=48000 quirks=+no_hw_volume/" /etc/pulse/touch.pa

# Camera fix
wget https://ci.ubports.com/job/ubports/job/mir/job/PR-13/5/artifact/mir-platform-graphics-android10_0.24.20ubuntu11+ubports+0~20190207222358.5~1.gbp8df391_armhf.deb
dpkg -i mir-platform-graphics-android10_0.24.20ubuntu11+ubports+0~20190207222358.5~1.gbp8df391_armhf.deb

# Disable apparmor for now
sed -i -e "s/apparmor switch/#apparmor switch/" /usr/share/upstart/sessions/application-click.conf
ln -s /etc/apparmor.d/usr* /etc/apparmor.d/force-complain/
@Mina187
Copy link

Mina187 commented May 19, 2020

Can this be installed on dual Android/Debian Gemini 4g / Wifi ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment