Commit Graph

56114 Commits

Author SHA1 Message Date
Lazar Trsic
8ea56f6851 Replace hard-coded errno values with OsConstants
Errno values have been hard-coded inside java code. On the native side
however, bionic's errno.h is used (through utils/Errors.h). Some of
the numbers are architecture dependent (EOPNOTSUPP, ETIMEDOUT...).

This causes Camera app to crash on MIPS devices. There is a check for
expected errors, in CameraBinderDecorator.throwOnError, but the error
(EOPNOTSUPP) is not recognized and an exception is thrown.

Change-Id: I8bcac8f1ced50c76614f566a6e624967a18a25e1
2015-12-04 12:41:37 +01:00
Chad Brubaker
6fea66116c Merge "Expose findTrustAnchorBySubjectAndPublicKey" 2015-12-01 20:13:40 +00:00
Chad Brubaker
73c06b1dbe Merge "Make NetworkSecurityConfigProvider.install lazy" 2015-12-01 20:13:23 +00:00
Chad Brubaker
d3af962081 Expose findTrustAnchorBySubjectAndPublicKey
This allows for faster lookups of TrustAnchors when checking pin
overrides without needing to iterate over all certificates.

Currently only the system and user trusted certificate store are
optimized to avoid reading the entire source before doing the trust
anchor lookup, improvements to the resource source will come in a later
commit.

This also refactors System/UserCertificateSource to avoid code
duplication.

Change-Id: Ice00c5e047140f3d102306937556b761faaf0d0e
2015-11-30 17:20:00 -08:00
Chad Brubaker
7d72975c5b Merge "Remove isCertificateEntry check" 2015-11-29 23:45:47 +00:00
Chad Brubaker
9a0130865e Remove isCertificateEntry check
This was returning false on some test keystores even when
getCertificate would correct return a certificate. Remove the check to
be consistent with how conscrypt loads trust anchors from the keystore.

Bug: 25897324
Change-Id: Ie87658a261ee7ba1cca6896e34b6c53b8abfba85
2015-11-26 14:00:50 -08:00
Chad Brubaker
2075a3ebc0 Make NetworkSecurityConfigProvider.install lazy
This defers looking up the meta-data from the install call to when the
rest of the config is lazily initialized.

Change-Id: I008a86f885e158ebe06a2bacdc358cd217635d05
2015-11-25 13:15:59 -08:00
Chad Brubaker
8e19803a6a Merge "Implement checkClientTrusted" 2015-11-25 20:33:31 +00:00
Chad Brubaker
bdd13f02bc Implement checkClientTrusted
Bug: 25885029
Change-Id: I07ef11a556f1a1a65456ae5e3904c56902c6e82a
2015-11-25 12:22:06 -08:00
Sergio Giro
d5a5d547d0 Merge "ssl: make DistinguishedNameParser a package-private class in org.apache.http.conn.ssl" 2015-11-24 11:14:24 +00:00
Sergio Giro
46972b2d82 ssl: make DistinguishedNameParser a package-private class in org.apache.http.conn.ssl
Needed by AbstractVerifier in framework/base

DistinguishedNameParser taken from libcore, commit
b5259fcf87994ee18658f07887156aef3cab3b56

Change-Id: I924dc7cd21262e5e91857edf178e46c9916f3f6b
2015-11-23 15:46:15 +00:00
Nicolas Geoffray
cf49583bd0 Merge "Remove DEBUG_JIT from Zygote flags." 2015-11-18 10:47:50 +00:00
Nicolas Geoffray
245ec92b65 Remove DEBUG_JIT from Zygote flags.
The flag is being obsolete by the move to JIT.

(cherry picked from commit 9abbf45c8d)

Change-Id: I3ce4577e81f91e9dd55d44116e0f9e2014bd00b8
2015-11-18 10:07:53 +00:00
Chad Brubaker
08181cf647 Merge "Add NetworkSecurityConfigProvider.install" 2015-11-17 20:46:49 +00:00
Chad Brubaker
690b5f6c0a Merge "Dedupe trust anchors" 2015-11-17 18:51:38 +00:00
Chad Brubaker
fd0d31a3f4 Add NetworkSecurityConfigProvider.install
This method is not currently called.

Change-Id: I73fd166b03009526868e0d9b5b209a9adaa4232f
2015-11-16 12:49:36 -08:00
Casey Dahlin
2f974b252f Add hidden support for arrays of raw file descriptors
Change-Id: I4013e0700369764a26485d8620ebf16d8bea1951
Test: Built and ran Android in an emulator
Bug: 25242023
Signed-off-by: Casey Dahlin <sadmac@google.com>
2015-11-12 14:13:15 -08:00
Chad Brubaker
2bd2eb33c0 Dedupe trust anchors
When getting trust anchors we need to dedup them based on the
certificate to avoid having multiple trust anchors with the same cert
but different pin override behavior. If there are multiple trust anchors
with the same cert, the trust anchor which overrides pins wins.

Change-Id: Ida31f2551f56997418b8b091bb2598c5593cb069
2015-11-12 13:13:45 -08:00
Chad Brubaker
b324fb18d9 Merge "Support X509TrustManagerExtensions methods" 2015-11-12 19:28:54 +00:00
Chad Brubaker
9c3982f75d Merge "Use duck typing in X509TrustManagerExtensions" 2015-11-12 19:28:21 +00:00
Wale Ogunwale
cbcafde45e Merge "Avoid configuration of callback being reset after relayout." 2015-11-12 15:55:18 +00:00
riddle_hsu
164725c652 Avoid configuration of callback being reset after relayout.
mPendingConfiguration is a parameter of IWindowSession.relayout.
And IWindowSession.aidl declared "out Configuration outConfig",
it will always create a new configuration for remote side to write.
If remote side does not write (WMS does not have config change),
the new default configuration will be returned.

In original code passes mPendingConfiguration to updateConfiguration
directly, then callbacks (sConfigCallbacks) receive the same
instance of mPendingConfiguration. And because the implementation
of callback may use the configuration after relayout has reset
the configuration to default, then it may have timing that results
"showing hybrid of portrait and landscape modes" which try to fix
in commit e36d6e27.

To avoid this, always create a copy to updateConfiguration.
MSG_RESIZED_REPORT from dispatchResized also did the same thing.

Related commit:
e36d6e277e
694f79b5d1

Change-Id: Ic1abd596e384918224b3a7020583d9a04641cccc
2015-11-12 14:07:12 +08:00
Chad Brubaker
93962c2f01 Support X509TrustManagerExtensions methods
Change-Id: I14a405e90f139b8d73eb9f88597fac804a7c18f3
2015-11-11 14:35:46 -08:00
Chad Brubaker
bfcd67f71e Use duck typing in X509TrustManagerExtensions
X509TrustManagerExtensions assumes that the default X509TrustManager is
an instance of conscrypt's TrustManagerImpl. That's no longer going to
always be the case. Instead use duck typing to support any
X509TrustManagers that have the extra methods required for
X509TrustManagerExtensions.

Change-Id: If23471bda590d5e131bb1e802a60599957bc7f37
2015-11-11 13:38:33 -08:00
Chad Brubaker
d1c469e876 Merge "Add NetworkSecurityConfigProvider" 2015-11-11 20:25:04 +00:00
Chad Brubaker
f1e813ea33 Merge "Add support for debug-overrides configuration" 2015-11-11 19:03:30 +00:00
Chad Brubaker
5a1078f40d Add NetworkSecurityConfigProvider
Change-Id: I321e3ca94cc2a8d5e0e5d82a83b255ff5b8a71d2
2015-11-11 10:54:54 -08:00
Chad Brubaker
08d36202da Add support for debug-overrides configuration
Debug overrides are only used if the application is debuggable in
order to help local debugging and development by trusting additional
CAs. In a non-debuggable version of the application the debug-overrides
are ignored.

Trust anchors in the debug override configuration have two key
differences from those in base-config and domain-config:
1) trust anchors in the debug-overrides are trusted for all connections
in addition to any trust anchors included in the relevant base/domain
configs.
2) By default trust anchors in the debug config override pins, as their
purpose is for connecting to non-standard servers for debugging and
testing and those servers should not be pinned in the production
configuration.

Change-Id: I15ee98eae182be0ffaa49b06bc5e1c6c3d22baee
2015-11-10 12:40:00 -08:00
Nick Kralevich
368513fa99 system_server: allow /proc read access to other UIDs
Add system_server to AID_READPROC, to allow system_server to read
/proc entries associated with other UIDs.

Bug: 23310674
Change-Id: I1602b8ee30670cde4ed56e2f901524c105895352
2015-11-07 17:04:04 -08:00
Chad Brubaker
bd173c28fc Support nested domain-config elements
Nested domain-config inherit unset parameters from the domain-config
they are nested in. This helps avoid copy and pasted configs that are
almost the same except a few minor differences for a domain with
slightly different requirements.

For example: Consider a domain-config for example.com that, among other
settings, does not enforce hsts. Now if you want the rules for
example.com to apply to secure.example.com except that hsts _is_
enforced you can make a nested domain-config for secure.example.com
under example.com that sets hstsEnforced="true" and nothing else.

Change-Id: I9e33f7e62127fd7f4f15c3560fff2f2626477bd4
2015-11-07 13:31:04 -08:00
Chad Brubaker
5f96702f58 Add xml source for network security configuration
XmlConfigSource parses an ApplicationConfig from an xml resource.
Currently this supports app-wide default configuration via the
base-config element, per domain via the domain-config element and
inheritance of unset properties at parse time.

Inheritance of unset properties is currently only:
domain-config -> base-config -> platform default configuration
Where the most specific value is used.
For example: If the base-config specifies trust anchors, all connections
will use those anchors except for connections to a domain which has a
domain-config that specifies trust anchors, in which case the
domain-config's trust anchors will be used. If the domain-config or
base-config don't set trust anchors, or don't exist, then the platform
default trust anchors will be used.

Nested domain-config entries, debug-overrides, and thorough
documentation of the xml format will follow in later commits.

Change-Id: I1232ff1e8079a81b340bc12e142f0889f6947aa0
2015-11-06 22:24:01 -08:00
Chad Brubaker
1347cb81f4 Merge "Fix incorrect hstsEnforced lookup" 2015-11-07 02:37:45 +00:00
Chad Brubaker
825c3f91ed Fix incorrect hstsEnforced lookup
Change-Id: I00364d8c1d3311bebd3ad88e557860e694ba5018
2015-11-06 18:08:12 -08:00
Chad Brubaker
1483ee3aa5 Merge "Fix directory check in UserCertificateSource" 2015-11-06 21:02:23 +00:00
Chad Brubaker
c5c51dafb3 Merge "Fix incorrect hasPerDomainConfigs check" 2015-11-06 21:02:01 +00:00
Chad Brubaker
b0f8b4bb35 Fix directory check in UserCertificateSource
If the user has not added any CAs to the user trust store the user-added
directory will not have been created.

Change-Id: I8b5f73af3c0761c56969874231004fedbf7badda
2015-11-06 13:00:15 -08:00
Chad Brubaker
35de8d6d2b Fix incorrect hasPerDomainConfigs check
Change-Id: Iaeedbbcc5f12475d346a77dba84b38a1d3d8d346
2015-11-06 12:50:31 -08:00
Chad Brubaker
7e98f2e697 Merge "Use a builder for NetworkSecurityConfig" 2015-11-06 20:21:29 +00:00
Chad Brubaker
80a73f5939 Use a builder for NetworkSecurityConfig
The builder supports all the standard builder set* methods as well as
setting a parent builder to use when values are not set (recursively).
This allows us to have a level of inheretence in configurations without
complicating the lookup and trust checking logic by doing inheretence
when building the configs.

Change-Id: I054af83451e52761227479eadf9cb9803437505f
2015-11-05 12:50:30 -08:00
Chad Brubaker
8c35820720 Merge "Add initial network security config implementation" 2015-11-05 18:46:24 +00:00
Chad Brubaker
6bc1e3966c Add initial network security config implementation
Initial implementation of a unified application wide static
network security configuration.

This currently encompases:
* Trust decisions such as what trust anchors to use as well as static
  certificate pinning.
* Policy on what to do with cleartext traffic.

In order to prevent issues due to interplay of various components in an
application and their potentially different security requirements
configuration can be specified at a per-domain granularity in addition
to application wide defaults.

This change contains the internal data structures and trust management
code, hooking these up in application startup will come in a future
commit.

Change-Id: I53ce5ba510a4221d58839e61713262a8f4c6699c
2015-11-04 14:31:18 -08:00
Tao Bao
ac140e7f76 Merge "Clean up the uncrypted OTA package on bootup."
am: 5d562d4d2f

* commit '5d562d4d2fe5697468e5b93b183ed8ea42e115a2':
  Clean up the uncrypted OTA package on bootup.
2015-10-21 17:51:53 +00:00
Tao Bao
87212ad6a8 Clean up the uncrypted OTA package on bootup.
An OTA package needs to be uncrypted before rebooting into recovery if
it sits on an encrypted /data partition. Once uncrypt gets started, we
cannot re-run it on the package again. Because the file may have been
fully or particially uncrypted and we may end up with a corrupt file
under recovery. Always clean up the package when the device boots into
the normal system to avoid that.

Bug: 24973532
Change-Id: I91682c103d1f2b603626c4bf8d818bced71e3674
2015-10-19 14:49:09 -07:00
Wale Ogunwale
fceaedda41 am 75693994: Merge "Disassociate system windows from apps"
* commit '75693994f60bdec9a10db98ddb8addd2bc3f8bbb':
  Disassociate system windows from apps
2015-10-16 13:54:54 +00:00
tiger_huang
ff58e30aca Disassociate system windows from apps
With the original logic, if an app creates a system window, when the
user goes to home screen, the system window will be still there and
become unable to receive input events, because the system window will
be also changed to the stopped state with the app window, and the
current logic of ViewRootImpl forbid a stopped window receiving input
events.

This change prevents assigning the token of the app window to system
windows created by the app, so that when the app goes to the stopped
state, its system windows won't be affected (can still receive input
events).

This change is related to the following changes:
a5d29971f8
15ed2754a3
c3672cd3f7
41725dedc3

Bug:
https://code.google.com/p/android/issues/detail?id=189710

Change-Id: I515e47bafcf39a2b1bdf92f11f623bef8fb6263c
2015-10-16 12:30:38 +08:00
Tim Murray
b2387e650b am 6c271b89: am f3acc630: am 01356906: Merge "Ensure SurfaceView requests WM relayout when size changes." into mnc-dr-dev
* commit '6c271b898c080303c24e524022dd6e4552bda5f5':
  Ensure SurfaceView requests WM relayout when size changes.
2015-10-07 23:39:16 +00:00
Tim Murray
f3acc63015 am 01356906: Merge "Ensure SurfaceView requests WM relayout when size changes." into mnc-dr-dev
* commit '0135690688c8285e022a2a8191c8582f2e6ea759':
  Ensure SurfaceView requests WM relayout when size changes.
2015-10-07 23:28:13 +00:00
Tim Murray
0135690688 Merge "Ensure SurfaceView requests WM relayout when size changes." into mnc-dr-dev 2015-10-07 23:21:14 +00:00
Yin-Chia Yeh
cbb3dc67cf am 527da81f: am a71bb6b9: am 9d688336: am a636be6c: Camera: fix wrong FULL feature string
* commit '527da81f13fa65b924859ae87f6ccce8d3614140':
  Camera: fix wrong FULL feature string
2015-10-07 21:54:41 +00:00
Yin-Chia Yeh
a71bb6b986 am 9d688336: am a636be6c: Camera: fix wrong FULL feature string
* commit '9d68833686e04ff5ff910a9d90fe99bc1347aaca':
  Camera: fix wrong FULL feature string
2015-10-07 21:41:38 +00:00