A new “Assist” API allows information from a currently-opened app, including text and a screenshot of the current screen, to be sent to a designated “assistant” application for analysis and processing. This system is used by the Google Search app feature “Google Now on Tap”, which allows users to perform searches within the context of information currently being displayed on-screen. By holding the “Home” button or using a voice command, on-screen cards are generated which display information, suggestions, and actions related to the content. “Direct Share” allows Share menus to display recently used combinations of contacts and an associated app as direct targets.
A newly inserted SD card or other secondary storage media can be designated as either “portable” or “internal” storage. “Portable” maintains the default behavior of previous Android versions, treating the media as a secondary storage device for storage of user files, and the storage media can be removed or replaced without repercussions, but is subject to access restrictions by apps. When designated as “Internal” storage, the storage media is reformatted with an encrypted ext4 file system, and is “adopted” by the operating system as the primary storage partition. Existing data (including applications and “private” data folders) are migrated to the external storage, and normal operation of the device becomes dependent on the presence of the media. Apps and operating system functions will not function properly if the adopted storage device is removed. If the user loses access to the storage media, the adopted storage can be “forgotten”, which makes the data permanently inaccessible. Samsung and LG have, however, removed the ability to use an SD card as “internal” storage on their Galaxy S7 and G5 devices, with Samsung arguing that the feature could result in unexpected losses of data, and prevents users from being able to transfer data using the card.
Android Marshmallow introduces a redesigned application permission model: there are now only eight permission categories, and applications are no longer automatically granted all of their specified permissions at installation time. An opt-in system is now used, in which users are prompted to grant or deny individual permissions (such as the ability to access the camera or microphone) to an application when they are needed for the first time. Applications remember the grants, which can be revoked by the user at any time. The new permission model is used only by applications compiled for Marshmallow using its software development kit (SDK), and older apps will continue to use the previous all-or-nothing permission model. Permissions can still be revoked for those apps, though this might prevent them from working properly, and a warning is displayed to that effect.
Marshmallow introduces new power management schemes known as “Doze” and “App Standby”; when running on battery power, a device will enter a low-power state if it is inactive and not being physically handled. In this state, network connectivity and background processing is restricted, and only “high-priority” notifications are processed. Additionally, network access by apps is deferred if the user has not recently interacted with the app. Apps may request a permission to exempt themselves from these policies, but will be rejected from Google Play Store as a violation of its “Dangerous Products” policy if their core functionality is not “adversely affected” by them.
Android Marshmallow provides native support for fingerprint recognition on supported devices via a standard API, allowing third-party applications to implement fingerprint-based authentication. Fingerprints can be used for unlocking devices and authenticating Play Store and Android Pay purchases. Android Marshmallow supports USB Type-C, including the ability to instruct devices to charge another device over USB. Marshmallow also introduces “verified links” that can be configured to open directly in their specified application without further user prompts. User data for apps targeting Marshmallow can be automatically backed up to Google Drive over Wi-Fi. Each application receives up to 25 MB of storage, which is separate from a user’s Google Drive storage allotment.
As of Marshmallow, the Android Compatibility Definition Document contains new security mandates for devices, dictating that those that are capable of accessing encrypted data without affecting performance must enable Secure boot and device encryption by default. These conditions comprise part of a specification that must be met in order to be certified for the operating system, and be able to license Google Mobile Services software. The requirement for mandatory device encryption was originally intended to take effect on Lollipop, but was delayed due to performance issues.