Home | History | Annotate | Download | only in encryption
      1 <html devsite>
      2   <head>
      3     <title>Encryption</title>
      4     <meta name="project_path" value="/_project.yaml" />
      5     <meta name="book_path" value="/_book.yaml" />
      6   </head>
      7   <body>
      8   <!--
      9       Copyright 2017 The Android Open Source Project
     10 
     11       Licensed under the Apache License, Version 2.0 (the "License");
     12       you may not use this file except in compliance with the License.
     13       You may obtain a copy of the License at
     14 
     15           http://www.apache.org/licenses/LICENSE-2.0
     16 
     17       Unless required by applicable law or agreed to in writing, software
     18       distributed under the License is distributed on an "AS IS" BASIS,
     19       WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     20       See the License for the specific language governing permissions and
     21       limitations under the License.
     22   -->
     23 
     24 
     25 
     26 <p>
     27 Encryption is the process of encoding all user data on an Android device using
     28 symmetric encryption keys. Once a device is encrypted, all user-created data is
     29 automatically encrypted before committing it to disk and all reads automatically
     30 decrypt data before returning it to the calling process. Encryption ensures that
     31 even if an unauthorized party tries to access the data, they wont be able to
     32 read it.
     33 </p>
     34 <p>
     35 Android has two methods for device encryption: full-disk encryption and
     36 file-based encryption.
     37 </p>
     38 <h2 id=full-disk>Full-disk encryption</h2>
     39 <p>
     40 Android 5.0 and above supports <a href="full-disk.html">full-disk encryption</a>.
     41 Full-disk encryption uses a single keyprotected with the users device passwordto
     42 protect the whole of a devices userdata partition. Upon boot, the user must
     43 provide their credentials before any part of the disk is accessible.
     44 </p>
     45 <p>
     46 While this is great for security, it means that most of the core functionality
     47 of the phone in not immediately available when users reboot their device.
     48 Because access to their data is protected behind their single user credential,
     49 features like alarms could not operate, accessibility services were unavailable,
     50 and phones could not receive calls.
     51 </p>
     52 <h2 id=file-based>File-based encryption</h2>
     53 <p>
     54 Android 7.0 and above supports <a href="file-based.html">file-based encryption</a>.
     55 File-based encryption
     56 allows different files to be encrypted with different keys that can be unlocked
     57 independently. Devices that support file-based encryption can also support a new
     58 feature called <a
     59 href="https://developer.android.com/preview/features/direct-boot.html">Direct
     60 Boot</a> that allows encrypted devices to boot straight to the lock screen, thus
     61 enabling quick access to important device features like accessibility services
     62 and alarms.
     63 </p>
     64 <p>
     65 With the introduction of file-based encryption and new APIs to make
     66 applications aware of encryption, it is possible for these apps to operate
     67 within a limited context. This can happen before users have provided their
     68 credentials while still protecting private user information.
     69 </p>
     70 
     71   </body>
     72 </html>
     73