Chrome hacking

It's easy to make your Chromebook more than the sum of its parts

A Chromebook can be a great purchase even if you never step outside of Google's trusted environment. They are some of the best web machines ever built, require almost no software maintenance, and come in a myriad of different styles and price points. We love the things, and the numbers say we're not alone.

But like anything electronic, sometimes it's fun to push the envelope and do things a little outside of the intended use. Sometimes that means hidden features in the software, sometimes it means altering the software, and sometimes it means replacing the software entirely. We're familiar with people doing just that with Android, but it's also pretty easy to do with your Chromebook. The best part is that it's also very easy to go back.

Let's have a look at what you need to get started, and where to begin.

Create a recovery image

Chrome recovery image

Before you start doing anything it's always a good idea to have a path back to a time when everything worked. Luckily, that's fairly easy when we're talking about a Chromebook.

Google has an official tool that will install the factory-issued software to your Chrome device on a 4GB or larger USB stick or SD card. You can then use this media to restore your Chromebook just like it was fresh out of the box.

Google has full instructions on using their tool here but here's the process in a nutshell:

  1. Insert the media you'll be using as a recovery disk into a Windows, OS X or Linux computer that you have admin rights on.
  2. Install the correct version of the recovery tool for your platform via the links at Google's site.
  3. Run the recovery tool and tell it which Chrome device you're building a restore image for.
  4. When you're finished, use the media you created to restore your Chromebook from recovery mode. Full instructions for the various models are right here.

Reboot and enjoy your factory-fresh software!

Change to the beta or dev channel

Channel surfing

This is really simple and something I recommend. By default, your Chromebook runs on the stable release channel for your model. This means everything has been tested, things run pretty smoothly, and there usually aren't any critical bugs to trip you up.

That's absolutely no fun.

The good news is that we all can be testers by switching the software channel in the settings. Click the Chrome OS wrench icon in the lower right and open the settings. Choose About Chrome OS > More Info. Click the Change Channel button and choose between Stable, Beta and Dev - Unstable channels in the popover window that appears.

Both the beta and the dev channel give you access to upcoming (both default and experimental settings — see below) features that aren't in the stable channel just yet. I've always found the beta channel to work pretty well, but expect issues and glitches on the dev channel along with the latest features.

If you just want everything to work, switching back to the stable channel is just as easy — choose it from the same list!

Tweaking the settings

Chrome flags

Chrome — both the operating system and the stand alone browser for Windows Mac and Linux — has an entire page filled with "experimental" settings. Some will absolutely break things, others might improve your experience. Find them is simple.

Fire up the browser and enter chrome://flags into the Omnibox (a fancy name for the URL bar in Chrome) then hit enter.

You'll be faced with a huge list of features that you can enable or disable at will. All of them are experimental, some are serious security holes, others are potential oh-crap-I-need-to-reload-EVERYTHING bringers of doom. We don't recommend you just jump in and start enabling things. Instead, talk to people who are using the same model of Chromebook that you are and find out what works and what doesn't.

It's also worth remembering that these experimental flags can disappear at any time. Some may be merged into the OS, others will just up and disappear. If you do enable something, lets say for example, GPU compositing, and it breaks everything (yeah, I've been there), you have your recovery media you made earlier to save your bacon.

Install Linux

crouton

One of those complicated things that has been made simple by the work of great developers, installing Linux on your Chromebook is a great way expand its capabilities. Chrome OS is a flavor of Linux, but it's been trimmed down and many features have been removed. We're going to look at the simple (and in my opinion the best) way to build a dual-boot environment so you have both Chrome OS and Ubuntu LTS using David Schneider's excellent tool called crouton (Chromium OS Universal Chroot Environment).

You'll need to enable developer mode on your Chromebook, and the method varies from device to device. You may need to flip a hidden switch, or enter a key combination during boot. You can find exactly how to enable developer mode for your Chromebook on Google, and once you've done that everything else is the same no matter which model you use.

Once you're a developer (or at least in dev mode) you'll need to head to the crouton project page at github and download the script from the top of the page. Save it to your Downloads folder and you're ready to get started.

Open a terminal (I told you Chrome OS was Linux) by pressing Ctrl+Alt+T and enter the word shell to open a shell.

Next, run crouton to see all the help text and examples like this:

sh -e ~/Downloads/crouton

Read everything you find there, as these are your options and tell crouton what to install. If you don't understand an option, ask someone. Also, read the help section at the crouton github page for examples and hints.

Once you have crouton set up, you'll be able to swap between Chrome OS and a full fledged install of Linux (Ubuntu LTS) at will.

While I like the flexibility of having both Chrome OS and Ubuntu on the same machine, you may want to be rid of Chrome OS completely. If you're interested in replacing Chrome OS with Ubuntu, have a look at the ChrUbuntu project here. If you want to replace Chrome OS on your Pixel with Debian Wheezy, grab a beverage and have a look here.

Building Chromium yourself

Chromium master

If you're an advanced user, or want to tackle an ambitious project with the ultimate Chromey reward, you can build Chromium yourself for your Chromebook.

This isn't all that difficult if you're familiar with building a big software project, but it can be pretty daunting for a first-timer. Everything you need to know is at the Chromium Project pages but it breaks down into a few basic steps:

Everything is documented and if you can follow directions you should be able to build and install Chromium with any Windows, Linux or Mac computer. Just like building Android yourself, this allows you to customize just about anything you can think of before you build it. And just like building Android, if you don't make any changes you have the same basic system you would have if someone else did the building and you just installed it. Building Chromium is an excellent way to learn a few things and see how the process works, but don't expect software made of miracles and unicorns when you're done.


These are just a few of the neat hackery tricks you can do with your new Chromebook. And like everything else, it may turn out that none of it is for you and you prefer things that just work as intended. That's cool, and sometimes when I'm staring at the screen of a device that won't boot, I'm right there with ya.

If you do want to dive in and have a go at Chrome OS, this is how I do it. Tell me how you do it in the comments, I'd love to hear about it!

 

Reader comments

Hacking your Chromebook is fun and easier than you think

31 Comments

Me too. Just discovered the xbmc target in crouton and am finding my chromebook to be a really nice tool for accessing my media. Makes me think a chromebox might be work well attached to my TV. But if I did that I'd probably have to boot into chrubuntu rather than chromeos.

Yes Crouton is definitely a lot nicer than most articles mention (it's not dual-boot, it's dual-run). The pros are: Kernel is built for your specific Chromebook and all hardware works. Takes up only 2 GB additional storage, leaves about 8 GB on a 16 GB SSD free afterwards. It's also easier. The only benefit of going ChrUbuntu or another real dual-boot mode is if you want more recent Linux kernels, which also comes with its own hardware compatibility problems.

I'm gonna be installing crouton on my Chromebook (whenever I get one) would you recommend having a Chromebook with 4gb of ram or is 2 enough?

Posted from the Avengers: Age of Droid Ultra

Let me provide a counterpoint to the answers already given. I have a 2GB acer c720 with crouton. I have Unity and xbmc installed on it. Both of these are not exactly frugal when it comes to memory. I find myself having no problem running all of this and a few tabs in ChromeOS.

I have never run as many tabs as people who like 4GB run. So YMMV. But for my usage patterns, I have not run into issues with RAM.

Definitely 4GB if one's available. I have the 2GB C720P, and while it handles almost everything I throw at it without performance issues, it does stutter a bit when loading graphics-intensive pages, or when I have a ton of tabs open. And besides, more RAM equals better future-proofing. Chrome OS will end up being just as susceptible to resource bloat as any other OS, no matter how lean it is now.

2 GB is enough, Linux manages swap pretty well (virtual RAM). And because it's SSD, it's faster than older generation HDD swap space.

I have an Acer C720P with 2GB of RAM. Used crouton several times to try different versions. I didn't care for unity or gnome with the touch screen. XFCE was very fast, and KDE was much nicer to look at, but slightly slower (still much faster than in virtualbox on my windows machine).

In the end, I'm using XFCE with Kwin, and it's working great. Everything runs fast, switching between the two is fast, and I'm getting ready to sell two of my old tablets because I no longer have use for them. Having linux has allowed me to use java and view most video file types, and those were the only limitations I found with ChromeOS. Yet, it still runs very fast on a measly 1.4GHz with 2GB RAM. XFCE is definitely the way to go, though.

If you follow my link above, I use Linux Mint as my main distro and the Chromebox boots straight to Linux in just a few seconds.

Yes my only operating system is Ubuntu and it boots straight to that. You could also use something else like mint.

Posted via Android Central App

I have Crouton with Saucy Unity on a USB 3.0 Jeep drive. If you put crouton externally go 3.0 or go home, the performance is so worth it.

I Hobby Develop android apps on my chomebook now with ease. Usb Debugging to my Moto-x makes real time debugging a breeze.

When not building some androids, I work on some NodeJS projects. The fun with this is instead of going into full GUI, you can just launch an ubuntu shell. This is great for running command line utilities like Node or Github.

Until these last few things are available natively I will be having croutons on my Chromebook salad daily :)

Is there a guide how to install it on a external drive?

Sorry - total Linux-beginner here...

Also: is there a disadvantage to have both - COS and Linux - on a Chromebook?

I am sure you loose a gig or two on the SSD - but that I don't mind...

Posted via Android Central App

this is what i used to get started. http://goo.gl/I2iRqn

the disadvantage is that your security could be compromised. On boot you see a white screen and have 30 seconds to press ctrl-d to continue into the boot process. You miss the window and your chromebook will automatically revert to normal.

I have never installed it on the ssd so not sure how much space it takes up. The USB 3.0 gives plenty of space to install apps directly to it. I have audacity, android studio, eclipse to name a few.

Been wanting to try out some Linux and Ubuntu for the fun of it all. So I guess I should have pulled the trigger on that refurb sale on the Acers.... Thanks Jerry!

From what I've read, Mac OS X does not support the graphics for the Celeron. The proprietary BIOS that comes with the Chromebook could be a stumbling block too. Not saying it can't be done by an experienced hackintosher, but it wouldn't be trivial.

If you like OS X, try installing the ElementaryOS Linux distribution.. very similar and easy to use UI, and there are some great "how-to's" for the acer c720 available on the net.

"This means everything has been tested, things run pretty smoothly, and there usually aren't any critical bugs to trip you up.

That's absolutely no fun."

Brilliant.

One point to note. Google is not just leagues ahead of other platforms as far as security goes, it's parsecs ahead. One effect of that is if you go from a somewhat experimental level, i.e. dev or beta, back to the stable mothership, Chrome OS will wipe everything on your local drive. This is to prevent something acquired while in a less-than-most-secure environment from being carried back into the most-secure stable environment. If you are using the Chrome OS cloud model and have everything stored in Google Drive or another cloud repository this will make no difference to you at all. If you have an indispensable file out in your Downloads folder it will make for great agony unless you back your file(s) up first.

Note that when you wipe your Chromebook, Google Sync will reinstall your themes, extensions, bookmarks etc. automatically in the space of a few minutes. Unlike with earlier operating systems, wiping a Chromebook is No Big Deal.

None of this is hacking. Cool article though. I don't have an actual Chromebook, but I've installed Chromium OS and then Chrome OS on a few laptops.

Whats the easiest way/command to wipe the ssd? I messed up and want to clear the drive and start everything over

Posted via the Android Central App

Neat. I upped the storage on my C720 to 128 Gig per a previous article, but hadn't made the jump to Linux yet, although that was the goal. This will be my next project. One question, is there a way to print out these directions in a neat format, so I can check things off as I go?

Oh, one question... After I put Linux on, will the Chrome portion still update when the usual updates come out? Will that cause any problems with the Linux?

Yes, if you use Crouton (not ChrUbuntu) method, the Chrome OS partition stays original and updates like usual. The Ubuntu partition runs alongside it, sharing the same Linux kernel. The Ubuntu partition can be deleted and free up space for Chrome OS again.