Ubuntu Touch on Nexus

Ubuntu has finally released stable Ubuntu Touch for Galaxy Nexus and Nexus 4. Nexus 4 is newer and faster device capable of handling ubuntu os, but galaxy nexus has started to show its age. The Installation was snap, but the OS was too slow to be usuable.

1. Installation
I used ubuntu OS 13.04 to install the Ubuntu touch on my galaxyNexus

Initial Setup
I presume, you have already tested other custom rom and have unlocked bootloader for android. Now here is what you do, Run the following commands to install phablet-team tools and android adb and fastboot. On your Ubuntu Desktop terminal:

sudo add-apt-repository ppa:phablet-team/tools
sudo apt-get update
sudo apt-get install phablet-tools android-tools-adb android-tools-fastboot

Then enable USB Debugging Mode on your Mobile (Settings/Developers/Turn USB Debugging on)

Downloading and deploying Ubuntu Touch
Just run on your ubuntu desktop

phablet-flash ubuntu-system --no-backup

This will deploy the latest build onto your device, after which your device will boot into the Ubuntu Unity shell. Can take 1-2 hours.
Note this will erase all your contents of the phone, pictures, videos

2. SSH and ADB and apt-get
You can ssh or adb to your devices, by the following

SSH

ifconfig wlan0

on your galaxyNexus ubuntu touch terminal and note inet6 addr
now on your ubuntu desktop just run

ssh phablet@inet6_addr
sudo service ssh start

enter phablet when asked for password
type yes when asked to add the finger print
voila you have sshed to your device


Note: If you can’t access SSH and get connection refused, you will need to install and start ssh.
Follow the following Steps;
Connect your phone to your pc and open terminal and run the following commands

adb shell
sudo apt-get install ssh
service ssh start

Now, try connecting to ubuntu touch via ssh using above method

ADB
connect your device to laptop and

adb root

This will make adb run in root mode

adb shell

To get the adbshell

su  phablet

To run adb as phable

apt-get
What is ubuntuOS with out apt-get? You might encounter lock error while using apt-get command. Well here is the solution, make the filesystem writable. Run the following command on device terminal or connect to your device via ssh and run the following command

sudo touch /userdata/.writable_image

Then reboot, now apt-get commands work for you

3. Troubleshooting Lag/Slowdown
After the device booted up (galaxyNexus) I was greeted with ubuntu LockScreen so far so good. I began to just look around the OS and I noticed a really laggy operating system :(. The response was really slow too painful to be used.

Solution
Ubuntu Touch 13.10 uses Mir, which is not properly supported by Galaxy Nexus. FIY: Mir is a display server developed by Canonical to replace the X windows System. So I decided to disable mir on phone and switch to Surface Finger Display on my galaxyNexus. To do that run,

rm -R /home/phablet/.display-mir

then reboot

4. Get me my Google Contacts
We just moved from android and to our horror the contacts haven’t synced. What was my crush’s number? damn I have stopped remembering people’s number since mobile phone’s arrived. Well there is no app to sync google contacts so you might have to play dirty

You can SSH to your device, it will be easier to run the commands, or you can type commands on yout galaxyNexus Terminal :). ADB doesn’t work

First lets configure the sync property, run

$syncevolution --configure --sync-property username=youremail@gmail.com --sync-property password="yourpassword" --sync two-way Google_Contacts

Now do the first pull

syncevolution --sync refresh-from-server Google_Contacts addressbook

The sync will only pull 50 contacts at a time, so you need to do followup pull if you have more contacts. To do that just run the followng commands N number of times, until you see repetation

syncevolution --run Google_Contacts addressbook

5. Take a screenshot
There is no app to take a screenshot as for now, here is what I did.
Connect the phone to the desktop via adb/ssh. I used adb.
Then run the following command to take a screenshot

/system/bin/screencap /home/phablet/filename.png


Here screencap is screenCaputure program and second one is path to your file

6. ScreenShot