Commit Graph

8273 Commits

Author SHA1 Message Date
con
5c7de22a06 Merge "Fix StateMachine init/quit race." 2017-11-02 20:05:09 +00:00
Calvin On
f5b9f7b50e Fix StateMachine init/quit race.
The quitNow method places the SM_QUIT_CMD at the front
of the queue. This can cause StateMachine to throw exception
if it has not yet processed the SM_INIT_CMD from start().

Bug: 67370902
Test: make checkbuild
Test: StatMachineTest unittest
Change-Id: I409242845854e70b77ad9b2378b69faed076847c
Merged-In: I7cec7bb91e0447e3c565d33cb7c34ccf59566639
2017-11-02 11:40:47 -07:00
Calin Juravle
7ba73dd509 [framework] Add check that classpath is up to date to getDexOptNeeded
(cherry picked from commit 576e6c0cbb)

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
2017-11-01 08:39:01 -07:00
Shubham Ajmera
3aeca17aa9 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 246dccf932)

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
2017-10-31 14:51:57 -07:00
Mathieu Chartier
c477ab141f Add property for system server compiler filter
The property is dalvik.vm.systemservercompilerfilter, this changes
if dexopt is needed.

(cherry picked from commit 5e07a0d9ca)

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

Merged-In: I2ef3737f24816a4cb75e718abf274a891eb9fda1
Change-Id: I2ef3737f24816a4cb75e718abf274a891eb9fda1
2017-10-31 11:28:43 -07:00
Jeff Sharkey
1285cfd48f 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 c8b29ac6f0)

Bug: 36056324
Test: builds, boots
Merged-In: Ibdf1ee4e8885680e106df6a9269b6309ddc61af8
Change-Id: Ibdf1ee4e8885680e106df6a9269b6309ddc61af8
2017-10-31 09:50:50 -07:00
Tobias Thierer
66d1933ce0 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
2017-10-30 17:53:11 +00:00
Etan Cohen
d870cd33f5 Merge "Add Runnable mechanism to WakeupMessage"
am: 5964b55654

Change-Id: Iab0414f644223d69602e8e93a636eaa46137d873
2017-10-21 02:17:30 +00:00
Etan Cohen
1861ea9df4 Add Runnable mechanism to WakeupMessage
The WakeupMessage object provides a mechanism to create an Alarm
which will wake-up the device and deliver a message to a Handler.

Add a Runnable mechanism as an alternative to the message.

Bug: 67276378
Test: unit test
Change-Id: Icf5f03b2b25a340273f9d3fcd09f182216ea6238
2017-10-20 13:32:00 -07:00
Tobias Thierer
07efe116b1 Merge "Framework: Prefer android.system.Os over libcore.io.Libcore.os"
am: 5f04db96b3

Change-Id: If85216d03022708787a7218e494434453d5548e3
2017-10-19 14:25:12 +00:00
Tobias Thierer
6217e37d30 Framework: Prefer android.system.Os over libcore.io.Libcore.os
This is a pure refactoring with no a behavior change other than
that these calls now go through android.system.Os, which immediately
delegates to Libcore.os.

This is a first step towards separating framework (via
android.system.Os) vs. libcore (via Libcore.os) clients of these
low level APIs. Separating these is a prerequisite towards moving
the API parts of android.system into framework, and moving the
rest into a different package in libcore.

Test: Treehugger
Bug: 67901714

Change-Id: Ifd8349ec5416e5693f40dba48fdf2bef651b7d81
Merged-In: Ifd8349ec5416e5693f40dba48fdf2bef651b7d81
2017-10-18 14:53:57 +01:00
Bookatz
20e22f6248 Batterystats handles nested unoptimized ble scans
When a ble scan starts, it tells batterystats whether that scan is
unoptimized. When the scan stops, batterystats is not informed of
whether the stopped scan was unoptimized. Because the ble scan call
could not be nested (couldn't call start twice without stopping first),
this was fine, but now nesting is possible, so batterystats needs to
know whether the stopped ble scan is unoptimized.

Bug: 63456783
Test: runtest -x frameworks/base/core/tests/coretests/src/com/android/internal/os/BatteryStatsTests.java
Test: no new errors when run cts-dev -m CtsIncidentHostTestCases -t com.android.server.cts.BatteryStatsValidationTest#testUnoptimizedBleScans

Change-Id: Ia73f294cf1807ddaf20f1c0bcc28add001cac78c
Merged-In: Ia73f294cf1807ddaf20f1c0bcc28add001cac78c
(cherry picked from commit 94c5a313d7)
2017-10-16 23:18:30 +00:00
Andreas Gampe
dcb8cf8732 Merge "LoggingPrintStream: Make visible for testing"
am: 7d1789867b

Change-Id: If6e464f6840b66deb6f6c61b0ca96d847444e910
2017-10-10 21:11:10 +00:00
Andreas Gampe
e2456d602f LoggingPrintStream: Make visible for testing
The class must be public to avoid test issues. If the class is
package-private, the test would have to be in the boot class-
path:

 Rejecting re-init on previously-failed class java.lang.Class<com.android.internal.os.LoggingPrintStreamTest$TestPrintStream>: java.lang.IllegalAccessError: Class com.android.internal.os.LoggingPrintStream extended by class com.android.internal.os.LoggingPrintStreamTest$TestPrintStream is inaccessible (declaration of 'com.android.internal.os.LoggingPrintStreamTest$TestPrintStream' appears in /data/app/com.android.frameworks.coretests-SD7GJmYE507ACoE9gu2mnw==/base.apk)
   at java.lang.Object java.lang.reflect.Constructor.newInstance0(java.lang.Object[]) (Constructor.java:-2)
   at java.lang.Object java.lang.reflect.Constructor.newInstance(java.lang.Object[]) (Constructor.java:334)
   at junit.framework.Test junit.framework.TestSuite.createTest(java.lang.Class, java.lang.String) (TestSuite.java:61)

Test: m
Test: runtest -x frameworks/base/core/tests/coretests/src/com/android/internal/os/LoggingPrintStreamTest.java
Change-Id: I26cead7954cf4309c8b3e16994c35a3f4a9eb798
2017-10-10 09:09:26 -07:00
Chalard Jean
0f4421873e Merge "Add some useful helpers and constants."
am: ed8d236319

Change-Id: I3a934e19ece91bf5957e4c5fa289bbc1a6242915
2017-10-06 09:48:32 +00:00
Chalard Jean
e5659bd316 Add some useful helpers and constants.
Test: Pulled out of a client app ; the client app is behaving
Test: identically to how it was behaving before. Wrote unit
Test: tests in frameworks-net.

Change-Id: I397137748a95c65cee2e1e1b243a1a260e83a6f7
2017-10-06 13:38:46 +09:00
Tobias Thierer
8d4e36b1e8 Merge "Fix documentation generation with OpenJDK 9 javadoc."
am: ed6ae8f2b1

Change-Id: I8bd1f9b3994f480d55d7c885b2c24227a67915e9
2017-10-05 23:12:37 +00:00
Tobias Thierer
85edc2bc95 Fix documentation generation with OpenJDK 9 javadoc.
"make docs" breaks ("lint: @attr must be a field") on three @attr ref
statements in LinearLayoutManager. These are the only @attr ref
statements that reference the support library's resources from
framework (the others are within framework or within the support
library); it may be that the R class that they're referencing is
merely in the wrong package, but changing it to com.android.internal.R
or android.R didn't fix the issue.

Since LinearLayoutManager is an internal class, it's not worth the
effort of trying to make this work. This CL drops the three offending
@attr ref statements, thereby fixing the build.

Bug: 62049770
Test: Treehugger

Change-Id: Ife01201019f4fffd5552da11591661539ca40fdd
2017-10-03 12:45:57 +01:00
Hugo Benichi
a2161c5ccb Merge changes Ia47e566b,Ib94d79a9
am: b9e2ddfc10

Change-Id: I0cac456f778db78d76d2225b79ce42526a6d2d19
2017-09-26 11:46:30 +00:00
Hugo Benichi
67c5e03b54 Extract RingBuffer class from NetdEventListenerService
This patch takes out the ring buffer array added for NFLOG wakeup packet
events logging and extract it into its own class for reuse. This new
RingBuffer class has the two minimal useful functions append() and
toArray().

Bug: 65164242
Bug: 65700460
Test: runtest frameworks-net, with new unit test
Change-Id: Ib94d79a93f4e99661b7d0fac67117b91d57af980
2017-09-26 14:14:16 +09:00
Nicolas Geoffray
79d4ef6caa Merge "Special handling of priv-apps in Zygote."
am: 46af70cad9

Change-Id: I1dbf2313c9ee1c014854630eac5f1429548ae7f6
2017-09-19 11:56:05 +00:00
Nicolas Geoffray
46af70cad9 Merge "Special handling of priv-apps in Zygote." 2017-09-19 11:47:58 +00:00
Narayan Kamath
66d7275d39 Merge changes Id931d441,I83faf974
am: 89c94f67b4

Change-Id: Ifc090e141092bcee11704e45d6f97f642040d002
2017-09-14 23:57:14 +00:00
Narayan Kamath
ac0b4be198 Zygote: Improve logging and error handling during connections.
Before this change, we were throwing a checked exception on success
and returning on failure. This made it hard to figure out where / when
something was going wrong. This change switches things around to throw
a RuntimeException when something goes wrong and to return a Runnable
on success. This lets us make stronger assertions in both the parent
and the child process about their state and expected return values.

This change also upgrades the severity of several errors that we would
earlier just ignore. We will now reject the command and terminate the
connection to the client when we encounter these errors such as:

- Malformed arguments
- Any ZygoteSecurityException, such as thown thrown by
  applyUidSecurityPolicy and applyInvokeWithSecurityPolicy.
- Any error in setting up pipes etc. to facilitate communication
  with child processes.

(cherry picked from commit bf99d06003)

Bug: 13618569
Test: Manual
Merged-In: Id931d44135ae2e4ede1bbac6a4b187f6c139e1fd
Change-Id: Id931d44135ae2e4ede1bbac6a4b187f6c139e1fd
2017-09-13 18:40:59 -07:00
Narayan Kamath
a3d4230b92 Zygote: Fix race condition on package preloads.
Before this change, ZygoteProcess.preloadPackageForAbi returned
as soon as the command was written to the zygote socket and not
after the preload completed. This meant that there was a small
window of time before the server side of the socket polled its FDs
where a second command could be written to the zygote socket. This
would lead to only one of the commands being processed and the
other being dropped. The client side of that socket would then wait
forever for a response and bring down the system once the watchdog
timeout was hit.

Example failure case :
--------------
system_server:send command(preloadPackage)
system_server:send command(fork)
zygote:poll & process command(preloadPackage)  // the fork command is dropped.

Example of normal operation :
------------------
system_server:send command(preloadPackage)
zygote:poll & process command(preloadPackage)
system_server:send command(fork)
zygote:poll & process command(fork)

This change makes preloadPackageForAbi synchronous, which ensures
that each POLLIN event corresponds to precisely one command.

(cherry picked from commit 24a3306c32)

Bug: 62886909
Bug: 13618569
Test: Manual
Contributed-By: yuqianyu@huawei.com

Merged-In: I83faf974c9a70a6ab18323f692c1981784e4c56a
Change-Id: I83faf974c9a70a6ab18323f692c1981784e4c56a
2017-09-13 18:37:05 -07:00
Nicolas Geoffray
1f88ad66e1 Special handling of priv-apps in Zygote.
If pm.dexopt.priv-apps is set to false, disable verifier and
only allow loading oat files from system.

bug: 30972906
bug: 63920015

Test: works as expected when pm.dexopt.priv-apps is true or false
Change-Id: Ib9e80c9b7b4106e82c0b9d1c7fbb8065c190ac1f
2017-09-13 14:21:00 +01:00
Nicolas Geoffray
1bf40f63b3 Missed these renames in last commit.
Test: builds
Change-Id: I6c2d03accc55aef8381f38f9b182f2367e25a915
2017-09-13 12:59:21 +01:00
Nicolas Geoffray
8dbb5e51c8 resolve merge conflicts of e017dae587 to stage-aosp-master
Test: I solemnly swear I tested this conflict resolution.
Change-Id: I7008986501028ec9bee0505d41aae3ff27872b50
2017-09-13 11:08:36 +01:00
Nicolas Geoffray
81edac4037 Rename debugFlags to runtimeFlags.
Also now pass the flags to the forked process through --runtime-flags instead
of converting to command line arguments and converting back to an integer.

bug: 30972906
bug: 63920015

Test: builds

Change-Id: I7f10c43dd916ca2d3b9b5141f17261eb7b64f49a
2017-09-12 15:54:23 +01:00
Julia Reynolds
a1bd36ada7 Merge "Let the foreground service channel be blocked" into oc-dr1-dev
am: 6614a2e5d0

Change-Id: I5d1e93740b2a53c7cb85fc105bca6863f7e27577
2017-08-17 23:13:26 +00:00
Julia Reynolds
c23a2e67ac Let the foreground service channel be blocked
And update the channel name

Change-Id: Ic4b909d31b38b9e1ee05f9b3e4e5c91efc6752b1
Fixes: 36891897
Test: manual
2017-08-17 14:11:45 -04:00
Luis Hector Chavez
64f1d42e6c Merge "Improve container capability bounding in containers" am: 586fd52b34 am: ed05287c55
am: 755baf92b4

Change-Id: I07eb375c2b86651fd7d65f944b19161d2c977df4
2017-08-16 22:11:14 +00:00
Luis Hector Chavez
755baf92b4 Merge "Improve container capability bounding in containers" am: 586fd52b34
am: ed05287c55

Change-Id: I6068105d31418ec7b1c89f099bf635618147c227
2017-08-16 21:43:28 +00:00
Luis Hector Chavez
ed05287c55 Merge "Improve container capability bounding in containers"
am: 586fd52b34

Change-Id: I7c67b571164e67b3e4a8ae9c9a2701e338693a4b
2017-08-16 21:32:13 +00:00
Treehugger Robot
586fd52b34 Merge "Improve container capability bounding in containers" 2017-08-16 21:16:50 +00:00
Luis Hector Chavez
72042c99a6 Improve container capability bounding in containers
This change stops relying on the ro.boot.container property for dropping
a subset of capabilities and instead relies on the effective capability
mask of the Zygote process, prior to forking.

When Android is running in a pid/mount/net/user namespace, even if a
particular capability is present, some operations that require that
capability check whether it is allowed in the init namespace (instead of
in the current namespace), so they would fail even with the capability
granted within the namespace. So, explicitly dropping the capabilities
from the beginning allows for clearer signalling of which operations can
be expected to work instead of failing silently for mysterious reasons.

Bug: 63579953
Test: aosp_bullhead-eng still boots
Test: Running Zygote without CAP_SYS_MODULE makes it such that
      system_server does not request it.

Change-Id: I1d18d13341bcc04e701fd14092e7e94961728620
2017-08-16 08:21:58 -07:00
Hugo Benichi
1ada5660ce Merge "More OWNERS file for core networking team" am: 2827f21740 am: 1da7985327
am: 63fdcd08f8

Change-Id: Ie901f6770c2aa9b95f6ccdd9a78bee8d44a0d041
2017-08-16 12:23:15 +00:00
Hugo Benichi
63fdcd08f8 Merge "More OWNERS file for core networking team" am: 2827f21740
am: 1da7985327

Change-Id: Ieb04d616adf0969d2f4f468bf93fdc4b0aac75c5
2017-08-16 12:10:19 +00:00
Hugo Benichi
1da7985327 Merge "More OWNERS file for core networking team"
am: 2827f21740

Change-Id: Icae3bc4dbb2cd094c728d98aea02d4009aaa0e0b
2017-08-16 11:57:50 +00:00
Hugo Benichi
b8f1e4e6e4 More OWNERS file for core networking team
Test: build
Change-Id: I7cef188e29f487025aee04ab0c1a003bb32a7048
2017-08-16 18:40:07 +09:00
Christofer Åkersten
28cc38c435 Merge "Inherit theme dark/light scheme for MediaRouter dialogs/button" into oc-dr1-dev
am: 8cbb5ffd5b

Change-Id: I4572f4f221c6b50cf41ddb094cf7bb9d2d48bfbd
2017-08-09 17:41:48 +00:00
TreeHugger Robot
8cbb5ffd5b Merge "Inherit theme dark/light scheme for MediaRouter dialogs/button" into oc-dr1-dev 2017-08-09 17:31:48 +00:00
Christofer Åkersten
fb09ecfdd7 Inherit theme dark/light scheme for MediaRouter dialogs/button
Bug: 64291950
Test: manual
Change-Id: I20694ce512a794a3c6574108b80dcfb4979b3b39
Merged-In: I20694ce512a794a3c6574108b80dcfb4979b3b39
2017-08-09 16:28:50 +09:00
Andrew Sapperstein
3a7771064a Merge "Make accessibilityInversionEnabled public" into oc-dr1-dev
am: 3108a06656

Change-Id: I13fa736dbb5d468381ea32e75c7a69f18edd546b
2017-08-09 00:19:56 +00:00
Andrew Sapperstein
5a71a0f520 Make accessibilityInversionEnabled public
Need to use it in Settings.

Bug: 64256644
Test: existing
Change-Id: I9f9d2655e35ee2ad0dc9f9980cc9993f7b084025
2017-08-08 13:57:49 -07:00
Jason Monk
561c120990 Merge "Move shutdown UI to sysui (when possible)" into oc-dr1-dev
am: de0c539dd4

Change-Id: Ide08868338f55a826f36ebc8f70c4d1decaefb70
2017-08-08 17:00:25 +00:00
Jason Monk
b4302182bc Move shutdown UI to sysui (when possible)
Test: click restart or power off in global actions
Change-Id: I0dc30a9772bbfb3cd3c3568f157e854fef87bf87
Fixes: 63576195
Fixes: 64125291
2017-08-08 09:13:51 -04:00
Colin Cross
2130e26bca Merge "Use class retention for VisibleForTesting annotations" am: 5724841581 am: 94d5456d0e
am: a5538805d9

Change-Id: I83547deec96de1a26318c30d9ed01865d1be4254
2017-08-07 19:56:23 +00:00
Colin Cross
a5538805d9 Merge "Use class retention for VisibleForTesting annotations" am: 5724841581
am: 94d5456d0e

Change-Id: I3309ee0b936eb9d36a453beb084be31e046c1bf5
2017-08-07 19:44:57 +00:00
Colin Cross
94d5456d0e Merge "Use class retention for VisibleForTesting annotations"
am: 5724841581

Change-Id: Iaa9262ad627b49d58b46760d7aecd3a985c3a79a
2017-08-07 19:32:21 +00:00