LightBlog

mercredi 18 janvier 2017

Google and LG’s Watch Sport and Watch Style Launching with Android Wear 2.0 on Feb 9

Android Wear 2.0 is the next iteration of upgrades planned for connected smartwatches. While Developer Previews have been around for a while, the last one was rolled out in mid December as Developer Preview 4. So it's only expected that we start getting impatient for the final release once new information starts rolling in.

While it was widely known that the Android Wear 2.0 update will be rolling out in early 2017, we now have a specific date to set our eyes on. Notable leaker Evan 'evleaks' Blass has leaked the date on which we can expect Android Wear 2.0 to launch.

In his blog post on VentureBeat, Evan has also leaked the upcoming new Android Wear smartwatches. Meet the new Watch Sport and Watch Play:

Evan reports that Google has teamed up with LG in a 'Nexus-style' partnership to produce the first devices powered by Android Wear 2.0. The watches will be launched along with Android Wear 2.0 on February 9th, and will begin selling in the US from the next day. The watches will also be given prominent placement at LG's booth at MWC 2017.

Evan notes that the mockups from Android Police closely resemble the shipping products. The Watch Sport will be 14.2 mm thick and will sport a 1.38″ OLED display with 480 x 480 resolution. The Watch Sport is the flagship product, with 768MB RAM, 4GB internal storage and 430 mAh battery.

The smaller Watch Style will be 10.8mm thick and will sport a 1.2″ 360 x 360 OLED display. Evan specifically mentions swappable straps, although something like that should be a standard feature, so we will have to see what that means. There is 512MB RAM, 4GB of internal storage and a 240 mAh battery on this device.

Both the watches will come with Wi-Fi and Bluetooth connectivity, and the Sport will throw in 3G and LTE connectivity along with GPS and NFC as well. This will allow the watch to take advantage of Android Wear 2.0's Android Pay capability. There's a heart rate sensor on the Sport, too.

One more point of differentiation on the Sport and Style is the water and dust resistance certification. The Watch Sport will bear IP68 certification, while the Watch Play will have it limited to IP67.

On the other hand, both the watches will have iOS compatibility, will include Google Assistant integration and boast of handwriting recognition. There is also a digital crown button to facilitate UI navigation.

The Watch Sport will come in titanium and dark blue colors, while the Watch Style will come in titanium, silver and rose gold colors.

Pricing for the devices is not known yet. Assuming this is a 'Nexus style' partnership and not a 'Pixel style' partnership, we hope the watches are priced competitively and not at a hefty premium. We will have to wait until the launch announcement to know more.

What are your thoughts on the LG Watch Sport and the LG Watch Style? Let us know in the comments below!

Source: VentureBeat Image Credit: Android Police



from xda-developers http://ift.tt/2iBy2N4
via IFTTT

Google Shares Details on How They Spot Malicious Apps in the Play Store

Google works very hard at keeping malicious applications out of the Play Store and off of your device. They aren't perfect at this and there are some instances when a malicious app slips through the cracks and is published in Google's application store. Thankfully, Google will remove them if an issue is brought to their attention, but they're still constantly scanning and checking applications and games that have already been published in the Play Store.

One of the methods Google uses to see if an application on your device is safe, is with their Verify Apps feature. This will scan an application you want to install from outside of the Play Store. This scan takes place before and after it's actually installed on your phone just to make sure it is safe to be on there. This verify function is baked into the Android OS and there are instances when a device is no longer using the feature at all (which in some cases can be security reasons).

Google flags these devices that are no longer using the verify feature and considers them to be Dead or Insecure (DOI). Now, if Google starts to detect that an application is being installed from the Play Store to a high number of DOI devices, then that raises a flag for them. This flags that as a DOI application, and Google uses this metric with many other security measures to see if it needs to be investigated. Google is even taking this a step further and finding out if an application is the cause of the phone becoming DOI.

For instance, if Google notices that a high number of devices are becoming DOI because they installed a certain application or game from the Play Store, then it makes sense that this would need to be looked into. Using these methods, Google has been able to uncover over 25,000 applications that had been infected by the Hummingbad, Ghost Push, and Gooligan malware.

Source: Android Developers Blog



from xda-developers http://ift.tt/2jnOAFG
via IFTTT

OnePlus: OxygenOS 4.0 Doesn’t Use a Debug Kernel

Some people have felt that OnePlus rushed out their official Nougat OTA update for the OnePlus 3 and OnePlus 3T just to meet the deadline they set for their customers. Recently, there was a vulnerability that was discovered which let you to change SELinux to permissive mode with a simple Fastboot command. Then someone found a kernel debug notice inside their kmsg log when they were trying to submit a bug report for the company's new OxygenOS 4.0.1 update.

This has led to even more speculation about whether or not OnePlus rushed out the update just to meet their deadline. We've been in contact with OnePlus about the SELinux issue, and they informed us that it would be fixed in their next OTA update. That was almost one week ago and in fact OnePlus did announce a 4.0.2 update for the OnePlus 3T yesterday. We haven't been able to confirm whether or not this vulnerability was patched just yet, since the 4.0.2 update could have already been finalized before they made that announcement.

Seeing this debug kernel notice isn't a reassuring thing to see in your logs as these can sometimes be susceptible to attacks. However, OnePlus has confirmed with Android Central that this message is just an error and that it isn't anything we should be worried about. The company has said the kernel used in OxygenOS is a "proper release kernel to match the consumer-ready software running on the phone." OnePlus says this message was triggered by Systrace tools and that OnePlus is not using a debug kernel in their official releases.

Just like with the SELinux issue, we're told by OnePlus that this will be resolved in a future OTA update. This debug kernel message will be removed from the code entirely so there isn't any additional confusion caused in the future.

Source: Android Central



from xda-developers http://ift.tt/2j8M9FY
via IFTTT

Google Maps Starts Showing Parking Availability

Android Police writes that "Google maps is showing parking information for some users". The extra feature seems to be part of a new Maps V9.44beta. The parking information shows up as small round "P" icon next to your destination, as shown in the images below.

You can expand the directions and get a more descriptive explanation of the parking situation. The icon appears to change to a red background when parking is not readily available at your destination. This parking icon shows up for public destinations including malls, airports, and popular attractions.

The new parking finder looks like a great feature to add to Google Maps, which has lately been adopting a lot of useful functionality.

What's your favorite Maps feature? Let us know below!

Android Police



from xda-developers http://ift.tt/2j9066Y
via IFTTT

Android One Phones to Come to U.S. Mid-2017

Google is rumored to be bringing the Android One line of smartphones to the US. The Information website writes that the first phone bearing the brand could launch as early as mid 2017. Its believed that the phone will be priced somewhere between $200 and $300.

The report doesn't disclose who the phone will be manufactured by, but its understood that LG is potentially a partner already for the Android One Brand. Android phones account for more than half the smartphone sales in the U.S. partly in thanks to strong phone manufacturer marketing by brands like Samsung and LG. Google wants Android to be recognized as a brand on its own and hopes that the Android One brand and the newly-released Pixel will help raise that awareness in the US.

Manufacturers that partner with Google to release a phone under the Android One brand will be given "major Promotional dollars if they play by the rules" The Information stated. The rules include the phones launching with Google Apps preloaded, as expected. Part of this push for the Android One brand to be released in the US is that Google realizes that Android is not a well known brand when compared to phone manufacturers themselves, and of course Apple. Google still makes the majority of its mobile income from advertising and via the Google Search bar, Google is hoping that the Pixel and Android One brands will allow Google to showcase its AI and VR abilities through hardware Google has more control over.

The Android One brand was launched in 2014 in India through which low cost phones were supported directly by Google to ensure timely updates for a minimum of two years from the date of release. This is to combat the criticism that Android suffers from fragmentation and doesn't offer timely security updates across its ecosystem when compared to Apple. Google has since expanded the Android One brand to Europe and Japan as well as African countries like Ghana and Kenya.

The Information



from xda-developers http://ift.tt/2jwE6q6
via IFTTT

mardi 17 janvier 2017

Report: Lenovo Underestimated Motorola Revival Efforts at Time of Purchase

Back in 2014, Google shocked the Android enthusiast community briefly when it decided to sell off Motorola Mobility to Lenovo. Many had hoped that Motorola would be Google's smartphone hardware division, becoming the prime example of how Android's software can be used in harmony with affordable hardware.

With Lenovo coming into the picture, we realized that this dream will remain a dream.

In an extensive report published by The Wall Street Journal, Lenovo Group Ltd.'s CEO Mr. Yang Yuanqing is quoted as saying:

We underestimated the differences of the culture and the business model.

This comes in the heels of Motorola failing to return as strongly to the current existing smartphone market. The situation is in stark contrast to the vow that Mr. Yang had taken — to restore the brand as a global leader. The plan then was to propel the combined company entity to global dominance, a task that seemed more realistic and achievable back then when the two companies combined gave us the third biggest smartphone maker by shipments.

Granted, Motorola was on a gradual downfall even when Google acquired it, lagging behind Apple and Samsung in all areas. Lenovo's acquisition did not help the situation though, for neither Motorola, nor Lenovo. Lenovo fell from the world's number 3 smartphone makers by shipments, to number 8. They also had to axe more than 2000 jobs in the U.S.A., and had to report their first annual loss since 2009 in May 2016.

According to the report, poor integration between the brands was but one of the many mistakes. The most crucial of those mistakes involved Lenovo's lack of clear vision for its largest markets.

Mr. Yang pushed for Motorola sales in China where Lenovo's own phones were dominant and the market was saturated. There was strong insistence on keeping the brands separate, with Motorola targeting high-end consumers and Lenovo sticking to less-expensive devices. However, it decided not to spend heavily on marketing and adopt online-only sales model, something that had proven successful for Xiaomi in China. But with the price of the premium handsets approaching the iPhone, there was little hope that an online-only brand with little marketing would be able to compete. IDC estimates on shipments put Motorola's Chinese shipments at 200,000 in 2015, which is nothing when compared to the 65 Million shipments by Xiaomi. Further, Lenovo ended up creating yet another phone brand in the form of ZUK, transferring several employees from its parent company's phone division onto ZUK and leaving fewer hands on deck of the once-successful ship.

For the US, Lenovo initially raised advertising expenditure, but then slashed it down along with product development. Errors continued when Mr. Chen Xudong, a long time Lenovo PC executive who had little background in smartphones outside of China, was put in charge of the combined company's global phone business. This meant that Motorola's then-president Mr. Rick Osterloh would be reporting to Mr. Chen. The Wall Street Journal writes that Mr. Chen was disproportionately interested in products for China, often unilaterally adjusting product timings and features, even for products not designed for China.

In November 2016, Mr. Chen was transferred to Lenovo's customer service division. Mr. Yang now believes that their smartphone business can see success, thanks to increased global advertising and marketing for the Motorola brand in the second half of 2016. The Moto Z is seeing strong global sales, which gives us hope that there's still some fight left in Motorola.

To read the full report, head on over to The Wall Street Journal.

What are your thoughts on Lenovo and Motorola's troubled corporate marriage? Will Lenovo succeed in 2017? Let us know your thoughts in the comments below!

Source: The Wall Street Journal



from xda-developers http://ift.tt/2j6htVW
via IFTTT

Diving into SDCardFS: How Google’s FUSE Replacement Will Reduce I/O Overhead

Several months ago, Google added something called "SDCardFS" to the official AOSP branches for the Linux kernel. At the time, the move was noticed only by some kernel developers, but otherwise flew under the radar of most users. No surprise there considering the fact that most users, including myself, do not really know what goes on under the hood of the Android OS and its kernel.

However, the most recent episode of the Android Developers Backstage podcast renewed interest in this topic. The podcast, hosted by Chet Haase (a senior software engineer at Google), explored recent and upcoming changes made to the kernel. On the show was a Linux kernel developer working on the Android team – Rom Lemarchand. The duo primarily discussed what changes were made to accommodate A/B updates, but in the last 5 minutes of the episode Mr. Lemarchand talked about "the next big thing" that his team was working on – SDCardFS.

I must admit that I learned about the existence of SDCardFS after listening to this podcast. Of course, I wasn't the only one to take interest in this topic, as a recent Reddit thread has shown. However, I wasn't satisfied with the basic explanation that was offered in the podcast, and in an effort to dispel some of the misinformation being spread around, I did some research of my own and talked to a few experts with relevant knowledge on the matter.

Major thanks to software developer Michal Kowalczyk for contributing his knowledge to this article and for taking the time to answer my questions.


"External" Is Really Internal

Right off the bat, there are bound to be some misconceptions we have to clear up – otherwise the rest of the article will be very confusing. It's helpful to discuss the history of SD cards and Android phones.

In the early days of Android phones, nearly every device relied on using their microSD cards for storage. This was due to the fact that phones at the time shipped with miniscule internal storage capacities. However, SD cards used for storing applications often do not provide a stellar user experience, at least compared to the speed with which internal flash memory can read/write data. Therefore, the increasing use of SD Cards for external data storage was becoming a user experience concern for Google.

Due to the early proliferation of SD cards as external storage devices, Android's storage naming conventions were based around the fact that every device had an actual, physical microSD card slot. But even on devices that didn't contain an SD Card slot, the /sdcard label was still used to point to the actual internal storage chip. More confusing is the fact that devices that utilized both a physical SD card as well as a high capacity storage chip for storage would often name their partitions based around the SD Card. For instance, in these devices the /sdcard mount point would refer to the actual internal storage chip, whereas something like /storage/sdcard1 would refer to the physical external card.

Thus, even though the microSD card is practically considered to be external storage, the naming convention resulted in "SDCard" sticking around long past any actual use of a physical card. This confusion with storage also provided some headache to application developers due to the fact that application data and its media were segregated between the two partitions.

The low storage space of early internal storage chips resulted in users frustratingly finding out they could no longer install applications (due to the /data partition being full). Meanwhile, their larger capacity microSD cards were relegated to holding only media (such as photos, music, and movies). Users who browsed our forums back in the day might remember these names: Link2SD and Apps2SD. These were (root) solutions that enabled users to install their applications and its data all on the physical SD card. But these were far from perfect solutions, so Google had to step in.

Famously, Google pulled the plug on SD cards very early on. The Nexus One remains the only Nexus device with a microSD card slot (and it forever will be since the Nexus brand is effectively dead). With the Nexus S, there was now only one, unified partition for storing all application data and media – the /data partition. What was once known as the /sdcard mount point now was simply referring to a virtual filesystem (implemented under the FUSE protocol as discussed below) located in the data partition – /data/media/0.

In order to maintain compatibility and reduce confusion, Google still used this now-virtual "sdcard" partition to hold media. But now that this "sdcard" virtual partition was actually located within /data, anything stored within it would count against the storage space of the internal storage chip. Thus, it was up to OEMs to consider how much space to allocate to applications (/data) versus media (/data/media).

Two Very Different "SD Cards"

Google was hoping for manufacturers to follow their example and get rid of SD cards. Thankfully, over time phone manufacturers were able to source these components at higher capacities while remaining cost effective, so the need for SD cards was beginning to run thin. But the naming conventions have persisted to reduce the amount of effort developers and OEMs would have to make to adjust. Currently, when we refer to "external storage" we are referring to either one of two things: the actual removable microSD card or the virtual "SDCard" partition located in /data/media. The latter of these, practically speaking, is actually internal storage, but Google's naming convention differentiates it due to the fact that this data is accessible to the user (such as when plugged into the computer).

Currently, when we refer to "external storage" we are referring to either one of two things: the actual removable microSD card or the virtual "SDCard" partition located in /data/media.


The History of Android's Virtual Filesystems

Now that "sdcard" is treated as a virtual filesystem, it meant that it could be formatted as any filesystem that Google wanted. Starting with the Nexus S and Android 2.3, Google chose to format "sdcard" as VFAT (virtual FAT). This move made sense at the time, since mounting VFAT would allow nearly any computer to access the data stored on your phone. However, there were two major issues with this initial implementation.

The first primarily concerns the end user (you). In order to connect your device to your computer, you would be using USB Mass Storage Mode to transfer data. This, however, required the Android device to unmount the virtual partition before the computer could access the data. If a user wanted to use their device while plugged in, many things would show as unavailable.

The introduction of the Media Transfer Protocol (MTP) solved this first issue. When plugged in, your computer sees your device as a "media storage" device. It requests a list of files from your phone, and MTP returns a list of files that the computer can download from the device. When a file is requested to be deleted, MTP sends a command to remove the requested file from storage. Unlike USB Mass Storage Mode which actually mounts the "sdcard", MTP allows the user to continue using their device while plugged in. Furthermore, the file system present on the Android phone no longer matters for the computer to recognize the files on the device.

Secondly, there was the fact that VFAT did not provide the kind of robust permission management that Google needed. Early on, many application developers would treat the "sdcard" as a dumping ground for their application's data, with no unified sense of where to store their files. Many applications would simply create a folder with its app name and store its files on there.

Nearly every application out there at the time required the WRITE_EXTERNAL_STORAGE permission to write their application files to the external storage. However, what was more troubling was the fact that nearly every application also required the READ_EXTERNAL_STORAGE permission – just to read their own data files! This meant that applications could easily have access to data stored anywhere on the external storage, and such a permission was often granted by the user because it was required for many apps to even function.

Google clearly saw this as problematic. The whole idea behind permission management is to segregate what apps can and cannot have access to. If nearly every app is being granted read access to potentially sensitive user data, then the permission is meaningless. Thus, Google decided they needed a new approach. That is where FUSE comes in.


Filesystem in Userspace (FUSE)

Starting with Android 4.4, Google decided to no longer mount the virtual "sdcard" partition as VFAT. Instead, Google began to use FUSE to emulate FAT32 on the "sdcard" virtual partition. With the sdcard program calling FUSE to emulate FAT-on-sdcard style directory permissions, applications could begin accessing its data stored on external storage without requiring any permissions. Indeed, starting with API Level 19, READ_EXTERNAL_STORAGE was no longer required to access files located on external storage – provided the data folder created by the FUSE daemon matches the app's package name. FUSE would handle synthesizing the owner, group, and modes of files on external storage when an application is installed.

FUSE differs from in-kernel modules as it allows for non-privileged users to write virtual filesystems. The reason Google implemented FUSE is rather simple – it did what they wanted and was already well understood and documented in the world of Linux. To quote a Google developer on the matter:

"Because FUSE is a nice stable API, there is essentially zero maintenance work required when moving between kernel versions. If we migrated to an in-kernel solution, we'd be signing up for maintaining a set of patches for each stable kernel version." -Jeff Sharkey, Software Engineer at Google

However, it was becoming quite clear that FUSE's overhead was introducing a hit in performance among other issues. The developer I spoke to regarding this matter, Michal Kowalczyk, penned an excellent blog post over a year ago detailing the current issues with FUSE. More technical details can be read on his blog, but I will describe his findings (with his permission) in more layman's terms.


The Problem with FUSE

In Android, the "sdcard" userspace daemon utilizes FUSE to mount /dev/fuse to the emulated external storage directory on boot. After that, the sdcard daemon polls the FUSE device for any pending messages from the kernel. If you listened to the podcast, you might have heard Mr. Lemarchand refer to FUSE introducing overhead during I/O operations – here is essentially what happens.

In the real world, this performance hit affects any file stored on external storage.

Problem #1 – I/O Overhead

Let us say that we create a simple text file, called "test.txt", and store it in /sdcard/test.txt (which, let me remind you, is actually /data/media/0/test.txt assuming the current user is the primary user on the device). If we wanted to read (command cat) this file, we would expect the system to issue 3 commands: open, read, then close. Indeed, as Mr. Kowalczyk demonstrates using strace, that is what happens:

But because the file is located on the external storage which is managed by the sdcard daemon, there are many additional operations that need to be performed. According to Mr. Kowalczyk, there are essentially 8 additional steps needed for each of these 3 individual commands:

  1. Userspace application issues system call that will be handled by FUSE driver in kernel (we see it in the first strace output)
  2. FUSE driver in kernel notifies userspace daemon (sdcard) about new request
  3. Userspace daemon reads /dev/fuse
  4. Userspace daemon parses command and recognizes file operation (ex. open)
  5. Userspace daemon issues system call to the actual filesystem (EXT4)
  6. Kernel handles physical data access and sends data back to the userspace
  7. Userspace modifies (or not) data and passes it through /dev/fuse to kernel again
  8. Kernel completes original system call and moves data to the actual userspace application (in our example cat)

This seems like a lot of overhead just to a single I/O command to be run. And you would be right. To demonstrate this, Mr. Kowalczyk attempted two different I/O tests: one involving copying a large file and the other copying lots of small files. He compared the speed of FUSE (on the virtual partition mounted as FAT32) handling these operations versus the kernel (on the data partition formatted as EXT4), and he found that the FUSE was indeed contributing significant overhead.

In the first test, he copied a 725MB file under both test conditions. He found that the FUSE implementation transferred large files 17% more slowly.

In the second test, he copied 10,000 files – each of them 5KBs in size. In this scenario, the FUSE implementation was over 40 seconds slower to copy basically 50MBs worth of data.

In the real world, this performance hit affects any file stored on external storage. This means apps such as Maps storing large files on /sdcard, Music apps storing tons of music files, Camera apps and photos, etc. Any I/O operation being carried out that involves the external storage is affected by FUSE's overhead. But I/O overhead isn't the only issue with FUSE.

Problem #2 – Double Caching

Caching of data is important in improving data access performance. By storing essential pieces of data in memory, the Linux kernel is able to quickly recall that data when needed. But due to the way FUSE is implemented, Android stores double the amount of cache that is needed.

As Mr. Kowalczyk demonstrates, a 10MB file is expected to be saved in cache as exactly 10 MBs, but instead ups to cache size by around 20MBs. This is problematic on devices with less RAM, as the Linux kernel stores uses page cache to store data in memory. Mr. Kowalczyk tested this double caching issue using this approach:

  1. Create a file with a known size (for testing, 10MBs)
  2. Copy it to /sdcard
  3. Drop the page cache
  4. Take a snapshot of the page cache use
  5. Read the test file
  6. Take another snapshot of the page cache use

What he found was that prior to his test, 241MBs were being used by the kernel for page cache. Once he read his test file, he expected to see 251MBs utilized for page cache. Instead, he found that that kernel was using 263MBs for page cache – about twice what was expected. The reason this occurs is because the data is first cached by the user application that originally issued the I/O call (FUSE), and second by the sdcard daemon (EXT4 FS).

Problem #3 – Incomplete Implementation of FAT32

There are two more issues stemming from the use of FUSE emulating FAT32 that are less widely known in the Android community.

The first involves incorrect timestamps. If you've ever transferred a file (such as a photo) and noticed that the timestamp is incorrect, it's because of Android's implementation of FUSE. This issue has existed for years. To be more specific, the issue involves the utime() system call which allows you to change the access and modification time of a file. Unfortunately, calls made to the sdcard daemon as a standard user do not have the proper permission to execute this system call. There are workarounds for this, but they require you to have root access.

If you've ever transferred a file (such as a photo) and noticed that the timestamp is incorrect, it's because of Android's implementation of FUSE.

The next problem is more concerning for businesses using something like a smartSD card. Prior to FUSE, app makers could monitor the O_DIRECT flag in order to communicate with an embedded microcontroller in the card. With FUSE, developers can only access the cached version of a file, and are unable to see any commands sent by a microcontroller. This is problematic for some enterprise/government/banking apps which communicate with value-added microSD cards.


Dumping FUSE for SDCardFS

Some OEMS recognized these problems early on, and began looking for an in-kernel solution to replace FUSE. Samsung, for example, developed SDCardFS which is based on WrapFS. This in-kernel solution emulates FAT32 just like FUSE does, but foregoes the I/O overhead, double caching, and other issues I've mentioned above. (Yes, let me reiterate that point, this solution that Google is now implementing is based on Samsung's work).

Google themselves have finally acknowledged the drawbacks associated with FUSE, which is why they have begun moving towards the in-kernel FAT32 emulation layer developed by Samsung. The company, as mentioned in the Android Developers Backstage podcast, has been working on making SDCardFS available for all devices in an upcoming version of the kernel. You can currently see the progress of their work in AOSP.

As a Google developer explained earlier, the biggest challenge with implementing an in-kernel solution is how to map the package name to application ID necessary for a package to access its own data in external storage without requiring any permissions. But that statement was made a year ago, and we've reached the point where the team is calling SDCardFS their "next big thing." They've already confirmed that the dreaded timestamp error has been fixed, thanks to moving away from FUSE, so we can look forward to seeing all of the changes brought forth with the abandonment of FUSE.


Fact-Checking Misconceptions

If you're reached this far into the article, then kudos for keeping up with everything so far! I wanted to clarify a few questions I had myself when writing this article:

  • SDCardFS has nothing to do with actual SD Cards. It is just named as such because it handles I/O access for /sdcard. And as you might recall, /sdcard is an outdated label referring to the "external" storage of your device (where apps store their media).
  • SDCardFS is not a traditional file system like FAT32, EXT4, or F2FS. It is a stackable wrapper file system that passes commands to the lower, emulated file systems (in this case, it would be FAT32 on the /sdcard).
  • Nothing will change with respect to MTP. You will continue using MTP to transfer files to/from your computer (until Google settles on a better protocol). But at least the timestamp error will be fixed!
  • As mentioned before, when Google refers to "External Storage" they are either talking about the (for all intents and purposes) internal /sdcard virtual FAT32 partition OR they are talking about an actual, physical, removable microSD card. The terminology is confusing, but it's what we're struck with.

Conclusion

By moving away from FUSE and implementing an in-kernel FAT32 emulation layer (SDCardFS), Google will be reducing significant I/O overhead, eliminating double caching, and solving some obscure issues related to its FUSE's emulation of FAT32.

Since these changes will be made to a kernel, they can be rolled out without a major new version of Android alongside it. Some users are expecting to see these changes officially implemented in Android 8, but it's possible for any future OTA on a Pixel device to bring the Linux kernel version 4.1 that Google has been working on.

For some of you, SDCardFS is not a new concept. In fact, Samsung devices have been utilizing it for years (they were the ones to develop it after all). Ever since SDCardFS was introduced in AOSP last year, some custom ROM and kernel developers have chosen to implement it into their work. CyanogenMOD at one point considered implementing it, but rolled it back when users encountered issues with their photos. But hopefully with Google taking the reigns on this project, Android users on all future devices can take advantage of the improvements introduced with abandoning FUSE.



from xda-developers http://ift.tt/2j6u7V1
via IFTTT