1226 Commits

Author SHA1 Message Date
Jeff Sharkey
37cf9907d2 Merge "Installing splits into ASECs!" into lmp-dev 2014-08-24 18:45:55 +00:00
Jeff Sharkey
941a8ba1a6 Installing splits into ASECs!
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
2014-08-22 16:25:04 -07:00
Guang Zhu
12747ab3aa add some missing assert messages for wifi test
Change-Id: I04f4cbbca1a181ab1404fa3abba874e1f78fed3c
2014-08-22 15:08:36 -07:00
Guang Zhu
4afd179a9a follow up minor fixes for connectivity manager test
Change-Id: I8f0606890b21d67130efb3bc02c6825823060139
2014-08-20 17:40:18 -07:00
Guang Zhu
d21f1c1e4d fixes for connectivity manager test suite
* 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
2014-08-20 17:15:35 -07:00
Lorenzo Colitti
0a82e80073 Stop using LinkProperties for static configuration.
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
2014-08-19 11:59:43 -07:00
Lorenzo Colitti
1806b1fc25 Switch RouteInfo to use IpPrefix instead of LinkAddress.
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
2014-08-13 21:17:20 +09:00
Wei Wang
6bf513d32d Revert "Revert "Service data and manufacturer data can be repeated fields.""
This reverts commit 14c797702543bb5ced989565d90abcfa55c7db46.
2014-08-01 11:12:37 -07:00
Sungsoo Lim
67c01a4b6d Revert "Service data and manufacturer data can be repeated fields."
This reverts commit 26dc9b99b17ca9d8ce3632c48e8b6c1450ee53e9.

Change-Id: I1846d0a6491c5b2ba5905411bd98f5d17909b705
2014-08-01 01:24:14 +00:00
Wei Wang
3f7a39063a Service data and manufacturer data can be repeated fields.
b/16635899

Change-Id: I73f1f4effd3f0e38cd427297eb9d22f3ba285d61
2014-07-31 15:43:05 -07:00
Wei Wang
0462468aaf Make scan filter accepts prefix. Add tests.
Change-Id: I714dd6d95ad2bc874dce1106b325762b19159119
2014-07-28 21:46:44 -07:00
Wei Wang
ab2ed62f15 Split manu id and manu data.
b/16407380

Change-Id: I39f6ce0ab4cccadec809f0a4f518f5d2c77a90b7
2014-07-27 23:12:26 -07:00
Yohei Yukawa
48e28ad06c Merge "Stop assuming language part in locale string is up to 2-letter" into lmp-dev 2014-07-24 22:43:15 +00:00
Yohei Yukawa
71cf0a32d0 Stop assuming language part in locale string is up to 2-letter
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
2014-07-26 03:21:03 +09:00
Wei Wang
ec64dbfbc0 Fix bug of ScanSettings. Add unit test.
b/16318637.

Change-Id: I3fbc1212c1712faa0c29132f3dc9cfc1d58af26b
2014-07-25 10:56:08 -07:00
Wei Wang
3e2bbda757 Merge "Fix parcel issues with empty service uuid. Added tests." into lmp-dev 2014-07-22 16:29:55 +00:00
Wei Wang
03259472b1 Fix parcel issues with empty service uuid. Added tests.
b/16490816

Change-Id: If26a4731f22e83df4f5ded2ad76901de6c49a010
2014-07-23 10:23:10 -07:00
Jeff Davidson
3824db6141 Delete most network scorer tests from coretests.
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
2014-07-23 09:40:24 -07:00
Wei Wang
685c175890 More API modification of BLE APIs (1/2).
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
2014-07-18 18:31:00 -07:00
Guang Zhu
7d41c138d2 am f59ce468: am b477fc6c: Merge "add command to enable bt snoop log" into klp-modular-dev
* commit 'f59ce46880ebe2c2466a2c862ec2ed401f635d51':
  add command to enable bt snoop log
2014-07-19 00:33:58 +00:00
Guang Zhu
f59ce46880 am b477fc6c: Merge "add command to enable bt snoop log" into klp-modular-dev
* commit 'b477fc6c2fcd04e6952a7eec856d30b64fd95e0c':
  add command to enable bt snoop log
2014-07-18 03:31:43 +00:00
Guang Zhu
946f207d3d add command to enable bt snoop log
Change-Id: I22a6482a90c2bb976a5ce44946e9f0fb8b59e6b2
2014-07-17 20:24:56 -07:00
dcashman
9d2f441f9b Initial KeySet API.
Previously submitted but reverted due to doc-compilation bug.

Bug: 6967056
Change-Id: I9bd7ef299a4c92c4b327f5b5d7e951f0753b4c8a
2014-07-14 12:50:51 -07:00
dcashman
5de7377fec Revert "Initial KeySet API."
This reverts commit 9a643fe02bc960e266484547dda5572b094a4c72.
2014-07-12 13:04:20 -07:00
dcashman
405912bce0 Initial KeySet API.
Bug: 6967056
Change-Id: I47a01bd5dc25591cc70f58f38920ad0a021094ae
2014-07-12 12:09:40 -07:00
Wei Wang
af74e66e29 Unhide Bluetooth batch APIs. Deprecate BluetoothAdpater scan APIs. (1/2)
Change-Id: Ib0c4ea6c8372a15473269660355fb5ccf4284457
2014-07-11 11:06:10 -07:00
Narayan Kamath
4b8299b844 Merge "Add a test multiarch app." 2014-07-10 20:16:40 +00:00
Narayan Kamath
e99f69a484 Add a test multiarch app.
Will be used in an upcoming change for PackageManagerService
handling of multiArch APKs.

Change-Id: I363a02ce7b91569bb86880cf511ab9fbfcf2665c
2014-07-11 15:07:49 +01:00
Yohei Yukawa
638e4787ba Add simple InputMethodSubtypeTest
Change-Id: I87105c4935adfca249378e667161d2998cf77840
2014-07-11 19:51:19 +09:00
Yohei Yukawa
a52aeda808 Consolidate test cases for InputMethodSubtype
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
2014-07-11 23:08:34 +09:00
dcashman
989eb371bf Change key-set/public-key manifest relationship.
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
2014-07-10 18:23:11 -07:00
Yohei Yukawa
0b01e7fc58 Polish new IME API for L: CursorAnchorInfo
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
2014-07-10 20:23:26 +09:00
Yohei Yukawa
eea0b8b051 Fix inconsistencies in CursorAnchorInfo#equals
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
2014-07-10 03:06:04 +00:00
Maxim Siniavine
6b1e88e5d0 Add test apps for shared uid package manager test
Change-Id: I00c0db7a122774260d93d06212f4485210f86532
2014-07-09 19:36:19 -07:00
dcashman
ca76cccb61 Merge "Initial work for key rotation." 2014-07-02 18:22:50 +00:00
dcashman
55b1078e2a Initial work for key rotation.
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
2014-07-02 12:51:28 -07:00
Yohei Yukawa
b5268dcc17 Require coordinate transformation matrix if necessary
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
2014-07-02 16:03:16 +09:00
Jeff Davidson
b6646a8987 Allow network scorers to provide an opt-in activity.
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
2014-06-30 14:06:40 -07:00
Yohann Roussel
85fa4e19b2 Manually disable dexopt for multidex test apps.
Because at the moment, omitting to explicitly disable dexopt produces apks with
no classes.dex inside.

Change-Id: I44ffc6b013a7b119c7deb332cf60f4fe8a11068c
2014-06-30 16:48:20 +02:00
Yohei Yukawa
9a9c112737 Fix test failures due to unexpected overload resolution
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
2014-06-27 17:13:32 +09:00
Jeff Davidson
a3b9ca5ade Merge "Use/expose the receiver's label as the scorer name." 2014-06-26 08:19:24 +00:00
Jeff Davidson
c741553644 Use/expose the receiver's label as the scorer name.
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
2014-06-24 09:24:19 -07:00
Lorenzo Colitti
76ea6c68d3 Teach LinkProperties whether it's provisioned or not.
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
2014-06-26 03:23:31 +09:00
Lorenzo Colitti
64c43b1948 Minor changes to RouteInfo.
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
2014-06-25 18:22:12 +00:00
Lorenzo Colitti
1603eadc5a Unbreak LinkPropertiesTest.
This was broken by the changes that made addRoute add routes
only if they did not already exist.

Change-Id: I1d227df9223fbecf106efde05b709f320824ee9d
2014-06-25 18:19:47 +00:00
Jeff Sharkey
275e085d5a Stronger PackageParser contract, more split work.
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
2014-06-18 16:04:13 -07:00
Lorenzo Colitti
0f50bbfe45 Merge "IpPrefix improvements." 2014-06-17 04:11:04 +00:00
Lorenzo Colitti
8c6c2c3c92 IpPrefix improvements.
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
2014-06-17 11:18:53 +09:00
Adam Lesinski
e75b2c2677 Fix runtime overlay tests
The runtime overlay tests were crafting bad locales.

Change-Id: I33c87e71752756f40a954db9f01ea3cdde488a42
2014-06-17 01:22:57 +00:00
Jeff Sharkey
c4858a2ba9 Switch PackageParser to reference single path.
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
2014-06-16 13:20:18 -07:00