XDA Spotlight: Living on the Bleeding Edge with Chromium Auto Updater
Back in October of 2015, developers started compiling the first builds of Chromium optimized for Snapdragon devices. Popularly known as “CAF Chromium” builds (named after the Code Aurora Forums where the source code originated), these open source derivatives of Chromium quickly began proliferating the net. Soon, there were dozens of CAF Chromium based builds available on various sources (including some on our very own XDA Labs app market).
Each variation of the project, made by individual developers cherry picking features to their liking, offered much to users. Night mode, built-in ad-blocking, power saving mode, and more features could be found in many of these builds. Some variants even featured support for syncing your Google account, but this was typically rare (and likely to become impossible in the near future). Overall, many users probably can’t tell much of a difference between each CAF Chromium variants – especially when it comes to performance. Despite benchmarks claiming significant differences, most users will probably adamantly tell you that “theirs” is the fastest.
And then there’s the issue with trust. Although the original CAF Chromium is open source, many of these variants are not. Users likely have little reason to distrust the maintainers of some of the more popular variants, but there have been issues in the past with some CAF variants. Furthermore, people continue to be wary of what data a browser can collect after the Dolphin browser revelations.
But more practically speaking, the biggest issue with CAF Chromium variants is staying updated with the latest versions of Chromium. Google regularly updates its browser to fix security issues, but one developer regularly maintaining their own fork can be time consuming. A team of developers, on the other hand, can much more readily provide frequent updates to a browser. Luckily, the open source Chromium is exactly that.
Living on the Bleeding Edge with Chromium
- Chromium for Android: v58.0.2990.0
- Chrome Canary: v57.0.2987.4
- Chrome Dev: v57.0.2984.3
- Chrome Beta: v56.0.2924.68
- Chrome Stable: v55.0.2883.91
As you can see, Chromium is even further ahead than the most experimental branch of Google Chrome, Canary. This doesn’t mean that Chromium itself is unsuitable for daily use – far from it. Chromium for Android runs the latest build of Chromium straight from source, which means it may feature bugs in any individual build, or it may not. Those of you who have experience running custom nightly ROM builds might know what I’m talking about. But those of you who prefer to stay on only the latest stable build are probably wary of installing something so experimental.
In terms of features, Chromium doesn’t offers all the bells and whistles of most of the closed source, CAF Chromium derivatives I mentioned in the beginning of this article. There’s no built-in ad-blocking, no night mode, or power saving mode. This is just pure Chromium built straight from source with any experimental features that are currently being worked upon in the open source project. If you’re the kind of person who likes to dig around and play with new features in chrome://flags or you just like to run the latest experimental build to experience all of the under-the-hood improvements made by the Chromium team, then this browser is for you.
If you aren’t the kind of person who wants to run a script to build Chromium for Android from source each day (most of us probably aren’t), luckily there are actually sources where you can easily download the latest version. An open source application called Chromium Auto Updater is one such method to easily stay up to date, but there are other applications (as well as a simple Tasker project I will provide that does the same function).
Staying up to Date with Chromium
Every night, the Chromium build bot compiles Chromium with any submitted code changes into what is called a Snapshot build. The binaries of these snapshot builds can be found on Google’s Storage servers. After passing a series of automated tests, these snapshots may eventually become stable builds of Chromium. Currently, the Chromium team does not offer any stable builds of Chromium for Android. You can only download snapshot builds for Chromium, but doing so hasn’t really been accessible to the average user – which is to be expected given its experimental status.
François Beaufort created a webpage (now maintained by the Chromium team) to allow you to quickly download the latest Chromium build for any OS in a single click, however, this requires you to manually visit the page to stay up to date. Another webpage offers an RSS feed and an API (as well as a boat load of information related to the project) which allow you to readily down the latest version automatically – provided you know how to properly parse this kind of data. If we want to automatically download the latest build, we can do so using the aforementioned open source app, Chromium Auto Updater.
The way this application works is quite simple. It periodically polls the Chromium snapshot build page for new versions, and if it finds a new version it will notify you that a new build is available to download. If you have root access on your device, you can have the latest build update automatically in the background (for those curious, the application uses the package manager shell command to install the update). Otherwise, clicking the notification will open the intent to update the app via the standard package manager interface.
Although Chromium Auto Updater isn’t the only application of its kind, I prefer it over the two other alternatives. For starters, getChromium does not have the option to automatically install the latest build for users with root access, plus it doesn’t currently install on Nougat devices. The other Chromium updater app that you can find in the Play Store does not seem to be open source (or at least, I can’t find its source code). Thus, I’ve stuck with using Chromium Auto Updater to stay up to date with the latest builds of Chromium.
Finally, as a sort of DIY alternative (and because I love Tasker), I created my own auto-updating Chromium project. I will share the descriptions of the two profiles that comprise the project below as well as the project file you can download and import. I thought it would be a fun project to replicate these open source apps, and if you are itching to improve your Tasker skills I would recommend you try re-creating my project below. Given the descriptions, it should be fairly simple!
Profile: Update Chromium (141) Day: Sun, Tue, Thu or Sat Time: 11:59PM Enter: Update Chromium (133) A1: HTTP Get [ Server:Port:https://commondatastorage.googleapis.com/chromium-browser-snapshots/Android/LAST_CHANGE Path: Attributes: Cookies: User Agent: Timeout:10 Mime Type: Output File: Trust Any Certificate:Off ] A2: If [ %HTTPD neq %Version ] A3: Variable Set [ Name:%Version To:%HTTPD Recurse Variables:Off Do Maths:Off Append:Off ] A4: Notify [ Title:Downloading Chromium... Text:Fetching latest version from Google. Icon:hd_av_download Number:0 Permanent:Off Priority:3 ] A5: HTTP Get [ Server:Port:https://storage.googleapis.com Path:/chromium-browser-snapshots/Android/%HTTPD/chrome-android.zip Attributes: Cookies: User Agent: Timeout:10 Mime Type:application/zip Output File:Tasker/chrome-android.zip Trust Any Certificate:Off ] A6: Notify Cancel [ Title:Downloading Chromium... Warn Not Exist:Off ] A7: UnZip [ File:Tasker/chrome-android.zip Delete Zip:On ] A8: Notify [ Title:Chromium Update Available! Text:Tap to install. Icon:hd_location_web_site Number:0 Permanent:Off Priority:5 ] A9: End If
Profile: Install Chromium (142) Event: Notification Click [ Owner Application:* Title:Chromium Update Available! ] Enter: Anon (143) A1: Open File [ File:Tasker/chrome-android/apks/ChromePublic.apk Mime Type: ]
You can download the project file from AndroidFileHost by following this button:Download the Chromium Updater Tasker Project!
In order to import it, first save the file to your internal storage. Open up Tasker, and disable “Beginner Mode” in preferences. Then, return to the main screen and long press on the “home” icon in the bottom left hand corner. You will see a pop-up that says “import.” Choose that option, then browse to where you saved the .prj.xml file and click to import it. Voila! You should now see the “Chromium” project as another bottom tab in Tasker. You can, and should, customize the timings when the auto-updater should check for new Chromium builds to suit your preferences. Enjoy the project!