dimanche 22 janvier 2017

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

To get a sense of just how far ahead Chromium is compared to Chrome channels, let's look at what version each browser is currently at.

  • 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!

Update Chromium

    Profile: Update Chromium (141)          Day: Sun, Tue, Thu or Sat          Time: 11:59PM  Enter: Update Chromium (133)          A1: HTTP Get [ Server:Port:http://ift.tt/2iSh6SI 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:http://ift.tt/1cw9s5B 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     

Install Chromium

    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!

from xda-developers http://ift.tt/2iSdvUZ

Enable this Chrome Flag to Lock Rotation in Fullscreen Videos

At XDA, when we aren't covering news that we think is important for the day or publishing an in-depth analysis piece, we like to plug the gap with interesting projects, rumors, and tips. Just yesterday, I posted a tip that reminded users of a useful Chrome flag that has undergone improvements. Today, I bring you another useful Chrome flag: lock the screen orientation when playing a fullscreen video.

Lock screen orientation when playing a video fullscreen.

Android Lock the screen orientation of the device to match video orientation when a video goes fullscreen. Only on phones.

Available in the Dev and Canary channels of the Google Chrome browser for Android, this flag will lock the screen orientation of the device to match the video's orientation whenever you make the video go fullscreen. This should be useful for those times you are watching a video while laying in bed and you tend to accidentally flip the video (probably happens to a lot of us out there). Here is a before and after video demonstrating the flag in action:

As you can see, once enabled the video is automatically set to the proper rotation based on the video's most prominent orientation. Furthermore, I am prevented from changing the rotation of the video when I physically rotate my device (although you can't see me flip my phone in the video). No longer will you need to fumble with changing your quick settings or using Tasker to automate changing the rotation lock in certain apps. Now, Google Chrome will handle that for you – provided you're viewing a fullscreen video, of course.

In order to enable this flag, simply paste the following URL into the address bar. Remember that this feature is considered experimental and it is entirely possible it won't make it to the stable release of Chrome. I haven't encountered any major issues with this flag enabled, though, so I'm optimistic it will roll out to all Chrome channels eventually.


Enjoy a hassle free video watching experience!

from xda-developers http://ift.tt/2kgVAYg

Deeply Integrated Progressive Web Apps (WebAPKs) are Live for Chrome on Android

For most of Android's history, applications have been installed as local packages on the device itself. We typically acquire the installation files we need by downloading an APK file, which is an archive containing all of an application's resources and assets. While there are many benefits to installing a native application this way, there are also many benefits to developing an application that is web based. Web applications can be accessed on multiple platforms, can be easily modified, and can be readily deployed among other benefits.

Google has taken web apps one step further and created Progressive Web Apps (PWA), which are more integrated with mobile devices. Progressive Web Apps have access to send push notifications and most importantly are "installed" to the home screen of a device. These web apps can be created from most websites by clicking the "Add to Home Screen" option in Chrome's menu, however, how functional the Progressive Web App actually is depends on website support.

One of the major downsides of PWA are that they are not treated as actual applications on the device. As these web apps are accessed via home screen shortcuts, many users who like to theme their home screens are probably put off by this fact. I can speak from experience. Fortunately, during the 2016 Chrome Dev Summit last November, the Chrome team demonstrated that Progressive Web Apps could actually be turned into APKs that would install on your device.

The developer team did not state when exactly support for "WebAPKs" would go live, but apparently it is already live – it's just nobody really noticed. To be fair, the only way to enable support for this feature is to enable a new Chrome flag:


If you paste the above link into your address bar (while on either the Dev or Canary channels of Chrome for Android), then you will be taken to a Chrome flag which states the following:

Enable improved add to Home screen.

Android Packages "Progressive Web Apps" so that they can integrate more deeply with Android. A Chrome server is used to package sites. In Chrome Canary and Chrome Dev, this requires "Untrusted sources" to be enabled in Android security settings.

As is clearly stated, Progressive Web Apps can now be packaged into actual installable Android packages! This uses a back end Chrome server to package the website into an APK (though it is unclear if it is Google running this server, which presume is the case). Once you enable the flag and restart Chrome, any PWA you "Install to Home Screen" will instead download an APK file to install on your device. Not every website supports this, of course, but you can take a look at the websites that fully support this new feature right here.

Fun with Progressive Web Apps

We've taken two different PWAs for a spin to see how the feature fares – Financial Times and Telegram. Financial Times is a simple news website which is the perfect case of a time when the mobile website might be a better choice than a separate application.

As you can see, the PWA is treated like an actual application by Android. It prompts you to be installed and it resides within the app drawer like any other app. Furthermore, removing the PWA works just like uninstalling any other app.

Note the difference in the information bar in these two screenshots showing the recent apps screen. The first screenshot is what happens when you "install" a PWA without this new flag enabled, while the second screenshots shows a true installation of the PWA with the flag enabled. Financial Times exists as an application on my phone which can be dismissed separately from other Chrome tabs.

Next up is the Telegram web app. This PWA uses Telegram's web interface to serve you messages. To be honest, Telegram is probably one of the best designed and functioning applications that exists on Android, so I personally don't see the need for this PWA. However, I wanted to test the functionality of an instant messenger that was installed as a PWA so I decided to give it a spin.

While Telegram does indeed install and display all of my messages appropriately, there was one major caveat: notifications. It appears that notifications are not functioning properly right now. When I sent Mario Serrafero a message over Telegram, he did receive a notification (as shown in the bottom left screenshot) but it did not contain any useful information. Opening the "Site Settings" option brought us to the site specific settings for the Telegram web app which showed that Notifications were enabled, so we aren't sure why notifications do not work.

Of course, since the flag to enable WebAPK installations only exists in the Dev and Canary channels on Chrome for Android, we are assuming that this feature is a WIP and thus not everything will work at this time. Since we know that Chrome is able to send push notifications (for instance on Facebook), it is possible that Progressive Web Apps installed this way may also be able to receive push notifications in the near future.

Otherwise, this is a neat look into an experimental feature that I hope becomes more robust as time goes on. I like using Web Apps personally as they tend to serve me the information I need without any bells and whistles that tend to lag the device or drain my battery. Furthermore, this approach solves one of my major qualms with web apps, that being the fact that they were required to stay on your home screen in order to be launched. With web wrappers of various popular sites becoming more and more common, hopefully we'll see more companies adopt the Progressive Web App standard.

from xda-developers http://ift.tt/2k46ZHh

samedi 21 janvier 2017

Will Google Tango Catch on in 2017?

In our last discussion, we invited your views on the future of Google Daydream in 2017. Now we move the discussion towards Google Tango, or simply 'Tango' as it is now called.

In 2016, the only Tango certified device was the Lenovo Phab 2 Pro, which offered a nice glimpse at Tango functionality but suffered from its mid-range specifications. This year, ASUS has announced that their ZenFone AR will feature support for Tango (and Daydream VR to boot) but will more premium specifications. As the year goes on, we may see more devices from more OEMs come with Tango functionality.

So our question to you is,

Will Google Tango catch on in 2017? Will Tango-enabled devices sway consumers away from conventional flagship experiences? Or will AR-specific hardware be priced out of reach of most consumers?

Let us know in the comments below!

from xda-developers http://ift.tt/2jLhrG4

PSA: Moving Chrome’s Address Bar to the Bottom no Longer Causes Visual Bug

Google's Chrome browser has been the most popular web browser in the world for a few years now, and its dominance is even more pronounced in Android. Although Chrome aims to be a one-size-fits all browser, some users prefer using third-party browsers (most of which are based on the Chromium open source project) for added features or to experience a different UI design.

Some popular web browsers allow you to place the address bar at the bottom – a useful option for those of us with larger phones. For a long time, this wasn't possible in Google Chrome. But early last November, Google added an experimental flag called Chrome Home to Chrome Dev and Canary.


When enabled (just click the link above in your browser), the browser would display the entire address bar at the bottom of the screen rather than its typical place at the top. It was a dream come true for big phone users – except for one major problem.

Yeah, the browser would render a blank space for where the address bar used to be. This blank space would take up quite a sizable portion of any webpage – and it was a definite eyesore. I'm sure many of our readers who heard of this tip, myself included, immediately disabled the flag once they realized how much precious screen real estate they were losing.

But fortunately, it looks like this visual bug has been fixed. We don't know exactly when it was fixed as each Google Chrome channel receives frequent updates (and likely most people disabled this flag and never bothered to re-enable it), but we can confirm that this bug is fixed in the Beta, Dev, and Canary channels.

Unfortunately, the stable channel of Google Chrome is still stuck on version 55 of Chromium, which does not contain this flag at all. But if you are running one of either the Beta, Dev, or Canary builds, then the Chrome flag should be working properly now. I've been running it today and haven't encountered any major issues so far, which is a good sign, but remember that any flag you enable is considered experimental so you should assume that it won't run perfectly.

from xda-developers http://ift.tt/2iOTYol

Report: ASUS will Launch the ZenFone 4 this May

ASUS first unveiled their ZenFone 3 series of smartphones back in May of last year at Computex. On top of the namesake ZenFone 3 in this series, there was also the ZenFone 3 Max, ZenFone 3 Zoom, ZenFone 3 Laser, ZenFone 3 Deluxe, and the ZenFone 3 Ultra. Thus it seems likely that ASUS will unveil the next generation of ZenFone smartphones sometime this year.

Earlier this week, DigiTimes reported that ASUS wants to double the number of smartphones they ship this year. The company is putting a lot of focus on the smartphone market and they're hoping to reach as much as 40 million units shipped in 2017. Sources state they will easily be able to surpass 20 million units shipped, but the company still hopes to see some major growth as they continue to invest in their mobile products. Now, an additional report from DigiTimes states that the first phones in the ZenFone 4 family may be launched in May.

The report from this morning cites "sources from Taiwan's handset supply chain." While it isn't official confirmation, the information does seem credible given the specifics described for ASUS' shipment goals and the fact that the ZenFone 3 lineup was announced at a similar time last year. ASUS needs to aggressively expand their smartphone lineup as the company actually experienced a decrease in smartphone shipments last year when compared to 2015. Although it was only a 14.6% decline in shipments compared to 2015, that still equated to 3 million less smartphones shipped for the Taiwanese handset manufacturer.

But it is not a good sign that the smartphone division within ASUS wasn't making any profits during the first three quarters of last year. Though the division was able to come back into the green during the 4th quarter, those profits weren't able to make up for the amount they lost earlier in the year. ASUS revealed the ZenFone AR and the ZenFone 3 Zoom at CES earlier this month, so we'll have to wait and see if either of these two devices can leave a mark in the crowded Android market this year.

Source: DigiTimes

from xda-developers http://ift.tt/2k02q0S

XDA Spotlight: Button Mapper, an App to Remap your Phone’s Hardware Buttons

Hardware buttons are increasingly becoming harder and harder to find on Android devices, with most devices these days retaining only the necessary power and volume buttons. Though some users prefer the sleek designs that on-screen navigational buttons offer, others miss having tactile buttons that could be utilized for specific purposes. Thankfully, you can have the best of both worlds with an application called Button Mapper.

Available on the Google Play Store, this tool was developed by XDA Recognized Developer flar2 and it enables the user to remap hardware buttons to activate different functions without root. The application works by tapping into the accessibility framework baked into Android, which means the application can work with most devices including those running on older versions of Android such as KitKat.

Take Control of your Hardware Buttons

There are two versions of this application: a Basic version and a Pro Version. The Basic version limits intercepting only the physical home and volume buttons, but does not otherwise restrict the actions you can perform on these button presses. If you upgrade to the Pro version for a fairly reasonable price (€2.60 for E.U. residents and $2.99 for U.S. residents), you will have access to themes, setting custom vibration levels, more hardware button support (provided your phone has those buttons), and blacklist remapping buttons while within certain applications. The Pro version also provides two additional features if you have a physical home button – lockscreen peek and homescreen lock, which we'll cover below.

When you open the application for the first time you are met with the instructions on what the application can and cannot do. Button Mapper does not hide its limitations either and explicitly states that it can only intercept hardware buttons (that are not the power button) while the screen is on. In order to do this, the application requests that you enable its Accessibility Service. Flar2 makes it quite clear that his application respects your privacy and that the Accessibility Service is used only to intercept hardware button presses.

I personally have very few hardware buttons on my device –  volume up, volume down, and power – leaving me with only two buttons to remap since the power button cannot be intercepted. This is fairly typical for many users (though owners of Samsung and OnePlus devices will have more opportunities to take advantage of this application), so you might ask yourself: Is this application still worth the price?

In my view, it definitely is. I quickly discovered that only having two buttons is not as limiting as it might appear at first. This is because I can actually set 3 actions per button (single tap, double tap, or long press) giving a total of 6 actions for my available hardware buttons. To be fair, I don't recommend you actually override the default single tap action for volume up and volume down, but you totally could if you wanted to.

Button Mapper Themes

So what can you remap your buttons to do? Here is the (long) list of supported actions:

  • Applications
    • Launch any installed application on your phone
  • Shortcuts
    • Launch any available shortcut on your phone
  • Actions
    • Navigation
      • Home
      • Back
      • Recent Apps
      • Last app
    • Assistance
      • Search
      • Launch 'Assistant' App (equivalent of long-pressing home)

    • UI
      • Bring down quick settings
      • Expand/dismiss the notification shade
    • Display
      • Toggle Flashlight
      • Bring up the power dialog
      • Turn screen off
      • Take a Screen Shot
      • Brightness +/-
    • Audio
      • Toggle Do Not Disturb mode
      • Volume +/-
      • Next/Previous Track
      • Play/Pause

As we mentioned before, there are a couple of useful settings located in the Advanced Options menu. First, there are the various "bypass" options. You can set Button Mapper to be disabled when system dialogs are on screen, when using the camera, when in the middle of a phone call, or while using any application that you blacklist. Furthermore, you can set shorter/longer delays for when Button Mapper will recognize a valid input. This can be helpful for users who either press button combinations too quickly or too slowly. I recommend you experiment with timings until you have found one that you can nail 100% of the time.

Rewiring your Buttons

I can definitely think of a few useful reasons why I would continue using this application. One of the first things I did was to add an exception for both Spotify and phone calls so I could continue using the normal volume functions within these applications but still retain my custom hardware mappings otherwise. Another action I set up was to have a long press on my volume down key to trigger taking a  screen shot which is normally more difficult with my bulky case. Next, I remapped a long press on the volume up key to return to the last active application and also made double tap on my volume key to display the recent applications list.

Though my uses here are rather basic, they work great in my case while I'm commuting to work on the metro. In one hand I am holding the grab rail while in the other I am holding my phone. Remapping two to three step actions into a single key is far more convenient for me as I frequently use my phone one-handed. Having a long press to switch to the last active application might sound a bit strange, but I use it quite often when copying text. I find that some apps don't share/copy text that well, so this button remap makes jumping between apps a bit faster for copying or entering two factor authentication codes, for example.

Not every phone has as limited supply of hardware buttons as mine does, though. The OnePlus 3/3T, for example, has that slider button which can be remapped with this application to your chosen action. The Xperia phones typically have a dedicated camera button which can also be remapped. Samsung devices have physical navigation keys, all of which can be remapped to do your bidding. You could, for instance, switch the back and recents key on your Samsung device to better mirror the stock Android navigation layout. With a Samsung Galaxy device, you can also adjust the button light (Basic version) and vibration duration (Pro version).

Samsung Galaxy S6 Capacitive Buttons. (Credits: AndroidExplained)

And if your phone has a dedicated physical home button, you can take advantage of the two features I mentioned in the beginning of this spotlight: lockscreen peek and homescreen lock. The former feature allows you to lock your device by releasing the home button while you are on the lock screen and the latter allows you to lock your device while you are on your home screen (Nova Launcher not required)! Using lockscreen peek, you can hold down on the home button to bring up the lockscreen (and "peek" at your notifications), then release the home button to have the screen turn off. Homescreen lock is more simple, but for those of you with failing power buttons it can be a vital function.

The developer lists a bunch of different potential uses for this application in his Play Store description as well as a few in his XDA forum thread. Ultimately, though, what you can do is totally up to your imagination. Our resident Tasker aficionado, Mishaal Rahman, notes that while you can set up Tasker to intercept button presses using a plug-in like AutoInput, it is far, far easier to use a dedicated application such as Button Mapper. In addition, Button Mapper essentially allows you to perform nearly any action you can ever think of thanks to the ability to launch Shortcuts – which means you can directly launch Tasker tasks in a single (or double or long) press.


What would be nice to have in a future version is distinct mappings while using separate applications, sort of like 'profiles' for each application. For example, I might want to have Spotify change tracks with volume up/down presses but on the desktop have those buttons turn on the flashlight or pull down the quick settings. But currently, the remapping of a button is applied system-wide and does not apply for any individual application.

Overall, though, this is a fairly useful tool in the arsenal of an Android enthusiast. Whether you use it to remap your hardware buttons in a more typical way such as having the volume up and down to change music tracks, or you use it more unconventionally such as in my case, how you use it is dependent on your personal preferences. The application allows you to be as creative as you want, though, the more hardware buttons you have the more fun you can have.

Download Button Mapper from the Google Play Store!

from xda-developers http://ift.tt/2kdtJbq