OSDN Git Service

android-x86/frameworks-base.git
6 years agoEnsure dexopt is executed only with consistent package data
Calin Juravle [Fri, 11 Aug 2017 00:23:00 +0000 (17:23 -0700)]
Ensure dexopt is executed only with consistent package data

The main objects bookkeeping packages (PackageParser.Package and its
corresponding ApplicationInfo) may be updated at different times. This
creates a window where the data stored in the ApplicationInfo is out of
date with respect to the data stored in PackageParser.Package.

During install, the two objects are "synced" during doRename which updates
the package code paths.

This CLs moves the dexopt invocation from the install flow after doRename
to ensure that dexopt logic gets a consistent view of the package.

(cherry picked from commit 4c2b9555b7b52359ea14e201d7ec61b8edaf6232)

Bug: 64493351

Test: run cts-dev -t android.appsecurity.cts.ClassloaderSplitsTest -m
CtsAppSecurityHostTestCases
      inspect oat files after
adb install-multiple CtsClassloaderSplitApp/CtsClassloaderSplitApp.apk
    CtsClassloaderSplitAppFeatureA/CtsClassloaderSplitAppFeatureA.apk
    CtsClassloaderSplitAppFeatureB/CtsClassloaderSplitAppFeatureB.apk

Merged-In: I9131bcf49eb473a8fdc5eb0032d94080d4e9e94b
Change-Id: I9131bcf49eb473a8fdc5eb0032d94080d4e9e94b

6 years agoMerge "TokenWatcher: fix bug in repeated calls to acquire()."
Charles He [Thu, 2 Nov 2017 10:36:01 +0000 (10:36 +0000)]
Merge "TokenWatcher: fix bug in repeated calls to acquire()."

6 years agoMerge "Allow equality checking and hash for HIDL interface proxies."
Treehugger Robot [Thu, 2 Nov 2017 03:39:42 +0000 (03:39 +0000)]
Merge "Allow equality checking and hash for HIDL interface proxies."

6 years agoMerge "Frameworks: Fix idle-background-job flag"
Treehugger Robot [Thu, 2 Nov 2017 03:31:30 +0000 (03:31 +0000)]
Merge "Frameworks: Fix idle-background-job flag"

6 years agoMerge "Fix dexopt dump"
Treehugger Robot [Thu, 2 Nov 2017 02:29:50 +0000 (02:29 +0000)]
Merge "Fix dexopt dump"

6 years agoAllow equality checking and hash for HIDL interface proxies.
Yifan Hong [Wed, 1 Nov 2017 00:32:15 +0000 (17:32 -0700)]
Allow equality checking and hash for HIDL interface proxies.

IFoo.Proxy.equals() -> HidlSupport.equals() ->
IHwInterface.asBinder().equals() -> HwRemoteBinder.equals().
IFoo.Stub.equals() -> default Object.equals()

Notice that IHwInterface.asBinder() returns mRemote(of type
HwRemoteBinder) for proxies and itself (of type HwBinder) for stubs.
If IFoo.Stub.asBinder() had not return "this", its equals()
should also be overridden.

Bug: 68727931
Test: hidl_test_java

Change-Id: I916983d7bc739747145e2ebb6830226310fd4980

6 years agoMerge "Fix getSimOperator to return mccmnc based on subId"
Pengquan Meng [Thu, 2 Nov 2017 01:11:29 +0000 (01:11 +0000)]
Merge "Fix getSimOperator to return mccmnc based on subId"

6 years agoFix dexopt dump
Calin Juravle [Tue, 19 Sep 2017 00:40:48 +0000 (17:40 -0700)]
Fix dexopt dump

Dexopt dump prints the status of primary oat file instead of secondary.
We cannot get the secondary dex file status without an installd call so
this CL just removes the status line.

(cherry picked from commit cf72222f41f4ce73302274d2e8b4fcc735c3bd00)

Bug: 65843255
Test: adb shell dumpsys package dexopt
Merged-In: I76028704267eed68ba8c51f45ce8b54f403cc255
Change-Id: I76028704267eed68ba8c51f45ce8b54f403cc255

6 years agoFrameworks: Fix idle-background-job flag
Andreas Gampe [Thu, 2 Nov 2017 00:05:53 +0000 (17:05 -0700)]
Frameworks: Fix idle-background-job flag

Correctly pass flag to installd.

Bug: 68025088
Test: m
Test: manual test
Change-Id: Ia5b19b1f1375a3c8b0c8e19b1978dcba29c83470

6 years agoMerge "Added interface to get the decimal digit from hex ICCID."
Jordan Liu [Wed, 1 Nov 2017 23:20:39 +0000 (23:20 +0000)]
Merge "Added interface to get the decimal digit from hex ICCID."

6 years agoMerge "Add @TestApi for EMBMS APIs needed for CTS"
Hall Liu [Wed, 1 Nov 2017 22:35:51 +0000 (22:35 +0000)]
Merge "Add @TestApi for EMBMS APIs needed for CTS"

6 years agoMerge "make update-api"
Treehugger Robot [Wed, 1 Nov 2017 22:18:39 +0000 (22:18 +0000)]
Merge "make update-api"

6 years agoMerge changes from topic "bgdex2oatd_cherry_pick"
Treehugger Robot [Wed, 1 Nov 2017 21:55:02 +0000 (21:55 +0000)]
Merge changes from topic "bgdex2oatd_cherry_pick"

* changes:
  Use dex2oatd when available on debug builds
  Add package use info to dexopt dump

6 years agoMerge changes Ibf9e7b9e,I8031590c
Treehugger Robot [Wed, 1 Nov 2017 21:53:50 +0000 (21:53 +0000)]
Merge changes Ibf9e7b9e,I8031590c

* changes:
  Record usage information per split
  Use PackageUseInfo in DexOptimizer

6 years agoMerge changes Ie8b78c7c,If02081d2
Treehugger Robot [Wed, 1 Nov 2017 21:53:12 +0000 (21:53 +0000)]
Merge changes Ie8b78c7c,If02081d2

* changes:
  Use the class loader context when optimizing secondary dex files
  Add DexClassLoader to the list of supported class loaders

6 years agoMerge changes I7bd99fc0,I329bc929
Treehugger Robot [Wed, 1 Nov 2017 21:52:34 +0000 (21:52 +0000)]
Merge changes I7bd99fc0,I329bc929

* changes:
  Save PackageDexUsage on PMS shutdown
  Record dex files users in the dex-usage list

6 years agoUse dex2oatd when available on debug builds
David Sehr [Wed, 25 Oct 2017 21:28:29 +0000 (14:28 -0700)]
Use dex2oatd when available on debug builds

Enable use of dex2oatd for background dexopt service for eng and
userdebug builds.  This allows us to have more extensive checking
on dogfood devices.

(cherry picked from commit 2118ec4d7e176b0ea96a79ca3b45e1cca9724eed)

Bug: 68025088
Test: runtest -x services/tests/servicetests/src/com/android/server/pm/dex/DexoptOptionsTests.java
Merged-In: I292ac7f355350edc8cf06f417740226ee6bac65d
Change-Id: I292ac7f355350edc8cf06f417740226ee6bac65d

6 years agoRecord usage information per split
Calin Juravle [Fri, 4 Aug 2017 08:42:17 +0000 (01:42 -0700)]
Record usage information per split

Increase the granularity of usage information to store data on each split
separately.

Now, splits get their own useByOtherApps flag and can be compiled
speed-profile when only the primary apk is loaded by other apps.

(cherry picked from commit 52a452cf685c56dc6872dbb19e822736484f672f)

Bug: 64124380
Test: runtest -x
services/tests/servicestests/src/com/android/server/pm/dex/*

Merged-In: Ibf9e7b9e67db9c6f0f45dc695bce8fbeb7be20ae
Change-Id: Ibf9e7b9e67db9c6f0f45dc695bce8fbeb7be20ae

6 years agoAdd package use info to dexopt dump
Calin Juravle [Mon, 7 Aug 2017 02:20:19 +0000 (19:20 -0700)]
Add package use info to dexopt dump

(cherry picked from commit 41a57a65b2a4fb51faa55bcba57ebe544e9f799f)

Bug: 64153885
Test: adb shell dumpsys package dexopt
Merged-In: I57768076de821980b1de84d5fe44ab642ceebeba
Change-Id: I57768076de821980b1de84d5fe44ab642ceebeba

6 years agoUse PackageUseInfo in DexOptimizer
Calin Juravle [Fri, 4 Aug 2017 02:48:37 +0000 (19:48 -0700)]
Use PackageUseInfo in DexOptimizer

Pass the PackageUseInfo directly to DexOptimizer and use it to detect if a
package is used by other apps. Move the usage checks closer to dexopt so
that they can be easily adapted when we add usage info for each of the
app's code paths separately.

This is a refactoring CLs to reduce the size and complexity of the
upcoming CLs which record the usage info for each of the application
splits.

(cherry picked from commit 3b74c41776da66562a68b12a0fed8d20b6952868)

Bug: 64124380
Test: runtest -x
services/tests/servicestests/src/com/android/server/pm/dex/*

Merged-In: I8031590cdaff81ab1792ca19baddb6cb36dc021d
Change-Id: I8031590cdaff81ab1792ca19baddb6cb36dc021d

6 years agoUse the class loader context when optimizing secondary dex files
Calin Juravle [Sat, 22 Jul 2017 19:33:41 +0000 (12:33 -0700)]
Use the class loader context when optimizing secondary dex files

Record the class loader context for secondary dex loads and pass it to
dexopt during compilation.

The class loader context is passed from libcore every time a
BaseDexClassLoader is created and its recorded in the package dex usage
file.

Note that the context may be:
- unknown: if the dex file was not use after the the upgrade and its
context was not yet updated
- unsupported: if any of the class loaders from the loading context is
unsupported (only PathClassLoader and DelegateLastClassLoader are
supported).
- variable: if it changes over time, form one run to another.

In all the above cases the old compilation behavior is preserved for
now.(i.e. the dex file with be compiled with SKIP_SHARED_LIBRARY_CHECK)

(cherry picked from commit f1ff36f0f99ebb41d0c7e0f3248506a56998fa3f)

Bug: 38138251
Test: runtest -x
services/tests/servicestests/src/com/android/server/pm/dex/
      adb shell cmd package compile -f -m quicken ^Csecondary-dex
com.google.android.gms

(cherry picked from commit 3bec94d78b0a66c4fa5cebd851ea33bcc51916b0)

Merged-In: Ie8b78c7c0d5de43733b3d116f8dcb3a65324cca8
Change-Id: Ie8b78c7c0d5de43733b3d116f8dcb3a65324cca8

6 years agoSave PackageDexUsage on PMS shutdown
Calin Juravle [Fri, 28 Jul 2017 23:13:35 +0000 (16:13 -0700)]
Save PackageDexUsage on PMS shutdown

This ensures that we persist the in memory data between restarts (makes
testing much easier).

(cherry picked from commit 14876bd21a4a4e7d78d36f910493269f14b2e905)

Bug: 64151900
Test: Manual, flash + restart + check the dex usage file

(cherry picked from commit 6ef7f0b8c6e72e849a220513425a9fd37804af90)

Merged-In: I7bd99fc03c3a40cbbf5d615886f857b5f84f438c
Change-Id: I7bd99fc03c3a40cbbf5d615886f857b5f84f438c

6 years agoAdd DexClassLoader to the list of supported class loaders
Calin Juravle [Tue, 25 Jul 2017 00:56:51 +0000 (17:56 -0700)]
Add DexClassLoader to the list of supported class loaders

DexClassLoader have the same behavior as PathClassLoader and is still in
use by apps. Add it to the list of supported class loaders so that it can be
recognized during secondary dex file loads.

(cherry picked from commit f8c14e920ea2911ab7657de9bc3e0a834cd7e8b9)

Bug: 38138251
Bug: 36044779

Test: runtest -x
services/tests/servicestests/src/com/android/server/pm/dex/DexoptUtilsTest.java

(cherry picked from commit d08b3156e8e908bae63dfd8f47c8e6f7ba98967f)

Merged-In: If02081d29f4d8ac917dacd877eb75985ea3895a9
Change-Id: If02081d29f4d8ac917dacd877eb75985ea3895a9

6 years agoRecord dex files users in the dex-usage list
Calin Juravle [Sat, 4 Feb 2017 00:55:49 +0000 (16:55 -0800)]
Record dex files users in the dex-usage list

Add the users of the dex files in the package-dex-usage.list. This will
provide more data on why a package is marked as shared and not optimized
using profiles.

(cherry picked from commit 535a4753e313bdc2ae3e8be9f50606b82edcce0c)

Test: runtest -x .../DexManagerTests.java
      users of the dex files are recorded in package-dex-usage.list

Bug: 63778376
Merged-In: I329bc929b17fa0afe1531f3e6879f6160157a787
Change-Id: I329bc929b17fa0afe1531f3e6879f6160157a787

6 years agoMerge "[framework] Add check that classpath is up to date to getDexOptNeeded"
Treehugger Robot [Wed, 1 Nov 2017 19:54:44 +0000 (19:54 +0000)]
Merge "[framework] Add check that classpath is up to date to getDexOptNeeded"

6 years agoMerge "Display the number of LTE signal bars is based on RSRP only"
Jordan Liu [Wed, 1 Nov 2017 18:00:31 +0000 (18:00 +0000)]
Merge "Display the number of LTE signal bars is based on RSRP only"
am: 896dd7cdb7

Change-Id: Ic2bc88b627ba2110e16103f027843c7b90131e31

6 years agoMerge "Debug: Remove obsolete InstructionCount code."
Narayan Kamath [Wed, 1 Nov 2017 17:50:16 +0000 (17:50 +0000)]
Merge "Debug: Remove obsolete InstructionCount code."
am: f5a8edeaf0

Change-Id: Ia070e4dee54ac652545b174881defca2abbfd5df

6 years agoMerge "Display the number of LTE signal bars is based on RSRP only"
Jordan Liu [Wed, 1 Nov 2017 17:47:58 +0000 (17:47 +0000)]
Merge "Display the number of LTE signal bars is based on RSRP only"

6 years agoMerge "PMSCompilerMapping: Hardcode a value for pm.dexopt.inactive"
Narayan Kamath [Wed, 1 Nov 2017 17:39:12 +0000 (17:39 +0000)]
Merge "PMSCompilerMapping: Hardcode a value for pm.dexopt.inactive"
am: dc616ab11c

Change-Id: I6b4e8042eb9c657950157dcc49121b24efc196c1

6 years agoMerge "Debug: Remove obsolete InstructionCount code."
Narayan Kamath [Wed, 1 Nov 2017 17:27:40 +0000 (17:27 +0000)]
Merge "Debug: Remove obsolete InstructionCount code."

6 years agoMerge "PMSCompilerMapping: Hardcode a value for pm.dexopt.inactive"
Treehugger Robot [Wed, 1 Nov 2017 17:23:27 +0000 (17:23 +0000)]
Merge "PMSCompilerMapping: Hardcode a value for pm.dexopt.inactive"

6 years agomake update-api
Tobias Thierer [Wed, 1 Nov 2017 17:17:14 +0000 (17:17 +0000)]
make update-api

This CL almost exactly reverts http://r.android.com/471377 .

current.txt and friends were not reflecting the latest AOSP API,
ie. "make update-api" was not a no-op like it's supposed to be.

Apart from IpSecManager.SecurityParameterIndex.finalize(), this
seems to mostly revert http://r.android.com/471377 which suggests
that the tooling change that necessitated that CL was probably
reverted without "make update-api" being run on AOSP.

No further investigation was made for what CL(s) caused this or
whether any of this API change is undesired.

Test: Treehugger
Test: make update-api

Change-Id: I5b846627e38c47abb534def97f0cab9d28b1288c

6 years agoMerge "Federate platform docs against support library API file" into stage-aosp-master
TreeHugger Robot [Wed, 1 Nov 2017 16:38:14 +0000 (16:38 +0000)]
Merge "Federate platform docs against support library API file" into stage-aosp-master

6 years ago[framework] Add check that classpath is up to date to getDexOptNeeded
Calin Juravle [Tue, 12 Sep 2017 07:58:33 +0000 (00:58 -0700)]
[framework] Add check that classpath is up to date to getDexOptNeeded

(cherry picked from commit 576e6c0cbb0231d6650dee70319d7443c601fa1b)

Bug: 62269291
Test: manual, install new apk/splits and force updates.
I used com.android.cts.classloadersplitapp as the test app.
1) install-multiple split apks with dependency: Base -> A -> B
2) push an update for A
3) adb shell cmd package compile
4) check that A & B got recompiled and that B was because a class loader
context mismatch (e.g. "ClassLoaderContext classpath element checksum
mismatch for position 1.").

Merged-In: I4092562966413dc8976c9d41b26a90bbb9e37e1e
Change-Id: I4092562966413dc8976c9d41b26a90bbb9e37e1e

6 years agoPMSCompilerMapping: Hardcode a value for pm.dexopt.inactive
Narayan Kamath [Wed, 1 Nov 2017 15:01:48 +0000 (15:01 +0000)]
PMSCompilerMapping: Hardcode a value for pm.dexopt.inactive

This is a temporary hack while we sort out the larger issues.

Test: make & flash
Bug: 68755013

Change-Id: I39f2e7f2e39f4d886ea5fa3d91648404347485ef

6 years agoDebug: Remove obsolete InstructionCount code.
Narayan Kamath [Tue, 30 May 2017 17:04:36 +0000 (18:04 +0100)]
Debug: Remove obsolete InstructionCount code.

Support for instruction counting has been removed from ART
and the VMDebug APIs in question throw UnsupportedOperationException
unconditionally.

Test: make

Change-Id: Ibcaa160f755a5708bc6fbef3a783acfc26f0ba90

6 years agoTokenWatcher: fix bug in repeated calls to acquire().
Charles He [Tue, 31 Oct 2017 09:35:15 +0000 (09:35 +0000)]
TokenWatcher: fix bug in repeated calls to acquire().

The javadoc of TokenWatcher promised to implement repeated calls to
acquire() with the same token as a no-op, but this wasn't the case.

When acquire() is called repeatedly with the same token, its associated
DeathRecipient object is replaced by a new one. The old DeathRecipient
can therefore be destroyed. This is problematic because the finalizer of
this DeathRecipient implementation calls release() on the same token,
resulting in the token being released unexpectedly.

In this CL we properly implement the documented no-op behavior.

Bug: 68368071
Test: (First, cherry-pick to internal master)
Test: cts-tradefed run cts-dev -m OsTest -t android.os.cts.TokenWatcherTest
Test: CTS verifier > Managed provisioning > Device owner tests
      > LockTask UI

Change-Id: Idfad7c88075a510ea1f8527b5a8620121a5dd7bb

6 years agoDisplay the number of LTE signal bars is based on RSRP only
Wenting Xiong [Wed, 18 Oct 2017 06:05:49 +0000 (15:05 +0900)]
Display the number of LTE signal bars is based on RSRP only

Some carriers require to display the number of LTE signal bars is
based on RSRP only.
This carrier config is used to control it.

Test: manual - Checked that the number of LTE signal bars display
which base on RSRP only can be controlled by carrier config.
Bug: 67831028

Change-Id: I077ef253f34fc503a591dcb3f01d60ab6573f298

6 years agoMerge "Change the location of current profiles for secondary dex files"
Calin Juravle [Wed, 1 Nov 2017 02:48:59 +0000 (02:48 +0000)]
Merge "Change the location of current profiles for secondary dex files"
am: 80c3c70930

Change-Id: I5ece1daa5796915c0dc6d19e791a0e81c311feb7

6 years agoMerge changes Ia0623d38,Iaabd5d8b,I579bb12f,Ia9930edd
Calin Juravle [Wed, 1 Nov 2017 02:43:04 +0000 (02:43 +0000)]
Merge changes Ia0623d38,Iaabd5d8b,I579bb12f,Ia9930edd
am: 2b1357fe90

Change-Id: Iee60be352c2e742fdd1d3f7ce15e58e455ac1ead

6 years agoMerge "Reduce app size by downgrading inactive apps"
Shubham Ajmera [Wed, 1 Nov 2017 02:31:46 +0000 (02:31 +0000)]
Merge "Reduce app size by downgrading inactive apps"
am: 8bcd66d35f

Change-Id: I4bfba3f7eb16442a7a69466cf72b22198acde6c4

6 years agoMerge "Change the location of current profiles for secondary dex files"
Treehugger Robot [Wed, 1 Nov 2017 02:22:48 +0000 (02:22 +0000)]
Merge "Change the location of current profiles for secondary dex files"

6 years agoMerge changes Ia0623d38,Iaabd5d8b,I579bb12f,Ia9930edd
Treehugger Robot [Wed, 1 Nov 2017 02:21:42 +0000 (02:21 +0000)]
Merge changes Ia0623d38,Iaabd5d8b,I579bb12f,Ia9930edd

* changes:
  Fix splits class loader context for non dependant splits
  Encode the entire class loader context for dex2oat
  Add a command line option to optimize individual splits
  Refactor the arguments passed to dexopt invocations

6 years agoMerge "Reduce app size by downgrading inactive apps"
Treehugger Robot [Wed, 1 Nov 2017 02:19:57 +0000 (02:19 +0000)]
Merge "Reduce app size by downgrading inactive apps"

6 years agoAdd @TestApi for EMBMS APIs needed for CTS
Hall Liu [Thu, 26 Oct 2017 00:19:19 +0000 (17:19 -0700)]
Add @TestApi for EMBMS APIs needed for CTS

Bug: 68049452
Test: CTS
Change-Id: I5d132ac4e67deccf41c998822f82cf94d3f2ce7f

6 years agoMerge "Adds APIs to extract/import arrays of primitive Java types out of/into a HwBlob."
Andreas Huber [Tue, 31 Oct 2017 23:08:26 +0000 (23:08 +0000)]
Merge "Adds APIs to extract/import arrays of primitive Java types out of/into a HwBlob."
am: a546c38130

Change-Id: I969ec51ed8fc6c7e11e7cfe7c4e1a3d6aa5802de

6 years agoMerge "Adds APIs to extract/import arrays of primitive Java types out of/into a HwBlob."
Treehugger Robot [Tue, 31 Oct 2017 22:59:34 +0000 (22:59 +0000)]
Merge "Adds APIs to extract/import arrays of primitive Java types out of/into a HwBlob."

6 years agoMerge changes I2ef3737f,If080281f
Mathieu Chartier [Tue, 31 Oct 2017 22:31:32 +0000 (22:31 +0000)]
Merge changes I2ef3737f,If080281f
am: bb3de35e5f

Change-Id: Ibe1af669d200057f1d91142299055694b55b5660

6 years agoChange the location of current profiles for secondary dex files
Calin Juravle [Thu, 27 Jul 2017 23:05:25 +0000 (16:05 -0700)]
Change the location of current profiles for secondary dex files

Move the secondary dex profiles inside the oat folder. This makes it
easier to clean them up and "protects" them against apps which may delete
unknown files from their directories (e.g. search).

(cherry picked from commit eec18f41e2ecbdf95dab6584e72a64f827bb89f7)

Bug: 62336157
Test: Manual: boot the device, use the app, check the profiles are
collected in the new location.

Merged-In: I2fbce7591589d162775e4652b12e4698083adcff
Change-Id: I2fbce7591589d162775e4652b12e4698083adcff

6 years agoMerge "Change storage migration to use quota APIs."
Jeff Sharkey [Tue, 31 Oct 2017 22:22:21 +0000 (22:22 +0000)]
Merge "Change storage migration to use quota APIs."
am: 0fccecc6a0

Change-Id: I15f1aa9f01b5cef928b8b68e2568bf67e1e387b9

6 years agoMerge "Reland "HIDL Java getService now the same as C++.""
Steven Moreland [Tue, 31 Oct 2017 22:16:18 +0000 (22:16 +0000)]
Merge "Reland "HIDL Java getService now the same as C++.""
am: c1616f6820

Change-Id: I5d53c369ae9cb1bc963b06e734cf9c47ad61265f

6 years agoFix splits class loader context for non dependant splits
Calin Juravle [Fri, 14 Jul 2017 23:40:07 +0000 (16:40 -0700)]
Fix splits class loader context for non dependant splits

If the app doesn't request for splits to be loaded in isolation or does
not declare inter-split dependencies, then all the splits are loaded in
the base apk class loader (in the order of they are defined).

Fix the class loader context passed to dex2oat to reflect the runtime
loading logic.

(cherry picked from commit 305aeea38f96f0b94ad4be5cb979dd9cf98cf7df)

Bug: 38138251
Test: runtest -x
services/tests/servicestests/src/com/android/server/pm/dex/DexoptUtilsTest.java

Merged-In: Ia0623d38883ae244fd16c0afb053fef016bf260a
Change-Id: Ia0623d38883ae244fd16c0afb053fef016bf260a

6 years agoEncode the entire class loader context for dex2oat
Calin Juravle [Thu, 13 Jul 2017 01:52:49 +0000 (18:52 -0700)]
Encode the entire class loader context for dex2oat

Until now the split dependencies were passed as a flatten list to dex2oat.
In the presence of DelegateLastClassLoaders this is no longer enough to
ensure the correctness of the compilation.

This CL encodes the split dependencies together with their declared class
loader in a format accepted by dex2oat.

(partially cherry picked from commit 19da1cf72e8c448743a8c27ac6d73424ae42c7ec)

Bug: 38138251
Test: runtest -x
services/tests/servicestests/src/com/android/server/pm/dex/DexoptUtilsTest.java

Merged-In: Iaabd5d8bd5e6d027a8de5a408777fd517063d9f1
Change-Id: Iaabd5d8bd5e6d027a8de5a408777fd517063d9f1

6 years agoReduce app size by downgrading inactive apps
Shubham Ajmera [Thu, 25 May 2017 00:46:36 +0000 (17:46 -0700)]
Reduce app size by downgrading inactive apps

This will trigger when the device will have low space.
Active apps here refer to the apps which were either active
in foregrond or in background and also used by other packages.
Apps which are inactive for X days downgraded to verify. X is
determined by sysprop pm.dexopt.unopt_after_inactive_days

If the system properties are not set, no effect will take place.

The above operations will take place in background dexopt service.
If user uses the app again, it will again be speed-compiled when
background dexopt service starts next time.

(cherry picked from commit 246dccf9327631597767afe418ce43ae6d07d102)

Bug: 36598475
Test: manual
* Remove the check in the code that allows downgrade only when
  the space is low on the device.
* adb root
* Set pm.dexopt_unopt_after_inactive_days to 600
* Make sure the current time of the device is correctly set
* Install 2 non system apps - B, C
* Downgrade B to extract
* Upgrade a system apps to speed-profile - E
* Downgrade a system app to quicken - G
* adb shell cmd package bg-dexopt-job

Expected Results:
* Extract - B
* Verify - C
* There should not be any entries for apps E an G
  in dalvik_cache

Merged-In: I68f9f617d6722a7ba8b00aa2181cb38a165cfc51
Change-Id: I68f9f617d6722a7ba8b00aa2181cb38a165cfc51

6 years agoAdd a command line option to optimize individual splits
Calin Juravle [Mon, 17 Jul 2017 22:23:21 +0000 (15:23 -0700)]
Add a command line option to optimize individual splits

The new option is "--split SplitName" and applies to "adb shell cmd
package compile" command.

Usage example:
adb shell cmd package compile -m speed --split split_feature_a.apk
com.android.cts.classloadersplitapp

(cherry picked from commit b6f844d28cc7a7bf2b477a904263fcbe9b26d2c4)

Bug: 38138251

Test: adb install-multiple CtsClassloaderSplitApp.apk
CtsClassloaderSplitAppFeatureA.apk CtsClassloaderSplitAppFeatureB.apk
      adb shell cmd package compile -m speed --split split_feature_a.apk
com.android.cts.classloadersplitapp
      check the status of split_feature_a
      runtest -x
services/tests/servicestests/src/com/android/server/pm/dex/DexoptOptionsTests.java

Merged-In: I579bb12fa6699f99cd3824f185bd9352fb8007c5
Change-Id: I579bb12fa6699f99cd3824f185bd9352fb8007c5

6 years agoRefactor the arguments passed to dexopt invocations
Calin Juravle [Mon, 17 Jul 2017 22:12:01 +0000 (15:12 -0700)]
Refactor the arguments passed to dexopt invocations

Wrap the arguments passed to the various performDexopt calls into the
DexoptOptions object.

This will make adding extra arguments (like compile only a split) much
easier and avoid extending quite a few internal methods.

(cherry picked from commit 1d0e83d2cee794ba576d573119e826905a4422cd)

Bug: 38138251
Test: adb shell cmd package compile ....
      adb shell cmd package bg-dexopt-job ...
      install new apps and check that they compiled
      runtest -x
services/tests/servicestests/src/com/android/server/pm/dex/DexoptOptionsTests.java

Merged-In: Ia9930edd2dceb7535d6168eceb8e3199c82b6306
Change-Id: Ia9930edd2dceb7535d6168eceb8e3199c82b6306

6 years agoMerge changes I2ef3737f,If080281f
Treehugger Robot [Tue, 31 Oct 2017 21:48:30 +0000 (21:48 +0000)]
Merge changes I2ef3737f,If080281f

* changes:
  Add property for system server compiler filter
  Compile secondary dex at boot after OTA

6 years agoMerge "Change storage migration to use quota APIs."
Treehugger Robot [Tue, 31 Oct 2017 21:47:19 +0000 (21:47 +0000)]
Merge "Change storage migration to use quota APIs."

6 years agoAdds APIs to extract/import arrays of primitive Java types out of/into a HwBlob.
Andreas Huber [Tue, 31 Oct 2017 18:51:50 +0000 (11:51 -0700)]
Adds APIs to extract/import arrays of primitive Java types out of/into a HwBlob.

Bug: 68654583
Test: hidl_test_java
Change-Id: I6ec799b423396f9212e4c221e41791adc9086410

6 years agoMerge "Reland "HIDL Java getService now the same as C++.""
Treehugger Robot [Tue, 31 Oct 2017 21:15:31 +0000 (21:15 +0000)]
Merge "Reland "HIDL Java getService now the same as C++.""

6 years agoReland "HIDL Java getService now the same as C++."
Steven Moreland [Wed, 25 Oct 2017 04:50:46 +0000 (04:50 +0000)]
Reland "HIDL Java getService now the same as C++."

Add getService(retry) for Java for C++ feature parity.

Test: hidl_test_java, boot
Bug: 67981006

Change-Id: I4e6711f8c2d7ad0ef6994ce9c480118320e1bde8

6 years agoAdd property for system server compiler filter
Mathieu Chartier [Fri, 16 Jun 2017 02:09:38 +0000 (19:09 -0700)]
Add property for system server compiler filter

The property is dalvik.vm.systemservercompilerfilter, this changes
if dexopt is needed.

(cherry picked from commit 5e07a0d9cacb1bf943f4617b1edcb930e1578dad)

Bug: 62356545
Test: adb shell setprop dalvik.vm.systemservercompilerfilter quicken
Test: adb shell stop && adb shell start

Merged-In: I2ef3737f24816a4cb75e718abf274a891eb9fda1
Change-Id: I2ef3737f24816a4cb75e718abf274a891eb9fda1

6 years agoCompile secondary dex at boot after OTA
Shubham Ajmera [Fri, 9 Jun 2017 22:40:58 +0000 (15:40 -0700)]
Compile secondary dex at boot after OTA

(cherry picked from commit ce54397368dc98182d7b4eb2ff3c142bbd87e39d)

Bug: 38413085
Test: build successful
Merged-In: If080281fb3147fea625bcafce91167e8c1439736
Change-Id: If080281fb3147fea625bcafce91167e8c1439736

6 years agoChange storage migration to use quota APIs.
Jeff Sharkey [Thu, 6 Jul 2017 17:29:06 +0000 (11:29 -0600)]
Change storage migration to use quota APIs.

New quota APIs are much faster than trying to measure manually, and
removing this last user of calculateDirectorySize() means we can
remove it once and for all.

(cherry picked from commit c8b29ac6f0340bd0c3c9eb388c4be2d446de9a59)

Bug: 36056324
Test: builds, boots
Merged-In: Ibdf1ee4e8885680e106df6a9269b6309ddc61af8
Change-Id: Ibdf1ee4e8885680e106df6a9269b6309ddc61af8

6 years agoFederate platform docs against support library API file
Alan Viverette [Wed, 5 Apr 2017 14:21:58 +0000 (10:21 -0400)]
Federate platform docs against support library API file

Bug: 36959367
Test: make docs
Change-Id: I7c6dffed25566c2bb1183aba60103c437888ba21

6 years agoMerge "Put libcore generated source files into LOCAL_INTERMEDIATES_SOURCES"
Colin Cross [Tue, 31 Oct 2017 15:33:53 +0000 (15:33 +0000)]
Merge "Put libcore generated source files into LOCAL_INTERMEDIATES_SOURCES"
am: 834be81189

Change-Id: Iec1547cc91bf3cb08a47194e91838eb77b4126d7

6 years agoMerge "Put libcore generated source files into LOCAL_INTERMEDIATES_SOURCES"
Treehugger Robot [Tue, 31 Oct 2017 15:24:11 +0000 (15:24 +0000)]
Merge "Put libcore generated source files into LOCAL_INTERMEDIATES_SOURCES"

6 years agoMerge "OWNERS: Prefer Jeff Sharkey's @android.com account over @google.com"
Tobias Thierer [Tue, 31 Oct 2017 13:41:34 +0000 (13:41 +0000)]
Merge "OWNERS: Prefer Jeff Sharkey's @android.com account over @google.com"
am: b519569eb3

Change-Id: Ib9099673a4b643b10f38a0c94ddea49949f796eb

6 years agoMerge "OWNERS: Prefer Jeff Sharkey's @android.com account over @google.com"
Treehugger Robot [Tue, 31 Oct 2017 13:26:23 +0000 (13:26 +0000)]
Merge "OWNERS: Prefer Jeff Sharkey's @android.com account over @google.com"

6 years agoMerge "Fix Robolectric Bluetooth tests"
Hansong Zhang [Tue, 31 Oct 2017 02:40:45 +0000 (02:40 +0000)]
Merge "Fix Robolectric Bluetooth tests"
am: 01c9c0e4ba

Change-Id: I7987ddaa520c202a15af03bf0791c39a1720d3b3

6 years agoMerge "Fix Robolectric Bluetooth tests"
Treehugger Robot [Tue, 31 Oct 2017 02:25:31 +0000 (02:25 +0000)]
Merge "Fix Robolectric Bluetooth tests"

6 years agoFix Robolectric Bluetooth tests
Hansong Zhang [Mon, 30 Oct 2017 23:38:16 +0000 (16:38 -0700)]
Fix Robolectric Bluetooth tests

The Bluetooth HID profile name BluetoothInputDevice is recently changed
to BluetoothHidHost, but it is not updated in the SDK for Robolectric
tests, and it causes problems with SettingsLib tests. Thus, we need to
replace the HID profile use case with PAN. This change will not
influence the test coverage.

Test: make RunSettingsLibRoboTests
Bug: 68213274
Change-Id: If30ef0e82252d8f7229815b80e403ae63ab10643

6 years agoAdded interface to get the decimal digit from hex ICCID.
Yujing Gu [Thu, 26 Oct 2017 08:06:09 +0000 (16:06 +0800)]
Added interface to get the decimal digit from hex ICCID.

The interface used to get the decimal digit from hex ICCID to
compare with the old decimal ICCID after the version upgrade.

Change-Id: Ib4690bd942cce79da544f44aaa56af21efb085aa
Test: SubscriptionInfoUpdaterTest#testHexIccId
Fixes: 62245439

6 years agoOWNERS: Prefer Jeff Sharkey's @android.com account over @google.com
Tobias Thierer [Mon, 30 Oct 2017 17:52:00 +0000 (17:52 +0000)]
OWNERS: Prefer Jeff Sharkey's @android.com account over @google.com

He prefers to use his @android.com account.

Test: Treehugger
Bug: 63673347
Exempt-From-Owner-Approval: Allow @android.com to approve this CL :)

Change-Id: Ie80cc7864de7b91ae44ad57f0bae9b859d034803

6 years agoMerge "Track moving of OkHttp facade API to new package."
Tobias Thierer [Mon, 30 Oct 2017 17:51:28 +0000 (17:51 +0000)]
Merge "Track moving of OkHttp facade API to new package."
am: 45183fc5a7

Change-Id: Ied0bf8a62be2dd2038adf3de2251419bf5f3e964

6 years agoMerge "Track moving of OkHttp facade API to new package."
Tobias Thierer [Mon, 30 Oct 2017 17:40:36 +0000 (17:40 +0000)]
Merge "Track moving of OkHttp facade API to new package."

6 years agoTrack moving of OkHttp facade API to new package.
Tobias Thierer [Tue, 24 Oct 2017 23:58:29 +0000 (00:58 +0100)]
Track moving of OkHttp facade API to new package.

Another CL in this topic moves the classes from
  libcore.net.http
to
  com.squareup.okhttp.internalandroidapi.
In jarjar'ed build targets, this becomes
  com.android.okhttp.internalandroidapi.

This facade constitutes the API via which non-libcore parts
of the Android platform (currently framework) may access
OkHttp. It's moving because libcore.net.http is already
part of libcore, and the overlap of packages is problematic
for builds with EXPERIMENTAL_USE_OPENJDK9 set to true.

Bug: 68220880
Test: Treehugger
Change-Id: Ia79966563cc0b5ab0923d54c21e54b6192d8c990
Exempt-From-Owner-Approval: Jeff Sharkey is an owner, but only one of his accounts is listed as an owner (@android.com vs. @google.com)

6 years agoMerge "Quick Settings: Avoid expand indicators shortly showing on edit"
Adrian DC [Mon, 30 Oct 2017 15:42:14 +0000 (15:42 +0000)]
Merge "Quick Settings: Avoid expand indicators shortly showing on edit"
am: 47c83a5f9d

Change-Id: Id07c6a9413fb3f647d8ead5a77012800ce5b1bc8

6 years agoMerge "Quick Settings: Avoid expand indicators shortly showing on edit"
Treehugger Robot [Mon, 30 Oct 2017 15:25:27 +0000 (15:25 +0000)]
Merge "Quick Settings: Avoid expand indicators shortly showing on edit"

6 years agoMerge "Define OWNERS for permission grant changes."
Jeff Sharkey [Mon, 30 Oct 2017 03:11:43 +0000 (03:11 +0000)]
Merge "Define OWNERS for permission grant changes."
am: 8d2a5bd42a

Change-Id: Ib91c1ecc3d673ba103f966008609d2444107eb7e

6 years agoMerge "Define OWNERS for permission grant changes."
Treehugger Robot [Mon, 30 Oct 2017 03:00:55 +0000 (03:00 +0000)]
Merge "Define OWNERS for permission grant changes."

6 years agoDefine OWNERS for permission grant changes.
Jeff Sharkey [Fri, 27 Oct 2017 18:13:37 +0000 (12:13 -0600)]
Define OWNERS for permission grant changes.

Permission grant changes need explicit approval from product and
SWE leadership to ensure that CTS/CDD requirements are met.

Change-Id: I0a84712b5c5b4e11e72bf5921b72ef6a47e7fdc1

6 years agoMerge "Add support for send Message with messaging options"
Mengjun Leng [Sun, 29 Oct 2017 17:58:43 +0000 (17:58 +0000)]
Merge "Add support for send Message with messaging options"
am: 1400db6748

Change-Id: I29ffbb64c35214761b7f6921212920cf8ffc8599

6 years agoMerge "Add support for send Message with messaging options"
Treehugger Robot [Sun, 29 Oct 2017 17:48:44 +0000 (17:48 +0000)]
Merge "Add support for send Message with messaging options"

6 years agoQuick Settings: Avoid expand indicators shortly showing on edit
Adrian DC [Tue, 24 Oct 2017 19:17:03 +0000 (21:17 +0200)]
Quick Settings: Avoid expand indicators shortly showing on edit

 * Upon entering of the Quick Settings edit view, during
    the animation, all the expand indicators are rarely
    visible for a short period of time until hidden

 * To avoid this visual glitch, hide the expand_indicator
    by default and let the code show it when necessary
    instead of hiding it for most cases

Change-Id: Ia14d9a8d63178ccb54fbcb969ddf51f06c88f35c
Signed-off-by: Adrian DC <radian.dc@gmail.com>
6 years agoMerge "EMBMS - Add TestApi and provide service override"
Hall Liu [Fri, 27 Oct 2017 23:32:58 +0000 (23:32 +0000)]
Merge "EMBMS - Add TestApi and provide service override"
am: 1fab41e771

Change-Id: I5c44393e98c432b3c7a28c7b5b1906aa80f62372

6 years agoMerge "EMBMS - Add TestApi and provide service override"
Hall Liu [Fri, 27 Oct 2017 23:19:29 +0000 (23:19 +0000)]
Merge "EMBMS - Add TestApi and provide service override"

6 years agoMerge "Prevent INTERACT_ACROSS_USERS exception in DefaultDialerManager."
Tyler Gunn [Fri, 27 Oct 2017 21:37:34 +0000 (21:37 +0000)]
Merge "Prevent INTERACT_ACROSS_USERS exception in DefaultDialerManager."
am: 6d0f1eff8b

Change-Id: I55e7f4684f8160f70548e662cd030fce565b16a9

6 years agoMerge "Enable HID Device Profile Service (2/2)"
Hansong Zhang [Fri, 27 Oct 2017 21:27:03 +0000 (21:27 +0000)]
Merge "Enable HID Device Profile Service (2/2)"
am: 7e3fbd59d1

Change-Id: I993b08e37f0ebcc7bca0b2b536348c41dd548861

6 years agoMerge "Handle alternate status values."
Tyler Gunn [Fri, 27 Oct 2017 21:13:30 +0000 (21:13 +0000)]
Merge "Handle alternate status values."
am: b728e56959

Change-Id: I1c82dd103b03eecba025a7638e06906699429c74

6 years agoMerge "Prevent INTERACT_ACROSS_USERS exception in DefaultDialerManager."
Treehugger Robot [Fri, 27 Oct 2017 21:12:24 +0000 (21:12 +0000)]
Merge "Prevent INTERACT_ACROSS_USERS exception in DefaultDialerManager."

6 years agoMerge "Enable HID Device Profile Service (2/2)"
Treehugger Robot [Fri, 27 Oct 2017 21:06:44 +0000 (21:06 +0000)]
Merge "Enable HID Device Profile Service (2/2)"

6 years agoMerge "Handle alternate status values."
Treehugger Robot [Fri, 27 Oct 2017 20:55:53 +0000 (20:55 +0000)]
Merge "Handle alternate status values."

6 years agoPrevent INTERACT_ACROSS_USERS exception in DefaultDialerManager.
Tyler Gunn [Fri, 1 Sep 2017 22:17:05 +0000 (15:17 -0700)]
Prevent INTERACT_ACROSS_USERS exception in DefaultDialerManager.

When TelecomManager methods perform a read phonestate check from a work
profile user, it is possible to get an INTERACT_ACROSS_USERS exception.
This is due to the fact that the filterByIntent method was not calling
queryIntentActivitiesAsUser.

Test: Manual
Bug: 31304557
Merged-In: I6bc7419ba260050281d83e33f7f328ec5ccb3cd8
Change-Id: I2a1869162e5a52aed986a99cc378a6c630af4a70

6 years agoPut libcore generated source files into LOCAL_INTERMEDIATES_SOURCES
Colin Cross [Fri, 27 Oct 2017 17:46:53 +0000 (10:46 -0700)]
Put libcore generated source files into LOCAL_INTERMEDIATES_SOURCES

LOCAL_SRC_FILES is expected to be a list of files relative to the
Android.mk files.  If OUT_DIR is absolute then adding generated
files to the list produces bad paths when $(LOCAL_PATH)/ is prepended
to it.  Put libcore's generated sources into
LOCAL_INTERMEDIATE_SOURCES instead.

Bug: 64930165
Bug: 68375156
Test: m checkbuild
Change-Id: I4b36fd192570ea0cd52d8537a16c078c726d97fd

6 years agoHandle alternate status values.
Tyler Gunn [Fri, 25 Aug 2017 22:01:00 +0000 (15:01 -0700)]
Handle alternate status values.

Some carriers use sendrecv to indicate a call in a conference is active,
and sendonly to indicate that the remote party has held the call.
Adding support for these status values.

This ensures that remotely held calls for these carriers are set to held.

Test: Manual
Bug: 33272103
Merged-In: Ie386bdb4c77df1305d80f604f48174794c3ee0c1
Change-Id: I4a950c4e143d5ac396b30569dbda0b1cf4e92a3e

6 years agoMerge "Ensure CallId is not null when connection creation is complete."
Tyler Gunn [Fri, 27 Oct 2017 19:26:07 +0000 (19:26 +0000)]
Merge "Ensure CallId is not null when connection creation is complete."
am: 47b23176bd

Change-Id: Ifddd99f22edfa787a3447cbaa66dd4e70a430ba3

6 years agoMerge "Ensure CallId is not null when connection creation is complete."
Treehugger Robot [Fri, 27 Oct 2017 19:09:47 +0000 (19:09 +0000)]
Merge "Ensure CallId is not null when connection creation is complete."

6 years agoMerge "Fix: AccountManagerService crashed by accessing closed db"
Tetsutoki Shiozawa [Fri, 27 Oct 2017 18:53:20 +0000 (18:53 +0000)]
Merge "Fix: AccountManagerService crashed by accessing closed db"
am: 6ac8f42d9e

Change-Id: I35f289e43a7406087a13258b5e6cbf5e179dc529

6 years agoMerge "Fix: AccountManagerService crashed by accessing closed db"
Treehugger Robot [Fri, 27 Oct 2017 18:41:59 +0000 (18:41 +0000)]
Merge "Fix: AccountManagerService crashed by accessing closed db"