Sessions can now zero-copy data directly into pre-allocated ASEC
containers. Then at commit time, we compute the total size of the
final app, including any inherited APKs and unpacked libraries, and
resize the container in one step.
This supports both brand new ASEC installs and inheriting from
existing ASEC installs. To keep things simple, it currently requires
copying any inherited ASEC contents, but this could be optimized in
the future.
Expose new vold resize command, and allow read-write mounting of ASEC
containers. Move native library extraction into the installer flow,
since it needs to happen before ASEC is sealed. Move multiArch flag
into NativeLibraryHelper, instead of making everyone pass it
around. Migrate size calculation to shared location.
Separate "other" package name in public API, provide a path to a
storage device when relevant, and add more docs.
Bug: 16514385
Change-Id: I06c6ce588d312ee7e64cce02733895d640b88456
* reduced visibility of most util functions in
ConnectivityManagerTestBase
* reimplemented various waitFor... util function in base class:
instead of relying on received broadcast and synchronization
mechanism, we just poll for what we want with a fixed interval
and a max timeout
* minor style fixes
* removed state transition checks in all test cases of
ConnectivityManagerMobileTest: since exact state transitions
are not that interesting, we just care about if we reach a
particular state and if all network interfaces are in their
corresponding states
* clarified in comment what each test cases are testing, since
some of the test case names are not very straightforward
* any wait for DISCONNECTED checkes with ConnectivityManager are
temporarily commented out
Change-Id: I99cca95c33c6060909e0df684969b75c2dca23a9
LinkProperties can represent way more complicated configurations
than what we can actually apply to interfaces. This makes it
error-prone to use it to represent static configuration, both
when trying to apply configuration coming from LinkProperties
and when trying to save configuration from current
LinkProperties.
Instead, move static configuration (IPv4 only, since we don't
support static IPv6 configuration) into a separate
StaticIpConfiguration class.
Bug: 16114392
Bug: 16893413
Change-Id: Ib33f35c004e30b6067bb20235ffa43c247d174df
This addresses a TODO and also makes it possible to create
routes to destinations that are not valid LinkAddresses, such as
multicast addresses.
Bug: 16875580
Change-Id: Id4c77b00dc3064bf27d78cdcbbe035e645748cfe
With this CL, InputMethodSubtypeSwitchingController stop
assuming that language part in locale string is up to 2-letter.
this CL is not so risky because
InputMethodSubtypeSwitchingController have used language part for
nothing but sorting subtypes to determine the initial rotation
order of IME switching.
BUG: 16502987
Change-Id: Ib159ece0b7aa04f8fd7abc96c9a6e0832a4b7cd2
Anything which tests public API functionality will be moved to a
compatibility test suite.
The only remaining test is NetworkScorerAppManagerTest, which contains
unit tests for an internal helper class that is not (and should not
be) exposed via @SystemApi or otherwise.
Bug: 16355542
Change-Id: I478da97d3a4d09407992af37e45466dc484fa8cf
Changed include:
1) Add serviceDataUuid to filter so it matches sanRecord and
AdvertiseData.
2) Add raw bytes to ScanRecord and make ScanResult take a ScanRecord
instead of raw bytes.
3) Change from setServiceUuid(List) to addServiceUuid(ParcelUuid).
4) Added include device name
5) Removed service not registered and added ADVERTISE_DATA_TOO_LARGE.
6) Fixed a few comments.
Change-Id: Ibbe07183b1293835c4a84728d1cd2d61e5d627d3
We have accepted any arbitrary text as a locale
string when instantiating InputMethodSubtype object.
As a consequence, some existing code might assume
that InputMethodSubtype never canonicalize/normalize
the given locale string.
This CL add a test case for such scenario.
Change-Id: Ie08d6e149e22a60d6c4d40049a3e6afeee87dc44
Separate definition of public keys and keysets in the manifest to better
represent their relationship. The 'key-set' tags should have nested additional
'public-key' tags that indicate which of the defined 'public-key' tags are
associated with them. The first use of a given 'public-key' name should define
its value; subsequent uses may refer to it only by name. 'key-set' and
'public-key' names may not intersect.
Also, change 'keys' tag to 'key-sets' to avoid issues with previous keysets
implementation.
Bug: 6967056
Change-Id: I7534e4a42326e97b67b55509187c0d3c21a2bb32
This CL allows application authors and input method authors to
communicate with each other more precisely on the visibility of
insertion marker and composing characters. Now we can describe
the situation where the coordinates of them are available but
they are overlapped by other UI elements.
This change is based on feedbacks from internal customers of
this preview API.
Change-Id: I82eba0e844a6f8b99ba11a68fad272399034cc24
BUG: 16118303
This CL addresses some inconsistencies found in
CursorAnchorInfo#equals.
- #mComposingText is now taken into consideration when
compared with other instances.
- NaN is now treated as if it was just a number in
CursorAnchorInfo#equals if and only if NaN is used in
-- #mInsertionMarkerHorizontal
-- #mInsertionMarkerTop
-- #mInsertionMarkerBaseline
-- #mInsertionMarkerBottom.
This is useful if we want to use NaN as a marker to
indicate that no value is specified.
Change-Id: Ibff31bc34b9d488731b294ad38240c567a06b627
Introduces the upgrade-keyset tag to AndroidManifest.xml. This specifies a
KeySet by which an apk must be signed in order to update the app. Multiple
upgrade KeySets may be specified, in which case one of them must be used to
sign the updating apk. If no upgrade-keyset is specified, the current logic
involving signatures is used.
Current Key Rotation Design Decisions:
-Apps using a shared user id may not rotate keys.
-All acceptable upgrade keysets must be specified, including the key signing
the app. This enables key rotation in one update, but also 'locks' an app if
an incorrect upgrade keyset is specified.
-Minimal changes to existing KeySet code.
Bug: 6967056
Change-Id: Ib9bb693d4e9ea1aec375291ecdc182554890d29c
With this CL, CursorAnchorInfo.Builder#build() raises
IllegalArgumentException when an application author attempts to
instantiate CursorAnchorInfo without the coordinate
transformation matrix but with specifying some positional
parameters such as composing character rectangle.
Since any other positional members in CursorAnchorInfo are
supposed to be specified in local coordinates, the application
author must provide the coordinate transformation matrix for
such positional data.
Change-Id: I2b0fd0f146a2b95fe4fa1324837d8cfee667208c
A candidate scorer may have an activity registered to listen for the
ACTION_CUSTOM_ENABLE intent action. If so, when the user attempts to
select this scorer as the active one, this custom activity will be
launched and will be responsible for requesting that the framework
activate the scorer. This is to enable more complex opt-in flows prior
to becoming the active scorer.
Scorers which do not specify this activity will default to using the
framework switcher (currently ActiveNetworkScorerDialog, though this
may change).
Note that all switches must still go through the framework switcher;
the opt-in activity simply allows scorers to first show another screen
and perform the framework switch on their own terms.
Bug: 15775314
Change-Id: I3847e5d3161a8fcc9622abc03218795697c32778
Because at the moment, omitting to explicitly disable dexopt produces apks with
no classes.dex inside.
Change-Id: I44ffc6b013a7b119c7deb332cf60f4fe8a11068c
Starting with Ie04e8a27050849fee1c93ef14b9944acc70fafe4,
CursorAnchorInfo#getComposingText() returns CharSequence rather
than String. This causes unexpected overload resolution,
which results in test failures.
BUG: 15088391
Change-Id: I51e2b23573e92be7e5b1dcca6402e85364408215
Allows scorer apps to set a custom name for the scoring functionality,
even if the app has other non-scoring responsibilities, in which case
the application's label would be too generic.
Bug: 15775300
Change-Id: I61a7d1966742d463508e6801b7845ced8392db84
In IPv4, a link is provisioned when DHCP succeeds. In IPv6, a
there is no such signal, because addresses and DNS servers can
be notified by the kernel at different times.
Add an isProvisioned method that returns true if we believe that
enough information has configured to use a network. For IPv6,
this requires an IP address, default route, and DNS server. For
IPv4, this requires only an IPv4 address, because we support
static configuration that doesn't have a default route or DNS
server.
To do this we use the existing hasIPv4Address method, rename the
all-but unused hasIPv6Address method to hasGlobalIPv6Address
(which is what we want anyway) and add new hasIPv[46]DefaultRoute
and hasIPv[46]DnsServer methods.
Bug: 9180552
Change-Id: Ib2f5ff8af920f7b6f1edf0e2afaaa0edce9bc72d
1. Realize that mDestination can never be null and update the
code accordingly.
2. Simplify isDefaultRoute.
3. Provide two new hidden utility methods, isIPv4Default() and
isIPv6Default(), that can be used by LinkProperties to
to determine if the system has connectivity.
4. Update tests.
Bug: 9180552
Change-Id: I85028d50556c888261d250925962bdedfe08e0c6
Require that method callers always provide relevant paths, instead of
relying on constructor. Move DisplayMetrics to be an overall parser
parameter, and move PARSE_TRUSTED_OVERLAY to flags.
Parse split APKs and apply deterministic ordering based on split
names. Assert consistent package name and version code across all
split APKs in a package, and enforce unique split names and required
base APK.
Collect certificates for split APKs, enforcing they're all signed
consistently. Better flow control and resource cleanup when
collecting certs. Refactor validation code so it's easier to reason
about. Cleaner maintenance of read buffer when draining stream
contents.
Change-Id: I8bc8c62095fbb933227b9e76ad8771f4b1246fe8
1. Allow IpPrefixes to be created from strings. In order to do
this, factor out the code from LinkAddress which already does
this to a small utility class in NetworkUtils.
2. Truncate prefixes on creation, fixing a TODO.
3. Add a toString method.
4. Write a unit test.
While I'm at it, make RouteInfoTest pass again, and convert it
to use IpPrefix instead of LinkAddress.
Change-Id: I5f68f8af8f4aedb25afaee00e05369f01e82a70b
It previously kept mPath separate from mScanPath for some very odd
edge cases around moving apps-on-SD. This changes it to always use
a single path, refactors moving to keep separate paths.
Refactors method names in PackageParser to be clearer about their
APK-versus-package relationship.
Beginnings of a split package parser. Instead of requiring that
callers check error codes when null, switch to always throwing on
parse errors, to require that callers deal with the error. Longer
term the entire parser should switch to this style, but its too
pervasive for a simple refactoring.
Change-Id: If071d8e55e46e56cc201fadfb51cb471713ae973