[Transformer TF300T Android Development] f69m:
I am working on porting the latest upstream version and will update this post as things start working.

Things to do:

[DONE] Create boot image that boots into the Ubuntu Touch rootfs.

[DONE] Create Android container started by Ubuntu.

[WIP] Customize configurations and work on kernel and android system to make things work properly (e.g. audio).

[TODO] Setup apparmor security.

Testing, debugging and optimization...

Any help is welcome!

The information and images below are very out-of-date.

The port of Ubuntu Touch to our beloved TF300T is more or less working now.

Please see section "Known Issues" below.

And please read the instructions carefully, including the linked threads, before doing anything to your tablet that might result in a very expensive paper-weight.

Known Issues

Just listing major issues that are specific to the TF300T port.

This is not the place to discuss general issues with Ubuntu Touch.

Camera is broken.

Dock not fully supported.

There are probably more; please follow this thread and report any new issues you find.

Downloads

Please read the section "Installation" below carefully, if you are not sure what these files are.

That section also contains verbose information on the different bootloader versions.

The binaries are generated automatically by Jenkins.

Generally they are not tested and may be broken.

Please report any issues in this thread, so they can be fixed and broken binaries can be removed.

Bootloader 4.2

These are the latest binaries that should be up-to-date with respect to Canonical's binaries.

Well, sometimes allow a day or two...

Android Base-System

The Android base-system is a stripped-down version of CyanogenMod 10.1 with some additional patches.

This is, where the major effort for porting Ubuntu Touch goes into.

Ubuntu Touch Root FS

This is the Ubuntu Touch file system.

Flashing this ZIP will preserve network settings and the phablet home directory, if you had installed Ubuntu Touch before.

It should work for all devices, however a stripped-down version with some changes for our TF300T is provided.

Please see the list of changes below.

Media Files

These media files are part of Canonical's root fs, but they rarely (never?) change.

Splitting the media files into a separate image significantly reduces the size of the rootfs that receives regular updates.

Unless you manually remove /data/ubuntu, these files will persist re-flashing the rootfs.

Bootloader 4.1

These are out-of-date and are no longer being maintained.

They will be kept, till dev-host deletes them (30 days after the last download):

Android Base-System

Ubuntu Touch Root FS

The rootfs for bootloader 4.1 also includes the media files. There is no separate download.

Android Source Code

The patched repositories of the Android/CyanogenMod/Ubuntu source trees are available on GitHub.

For details, please see section "Building the Android Base-System from Source" below.

Ubuntu Touch Root FS Changes

The "official" Ubuntu Touch root fs does not quite work on our TF300T yet.

So a stripped-down version with the following changes is provided:

Run amixer on boot to fix mixer levels.

Disable save/restore of alsa settings.

Split media files into a separate image.

Remove several big and unnecessary files.

The official Ubuntu Touch image does work, but for these issues:

Flashing with TWRP fails.

For details, see the bug report on launchpad.

There is no sound, unless you adjust alsa mixer levels manually.

Rebooting from Ubuntu goes into a boot-loop.

When Ubuntu is properly shut down, it saves the current alsa settings.

Restoring them on the next boot crashes the system and causes the boot-loop.

Note that rebooting from Android or using adb works fine.

If you happen to run into the boot-loop, use the TWRP file manager (in the Advanced menu) to remove /data/ubuntu/var/lib/alsa/asound.state.

Installation

Please read the following instructions carefully, and make sure you understand each step and what it will do to your tablet.

The steps are working for me, but you are ultimately responsible, for what you are doing with your own tablet.

I will not be responsible, if you brick your tablet, or if your wife gets angry at you for being too preoccupied with your tablet.

Step 1: Unlock Your Tablet

If you want to give Ubuntu Touch a try, your tablet needs to be unlocked.

There are lots of threads helping with this, please use search to locate this information.

Step 2a: Which Bootloader Do I Have?

Unfortunately, Asus has released several incompatible bootloaders.

To find out, if you can use this port of Ubuntu Touch, go to the bootloader screen by holding the power and vol-down keys.

Once you see the bootloader screen with three or four icons in the center, check the long version number at the top of the screen.

It looks something like: "WW_epad-10.6.1.15.3-20130416".

The first two letters are your SKU and should not matter.

The version number following "epad" is what will be referred to in the following.

Version 10.6.1.15.3

This is the latest version from Asus, generally referred to as "bootloader 4.2" in the XDA forums.

The latest Ubuntu Touch binaries are developed and tested on this bootloader, so you should be fine.

Version 10.6.1.8

This is an older version of the bootloader 4.2.

The latest Ubuntu Touch binaries might work for you, though upgrading your bootloader is recommended (see below).

This version is known to cause issues with the latest TWRP recovery, so be careful.

Version 10.4.2.20

This is the old incompatible bootloader, generally referred to as "jb bootloader" or "bootloader 4.1" in the XDA forums.

The latest Ubuntu Touch binaries will not work for you, upgrading your bootloader is strongly recommended (see below).

Older binaries that work with this bootloader are still available for download though.

Any older version not listed

Your bootloader is really out of date and you should upgrade as soon as possible (see below).

Any newer version not listed

You are on uncharted territory. Proceed with care!

Let us know about your experience in this thread!

Step 2b: Upgrade Your Bootloader

If you have not yet installed bootloader 10.6.1.15.3, it is recommended to upgrade.

Please check the following threads (and several others; search might be helpful):

[GUIDE][26/04]Update/Recovery/Root/Downgrade Android 4.2.1 on Unlocked/Locked Devices

[HOW-TO] Upgrade or Downgrade to any stock JB Firmware

Step 3: Install TWRP Recovery

You need a custom recovery installed for flashing the Ubuntu Touch binaries.

Please check the following thread for getting and installing TWRP recovery:

[RECOVERY][TF300T/TG] TWRP 2.5.0.0 Touch Recovery!

Step 4: Backup and Wipe Your Android System

Before flashing Ubuntu Touch, you need to wipe some parts.

It is strongly recommended to make a backup of your Android system too.

Check section "Restore Android" below on how to restore it.

If you are running CyanogenMod 10.1:

Use TWRP to backup "boot" and "system".

Backing up "data" is not strictly necessary, but recommended.

Wipe "cache", "dalvic cache" and "system".

In TWRP 2.5 you should use "Wipe -> Advanced Wipe" and check the respective boxes.

Note that this will not wipe the contents of your "/sdcard" Android folder.

If you are not running CyanogenMod 10.1, but another ROM:

Use TWRP to backup "boot", "system" and "data"

Wipe "cache", "system" and "data".

In TWRP 2.5 you should use "Wipe -> Advanced Wipe" and check the respective boxes.

Note that this will not wipe the contents of your "/sdcard" Android folder.

Step 5: Flash Ubuntu Touch

If you want a clean start or you had installed Ubuntu Touch for bootloader 4.1, please remove /data/ubuntu manually before flashing.

You can use the TWRP file manager in the Advanced menu for that.

If you want to upgrade from a previous Ubuntu Touch for bootloader 4.2, please see section "Upgrade Ubuntu Touch" below.

Flash the following images (see above for downloads):

ubuntu-touch-system-XXXXXXXX-tf300t-bl4.2.zip

ubuntu-touch-rootfs-raring-XXXXXXXX-tf300t-bl4.2.zip

ubuntu-touch-media-XXXXXXXX.zip

Step 6: Reboot Your Tablet

Note that there is no boot animation yet, so the screen will be black, till the shell is starting up.

This make take some time, please be patient!

Restore Android

Boot into TWRP recovery.

Wipe "cache" and "dalvic cache".

Select the last backup done before installing Ubuntu Touch.

If you were running CyanogenMod 10.1:

Restore "boot" and "system".

If you were not running CyanogenMod 10.1, but another ROM:

Restore "boot", "system" and "data".

Reboot your tablet.

Upgrade Ubuntu Touch

Generally, the system and the rootfs can be upgraded individually.

However, sometimes Canonical introduces breaking changes, that require them to be upgraded together.

Upgrade ubuntu-touch-system-XXXXXXXX-tf300t-bl4.2.zip

If you are running an older version of that ZIP, you can just flash the new one.

If you have returned to your Android system, please follow "Backup and Wipe Your Android System" under "Installation" above before flashing the new ZIP.

Upgrade ubuntu-touch-rootfs-raring-XXXXXXXX-tf300t-bl4.2.zip

You can flash this ZIP anytime.

Network settings and the phablet home directory will be preserved. This includes the media files from the separate ZIP:

If you want to start clean, remove /data/ubuntu manually and re-flash both rootfs and media.

Upgrade ubuntu-touch-media-XXXXXXXX.zip

You can flash this ZIP anytime.

It will just overwrite existing files and add new files; old files will not be deleted.

If you want to start clean, remove /data/ubuntu manually and re-flash both rootfs and media.

Building the Android Base-System from Source

Basically you can follow the guide for building CyanogenMod with one exception.

Initialize your CyanogenMod source repository with:

repo init -u git://github.com/f69m/android -b phablet-10.1-tf300t

You can also run this command in an existing repository.