Ubuntu Touch on Google Nexus 4
Nexus 4 Dual Boot Android/Ubuntu Touch
Main source: https://wiki.ubuntu.com/Touch/DualBootInstallation
General information: https://wiki.ubuntu.com/Touch/ReleaseNotes
Please note that development is currently (January 2014) still in alpha state. Do not expect this to be a fully working operating system.
- Install tools on Ubuntu Desktop:
sudo add-apt-repository ppa:phablet-team/tools sudo apt-get update sudo apt-get install phablet-tools android-tools-adb android-tools-fastboot
- Backup Nexus 4 (just to be safe): see backup android phone to Ubuntu
- Note Nexus 4 Android Build Number: JWR66V (4.3)
- Nexus 4 Device unlock (see http://nexus4root.com/nexus-4-root/how-to-root-nexus-4-windowsmac-osxlinuxubuntu/)
- Prepare Nexus 4
- Enable USB debugging
Installing Ubuntu Touch
Starting installation on Ubuntu Desktop
tim@itsecorg:~$ adb kill-server tim@itsecorg:~$ sudo adb start-server * daemon not running. starting it now on port 5037 * * daemon started successfully * tim@itsecorg:~$ adb devices List of devices attached 00000000xxxxx device tim@itsecorg:~$ wget http://humpolec.ubuntu.com/latest/dualboot.sh tim@itsecorg:~$ chmod 755 dualboot.sh tim@itsecorg:~$ ./dualboot.sh FULL Connect device to install Ubuntu installer to. Detected connected Nexus 4 FULL install Downloading SU package % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 5861 100 5861 0 0 10104 0 --:--:-- --:--:-- --:--:-- 10105 Rebooting to bootloader (snip) finished. total time: 0.822s Waiting for sideload to boot sending: 'sideload' 100% Wait for installation of package to complete tim@itsecorg:~$
Continue installation process on phone
- On the device, press the apps button in Android to bring up the list of apps
- Browse the apps to find the Ubuntu Installer icon and press it to start the app
- When the app launches, press on Choose channel to install and choose a channel to download from (the recommended channel is Trusty)
- Error message: ubuntu-boot.img is not a correct image
- Once download is completed you need to Grant SU permissions to the application for the install to be successful. Press the Grant button, when prompted.
- Error can not access /cache/system - no such file or directory (2); Missing update command
- Press the Reboot to Ubuntu button to boot to Ubuntu. A standard phone reboot with the hard key will always boot to Android.
This first worked on 2014-01-17 with Ubuntu Touch 14.04.
root@ubuntu-phablet:/# uname -a Linux ubuntu-phablet 3.4.0-3-mako #21-Ubuntu SMP PREEMPT Tue Oct 8 13:11:48 UTC 2013 armv7l armv7l armv7l GNU/Linux root@ubuntu-phablet:/# cat /etc/ubuntu-build 132 root@ubuntu-phablet:/#
Using Ubuntu touch
Major problems encountered with Ubuntu Touch on Nexus 4
- Bluetooth does not work
- Enter key does not work in Terminal App
- openssh-server is installed but does not start
Connecting to the device at shell level
- connect device to ubuntu desktop via usb
- check connection status
tim@itsecorg:~$ adb devices List of devices attached 0x0x0x0x0x0x0x device tim@itsecorg:~$
- start shell
adb shell
copy files to device
Basic version (works out of the box)
adb push localfile path-on-device
As soon as you get ssh working on the device:
scp localfile touch:path-on-device
changing password
Remount root fs rw (for update to /etc/shadow):
mount -o remount,rw /
Run passwd command
passwd phablet
Problem with this: dualboot app in touch does not work any more since the password seems to be hard-coded.
getting sshd to work
mkdir /var/run/sshd chmod 755 /var/run/sshd service ssh start cd /home/phablet mkdir .ssh chmod 700 .ssh
Add your pub key to authorized keys:
vi .ssh/authorized_keys
Change acl:
chmod 400 .ssh/authorized_keys chown -R phablet:phablet .ssh
ssh as phablet now works:
macantha:.ssh tim$ ssh phablet@touch Welcome to Ubuntu Trusty Tahr (development branch) (GNU/Linux 3.4.0-3-mako armv7l) * Documentation: https://help.ubuntu.com/ Last login: Sun Jan 19 11:29:41 2014 from macantha.fritz.box phablet@ubuntu-phablet:~$
Problem - this does not seem to be boot-resistant. The directory /var/run/sshd vanishes. So the following commands need to be added to the boot process:
Remount root fs rw:
mount -o remount,rw /
Add the following lines to /etc/rc.local (before exit cmd)
mkdir /var/run/sshd chmod 755 /var/run/sshd service ssh start
How to become root / use sudo?
- as phablet user simply use "sudo su -"
- Whenever you're asked for a password, it's phablet.
Various commands on Ubuntu touch
dpkg -l - lists all installed packages click list - lists installed click packages pkcon install xxx - installs click package pkcon search name xxx - searches for package containing xxx
Installing Apps not listed
root@ubuntu-phablet:~# pkcon install thunderbird Installing [=========================] Waiting in queue [=========================] Starting [=========================] Loading cache [=========================] Querying [=========================] Running [=========================] Loading cache [=========================] Installing packages [ ] (0%) The following packages have to be installed: libstartup-notification0-0.12-3ubuntu1.armhf library for program launch feedback (shared library) thunderbird-1:24.2.0+build1-0ubuntu1.armhf Email, RSS and newsgroup client with integrated spam filter Proceed with changes? [N/y] y [=========================] Installing [=========================] Waiting in queue [ == ] The daemon crashed mid-transaction! root@ubuntu-phablet:~#