A Year of Maru

I can hardly believe it, but it’s already been over a year since Maru’s launch! This seems like a good time to take a breath, quickly go over what Maru has accomplished this past year, and consider the future of the project.

A brief history of Maru

Let’s go back to the very beginning–here’s the tweet that started it all1:

Barely a week after, based on all the interest and feedback the launch was getting, I wrote the first post on this blog, outlining the origins of Maru, why I believed this project had the potential to transform the way we use our smartphones, and my decision to open source it.

For the first few months after the launch, I was running a private beta program to work towards a stable release with a reasonably-sized user group. I had a lot more sign-ups than expected though, so it was a bit of a logistical mess getting the early beta builds out to everyone and gathering feedback, but it worked out somehow2. When I was confident with the system’s stability, I ended the beta program and opened up Maru 0.2.3 to the public.

With the beta program over, I was able to get my bearings on the open-source project, sort out the licensing details, set up the forums, release all of the code on GitHub, and kick off the Maru OS Project.

Within a few days of my announcement that Maru had been open sourced under the Maru OS Project, several developers started to offer up help, leading to a healthy number of community efforts to bring Maru to other devices. While kindling the open-source project, I released 0.3, an important update that brought Maru to Marshmallow and included support for running Maru Desktop in a headless setup.

Over the past few months, I was working with our community developers to improve the porting process, since the request I still receive the most is to support Maru on more devices. A solid amount of this work made it to the recent 0.4 release, which is the first release to feature code from volunteers in our community3.

Where is Maru today?

Over the past year, Maru has built an enthusiastic community of users and developers. We have an active mailing list/forum, a growing org on GitHub (> 1k stars as of this post), and a healthy presence in the press. Our community continues to grow, and an increasing number of users are contributing to the project by improving our wiki, answering questions on our forum, offering to test builds, and volunteering to port Maru to new devices.

Maru itself has come a long way since 0.1 in the ten releases we have had over the past year, resulting in major improvements in stability and overall usability: a transition from Lollipop to Marshmallow bringing a range of enhancements to the base platform, the ability to start Maru Desktop in the background for server-style use cases, encryption support, security updates, and lots of general fixes. We now officially support both the Nexus 5 and Nexus 7 2013 Wi-Fi, and we have early community builds that are open for testing for the Nexus 5X and Nexus 6P.

I’m excited to see that our users are doing incredible things with Maru today. Here are some examples of what’s possible after you install Maru on your device:

Where is Maru headed?

Although Maru is being used productively today, we still have a long way to go before we can fully realize Maru’s vision of “your phone is your PC”.

Here are some features that can take Maru to the next level:

  • More device support
  • Wireless display streaming
  • Desktop graphics acceleration
  • Desktop audio
  • On-device touchpad and keyboard
  • More hardware access within the desktop
  • Alternate desktop distros
  • OTA updates

And here are some areas that could take the open-source project to the next level:

  • Better documentation, particularly architecture diagrams
  • More automated testing
  • A transition from point releases to a fully-automated, continuous release cycle including nightly or weekly builds so users can quickly receive the latest updates

Out of the above, more device support will have the biggest impact on the project since it will open up the Maru experience to a larger market. If you are interested in helping bring Maru to more devices, check out our Porting Guide to get started!

A change of pace

An important change affecting the future of the project is that I will no longer be working full-time on Maru. I had actually quit my job to grow Maru sustainably by pursuing commercial opportunities with device manufacturers; I thought I could accelerate Maru’s growth by licensing a commercial version of the software to ship stock on devices, and I had a few potential licensees lined up throughout last year, but none of these efforts ended up being fruitful in the end.

As a result, I’ve decided to cease actively pursuing commercialization and instead focus on where Maru really shines: The Maru OS Project. That means the time I spend on Maru will be directed towards making the open-source project the best it can be: buffing up documentation, sharing knowledge with the community, improving automation and tooling for contributors, and anything else I can do to make the contribution process as frictionless as possible. Although the pace of development for Maru will likely slow down as I begin this transition, I will continue to support the project in my spare time.

A few more thoughts

My hope with Maru was to offer a different paradigm for personal computing, one in which you only have to carry around a single device for all your computing needs–your smartphone. I wanted to show people that smartphones are a lot more than just “smart” phones–that they are, in fact, personal computers (PCs) in every sense of the word4. What was lacking though, was software that could enable a great PC experience on a mobile device, and my idea of what that software should be resulted in Maru.

I believe that over the past year, Maru has made great strides towards that original vision. It is deeply satisfying to me that today, you can download Maru for free, run a quick automated installer, and use your device as a PC by plugging it into a display and pairing up a bluetooth keyboard and mouse. And to top it off, Maru is completely open-source so you can browse all the code, contribute your ideas and improvements, and tune it for your own use-cases. It still amazes me that all of this was possible without a single dollar of funding.

Thank you to everyone for your support over the past year and for making this journey so enjoyable–your enthusiasm for Maru really is priceless!

Sharing some enthusiasm for Maru at CES 2017!

Preetam D’Souza
Founder & Lead Developer, Maru


  1. I also submitted a post to Slashdot that was picked up by Hacker News–this is really what generated a ton of early traffic to Maru. 
  2. I did a podcast with Linux Luddites around this time which provides some more details on the beginnings of the project. 
  3. I did another podcast with Late Night Linux around this time discussing the latest release and recent developments with the project. 
  4. This is a lot more obvious today than it was when I was first thinking about Maru back in 2013! It’s amazing to see all the different takes on this idea by various companies in the past few years. 

v0.4.1

Maru OS 0.4.1 is now available!

This release contains important security updates for Maru Desktop and minor fixes for the easy installers. The most important of these are:

  • SSH services are disabled by default1
  • The root account is locked by default2

Although SSH services have now been disabled by default in Maru Desktop, it is still highly recommended that you change the default password on the default “maru” account as soon as possible–ideally, the first time you log in. This can easily be done by opening up a Terminal, typing passwd maru, and following the prompts.

Check out the release notes for all the details.

Getting up and running with 0.4.1

Grab the latest release for your device from here. If you are new to Maru OS, get started with the Installation Guide. If you are running an older verison of Maru OS and would like to upgrade to 0.4.1, follow the Upgrading Guide.

Please note that when upgrading Maru without a factory reset (see Upgrading Guide: Option 2), you will need to manually upgrade your desktop system to receive the desktop security updates included in this release.

As usual, thank you to everyone in the Maru community who helped make this release happen. If you are interested in contributing to our next release, please stop by our github, and get in touch with us on our user forum, developer forum, or gitter!


  1. More details in #76
  2. The default maru account has sudo access, so a root account is mostly redundant. See this Ubuntu wiki article on why this is a good idea, including directions on how to unlock the root account if you still need it. 

v0.4

I am pleased to present Maru OS 0.4!

The biggest ask I get is more device support1, and today I am happy to announce that Maru OS supports the Nexus 7 2013 Wi-Fi (flo). Since this is the first release for flo, it is marked as a beta-quality build and will upgrade to a stable build once more feedback from the community pours in.

Additionally, Maru OS now supports full-disk encryption of both your mobile and desktop data. If you would like to encrypt your device, head over to Settings > Security, set a screen lock, and tap Encrypt phone.

There are many other improvements, fixes, and security updates included in this release, so make sure to check out the changelog for the details.

Getting up and running with 0.4

Grab the latest release for your device from here. If you are new to Maru OS, get started with the Installation Guide. If you are running an older verison of Maru OS and would like to upgrade to 0.4, follow the Upgrading Guide.

Shoutouts

I am proud to report that this is the first release which features volunteer code contributions from members of the Maru community! I would like to especially thank Tyler Martin for his perseverance in bringing up flo on Maru OS (our first working community port, I might add) and his dedication and timeliness in working with me to integrate flo into our official builds. I’d also like to thank Noel Macwan for his speedy PRs with the latest AOSP security patches. And last, but certainly not least, thank you to everyone in the Maru community that helped make this release happen by sharing your feedback and enthusiasm for the project.

Maru OS has a relatively large codebase, and it is exciting to see others take the time and effort to dig in and help move this project onwards and upwards. If you are interested in contributing, please stop by our github, and get in touch with us on our developer forum or gitter!


  1. We have several community ports in progress that need testing, including alpha/beta builds for devices like the Nexus 5X and Nexus 6P. You can keep track of progress on our device port thread (thanks to our community member @chevdroid for managing this!). 

v0.3

I’m excited to announce that Maru OS v0.3 is now available!

With this release, Maru OS has fully made the transition from Android Lollipop (5.1.1) to Marshmallow (6.0.1). That means intelligent power management, granular app permissions, the latest security patches, and more!1

One of the top user requests for Maru OS is the ability to start Maru Desktop without an HDMI screen around.2 In v0.3, just tap the switch and your desktop will start in the background if an HDMI display isn’t available. SSH services are enabled by default in the desktop, so you can easily ssh into your portable Debian server!

It’s important that Maru OS supports as wide a variety of displays as possible, and v0.3 improves support for non-1080p displays. Settings > Desktop > Tweaks now offers a new “Enhanced resolution matching” mode which attempts to pick an external display’s native resolution, overriding your device’s stock matching algorithm. This can be helpful if you are experiencing less than optimal resolutions when connecting your device to displays that do not support 1080p.3 4

There are many more updates that made their way into v0.3. Check out the changelog for the full list, including important upgrade notices.

Getting up and running with v0.3

Grab the latest release from here. If you are new to Maru OS, get started with the Installation Guide. If you are running an older verison of Maru OS and would like to upgrade to v0.3, follow the Upgrading Guide.

Shoutouts

Thank you to everyone in the Maru community who helped make this release happen by reporting issues, offering feedback for improvement, and most importantly, sharing your enthusiasm! And a final thanks to Olivier Miche for the majestic wallpaper in this release.


  1. Moving to Marshmallow also means that Maru OS can now be ported to newer devices that do not have Lollipop builds! If you’re interested in helping out with a port, please check out the Porting Guide to get started. 
  2. Issue #5 
  3. For those of you with a Nexdock, enabling this mode will correctly select the optimal resolution and fix any scaling issues. 
  4. Note that you will need to disconnect and re-connect to your display after enabling or disabling this mode, as well as rebooting your desktop if it was already running. If you are still experiencing issues, your device’s display driver may simply not support the optimal resolution. See Issue #19 for more details, particularly regarding the Nexus 5. 

Kicking off The Maru OS Project!

I’m happy to announce that Maru has been fully open-sourced under The Maru OS Project!

There are many reasons that led me to open-source Maru, but a particularly important one is expanding Maru’s device support with the help of the community.

If you’d like to help out with a device port (even just offering to test a new build helps a lot), let the community know on the device port planning list. We currently have a few Nexus, LG, and Motorola builds being planned. If you don’t see your device on there and would like to help with development or testing, please do chip in and we’ll get it added to the list.

If you’re interested in contributing in general, please check out the project’s GitHub, get up and running with the developer guide, and join the developer group.

Looking forward to seeing Maru on some new devices!

Maru v0.2.3 is now public!

Hey guys,

Just wanted to let you all know that…

Maru OS downloads are now open to everyone!

Several thousand beta invites and five releases later, Maru is now available for anyone with a Nexus 5 to try out! Yup, that means no more annoying waitlist and invite process.

A huge thank you to all of my beta users for putting Maru to the grindstone over the past few months. We found many areas of the experience that could be improved, but we also discovered surprising applications where Maru shined. Here’s a small sample of what your “phone” can do with Maru:

  • Learn to code with Scratch1
  • Set up a portable PC in your hotel room2
  • Replace your laptop(!)3
  • Run a full-blown geographical information system with QGIS4
  • Record, edit, and publish videos with OpenShot5
  • Design and edit images and vector graphics with GIMP and Inkscape3
  • Do 3D modelling and rendering with Blender6

The goal with the private beta program was to get to a reasonably stable release with a manageable user group, and thanks to their testing, I am happy to report that v0.2.3 is stable for daily use. Keep in mind, however, that Maru is still in its very early stages (v0.2.x), so the software may change rapidly, possibly in backwards-incompatible ways (i.e. you may need to back up your data manually and do a clean upgrade to a new version).

The best way to get up and running with Maru is to go ahead and join the forum, check out the new FAQ, download the latest release, and follow the installation guide. Make sure to also check out issues and feature requests brought up so far in this thread7.

As I mentioned in last month’s update, you have the option of using either the easy installer scripts for your platform (maru-v0.2.3-installer-…), or the ROM-standard update zip (maru-v0.2.3-update-…) for flashing with a custom setup like TWRP or MultiROM.

Oh, and the open-source project is starting to go online.

Now that the beta program is over, I’m finally turning my attention to the open-source project so we can expand device support with the help of the community. Let’s get Maru in the hands of a lot more people!

If you are interested in contributing and/or want to stay up-to-date on announcements related to the open-source project, please join the new maru-os-dev Google Group.

I can’t wait to see what you all do with Maru,

Preetam


  1. Twitter 
  2. Forum 
  3. Forum 
  4. Twitter 
  5. YouTube 
  6. YouTube 
  7. Special thanks to Petya Lakatos for setting up and managing this! 

Maru in April: “My phone is my PC!”

Hey guys,

A few quick updates on Maru over the past month. I usually send update emails to my newsletter, but I’ll start posting them here too so anyone can follow along.

First, Maru is now easier to install than ever.

I have been working with my beta testers in April to make Maru as easy to install as possible. Beta invites now officially offer two options for installing Maru on your device:

  1. Easy installers for Linux / Mac / Windows (really simple but less flexible): The easy installers are a great choice if you aren’t familiar with custom ROMs and just want Maru on your device without having to go through the hassle of installing a custom recovery. The installers also come with a quick uninstall script so you can get back to a stock system in no time.
  2. A standard update zip (less simple but a lot more flexible): The update zip lets you flash Maru with a custom recovery just like any other Android ROM. That means you can keep custom recovery back-ups and use Maru as a secondary in MultiROM!

Second, beta invites have been sent to everyone who signed up before (“<“) March 18 UTC with a Nexus 5.

As a reminder, Maru is currently in private beta for the Nexus 5. Invites are being sent in batches on a first-come, first-served basis. All you have to do is sign up on the website with your device, and you’ll be placed on the beta waitlist.

So far, invites have gone out to everyone who signed up before March 18 UTC with a Nexus 5. If you signed up before March 18 with a Nexus 5 and have still not received an invite (please first check that your sign-up date is indeed before March 18, and that the invite wasn’t accidentally filtered to spam), get in touch over email and I’ll make sure you get one. If you overlooked an earlier invite and your links have expired, no problem, just reply to it and I’ll get you a fresh set.

Invites will be going out for a few more weeks, so there are still plenty of opportunities to grab the beta early!

So, what are people saying about Maru?

…and much more.

Want to share your thoughts on Maru? Use the hashtag #MaruOS!

Tweet your thoughts or a picture of your setup with the hashtag #MaruOS and your tweet may be featured in the next update! (I would prefer just #Maru, but we are up against a very popular cat by the same name…)

As always, thank you for your support.

Preetam

P.S. I am stunned by the number of people who have bought a Nexus 5 just to try out the beta–you guys rock.