Difference between revisions of "Ubuntu Touch on Google Nexus 4"

From Cactus Howto
Jump to navigationJump to search
Line 1: Line 1:
== Nexus 4 Dual Boot Android/Ubuntu Touch ==


Main source: https://wiki.ubuntu.com/Touch/DualBootInstallation
Main source: https://wiki.ubuntu.com/Touch/DualBootInstallation

Revision as of 08:49, 21 January 2014

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

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:/#

Working features

  • WiFi
  • Phone
  • SMS
  • Browser
  • Camera (only still photography)
  • Contacts
  • Music app
  • Update Manager (allows to update apps)

Major problems encountered with Ubuntu Touch on Nexus 4

Not tested yet

  • Calendar app
  • How to import contacts, events (calendar)
  • How to sync contacts, events (calendar)
  • Backup/restore data

Using Ubuntu touch

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 in Touch menue

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:~#