Add app-level usesCleartextTraffic manifest attribute.
The attribute declares whether the app intends to use cleartext network traffic (e.g., HTTP, WebSockets, XMPP, SMTP, IMAP -- without TLS or STARTTLS). The default value is true. If set to false, the app declares that it does not intend to use cleartext network traffic. In this case the app requests the platform, tooling, and third-party libraries to prevent it from using cleartext traffic. The danger of cleartext network traffic is that its confidentiality, authenticity, and integrity are not guaranteed. This feature is designed to help apps which care about security of data exchanged over the network. These apps can accidentally regress/downgrade to using cleartext network communications. This typically happens when the server the app communicates with all of a sudden tells it to use cleartext communications (e.g, HTTP URL instead of an HTTPS URL) or when one of the components of the app gets updated and regresses to cleartext communications without the developer noticing. In general, the prevention measures are on best effort basis. It's impossible to automatically prevent all instances of cleartext traffic. For example, an app bent on bypassing restrictions could perform low-level network I/O with unusual TCP packet fragmentation, or could use a custom application-level protocol. The expectation is that most apps use libraries for network communications and these libraries over time will start to honor this flag, thus increasing the protections offered by it. Bug: 19215516 Change-Id: I8700d51ddbc5d528faa4b6a5fa5bc9551ad02d13
Loading
Please register or sign in to comment