LightBlog

vendredi 6 avril 2018

The Journey of F2FS and why File Systems Matter: Interview with Stan Dmitriev from Tuxera

File systems aren’t discussed on XDA or any other forum all too often. The topic involves a lot of low-level development, so developers prefer to focus on applications, ROMs, or kernels. Nevertheless, the file system is a vital part of every storage. It’s the technology that outlines how data in your device’s storage is stored and retrieved. There are many different kinds of file systems—each with their own pros and cons—and picking one over another can make a huge difference in stability and performance. So how do OEMs make that choice? I had the pleasure to talk with Stan Dimitriev, the PR & Communications Manager at Tuxera, a Finnish company that provides file system solutions to many big OEMs.

Q: Can you introduce yourself and Tuxera?

A: I’m Stan Dmitriev. Ever since I got my first Android phone (HTC EVO 3D), I’ve become an active fan of the XDA community. Let’s just say I’ve installed a custom ROM and voided my warranty on day one (Stan.Dmitriev is a Forum Member on XDA). A couple of years ago, I co-founded a startup project called Corgi for Feedly, at that time the XDA community helped us a lot with defining and developing the application.

Currently I’m the PR & Communications Manager at Tuxera, which is the leading embedded storage software, file systems to be precise, company on the market. Our software powers more than one billion devices and can be found in the latest flagship phones, cars, routers, drones, and cameras. The story of the company started with NTFS-3G, when our President and CTO Szabolcs “Szaka” Szakactics made NTFS to work with Linux devices. Currently, we develop our own file systems and implementations both for external and embedded storage and work with most of the automotive companies out there as well as many smartphone companies.

Here at Tuxera we quite often visit the XDA forums, especially when troubleshooting a bricked device or finding a custom ROM / kernel to play with. Many of my colleagues frequently visit XDA to read about the latest deep tech news around Android and Linux ecosystems.

Q: File Systems are an integral part of our devices, but very few people know about their role, improvements, strengths, and weaknesses. What’s the gift of it, and why should more people take interest in the file systems holding together their data?

A: File Systems are a vital element of the Linux kernel that is responsible for all of the interactions between the device and its storage. Every time you take a picture, open an app, or watch a video – the file system plays a core role for the OS to access and store all of the files. File systems weren’t so exciting for some time, the main reason is that the bottleneck in performance was coming from the storage.

But as flash speeds are getting extremely fast, especially with introduction of UFS, it is now the software that needs to be modernized to keep up with the flash performance. Not only can the file system affect the storage speeds, but it also plays an important role in maintaining the phone performance in the long run. If done wrong, the storage will become fragmented, a phenomenon in which an inefficient use of storage can reduce the performance of the device. Reducing such possibility to a minimum, is an important characteristic of a file system.

Q: What is F2FS (primer), and why did it start making its way to Android? Which OEMs were leading the charge?

A: F2FS is an open source file system, with the main pitch that it is designed for flash storage architecture. NAND storage (flash) is used in all of the current Android phones usually as eMMC or UFS solutions. The project was developed by Samsung initially and has gained strong interest from some of the mobile OEMs. We don’t have the data on which OEMs started this shift. But from what I know, personally, Motorola was the first, with many other OEMs like OnePlus and Huawei following this shift shortly.

Q: What were the advantages it provided? OEMs cite faster storage operations and UI performance, but are there any other advantages?

A: The pitch was quite simple, F2FS brings higher performance to flash based storage. Your system would boot faster (faster read speeds), the write speeds would be higher, allowing to record heavy 4K, higher frame rate slow-motion, and 360-degree videos. Additionally, the latency between the system and the storage would be ultra-low, meaning that the animation and opening apps would feel much snappier.

Q: The issues, specifically, seem to center around degrading performance. Could you explain that in greater depth? What’s the cause?

A: The idea of F2FS was indeed great, to achieve the fastest possible performance for flash devices. But it is also important to focus on the performance in the long-run. Hardware can always be fast out of the box, but maintaining these speeds continuously is much tougher challenge. For an Android use case the storage of the device is almost full most of the time, and there are thousands of read write operations happening sometimes even in a second. Many of the popular apps run services in the background, this means that the app is doing some read/write operations even when you don’t open it. If done wrong, write operations can drastically increase the fragmentation of storage, making every next read/write operation even slower.

We see storage fragmentation as one of the causes for degrading performance in Android devices. Now what has to be determined is, whether the issues are caused by hardware compatibility and how the file system performs with storage from various OEMs, or whether the F2FS architecture focuses on initial speeds, and this affects the long-term performance. The issues can be also caused by bugs, as the file system is still in development.

Q: Are there any other performance or reliability issues that are less well-known?

A: One interesting thing we found is that F2FS has an unexpected overhead, at least couple of hundreds of MB of your storage for caching and storage maintenance. This definitely makes sense if you have 64GB of storage or more, but on a budget phones with 8GB, 16GB ROM sizes, this might be a problem.

The main finding is that the current implementation of F2FS is great for read-only environments when you want to achieve higher speeds. F2FS needs to focus on improving its long-term storage performance in a high interaction with small files, as this is what happens in the Android environment.

This is in a sense a battle of theories. You can either envision that the hardware performance is so fast, that the degradation won’t be an issue. Or you look at it the opposite way, where the hardware is so fast, that having a bit slower performance that can be maintained in the long run, is what should be achieved. F2FS chose the first approach, and there are no wrong options here, it is an important experiment to make, and a learning curve for the whole industry. That being said, what we are currently seeing, is that long-term performance should be the main focus right now.

Q: Some OEMs have walked back their use of F2FS, while others like Huawei still support F2FS on recent devices. Do you think there’s a trend either way? (Slow adoption, or complete abandonment)

A: There are multiple scenarios why OEMs would continue using F2FS.

  • An OEM could have their own implementation of F2FS, that brings some fixes to the known issues.

  • An OEM could have very good ties with the flash storage manufacturer, since having access to the FTL layer of NAND and tuning the file system to work well with the hardware can bring significant improvements, including to the fragmentation of flash storage.

  • An OEM could prefer to focus on the initial performance of the phone, as the average lifecycle of a smartphone is around 2 years, and as the phone gets slow they will already be buying a new one.

  • An OEM could also have some defragmentation service running, this can partially solve the issues of F2FS.

These are some of the possible scenarios, at the same time, we are seeing that some OEMs are already moving back to using Ext4, for example OnePlus 3T was using F2FS, but all the newer OnePlus models use Ext4.

Q: F2FS is currently in a need of some on-the-go defragmentation solution, that could solve the issue that is currently appearing with F2FS.

A: Defragmentation tools have existed for some time, the main advantage is that they can reallocate/rewrite the memory blocks to reduce the storage fragmentation. But the issue with this approach, is that you rewrite the flash memory cells, which reduces the lifetime of the storage. The best scenario would be to write data intelligently in the first place. Doing damage control is not the go-to solution.

Think of it like making a mess in a room by throwing a lot of stuff all around, and then starting to arrange them in to the drawers. Why not do that straight away?

Q: Have OEMs managed to counter-act or address some of the issues holding back F2FS? For example, Huawei dismisses degrading performance and advertises a faster UX over time, in part thanks to their “AI”.

A: Well if an AI can analyze the storage behavior and rewrite the file system to work for a specific flash device, this can probably solve the issues of fragmentation. The AI can also analyze which apps or features the person uses mostly, and pre-load / store them accordingly – making the phone features feel snappier, that wouldn’t solve the issue of fragmentation though. My main assumption is that most of the optimizations are user-space related, and not some deep tech file system optimizations.

Q: What are some other exciting file system developments that we should be aware of? How would they impact the user experience, even if on a subtle or low level?

A: F2FS and Ext4 are still very vital and are the go-to file systems for open source. Ext4 is more mature and reliable but might limit the flash performance; F2FS is snappier but also more experimental. The whole situation where software becomes the bottleneck is what makes file systems exciting again. We are moving from the every second, to every millisecond counts environments and file systems will play an important role in this performance boost. The most exciting development for File Systems, would be to create a truly flash optimized solution that can maintain the performance of flash.

At Tuxera, we are developing Tuxera Flash File System, where we do things like hardware-specific software optimizations ensuring that the file system is optimized for a specific device, use case, and flash memory. Having a presence in automotive, we mainly focus on the long-term performance and degradation of the flash memory. This is more of the hardware x software type of optimization, that Steve Jobs used to talk about. Applying Machine Learning to create such “drivers” is something that we think could be really exciting for the whole storage industry.

Q: Our physical flash storage keeps getting faster as well, how do you see this fact impacting both the end-user experience and the future of file systems?

A: As hardware gets faster, software needs to ensure that it can keep up to these advanced hardware architectures, this is the main challenge for file systems to solve currently. You can have incredible read and write speed characteristics of the device, but if the software stack brings added latency – the user experience won’t feel that snappy. This is an exciting time for file system development, since there is a clear need for a faster, snappier, and yet more reliable technology for mobile.

But as flash gets faster, the main question becomes, what is the speed at which performance becomes irrelevant? Think of it like the Retina screen resolution, where a higher Pixel Density doesn’t really make the image crispier for the human eye.

Q: Thank you for your time.

A: Thanks!



from xda-developers https://ift.tt/2EoyyUP
via IFTTT

.

jeudi 5 avril 2018

Google is testing a gesture to drag and drop links in Chrome for Android

Interesting things are always popping up in commits on Chromium Gerrit. Tracking the commits is a great way to see what features may be heading to Chrome browsers and Chrome OS. We recently saw commits for the touchscreen launcher in Chrome OS and a new tab switcher. A new commit that caught our eye is 971764 titled “Implement touch drag drop link element behind a flag” for the Android browser. Read the full text below.

Implement touch drag drop link element behind a flag

This cl implement dragging link by touch behind a flag.
This allows user to drag a link or image element by long press and move finger.

Enable using ‘–enable-features=”TouchDragDropLink”‘ flag on Android. No behavior change when the flag is disabled, or when platform is not Android.

Temporarily set the flag to true to run try bots.

The current behavior when long-pressing a link in the browser is a pop-up with some options. You can open in a new tab, incognito mode, copy the link, copy the link text, download the link, or share it. This new feature allows users to drag a link or image by long pressing and moving your finger. Basically, like how it works when you click and drag your mouse in Chrome for desktop. We’re not exactly sure why this would be a useful feature in the mobile browser. Regardless, it’s an interesting addition that may never make it to prime time.


Source: Chromium Review



from xda-developers https://ift.tt/2GFgonC
via IFTTT

.

Bootloader-Locked Snapdragon Samsung Galaxy S8/S8+ and Galaxy Note 8 can now install Safestrap Recovery

The U.S. Snapdragon Samsung Galaxy devices have little hope in the way of custom development because the carriers mandate that Samsung not release an official bootloader unlock tool. The only way for these devices to get root access is for an exploit to be found. For the Samsung Galaxy S8, Samsung Galaxy S8+, and Samsung Galaxy Note 8, that’s exactly what happened with the SamFail exploit. Taking advantage of root access, XDA Senior Member afaneh92 has created a Safestrap recovery for the three devices. Safestrap recovery is just like TWRP, but it works with a locked bootloader.

Safestrap is a recovery for phones with a locked bootloader. It is based on TWRP 3.2.1 and works using root which is currently available with the SamFail exploit. It works by showing you a splash screen when you reboot your phone that allows you to boot to Safestrap recovery or to the system. The recovery allows you to have up to 4 ROM slots alongside the stock ROM.

When flashing a file, you can select the ROM slot you want to flash to and then you can go back and flash a file, make a backup, restore a backup, or erase partitions just like normal TWRP for phones with an unlocked bootloader. Along with all the features in normal TWRP, the developer has added a boot options menu that allows you to create virtual ROM slots. These are stored in the data partition so the more ROMs you have, the less usable storage you will have.

If you do install Safestrap on the Samsung Galaxy S8, Galaxy S8+, or Galaxy Note 8 be aware it will be limited to just Android Nougat. This will also limit you to 80% because of the root method used. This is sadly because the only known way to get root access on the Galaxy S8, S8+, and Note 8 is via the SamFail exploit which has since been patched. Currently, you might not be able to install fully custom AOSP-based ROMs such as LineageOS 14.1, but it could be possible soon.


How to install Safestrap Recovery on the Samsung Galaxy S8/S8+ and Samsung Galaxy Note 8

Root for the Snapdragon Samsung Galaxy Note 8

Root for the Snapdragon Samsung Galaxy S8

Root for the Snapdragon Samsung Galaxy S8+

To flash Safestrap recovery, you need to root your phone using one of the above root methods for the Galaxy S8, S8+, or Note 8. After rooting your phone you need to go to the Google Play Store and install a busybox installer and then install busybox.

BusyBox (Free, Google Play) →

Once that is installed, you will have to install the Safestrap APK on your device.

Safestrap Recovery for the Samsung Galaxy Note 8

Safestrap Recovery for the Snapdragon Samsung Galaxy S8

Safestrap Recovery for the Snapdragon Samsung Galaxy S8+

In the Safestrap app, you have to agree to the terms and then select the “install recovery” button. You will know it’s installed when the status shown in the app changes to “installed”. Once installed, you can reboot your phone and you should see the splash screen. Finally, to access Safestrap recovery, you select the menu button on the splash screen. Once you get to the menu, you will have access to Safestrap.



from xda-developers https://ift.tt/2HdVXeH
via IFTTT

.

3-Month old Wear OS bug is still causing lag in phone calls answered on watch

Wear OS (formerly known as Android Wear) has a cool feature called “Play phone voice call on watch.” It does exactly what you would think: allows you to take calls through your connected smartwatch. The idea is the watch essentially becomes a Bluetooth headset by using the speaker and microphone. It works with any app that can use a headset, including the phone, Duo, WhatsApp, etc. Unfortunately, users have been experiencing a major bug for 3 months and it still hasn’t been fixed.

The bug was first reported in the Google Issue Tracker on December 23rd, 2017. When “Play phone voice call on watch” is enabled, the phone app will freeze for 10-15 seconds after making or receiving a call. Users can’t hear anything during this time, which results in the other person hanging up. Google acknowledged this issue just a few days after the initial report. Yesterday, Google finally announced the bug had been fixed, but users are still having issues.

Google claimed the fix was available to any device that received the Wear OS rebranding OTA update. They tested the fix with the Huawei Watch 2 and Google Pixel 2 XL. A lot of users are still reporting the same issues as before. It doesn’t appear that the “fix” has solved the problem. Google is asking users to share bug reports and to reset watches. The problem is persisting and Google has not addressed the lack of a fix again.

Obviously, this is a pretty annoying bug. Especially to be going on for 3 months now. Phone bugs can be especially troublesome when an important call comes in. We hope Google can get this figured out and release a fix that actually works. Has anyone experienced this same issue?

Thanks Rob!



from xda-developers https://ift.tt/2Hgawyw
via IFTTT

.

Genymotion Cloud is now on Google’s Cloud Platform to meet demand for testing multiple virtual Android devices in parallel

Genymobile is a French company that specializes in Android virtualization tools for Enterprise. Their most popular tool is an Android emulator called Genymotion that boasts 5.5 million users. Big name customers include Facebook, eBay, LinkedIn, Microsoft, and  Twitter. The company is announcing the immediate availability of Genymotion Cloud for Google Cloud Platform with a “per-second” billing system.

Genymotion’s Cloud tool was first launched on Amazon Web Services in November 2016. The company is now bringing the tool to the Google Cloud Platform. CEO Arnaud Dupuis explains the benefits of Genymotion Cloud:

“We have implemented a full, unrestricted user/physical interaction stack; all Android API interaction widgets; and have included full, high-speed custom 3D-rendering stack in a web browser window, which can auto-adapt to the performance of the underlying instance, with or without a dedicated GPU.”

Genymotion Cloud for GCP has a “per-second” billing system, which allows developers to only pay for actual usage. They can scale their tests on multiple virtual devices in parallel and reduce the testing lifecycle. Genymotion’s Cloud tool is available now on the Google Cloud Launcher for Android 5.1 Lollipop, Android 6.0 Marshmallow, and Android 7.0 Nougat. Here’s a full list of features for the Cloud tool:

  • Real-time in-browser streaming display
  • Compatibility with Google Play Services
  • Sensors (GPS, Accelerometer, Battery, Disk, Network, Calls & Texts)
  • Several Android versions (from Lollipop to Nougat)
  • Java API
  • Webcam as a Camera
  • Sound Support
  • GPU or Soft rendering
  • Compatibility with SSH and ADB
  • Kiosked application

Genymotion Cloud: Android 5.1 Genymotion Cloud: Android 6.0 Genymotion Cloud: Android 7.0



from xda-developers https://ift.tt/2IrJQKg
via IFTTT

.

Chrome OS is testing a fullscreen launcher in tablet mode

It’s no mystery that Chrome OS is moving more towards a touchscreen-optimized interface. Google has been slowly adding more touch-friendly and Android features over the last several months. We’ve already seen them make some changes to the launcher to make it better for touch. Now, Google is testing even more touch features for the launcher.

Currently, the Chrome OS app launcher looks like the image on the left. When you tap the home button, the search bar and one row of recent apps appear. Tapping the arrow brings up the full-screen launcher, as shown in the image on the right. A new commit in Chromium Gerrit adds a feature flag to enable the fullscreen launcher in tablet mode. It also changes the behavior of the home button. Tapping it will minimize all windows instead of opening the launcher.

Add home launcher feature flag

Home launcher is a feature to show fullscreen launcher in tablet mode. And home button will minimize all windows instead of opening/closing the launcher.

Acer announced the first Chrome OS tablet last month, which makes the touch optimization even more pertinent. Chrome OS is on track to be Google's defacto tablet operating system. The addition of Android apps and features had made it a viable alternative to full-on Android tablets. The web experience is certainly better in Chrome OS and it has just enough Android features to fill in the gaps. 2018 may be the year of Google's web-based tablets.


Source: Chromium Review



from xda-developers https://ift.tt/2Isw5va
via IFTTT

.

mercredi 4 avril 2018

Google Voice is finally testing making Phone Calls over Wi-Fi

Google and messaging apps: name a more iconic duo. Okay, while we like to joke about Google’s penchant for creating new messaging apps, the company does still update their older apps with really useful features. Case in point: Google Voice. After a years-long wait, the Google Voice app will finally receive the ability to place phone calls over Wi-Fi or a data connection.

Previously, Google Voice only allowed you to place phone calls over your device’s cellular network. Many office and school buildings have poor network coverage, making call quality spotty at best. Placing a call over a much more reliable Wi-Fi network, however, will ensure that you will always be able to make and receive phone calls through your Google Voice number. Plus, you can now use your tablet to make calls since you no longer need a cellular radio.

According to a post on the official Google Voice Help Forum (via AndroidPolice), calls will use approximately 0.2MBs of data per minute. Users who opt-in to the beta will be able to make calls via the Google Voice app (but not the stock dialer) after enabling the Wi-Fi calling option in settings. There are currently a few known issues, which we’ve reproduced below for your convenience:

Known Issues

  • Obihai devices won’t work if you enable calling over Wi-Fi (e.g. Incoming calls won’t ring your Obihai phone if you turn on calling over Wi-Fi and mobile data)
  • You won’t be able to use incoming call options (call recording & call transfer) when you enable calling over Wi-Fi and mobile data
  • On your computer, Wi-Fi calling only work with Chrome. Support for Firefox, Safari and Edge coming soon!
  • Android bluetooth support:
    • You won’t be able to use the buttons on your bluetooth device to answer calls or hang up
    • Unable to use earpiece mode when a bluetooth device is paired
    • Depending on your Android version, your calls might drop if you try to switch between Bluetooth and speakerphone.

Google Voice is one of Google’s best services, although neglect has resulted in it hemorrhaging users over the years (I myself used to be an avid Google Voice user for many years.) Since Google Voice’s major redesign last year, users have been wondering when the service would take the place of Google Hangouts, which is becoming a more business-oriented service. While Hangouts still allows for placing phone calls over Wi-Fi or cellular data, there’s no telling when that integration will end, so the addition of this feature to Voice will provide a nice way to transition from Hangouts.



from xda-developers https://ift.tt/2HbzZcq
via IFTTT

.