Screenshot_20150914-163459

Endeavours in Android M multi-window

Author: Steyn Geldenhuys

I am a very proud owner of a Google Nexus 6. I’ve pined for a Nexus device since the dawn of time. I have also ALWAYS rooted my devices, because why not? If it can be done why not do it?

Anyway, back to my Nexus 6. So I installed the Developer Preview 2 of Android M and subsequently upgraded to 3, via a long winding road – I always take the scenic route.

I read, a lot, about everything; and this led me to the some of the cool mods that you can do without rooting your device via the build.prop config file. One feature that caught my attention was the new “highly ¬†experimental” multi-window feature. Owning a Nexus 6 quickly leads to the realization that you have this epic screen real estate but you can’t do nothing with it.

So off I went. I charged up my phone (and I would love to say that I waited till it reached 50%, but I didn’t) and flashed TWRP.

I downloaded the correct TWRP image, which you can find here: https://dl.twrp.me/shamu/

I then opened my terminal – that is Linux speak for the scary black widow (purple for Ubuntu) with no buttons. My derailment syndrome of course brought my mind to awesome saying: “GUI makes simple tasks easy, CLI makes complex tasks possible.”

cd into the directory containing the TWRP image.

You of course need adb and fastboot installed, it is quite easy to do: http://lifehacker.com/the-easiest-way-to-install-androids-adb-and-fastboot-to-1586992378

Make sure your you have debugging enabled and also that your bootloader is unlocked, AKA “OEM unlocking”.

First I booted into recovery:

adb reboot recovery

Flash the recovery, where twrp.img is the name of the TWRP image you just downloaded.

fastboot flash recovery twrp.img

Reboot into recovery using the volume up down buttons on the device and selecting recovery.

TWRP will then boot up and present you with a choice to modify the system partition or not. Google fixes recovery partitions automatically on reboots, so allowing TWRP to modify the system partition disables this.

At first I didn’t want TWRP to do this, but later on it seemed that I had no choice as the system partition is mounted as read-only if you choose to not let TWRP modify the system partition.

The system partition should be mounted, but if it is not go into the mount settings and make sure it is mounted and also make sure that the mount as read-only option is unchecked.

Now in your terminal execute:

adb shell

You should now be inside your device. Then execute

vi /system/build.prop

You can now use vi to edit the build.prop file. If you have never used vi before, “don’t panic!”. ¬†Use the arrow keys to navigate to the line “ro.build.type=user” go to the end of the line and press ‘a’ (this starts append).

Now change:

ro.build.type=user

To

ro.build.type=userdebug

Then exit and save. In vi you do this by first hitting “esc” then “:”,then “x” and hit “enter”.

Now reboot.

I had a start-up error on my device, apparently this is normal, just ignore it your device should recover and boot normally.

Yay! So now you should have some extra debug things available on your device. Go into your “Developer options” and enable “Multi-window mode”.

Screenshot_20150916-104451

You are then presented with a lovely warning telling you that this is highly experimental.

To use this feature hit your recent apps button, you are then presented with a funny new button on the top of the your recent apps. You can use this button to toggle the display mode of the app. The apps do seem to remember their settings, which is quite cool, but sometimes it is a bit confusing.

Screenshot_20150916-104516

 

Screenshot_20150916-104539

Screenshot_20150916-104550

What is quite cool is the fact that the windows respect some Material Design principles regarding layering, which is cool, but the feature does need quite a bit of polishing.

Screenshot_20150916-104723

When using this feature in landscape mode, I had quite a few issues and crashes.

Screenshot_20150914-163459

I would love to see the multi-window mode support sport moving the windows around and maybe changing the top/bottom layout to side-by-side. It does look like the real estate is a bit too little for this feature. So I might delve further into the build.prop file to change the DPI, maybe the device would allow me to run apps side-by-side or even 4 apps at once. Hmmmm. More about that in a next post.