Define new FLAG_GRANT_PREFIX_URI_PERMISSION which indicates that a
Uri permission grant should also apply to any other Uris that have
matching scheme, authority, and path segments. For example, a prefix
grant for /foo/ would allow /foo/bar/ but not /foo2/.
Allow persistable and prefix grants to be issued directly through
grantUriPermission(). Relaxing persistable is fine, since it still
requires the receiver to actively take the permission.
Since exact- and prefix-match grants for the same Uri can coexist,
we track them separately using a new UriGrant key. (Consider the
case where an app separately extends READ|PREFIX and WRITE for
the same Uri: we can't let that become READ|WRITE|PREFIX.)
Fix revoke to always take away persisted permissions. Move prefix
matching logic to Uri and add tests. Add new flags to "am" tool, and
various internal uses around Intent and Context. Switch some lagging
users to ArraySet.
Bug: 10607375
Change-Id: Ia8ce2b88421ff9f2fe5a979a27a026fc445d46f1
some bt test util methods are useful as device setup util, this
change exposes some of them via a BluetoothInstrumentation so
that they can be invoked like commands for setting up or
controlling bt state in test harness
Change-Id: I1d40baf374e145ab550ae4fa5f581e2eaf2e29bb
This service will ultimately be responsible for propagating scores
down to lower-level network subsystems. For now, it just keeps scores
in memory and exposes these for debugging purposes via "adb shell
dumpsys network_score".
This change also adds provisioning of a default scorer. When
NetworkScoreService is first initialized, it checks to see if it has
ever set a default scorer; if not, it reads a package name from a
build config property and attempts to set it as the default.
Also add autogenerated equals/hashCode methods to all parcelables.
Bug: 14111427
Bug: 13786258
Change-Id: I02271171653d42e12acd240b73b9e23950744f6b
Allows listing all possible scorer apps, getting the active scorer
app, setting the active scorer app, and determining whether a given
UID is for the active scorer.
Note that setting a default scorer with a system image will be handled
separately - the plan here is to add a read-only build property
containing a package name to use as the scorer out of the box.
When NetworkScorerService is initialized, it will check a provisioning
bit; if that bit isn't set, it will set the current scorer to the
package specified in this build property (if any) and set the
provisioning bit to true.
Bug: 13769362
Change-Id: I18c0b2ba2aceccc88b70c3611a49149e0bf17ecf
NetworkKey represents the necessary information to identify a network
to be scored. ScoredNetwork contains the key to identify a network as
well as a score to be used when evaluating that network (as a curve
based on RSSI).
Bug: 13767776
Change-Id: I6bfebd105c9381e615513167b4332b767b43a23a
during download before moving to next stage of the test.
Increase the timeout for waiting for download to complete.
Change-Id: I61820a9525256f4f2e16571e1ac075d2f5268cae
...and now fail conservatively when two apps both attempt to define
the same permission. Apps signed with the same certificate are
permitted to redefine permissions.
We also finally have a (hidden) interface class for observing package
installation so that we can now rev the interface without breaking
existing callers.
Bug 13551375
Change-Id: Ifa4e59154dcccbb286ee46a35a6f25e4ad0f0f01
...and now fail conservatively when two apps both attempt to define
the same permission.
We also finally have a (hidden) interface class for observing package
installation so that we can now rev the interface without breaking
existing callers.
Bug 13551375
Change-Id: I3a286d024a30e812ee4b098f345401df3c00e178
When there is connectivity state change, the network states could be broadcasted multiple times.
The state transition should consider that.
Bug: 13277256
Change-Id: I3d400900a0e2454f9d198629f1c062cbb15bdcd8
(cherry picked from commit 71aae0b6fd1bb9204b81c2e9447f3544c29579c4)
Sometimes a null pointer exception is thrown when examining files
managed by the file rotator.
The logs from the test show that the Wifi state is changed a large
number of times. On every state change, a write operation is
initiated on the file system. This will eventually result in out
of memory and the call to mBasePath.list() in the maybeRotate(...)
method in FileRotator.java will return null so the iteration will
throw a NullPointerException.
Change-Id: I5d5980d9593bc9ec75281169ca27ee591809903f
When checking that the download is in progress, check the number number
of bytes downloaded as reported by download manager, rather than looking at the file size.
When waiting for the download to complete rely on the received broadcast.
Bug: 13326931
Change-Id: I4c2431dd71e17602e758bc482be185683040ea98
When there is connectivity state change, the network states could be broadcasted multiple times.
The state transition should consider that.
Bug: 13277256
Change-Id: I3d400900a0e2454f9d198629f1c062cbb15bdcd8
This CL introduces InputMethodSubtypeArray which compresses
multiple instances of InputMethodSubtype to reduce the risk
of TransactionTooLargeException during IPCs.
There are some IMEs which rapidly adding new subtypes into
their supported language list. One problem here is that each
instance of InputMethodInfo internally owns the list of
supported subtypes. Basically it requires additional
200 ~ 300 bytes for each subtype when InputMethodInfo is
transffered via IPCs. We should keep the size less than
100 KB in typical scenario.
With this CL, the list of InputMethodSubtype is marshalled
with GZIP compression. Approximately one InputMethodInfo is
marshalled within 10 KB even when it has 100 subtypes.
No negative performance impact is observed so far. The cost of
decompression seems to be compensated by another optimization
in this CL. Actually marshalling cost is reduced with this CL
by caching the compressed data on demand.
BUG: 12954290
Change-Id: Ibb2940fcc02f3b3b51ba6bbe127d646fd7de7c45
This CL adds one more test to make sure InputMethodInfo
implements Parcelable correctly. This test makes sure that
one can marshall and unmarshall again from an unmarshalled
copy of InputMethodInfo.
BUG: 12954290
Change-Id: I5aa1552a8089fe0bac54513ba224e5bfc494be97
This CL adds a unit test to make sure that InputMethodInfo
implements Parcelable correctly.
BUG: 12954290
Change-Id: I0abe8c266b4b035bf8ef4688d11069b355fabe9f
The failing scenario is
- install v1
- run
- update to v2
- update to v3
- run
last run was failing with initial multidex library versions because
it's still running on v1 extracted secondary dex files.
Change-Id: Id9811371fc70b0a4e9b49de913ee38d18699b21d
These tests aren't really run automatically (or perhaps
even manually) in their present location, and increasing
CTS coverage is never a bad thing.
Change-Id: I81cce1211021011dca551fde62e725e177ca4df0
This allows DownloadManager to use FDs, paving the way for downloading
directly to content:// Uris.
Also return flag indicating if deleteOlderFiles() actually deleted
anything. Update tests to verify.
Bug: 5287571
Change-Id: I2579e5e2113f31b2860d7b021bd61c91b6310963
Add automated test cases for runtime resource overlay, iteration 2.
The test cases are a mixture of 'adb shell' commands and regular
instrumentation tests. The device is rebooted between tests to setup
different overlay scenarios for framework-res.apk.
To verify Runtime resoure overlay, iteration 2, run
$ frameworks/base/core/tests/overlaytests/testrunner.py
For a list of supported options, run
$ frameworks/base/core/tests/overlaytests/testrunner.py --help
Change-Id: I692aa1a7ad073efd116b24f9ec7f197dfd65dfef
Also rename existing secondary storage API to match naming
convention in rest of class.
Bug: 11536709
Change-Id: I2684c817de4982b414893d2d9927a21e3f171d53
Both readThisValueXml & writeThisValueXml have been
implemented to handle values with "null" names.
Change readThisMapXml to allow such names as well, and
map them to the null key in the resulting HashMap.
readThisListXml and readThisSetXml already support
null names.
bug: https://code.google.com/p/android/issues/detail?id=63463
Change-Id: I1c93976656e45e7733113eb67d29b6bad5d25f1f
This is necessary so that the framework can know whether an IPv6
address is likely to be usable (i.e., if it's global scope and
preferred). Also, it will simplify the address notification
methods in INetworkManagementEventObserver, which currently take
the address, the flags, and the scope as separate arguments.
1. Add flags and scope to the class and update the unit test.
Use the IFA_F_* and RT_SCOPE_* constants defined by libcore.
Since most callers don't know about flags and scope, provide
constructors that default the flags to zero and determine the
scope from the address. Addresses notified by the kernel will
have these properly set. Make multicast addresses invalid.
Update the class documentation.
2. Provide an isSameAddressAs() method that compares only the
address and prefix information between two LinkAddress
objects. This is necessary because an interface can't have
two addresses with the same address/prefix but different
flags.
3. Update LinkProperties's addLinkAddress and removeLinkAddress
to identify existing addresses to add/remove using
isSameAddressAs instead of implicit equals(). Specifically:
- If addLinkAddress is called with an address that is already
present, the existing address's flags and scope are updated.
This allows, for example, an address on an interface to go
from preferred to deprecated when it expires, without it
having to be removed and re-added.
- If removeLinkAddress is called with an address that is
present but with different flags, it deletes that address
instead of failing to find a match.
4. Update the INetworkManagementEventObserver address
notification methods to take just a LinkAddress instead of
LinkAddress, flags, and scope. While I'm at it, change the
order of the arguments for consistency with the other
functions in the interface.
Change-Id: Id8fe0f09a7e8f6bee1ea3b52102178b689a9336e