Long absence leads to lot of development


I have been neglecting this site for the past couple of months, but that doesn’t mean I haven’t been active… I have been so busy working on a million different projects, and have resorted to microblogging (twitter) to keep everyone updated. This past fall, I got a lot of attention for working on the “Touchdroid” team on porting Android to the HP Touchpad, and while that didn’ get too far and instead evolved into the Cyanogen Mod touchpad port, I still had a fun time working on that and working with a mostly great team of people.

In other news, I have also been working on a ton of other things, and I am entered in the MIT Soldier Design Competition again, and the Thiel Foundation’s 20 under 20 program with my friend Steven Richards on some really awesome (secret) technology.

Now for the juicy part: For a little over a month, I have been working with Epson on a new Wearable Computing/Augmented Reality device, called the Epson Moverio BT-100 that allows you to basically wear an Android device on your head, and you see the display through a transparent head mounted display, which simulates a large (~80″ from 10ft) display. It is  pretty sharp, and while a bit bulky is a wicked awesome device to use. One of the first big things I have done with the device is to use it to control the Parrot ARDrone, which is a really amazing experience as you can both physically see the drone and its/your environment, plus see the two cameras that are on the drone. While the actual control is still a bit funky, I plan on fine tuning it for the Moverio… Here’s a quick video that I made (sorry for the quality, really bad camera)

Now here’s the cool part: Epson is looking for Android developers that want to develop for the device… make sure to check out the main Epson Moverio website to apply for developer access, and make sure to mention me (Thomas Sohmers)… this is truly revolutionary technology, and I can’t wait for this to get out to fellow developers, and eventually the general public. Just as the Personal Computer revolutionized the “conventional” big business computers of the time, and how mobile (smart) phones are revolutionizing the personal computer, these glasses and their future generations are going to make the computing experience even more personal and “genuine”. Welcome, to the next computer revolution.

Read More

Calling all testers!

I’m looking for some smart, brave, fearless, and good haired Android users who would be willing to venture into the virtual unknown… I have been cooking up a lot of new Xoombuntu releases, and I am looking for beta testers to help!


  1. Has a rooted device
  2. Knows ADB
  3. Is running on any OS
  4. Knows some basic linux commands
  5. Can follow instructions (Has preferably completed my Xoombuntu installation)
  6. Has a couple hours of time to work in a week
  7. Loves to fill out bug reports :D

What you get

  1. Access to the latest things out of the Sohmers Lab
  2. Be able to see a couple of weeks into the future of cutting edge Android development
  3. Learn how to do some things and have fun
  4. Access to applications, patches, hacks, and other fun things before everyone else
  5. Bragging rights

So do you want to become part of the elite Beta Testers? Apply through the ‘Contact Me’ form at the top of the page, and tell me why you would be a great beta tester.

Read More

HOW TO: Expand the ‘ubuntu.img’ install for Xoombuntu.

NOTE: This is partially based on a post from here…. Thanks Murphy!

OK, to do this you have to have a linux running on a computer… it could either be installed or you could be running off a live CD/USB…

1.If you haven’t installed Ubuntu on your Xoom, or if you want to start new, just re download the ubuntu package from my original post, or you are going to have to copy over your ubuntu.img from /sdcard/ubuntu/ on your Xoom. Place this somewhere easy to access on your machine.

2. Open your terminal and type in ‘su’ so you have root access.

3. Change the directory to where you put ubuntu.img … lets say I am using Ubuntu to do this and I have ubuntu.img on my desktop. So I would do this: cd /home/user/Desktop

4. Now you are going to create a blank .img file… so I am going to make mine 4GB, so for the file size (x) I would put 4000999999 for (x)…. if you want to make it 3.5GB, you could put 3500999999. Now you are goi

create an empty image file: (the 3500999999 refers to the size – this one is 3.5 GB, basically take the first 4 digits and thats how many megabytes the image will be)

dd if=/dev/zero of=ubuntu2.img seek=x bs=1 count=1 –Where x is the file size you want it to be. The installed ubuntu.img that I provided in the original install is about 2.5GB, so make sure it is more than that.

Your new image file is called ubuntu2.img

5. Now on your ubuntu machine (in the same terminal window):

mke2fs -F ubuntu2.img

Mount the two .img files (the empty one and the original)

mkdir ubuntu
mkdir ubuntu2
mount -o loop ubuntu.img ubuntu
mount -o loop ubuntu2.img ubuntu2

Copy the contents of the original .img into the new:

cd /home/user/Desktop/ubuntu/

cp -R -f * /home/user/Desktop/ubuntu2

Now you are going to unmount the folders.

umount ubuntu
umount ubuntu2

(sometimes this doesn’t work… if it doesn’t, reboot your machine and try again)

Once that’s done

Back to your linux terminal:

As root (su):

Delete the 2 folders ubuntu and ubuntu2

rm -r -f ubuntu
rm -r -f ubuntu2

delete the original img:

rm ubuntu.img

rename the new img:

mv ubuntu2.img ubuntu.img

change permissions:

chmod a+x ubuntu.img
chmod 777 ubuntu.img

Then move the new ubuntu.img to the Xoom’s /sdcard/ubuntu (If it asks you, replace the old ubuntu.img)

Finally on your Xoom boot ubuntu shell as normal and at the localhost$ prompt do:

cd /var/lib/dpkg/updates

rm -r -f *


dpkg –configure -a (may take a few minutes, ignore the errors)

And there you go! More space on your Ubuntu install.

Now I am working on getting 10.10 to run on the Xoom well (And then 11.04, which has a touch optimized UI). I am also still working on iOS on the Xoom, but I am making fairly limited progress at the moment (Hey Saurik, want to help?)

I am also trying to find someone who will be getting an Acer Iconia tablet, or Asus Transformer (Both upcoming Android 3.0 honeycomb tablets with a Tegra 2 chip) who would be willing to test my Xoombuntu install on them… or some of you guys could pitch in to give me a early Festivus? :P

Read More

iOS (almost) on the Motorola Xoom!


Motorola Xoom (almost) runs the iPhone Operating Systemthis picture is 'shopped, but the project and video isn't a joke... what is this, april fools or something? I don't like the 'Thats photoshopped you nerd!' emails.

The iXoom Project:

Running iOS on the Motorola Xoom and other rooted Android devices.

There you have it folks… using the same chroot method I used to run Ubuntu on the Motorola Xoom, I have unsuccessfully installed iOS on the Motorola Xoom. If you watch the video, you will see that the install crashes when it tries to launch the Springboard application (The homescreen/launcher of iOS) which then crashes the “virtual machine”.

I am thinking about releasing this if/when it works along with the Ubuntu install in an automated application you would run on your Android device….. Ubuntu part of the free application and iOS and other OS’s I can cram there as a paid app? Developers need to eat too :P

Read More

HOW TO: Run Ubuntu on the Motorola Xoom

UPDATE 4/10/11: Now you can enlarge your Xoombuntu install!

UPDATE 4/2/11: Here’s the fix!

UPDATE 3/20/11: OK, so I modified a couple of steps to make the system a bit faster, and I am going to be releasing a small path tonight to fix some issues people have been having with the install.

UPDATE 3/7/11: I made a stupid mistake in the bootubuntu file… sorry about that guys. What you need to do is edit your bootubuntu file to what is here…… just open up bootubuntu in your favorite text editor (Notepad, TexEdit, etc) and copy and paste what is there. I will continue to update that file, so if there is ever any changes to the bootubuntu file…. it will be there.

I am also planning on releasing a new version this coming weekend with some fixes and small improvements… plus a install tutorial video, and usage tutorial video.

If you have any issues, feel free to leave a comment on this page, tweet me @trsohmers, or send me a message using the “Contact Me” form on this site.

Hey everyone,

Yesterday I posted simplified instructions for unlocking the bootloader and rooting the Motorola Xoom on Mac OS X, and today I have full instructions on how to install and run Ubuntu on your Motorola Xoom tablet. The method this uses is to install Ubuntu in a chroot “jail” to keep it separate of all Android processes… similar to how a Virtual Machine (Virtualbox, Parallels, VMware) runs an x86 operating system (Windows, OSX, Linux) on an x86/x64 machine. Since the Xoom and most Android devices run on an ARM processor,  you can only run an operating system made for ARM, so I am using the ARM version of Ubuntu version 9.10.

Here is a video of it I posted on Youtube:

NOTE: Even though this is running in a chroot jail, and I am 99.9% sure this will not cause any harm to your device, I can not be held responsible for anything that may happen to your device. Just by rooting and unlocking your device (which you have to have done already to do this) COULD void your warranty and/or brick your device. Then again, you COULD be struck by lightning 42 times the next time you walk outside your house… it is highly improbable unless you go outside in a thunderstorm with a lightning rod.

NOTE 2: The install files for this are about 660mb zipped, and once expanded the files are about 2.5gb.

STEP ONE: Setting up your enviornment

NOTE: I will be writing this from the viewpoint of a Linux/Mac user. If you are running Windows, just remove the ‘./’ from the commands.

NOTE 2: My Android SDK folder is /AndroidSDK/… please insert whatever the name of yours is.

1. I am assuming you have the Android SDK from when you rooted… if you do not, download it.

2. Please download this zip… this is the 660mb one, so it may take a while. Get your favorite drink, have a snack, and if you want you can skim through the rest of this  while it is downloading.

3.OK, now that you have the file, extract it to AndroidSDK/tools/

4.Take the busybox and files and copy/move them to the root of the sdcard on your device… you can do that manually by plugging your xoom into your computer and browsing the directories (on the Mac you have to use the Android File Transfer application provided by Motorola).The other way is to use ADB push, and that is what I will explain.

(Make sure you have USB debugging enabled in Settings > Applications > Development)

4a.Open up your terminal application, and change the directory to your AndroidSDK/tools

4b.Type in ./adb push busybox /sdcard (It should tell you when it has done transferring)

4c.Type in ./adb push /sdcard (It should tell you when it has done transferring)

4d.Type in ./adb shell (This allows you to access the terminal on the device itself)

4e.Type in su (This gives the terminal Super User privileges. If you get the error “Permission Denied”, you have not rooted your device)

4f.Type in cd /sdcard (Changes the directory to the device’s sdcard. NOTE: The Xoom doesn’t really have an sdcard at release… but Motorola seems to have made a virtual one so devices that require an sdcard still run.)

4g.Type in sh

After that is complete, busybox should be installed. Try entering a command like cp and see if it displays anything. If not, reboot the device (./adb reboot) and try the cp again.

5. Now that busybox is installed, lets get to actually installing Ubuntu. You now have to move all the files in the Ubuntu folder (minus busybox and to /sdcard/ubuntu …. you can do this using a method other than ADB push, but I will explain it the ADB push way.

5a.Type in ./adb push fsrw /sdcard/ubuntu (It should tell you when it has done transferring)

5b.Type in ./adb push mountonly /sdcard/ubuntu (It should tell you when it has done transferring)

5c.Type in ./adb push /sdcard/ubuntu (It should tell you when it has done transferring)

5d.Type in ./adb push ubuntu.img /sdcard/ubuntu (It should tell you when it has done transferring)

NOTE: This file is over 2gb’s! It will take a while to transfer, and on average it takes 25-30 minutes. Time for another snack break.

5e.Type in ./adb push unionfs /sdcard/ubuntu (It should tell you when it has done transferring)

STEP TWO: Installing Ubuntu

6. OK, lets get this installing. You are going to be going to be going into the shell again, so follow these commands:

6a.Type in ./adb shell (This allows you to access the terminal on the device itself)

6b.Type in su

6c.Type in cd /sdcard/ubuntu

6d.Type in sh ./

It will give some errors, but as long as it gets to “To enter the Debian Linux Console type in ‘bootubuntu’”, you should be good. Congratulations, Ubuntu is now installed.

7. OK, now that Ubuntu is installed… you want to turn it on, right? now Type In: bootubuntu and you should give you a new line saying “root@localhost:/” Congratulations, Ubuntu is now running. If it is not running, try to Type in su bootubuntu and then bootubuntu again. If that does not work, try rebooting your device and do it again… if it is still not working, try going through steps 5-7 again. If you have any more issues, feel free to comment here and I will try to help you.

STEP THREE: Setting up Ubuntu

8. You should still be in the shell and at the root@localhost entry. You are now entering commands through your terminal, into Android’s terminal, which is entering into Ubuntu’s terminal (What is this, Inception?). Like all operating systems, you need to update them… but with Ubuntu, this is quite easy.

8a.Type in apt-get update

8b.Now we are going to add a “head” to this “headless” OS. Since Android is the main operating system on here and Ubuntu has nothing to display on, we are going to output X windows (The GUI Linux OSs) to VNC. Type in apt-get install tightvncserver

8c.Once tightvncserver is installed, type in apt-get install lxde

8d.Type in export USER=root

8f.Type in vncserver -geometry 1280×800 (Resolution of the Xoom’s display. You can experiment to find a resolution you like.. you can type this command whenever to change the resolution)

8g.It should ask you for a password for your VNC… you can use something simple like 123 since you are the only one who can access it since it is only on your device.

9.Now we are going to change some settings to make the VNC experience better….

9a.Type in cat > /root/.vnc/xstartup
9b.Type in #!/bin/sh
9c.Type in xrdb $HOME/.Xresources
9d.Type inxsetroot -solid grey
9e.Type in icewm &
9f.Type in lxsession

10.Press CNTRL+D, and then enter this…

10a. cat > front
10b. export USER=root
10c. cd /
10d. rm -r -f tmp
10e. mkdir tmp
10f. cd /
10g. vncserver -geometry 1280×800

11.Hit CNTRL+D again, and enter this…

11a. cat front /root/.profile > temp #Thanks David Tangye

11b. cp temp /root/.bashrc

12. Now you can exit out of the Ubuntu terminal by typing exit

13.Reboot your device

13a.Install a VNC app from the market such as this Android VNC (Free)

13b.Install a Terminal Emulator app from the market like this Better Terminal Emulator Pro (3.99) or Android Terminal Emulator (Free)

13c.Now you can use the ADB shell again, but I suggest doing this on the device using one of the Terminal Emulators. /sdcard/ubuntu (If the Superuser app asks for permission, press yes)


13c.OK, you should see the same thing as you did on your computer screen. Now go back to your homescreen, and  open your VNC client.

13d.Now, in the Nickname spot, put ‘Ubuntu’ or whatever you want.

13e.In the password spot, put whatever you put for a password earlier.

13f.Leave the address blank.

13g.Set the port at 5901.

Set the color format to 256 colors (1 bpp) for the best results.Then you press the Connect button, and you are on Ubuntu!

14. Some information:

1.Tap to click, pretty simple.

2.Double tap for right click.

3.You can switch in and out of ubuntu… just click your home button or the task manager button.

4.You should be automatically connected to the internet since it shares the device’s internet connection. So this will work on 3G, 4G, Wifi, or not having any connection. I am also going to see if I can transfer files between Android and Ubuntu since they should be on the same ‘network’.

That about wraps it up! Hope you will enjoy Ubuntu on your Xoom!


Thomas Sohmers -Writer of this guide, file modification for the Xoom

Max Lee -Original hacker which did this on the Nexus One.

Charan Singh -Original installer file creator

Koush -Rooting the Xoom

Read More

HOW TO: Root the Motorola Xoom on a Mac

For this, I am using Mac OS X Snow Leopard 10.6.5, and all credit goes to Koush, the man behind the Root and the amazing ROM Manager…. all I am doing is clarifying some of the instructions so mac users that aren’t familiar with terminal can root their devices easier.

NOTE: By doing this, you accept that rooting your device MAY void your warranty, and and may BRICK your device. Procede with caution, and I can not be held responsible for anything that may happen to your device. You should also NEVER accept an OTA update put out by Motorola or Verizon… this could just make you loose your root…. or it could brick your device.

  1. # Download the XOOM root zip.
  2. # Download the Android SDK.
  3. # Download Fastboot
  4. # Unzip h packages wherever. Put the contents of “XOOM root” and “SDK Readme” in the “tools” folder of the Android SDK.
  5. # Now open up Terminal, change your director to where your Android SDK is, and then go to the Tools folder. And now you are going to type this:
  6. ./adb reboot bootloader     ((skip the next 3 steps if you have already unlocked via fastboot))
  7. ./fastboot oem unlock
  8. # wait for reboot
  9. #On your XOOM’s display, you should see a warning message asking if you want to continue unlocking your device. Doing so will void the warranty. Press the volume down button until it states “Yes“, then press the volume up button to beginning unlocking. Wait for a reboot.
  10. #Once your Motorola XOOM has rebooted, connect to a Wi-Fi network or Verizon’s network, but avoid setting up a Google account on your new Android tablet. Then, go to SettingsApplicationsDevelopment and enable USB Debugging. Once you have done that, continue to the next step:
  11. ./adb reboot bootloader
  12. ./fastboot-mac flash boot rootboot.img
  13. ./fastboot-mac reboot
  14. # wait for reboot
  15. ./adb remount
  16. ./adb push su /system/bin/
  17. ./adb push su /system/xbin/
  18. ./adb shell chmod 4755 /system/bin/su
  19. ./adb push Superuser.apk /system/app/

Welcome to the rooted club! Now you just reboot your device, and you are rooted!

I will be posting more guides in the coming days… watch out for more!

Read More