xda-developers

jeudi 17 août 2017

During Google I/O 2017, Google promised many new features would come to its smart home assistant device – the Google Home. The phone call feature was officially announced just the other day, but the Bluetooth audio support has only been showing up for a small handful of users since it was announced. Google is known to extensively beta test its features in waves, though occasionally they offer users the ability to enroll in preview programs so everyone is on the same page. In case you don't want to play Google's game and want to enable Google Home Bluetooth streaming right now, we've figured out a way to do this.

The following tutorial requires root access on your device. That means your device's bootloader is probably unlocked and you have a superuser binary controlled by either SuperSU or Magisk.

Force Enable Google Home Bluetooth Streaming

The method we are using to enable Bluetooth audio streaming on the Google Home is by editing the preference file of the Google Home app. If you haven't installed the app already, please do so now.

In addition, we will need a file explorer capable of browsing directories in the /data partition. This means it should be able to handle root access. While I personally use Solid Explorer, I recommend grabbing the free MiXplorer from our forums if you don't already have a file browser that you prefer.

Once you've made these changes, then force close the Google Home app in settings. Open up the Google Home app and go to your Google Home Device settings page. Under Device Info you should see a new option called "Paired Bluetooth settings." Tap on "Enable Pairing Mode" and go to the Bluetooth settings page on your phone. Pair with your Google Home, and you're good to go!

Follow the tutorials category for more posts like this. Download the XDA Labs app to keep up to date with all the latest news from the Portal and forums!

In order to support high performance virtual reality mode (required for official Daydream VR support), your device must have support for the Vulkan Graphics API with Open GL ES 3.2 and a screen resolution of at least 1080p at a refresh rate of 60Hz minimum with ideally 3ms or less display latency and 5mm or less persistence. The screen should also be between 4.7″ and 6″ in size and the device should support Bluetooth 4.2 LE and have temperature sensors to read the body temperature of the phone. You can look at the full list of technical requirements here.

If your existing, Daydream VR-unsupported devices, more or less meets the above requirements, then you should be able to enjoy the Daydream VR experience – so long as you have root access! This tutorial will show you how to enable Daydream VR both systemlessly with Magisk or by modifying /system.

Force Daydream VR Compatibility (System Mod)

Firstly as mentioned you will need root access on your device. You can get this by flashing either SuperSU or Magisk through a custom recovery such as TWRP if your device's bootloader is already unlocked. Once you have that, install a file browsing application that will let you edit files in /system. I recommend MiXplorer or the popular Solid Explorer.

Step 1

Open MiXplorer, grant it root access and navigate to /system/etc/permissions and find the file named handheld_core_hardware.xml.

Note: I am using Solid Explorer here, but it's the same steps involved with MiXplorer.

Step 2

Open the file named "handheld_core_hardware.xml" and before the final line which says </permissions> add the following:

<feature name="android.software.vr.mode" />

<feature name="android.hardware.vr.high_performance" />

Save the file.

Step 3

Next, you will need to open your build.prop file, located in /system. This file works to identify many system properties of your device. The line we are interested in is the ro.product.device entry, which defines your device's product name. Replace the device listed to "sailfish". This is the Google Pixel and it is recognized as a Daydream VR compatible phone. The line should then read:

ro.product.device=sailfish

Step 4

Reboot your phone and install the Daydream application, Google VR Services, and Daydream Keyboard from the Google Play Store. If you cannot see these in the Play Store, try installing them from APKMirror.com below.

You should now be able to use a Daydream VR headset with your Android device! If you don't already have one, you can buy one here on Amazon.

Force Daydream VR Compatibility (Systemless Mod)

Following these steps will require MagiskSU installed instead of SuperSU, so make sure you have Magisk installed. It's a bit more long winded as that file is device specific, so you will need to make your own Magisk module. This requires Linux as it uses a shell script. To begin, you firstly need to download this template and extract it. You will also need to use Vim or Nano.

Step 1

Firstly you'll need to extract your own handheld_core_hardware.xml file, which you can do by simply copying it out from /system/etc/permissions. Copy this to your computer. Navigate to the Magisk module template folder and enter the folder named system. Delete the placeholder file, make a folder called "etc", then enter that and create a folder called "permissions". Inside your permissions folder is where you want to copy your handheld_core_hardware.xml file. The file hierarchy should look like this.

Step 2

Now open your handheld_core_hardware.xml file and add these lines before </permissions>

<feature name="android.software.vr.mode" />

<feature name="android.hardware.vr.high_performance" />

Save that and navigate back to the root of your Magisk module template folder.

Step 3

For the rest you can simply follow the instructions in the GitHub page for naming your module and making it unique! Once done, run the config.sh file, flash your newly created zip, and also flash this Magisk module which changes your build.prop, made by XDA member 4RK4N in this thread.

And that's it! You're good to go!

Explanation

This simply works by editing a preference file which lists what features your device supports. We edit it to trick apps into thinking it has support for Google Daydream VR. This isn't enough for some apps however, as some Daydream apps check the device type first before launching against the list of officially supported devices. This is where our build.prop edit hopefully comes in, which tells apps that our device is actually a Google Pixel.

Now go out there and enjoy the world of VR on your phone! Here are some apps to get you started:

This is actually pretty big news because some of these devices fall into the low-end and mid-range market. Besides some OEMs like Sony, it can be rare for a company to release a big update to Android for devices that are not considered its flagship(s). They've even taken things a bit further and promised that the company is even cutting back on bloatware too. ZenUI is going from 35 pre-installed applications down to only 16 (13 first-party apps and 3 third-party apps).

So to break things down, all devices in the ASUS ZenFone 4 series will come with ZenUI 4.0 and eventually be updated to Android O. Devices in the ASUS ZenFone 3 series will be updated to ZenUI 4.0, and also be updated to Android O. Updates are said to be gradual and will take place during the first half of 2018. This, along with the reduction in bloatware installed means that ZenUI should be cleaner and perform faster with less clutter.

ASUS is also working to make ZenUI faster with some of the more popular 3rd-party applications as well. During the presentation earlier today, they highlighted a number of applications and talked about how the 4.0 update will make them faster. Applications included in this round of optimizations are WhatsApp (43% faster), Facebook (61% faster), Chrome (55% faster) Line (51% faster) and a few others. Whether or not this translates to real world usage/is actually perceptible, though, is something we won't know until after the update rolls to the public.

Snapchat has been known over the years to have problems on Android devices. Such issues have mostly included performance problems and high data usage. Recently the app crashed on Android devices at launch as well, but another really annoying issue has appeared. According to users on Reddit, if you are experiencing a loud beep at the end of phone calls through your phone's speaker it may be caused by Snapchat. This issue is fixed by disabling the telephone permission to the Snapchat app.

Looking into why Snapchat uses this permission in the first place, I found the explanation within their own app. But then why, when we disable the telephone permission, does the loud beep go away? If it's only used to autofill your phone number when registering, why does leaving the permission enabled cause other issues? I decided to take some system logs, analyzing my dmesg and logcat to see if I could find anything. A dmesg is the kernel log since boot and the logcat is a system log since boot. Dmesg handles SELinux denials, CPU changes, audio output and more while the logcat contains logs of applications running on the device. The logcat also includes permission denials and system denials.

The dmesg was largely empty as I suspected; I didn't think it would be an SELinux denial. What I found in the logcat was more interesting. I initially thought this issue may not be caused by Snapchat itself, which would correlate with some users who claimed this did not fix the beep sound. Instead, I thought it coincided with the system denying the "READ_PRIVILEGED_PHONE_STATE" permission. See below the logcat after I hung up a phone call.

As you can see highlighted in orange, Snapchat is denied the permission "READ_PRIVILEGED_PHONE_STATE". I thought this may have been the issue, but when I disabled the telephone permission the same error appeared. I hit a dead end here and there was no difference between the logs with the permission enabled or disabled. Interestingly, Android Wear has a similar request as visible in the screenshot, but I don't think it had any effect.

Overall I could not conclude the cause of the issue, and investigation only led me to the same logs between the permission enabled and disabled. Disabling the telephone permission does fix the issue, but investigation led me to no conclusion as to why. If anyone knows why this fix works please let me know, but for now hopefully this should stop that annoying beep at the end of every phone call.

Any application that plays music, videos, podcasts, or game audio uses the media audio stream to control its volume level. By default, nearly every Android device uses 15 steps for media volume. Unfortunately, this often results in the volume level still being far too high at the lower levels. There are some apps out there that enable more fine-grained volume control and there's also a build.prop method to edit the media volume steps, but neither solution is perfect. Using the Precise Volume app requires you to manually use presets or the notification slider, while the latter method I outlined requires your device to have root access. Fortunately, neither method is required on the OnePlus 5 as the device ships with twice the number of media volume steps by default – 30.

That means twice the level of media volume granularity as other phones. It might take twice as long to go from the lowest volume level to the highest, but it's not like that takes a lot of time anyways. You're also less likely to blow your eardrums out at night in a quiet room when trying to listen to something at low volume levels. Every Android phone should have this.

The change is so subtle (our editor-in-chief, Mario Serrafero, has had the phone for much longer than myself and didn't even notice it until I pointed it out), yet it is very much appreciated. This is one of those features that is found on many custom ROMs that, for whatever reason, never seem to make their way onto consumer software builds. The OnePlus 5 is certainly the first phone I've ever noticed to have more than the default 15 media volume steps.

Hopefully other OEMs will start to offer more minor tweaks such as this that, in my opinion, enhance the quality of the software experience. Samsung has made some strides lately with the release of the SoundAssistant app which lets devices control the media volume with the volume keys by default. Currently the only way to take advantage of that popular custom ROM feature is through various third-party apps, but perhaps this is something that OnePlus may add in a future build of OxygenOS.

Or at least, we hope so. At the very least, we would love it if they could open up alert slider customization.

It looks as if Samsung's Galaxy S8 continues to be a success as the reports indicate the device outsold every other individual Android smartphone during the second quarter of this year. We already knew that the S8 and the S8+ had a great launch when compared to previous Samsung offerings, but sometimes the hype dies after it's launched. If the numbers from Strategy Analytics are accurate, then that doesn't seem to be the case in this instance.

The data analytics company has partnerships with various retail outlets that enable them to estimate about how many devices are shipped and sold during a certain period of time. While these numbers should never be considered to be 100% accurate, they do give us a rough idea about what is going on in the smartphone industry at any given time. Considering most OEMs do not reveal sales data unless they're trying to make headlines, these types of estimations are as close as we can get.

According to their report, the iPhone 7 and then iPhone 7 Plus took the number 1 and 2 spots during the second quarter of this year with 16.9 and 15.1 million units sold respectively. These are certainly impressive numbers and even moreso when we consider how long these two devices have been on the market. When we get to the number 3 and 4 spots though, this is where Android devices start to show up with the Galaxy S8 and the Galaxy S8+ holding strong here.

This report says Samsung was able to sell 10.2 million units of the Galaxy S8 and 9 million units of the Galaxy S8+ during Q2 of this year. Xiaomi was able to clinch the 5th place spot here in this report saying they were able to sell 5.5 million units of the Redmi 4A. When calculating all smartphone sales for the quarter, Strategy Analytics says there were 360.4 million devices shipped around the world.

We'll start off with the ZenFone 4 Selfie as it is the company's base model that focuses on selfie performance. The device has a 5.5″ 1080p 2.5D display panel (no resolution given right now, but it's safe to assume it's 1080p), the Snapdragon 430 SoC, and 4GB of RAM. The back houses a 16MP camera and the front has a 20MP shooter paired with an 8MP 120-degree wide-angle lens, f/2.0 aperture. There's 64GB of internal storage to play, expandable with a microSD card slot and powered by a 3,000mAh capacity battery all for $280 at launch.

Then we have the ASUS ZenFone 4 Selfie Pro which kicks things up a notch into the mid-range category. It has a 5.5″ 1080p 2.5D AMOLED panel, the Snapdragon 625 SoC, and will come in 3/4GB RAM offerings with a 3,000mAh capacity battery. This device has a 16MP camera on the back as well but the front has a 12MP sensor paired with a 12 MP 120-degree wide-angle lens. These are Sony's IMX362 sensors at an F/1.8 aperture, 1.4µm pixel size, and 4K recording capabilities.

ASUS is describing the front cameras of the ZenFone 4 Selfie Pro 24MP DuoPixel camera technology since they're combining the two sensors. These will use ASUS' exclusive image processor, the "SuperPixel Engine", as a way to improve camera quality. Pricing for the ZenFone 4 Selfie Pro starts at $380 for the 3GB variant and goes up from there.

We also learned the ZenFone 4 will be made in two variants, one with the Snapdragon 630 and the other with the Snapdragon 660. We learned about two chips for this device in the past, but didn't know how they would be implemented. It seems there will also be two variants for RAM capacity too so expect the Snapdragon 630 version to have 4GB of RAM while the more expensive one will have 6GB of RAM with the Snapdragon 660. Both versions will have a 3,300mAh capacity battery.

Some details of the ZenFone 4 Pro have also been revealed with its 5.5″ 2.5D AMOLED panel (no resolution given again), Snapdragon 835 SoC, 6GB of RAM, 128GB of internal storage, and a 3,600mAh capacity battery.