• Home
  • History
  • Annotate
  • only in /frameworks/base/packages/StatementService/src/
History log of /frameworks/base/packages/StatementService/src/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
d160479a24c28b5cf142483e8449967ec55bcf33 18-Jan-2018 Hidehiko Tsuchiya <hidehiko.xa.tsuchiya@sonymobile.com> Defer deleting a http cache

Symptom:
StatementService was crashed due to the exception;
"java.lang.IllegalStateException: cache is closed"

Root cause:
The http cache is deleted at DirectStatementService#onDestroy
in main thread. If a worker thread is still alive and it tries to
access the cache, it fails with IllegalStateException.

Solution:
The request of deleting a cache was moved from the main thread to
worker. Now, the cache can be deleted safely.

Cherrypick from AOSP master.

Bug: 73911877
Test: manual
Change-Id: I61f4e62b00e35f4a272ef983758e61ef3bf2d180
Merged-In: I61f4e62b00e35f4a272ef983758e61ef3bf2d180
om/android/statementservice/DirectStatementService.java
eb87a4d969c8282ff0c257541a42e499a99d32c7 28-Apr-2016 Christopher Tate <ctate@google.com> Always log web link filter verification parameters

This is to support CTS's ability to check that the expected verifications
are indeed being performed by the currently active verifier.

Bug 27482754

Change-Id: Iccb9bd273c7893f04e45bfca0708dcfdde595a3e
om/android/statementservice/IntentFilterVerificationReceiver.java
d268a221dce09803d24a341543c9bc71fd09f3ce 20-Feb-2016 Christopher Tate <ctate@google.com> Implement wildcard-host policy in reference autoVerify implementation

For intent filters that match "*.example.tld" hosts, we now look at
https://example.tld/... to validate the claim.

Change-Id: I9725058fa45e85c96ed4a07781b3f989ac6fd661
om/android/statementservice/IntentFilterVerificationReceiver.java
5fcbb9d0c17e073fb28c7169e80fa7bb8e61c6b1 15-Jun-2015 Joseph Wen <josephwen@google.com> Retry intent verification 3 times before failing.

BUG=21596311

Change-Id: Ia98925a4310046ef4d8117afe0b278e6a414dac6
om/android/statementservice/retriever/DirectStatementRetriever.java
om/android/statementservice/retriever/URLFetcher.java
871fe6ed66e9de1369fbc7e4a145f98272b88c0b 09-Jun-2015 Joseph Wen <josephwen@google.com> Update Statement Service

* Change the well known file location to assetlinks.json.
* Cleanup http connection after verification.

BUG=21487368
BUG=21163039

Change-Id: I0d317ac32c44933af7ed9a98ff1b0efa13eb44b1
om/android/statementservice/retriever/AbstractStatementRetriever.java
om/android/statementservice/retriever/DirectStatementRetriever.java
om/android/statementservice/retriever/Statement.java
om/android/statementservice/retriever/URLFetcher.java
3bbc90992645934df523762f7dcdb097eae366d5 26-May-2015 Joseph Wen <josephwen@google.com> Update Statement Service.

JSONObject parser is too lenient when parsing Json string. Security review
suggested us to use a stricter parser, which we implemented with
JsonReader in this CL.

BUG=20665035

Change-Id: I379976731a1d35ef8ec746f3a6e78be998370f00
om/android/statementservice/retriever/AbstractAsset.java
om/android/statementservice/retriever/AssetFactory.java
om/android/statementservice/retriever/DirectStatementRetriever.java
om/android/statementservice/retriever/JsonParser.java
om/android/statementservice/retriever/StatementParser.java
b409110cc114c30ddd6a3a64e6c2395caf413dec 22-May-2015 Joseph Wen <josephwen@google.com> Update Statement Service

Remove wildcard relation support.

BUG=21343000

Change-Id: I93f4ddf05e7efed78f3ea4a477917cef2836a4a0
om/android/statementservice/retriever/Relation.java
8c7d99c2b77acbcbbdcbf0dcab61a07767d5dd1b 23-Apr-2015 Joseph Wen <josephwen@google.com> Update the Statement Service. DO NOT MERGE

For security reason, disallow HTTP include files if the source asset is
a HTTPS site or an Android app.
Change the include statement field name from "delegate" to "include".

Bug: 20323096
Change-Id: Ifc12b61657c9c89a670b9d7c3220853321c15dea
om/android/statementservice/retriever/AbstractAsset.java
om/android/statementservice/retriever/AndroidAppAsset.java
om/android/statementservice/retriever/DirectStatementRetriever.java
om/android/statementservice/retriever/URLFetcher.java
om/android/statementservice/retriever/Utils.java
om/android/statementservice/retriever/WebAsset.java
d28bb6e3ac02ff9e7c6f8a38419957035ca31717 14-May-2015 Joseph Wen <josephwen@google.com> Change the location of Brandmaster statement file.

Change the location of statement file for web asset
from /.well-known/associations.json to /.well-known/statements.json.

BUG=21153250

Change-Id: Ie8538b852d62c54254c895e0abadc7f502ea2181
om/android/statementservice/retriever/AbstractStatementRetriever.java
om/android/statementservice/retriever/DirectStatementRetriever.java
om/android/statementservice/retriever/Statement.java
6a34bb2d6a6cbc7a70bdf0c53d238dc28e0b1d58 25-Feb-2015 Joseph Wen <josephwen@google.com> Implement IntentFilter verification service.

This commit adds a verifier that verifies a host delegates permission for
an app to handle Url for the host using the Statement protocol.

- Implements the Statement protocol
-- The protocol defines a file format that represents statements.
-- The protocol defines where each asset type should put their statement
declaration. For web asset, the statement file should be hosted at
<scheme>://<host>:<port>/.well-known/associations.json.

- Implements IntentFilterVerificationReceiver, an interface between
StatementService and PackageManager. PackageManager will send a
broadcast with action Intent.ACTION_INTENT_FILTER_NEEDS_VERIFICATION.
The service will process the request and returns the results by calling
PackageManager.verifyIntentFilter().

To verify an IntentFilter like this defined in Android app com.test.app
<intent-filter>
<data android:scheme="https" />
<data android:host="www.test.com" />
<data android:pathPattern=".*"/>
</intent-filter>

The service will try to retrieve the statement file from
https://www.test.com:443/.well-known/associations.json and try to find
a JSON object equivalent to
{'relation': ['delegate_permission/common.handle_all_urls'],
'target': {'namespace': 'android_app',
'package_name': 'com.test.app',
'sha256_cert_fingerprints': [APP_CERT_FP]}}
The entry should have the correct relation, package name, and
certificate sha256 fingerprint.

Because this implementation will send a HTTP request for each host
specified in the intent-filter in AndroidManifest.xml, to avoid overwhelming
the network at app install time, we limit the maximum number of hosts we will
verify for a single app to 10. Any app with more than 10 hosts in the
autoVerify=true intent-filter won't be auto verified.

Change-Id: I787c9d176e4110aa441eb5fe4fa9651a071c6610
om/android/statementservice/DirectStatementService.java
om/android/statementservice/ExceptionLoggingFutureTask.java
om/android/statementservice/IntentFilterVerificationReceiver.java
om/android/statementservice/retriever/AbstractAsset.java
om/android/statementservice/retriever/AbstractAssetMatcher.java
om/android/statementservice/retriever/AbstractStatementRetriever.java
om/android/statementservice/retriever/AndroidAppAsset.java
om/android/statementservice/retriever/AndroidAppAssetMatcher.java
om/android/statementservice/retriever/AndroidPackageInfoFetcher.java
om/android/statementservice/retriever/AssetFactory.java
om/android/statementservice/retriever/AssetJsonWriter.java
om/android/statementservice/retriever/AssetMatcherFactory.java
om/android/statementservice/retriever/AssociationServiceException.java
om/android/statementservice/retriever/DirectStatementRetriever.java
om/android/statementservice/retriever/ParsedStatement.java
om/android/statementservice/retriever/Relation.java
om/android/statementservice/retriever/Statement.java
om/android/statementservice/retriever/StatementParser.java
om/android/statementservice/retriever/URLFetcher.java
om/android/statementservice/retriever/Utils.java
om/android/statementservice/retriever/WebAsset.java
om/android/statementservice/retriever/WebAssetMatcher.java
om/android/statementservice/retriever/WebContent.java