Commit Graph

470 Commits

Author SHA1 Message Date
Victor Chang
4c6294208d Merge "enforceCanSetDeviceOwnerLocked should enforce userId == USER_SYSTEM for non-split user mode" into nyc-dev am: 0114263a1a
am: 51296a5483

* commit '51296a548312799b5331714b5b581a064f80d737':
  enforceCanSetDeviceOwnerLocked should enforce userId == USER_SYSTEM for non-split user mode
2016-03-04 13:26:44 +00:00
Victor Chang
0114263a1a Merge "enforceCanSetDeviceOwnerLocked should enforce userId == USER_SYSTEM for non-split user mode" into nyc-dev 2016-03-04 13:13:27 +00:00
Victor Chang
e29cd4724f enforceCanSetDeviceOwnerLocked should enforce userId == USER_SYSTEM for non-split user mode
Bug: 27453111
Change-Id: I1acdfecdf4474696e904a6a4df189453be306aa4
2016-03-04 10:34:43 +00:00
Lorenzo Colitti
e22fc07fa9 Merge changes Id78aab9c,I51096b18 into nyc-dev am: 1856df512f
am: 057f24547a

* commit '057f24547afe0e2122863cab96b8149a43d3cf2d':
  Speed up ConnectivityServiceTest.
  Make it easier to test code that uses WakeupMessage.
2016-03-02 08:59:08 +00:00
Lorenzo Colitti
bfecba2938 Speed up ConnectivityServiceTest.
1. Override WakeupMessage with an implementation that uses
   sendEmptyMessageDelayed. This allows us to replace a
   6-second sleep with a 150ms wait.
2. Change waitFor()'s polling interval from 100ms to 50ms.

With these changes ConnectivityServiceTest goes from ~9s to ~3s.

Change-Id: Id78aab9cded90a5b17f09d7f437904e179808dd2
2016-03-02 17:01:50 +09:00
Lorenzo Colitti
cdbf981889 Merge changes Ic366b532,I0179b45b into nyc-dev am: b7ffb76437
am: 6ad667122c

* commit '6ad667122c35098ab62afd92b5ac26937397825b':
  Move PinningNetworkCallback out to a new NetworkPinner class.
  Use MessageUtils in ConnectivityManager.
2016-03-02 07:04:56 +00:00
Lorenzo Colitti
b7ffb76437 Merge changes Ic366b532,I0179b45b into nyc-dev
* changes:
  Move PinningNetworkCallback out to a new NetworkPinner class.
  Use MessageUtils in ConnectivityManager.
2016-03-02 04:18:03 +00:00
Lorenzo Colitti
531a344300 Move PinningNetworkCallback out to a new NetworkPinner class.
Also add tests.

Bug: 19159232
Change-Id: Ic366b53259ee5944a8e864876425a6558c0a7216
2016-03-02 12:50:35 +09:00
Julia Reynolds
5a207e0bd9 Merge "Introduce IMPORTANCE_MIN." into nyc-dev am: abf11299b7
am: cb64b53fd3

* commit 'cb64b53fd37291e0e932af90e42ffe711f9031b9':
  Introduce IMPORTANCE_MIN.
2016-02-26 16:24:30 +00:00
Julia Reynolds
f0f629ffe4 Introduce IMPORTANCE_MIN.
Allow HUNs for >= IMPORTANCE_HIGH.
Allow full screen intents for IMPORTANCE_MAX.

Bug: 22960980
Bug: 26918284
Change-Id: Id4d2b90ea2e21563dbc716db411060d826e73699
2016-02-26 10:54:08 -05:00
Makoto Onuki
137077cddd Merge "Support safe mode properly." into nyc-dev am: a4fae1545a
am: 04d8eca54a

* commit '04d8eca54af9d46e793134a9168f658b9d68017f':
  Support safe mode properly.
2016-02-24 22:47:47 +00:00
Makoto Onuki
a4fae1545a Merge "Support safe mode properly." into nyc-dev 2016-02-24 22:20:08 +00:00
Makoto Onuki
889c088066 Support safe mode properly.
In safe mode, IPM.queryXxx() doesn't work.  Use IPM.getReceiverInfo()
directly instead.

Bug 27108276

Change-Id: Ice8f882559b8f0596a19ddb3a16395a4dc538a25
2016-02-24 13:12:01 -08:00
Dianne Hackborn
fe60596ff1 Merge "Work towards issue #26390161: Throttle syncs/jobs when system is low on RAM" into nyc-dev am: 11007fa30c
am: f6461b288e

* commit 'f6461b288eec466bd82439f5b5bdfec28483bb68':
  Work towards issue #26390161: Throttle syncs/jobs when system is low on RAM
2016-02-24 18:09:44 +00:00
Dianne Hackborn
1085ff6ee5 Work towards issue #26390161: Throttle syncs/jobs when system is low on RAM
First, we need to make the job scheduler prioritize jobs for
foreground apps over background apps (so we will degrade well
when we are limiting the number of concurrent jobs).

So now the job scheduler keeps track of the process state of
each uid, and uses that to bump up the priority of jobs
associated with foreground uids.  Added constants for priorities
since we have different places specifying priorities.

Also cleaned up a bit of the reporting of "wrapped" jobs from
the sync manager -- there is a new tag argument that can be supplied,
to have the name and tag used in various places be based on that
instead of the useless internal class name.

Change-Id: I8781750ddfac1472a98e1873fc38c014425db3d6
2016-02-23 17:04:58 -08:00
Chris Tate
1d1beb4dcf Merge "Limit scheduled jobs to 100 per app" into nyc-dev am: 3e30b118f7
am: 21a7ef469f

* commit '21a7ef469fe6cb4f6ed569f75f2ee36676bad9bb':
  Limit scheduled jobs to 100 per app
2016-02-22 23:24:38 +00:00
Christopher Tate
2f36fd6fc9 Limit scheduled jobs to 100 per app
Packages that are entitled to schedule jobs on behalf of other uids
are not subject to the limit.  Also break the JobStore's monolithic
set of jobs into per-uid slices for efficiency and orthogonality.

Bug 27150350

Change-Id: I8f5f718bf200d55f9977a6fc53b7f617e7652ad9
2016-02-22 12:42:29 -08:00
Ian Pedowitz
87c6da54b2 resolve merge conflicts of 2de058fcc9 to master
Change-Id: Ib6812ad2fc6402b2885ce81de8f7d892c07971e6
2016-02-20 00:37:16 -08:00
Dianne Hackborn
b0001f6fb1 Remove internal locking from JobStatus.
Now all state of JobStatus is implicitly protected by the lock
of whoever is using it -- in this case the global lock for the
JobSchedulerService.  This allows us to remove all of the atomic
variables and just replace those with a simple bit field.

The required constraints for a job are now statically defined
once a JobStatus is created, and don't change.  (They wouldn't
change before, but now this is absolutely specified to be the
case.)  This required tweaking the constructors a bit so that
the earliest and latest run times are computed as part of the
core class initialization.

Also clarified methods on StateController that are called with
the lock held, and took advantage of that in the various
controllers to not now redundantly re-acquire the lock.

Change-Id: I595c5e7d1bff1bd2ff906d612581af82878a25ee
2016-02-19 18:29:34 -08:00
Dianne Hackborn
33d31c5b70 Simplify job scheduler service locking.
Unify all locks to just one lock protecting the entire service.
There is really no need for more complicated locking -- there is
nothing in the code that can take a long time to complete.  And
having a single lock will allow various parts of the code to be
much simpler and easier to maintain.

This is just the first step of the change, switching all of the
locking to use one lock.  With this done, we can now start
simplifying the code.  For example, JobStatus no longer needs
to do any locking (or have atomic variables and such), it can
just rely on its callers holding the global service lock.

Change-Id: I502916ed7f2994b601750c67a59a96b1a4e95c6d
2016-02-19 16:49:47 -08:00
Julia Reynolds
53faf747f6 Merge "Remove Notification Topics." into nyc-dev am: 73d96fb4bb
am: f7f055e407

* commit 'f7f055e40709d8de6bad8f4384f4dc59adceb213':
  Remove Notification Topics.
2016-02-19 19:32:13 +00:00
Julia Reynolds
73d96fb4bb Merge "Remove Notification Topics." into nyc-dev 2016-02-19 19:17:25 +00:00
Makoto Onuki
710745d320 Merge "Clean up on UserManagerService and DPMS" into nyc-dev am: 4ab36372fb
am: e1c87ee38b

* commit 'e1c87ee38b5cbb4e0a151968505ea6a6c244b56f':
  Clean up on UserManagerService and DPMS
2016-02-19 00:34:46 +00:00
Dianne Hackborn
f5d50fbe11 Merge "Simplify job scheduler service locking." 2016-02-19 00:29:31 +00:00
Makoto Onuki
4ab36372fb Merge "Clean up on UserManagerService and DPMS" into nyc-dev 2016-02-19 00:21:48 +00:00
Makoto Onuki
2a3c3da0fc Clean up on UserManagerService and DPMS
- Avoid the ART warning about 4.1 compatibility
- Avoid integer overflow in DPMS

Bug 27243525
Bug 27242859

Change-Id: I92af323287e348fbd0eff31e6cf9823be8e41024
2016-02-19 00:20:56 +00:00
Makoto Onuki
09bed7a280 Merge "Fix bugs in user restriction migration" into nyc-dev am: 24f62ea634
am: 5cee7cafde

* commit '5cee7cafde47ba3a38d3a61cfeccdf502ec7fca1':
  Fix bugs in user restriction migration
2016-02-18 21:19:56 +00:00
Antonio Cansado
c607d1db22 Merge "Implementation of data usage callbacks." into nyc-dev am: 12d7ea815b
am: 7e098af672

* commit '7e098af67280dbc877790486043998b13e83986e':
  Implementation of data usage callbacks.
2016-02-18 21:12:15 +00:00
Makoto Onuki
24f62ea634 Merge "Fix bugs in user restriction migration" into nyc-dev 2016-02-18 20:26:41 +00:00
Makoto Onuki
6094928806 Fix bugs in user restriction migration
Originally I didn't know user-0 could have PO, so I excluded this case
from migration.  Now we handle it properly.

Also make sure only restrictions that can actually be set by each
owner moves to the owner restriction.  (Because of this, we no longer
have to have DISALLOW_WALLPAPER in the exception list, because
owners can't set DISALLOW_WALLPAPER.)

Bug 27225996

Change-Id: I6ad79d90e6c4400abbb1e4feba6ba59e3b650815
2016-02-18 12:09:30 -08:00
Antonio Cansado
12d7ea815b Merge "Implementation of data usage callbacks." into nyc-dev 2016-02-18 19:43:42 +00:00
Makoto Onuki
541d6fdf2e Merge "Ensure DO/PO are also DA." into nyc-dev am: aafff2f835
am: d11a524ee2

* commit 'd11a524ee2054f3febcdc8310969535edc404a89':
  Ensure DO/PO are also DA.
2016-02-18 19:05:58 +00:00
Julia Reynolds
ef37f28436 Remove Notification Topics.
Bug: 23220370
Change-Id: Ifbcdbab1cf6974c192483091512f75762784a98e
2016-02-18 08:55:33 -05:00
Antonio Cansado
cd42acd951 Implementation of data usage callbacks.
NetworkStatsService will register data usage requests
and keep data usage stats scoped to the request.

There are different types of data usage requests
- scoped to a set of NetworkTemplate; these are restrictred to
device owners and carrier apps and allow the caller to monitor
all activity on the specified interfaces.
- scoped to all uids visible to the user, if the user has
android.Manifest.permission#PACKAGE_USAGE_STATS permission.
The set of uids may change over time, so we keep track of that.
- scoped to a set of uids given by the caller, granted that
the caller has access to those uids.
- scoped to the caller's own data usage. This doesn't require
PACKAGE_USAGE_STATS.

Bug: 25812785
Change-Id: Ie11f35fc1f29d0dbe82f7fc924b169bb55c76708
2016-02-17 18:43:53 -08:00
Makoto Onuki
184db600df Ensure DO/PO are also DA.
Bug 24503508

Change-Id: Ib957b84d5bee185501636c406d9aaf4985a79d8d
2016-02-17 15:35:01 -08:00
Dianne Hackborn
d506b2bad2 Simplify job scheduler service locking.
Unify all locks to just one lock protecting the entire service.
There is really no need for more complicated locking -- there is
nothing in the code that can take a long time to complete.  And
having a single lock will allow various parts of the code to be
much simpler and easier to maintain.

This is just the first step of the change, switching all of the
locking to use one lock.  With this done, we can now start
simplifying the code.  For example, JobStatus no longer needs
to do any locking (or have atomic variables and such), it can
just rely on its callers holding the global service lock.

Change-Id: If026b7ef3a46a44f6802232474e629851a232a37
2016-02-16 16:18:02 -08:00
Makoto Onuki
768e087b5a Merge "Don\'t allow deactivating DAs when the user is not unlocked" into nyc-dev am: dafec11e69
am: f56aa71b9f

* commit 'f56aa71b9f477c4e718989ca770cfdc6fc6c5998':
  Don't allow deactivating DAs when the user is not unlocked
2016-02-16 20:59:43 +00:00
Makoto Onuki
dafec11e69 Merge "Don't allow deactivating DAs when the user is not unlocked" into nyc-dev 2016-02-16 20:47:10 +00:00
Shreyas Basarge
132c8298fa Merge "Fixes JobScheduler not persisting flex and sourcePackage" into nyc-dev am: b55fa08c74
am: a8a585e48c

* commit 'a8a585e48c6ab1aad543add047f6a5a1a822cc1b':
  Fixes JobScheduler not persisting flex and sourcePackage
2016-02-16 15:11:20 +00:00
Shreyas Basarge
b55fa08c74 Merge "Fixes JobScheduler not persisting flex and sourcePackage" into nyc-dev 2016-02-16 14:55:44 +00:00
Shreyas Basarge
8e64e2e6a4 Fixes JobScheduler not persisting flex and sourcePackage
There was a bug with persisteing and restoring flex and
sourcePackage. Fixed it and added tests.

Change-Id: Ie8e4714b4727ecef4254773fd4339b28f4a47c01
2016-02-15 15:51:52 +00:00
Makoto Onuki
1a5ee776ee Don't allow deactivating DAs when the user is not unlocked
Bug 27149570

Change-Id: I772d9cbd6edc822c8f7b1988905b702e05e674cd
2016-02-12 16:04:42 -08:00
Rubin Xu
d82c274ddd Merge "Fix testApplicationRestrictionsManagingApp unit test" into nyc-dev am: d6c90a8883
am: 8678f7965d

* commit '8678f7965d8d41a2f3d916a8e32ebb5c0c4c7b9a':
  Fix testApplicationRestrictionsManagingApp unit test
2016-02-12 12:01:35 +00:00
Dianne Hackborn
ba60473a65 Implement transient extras for jobs.
You can now associate an arbitrary Bundle of extras with a job,
as long as the job is not persisted.

Also implement deep-copy of Bundle.

Change-Id: I7890d627492b664d9b1f039e8cb82f8868de7be3
2016-02-11 11:28:48 -08:00
Rubin Xu
ed1928a981 Fix testApplicationRestrictionsManagingApp unit test
The API now requires the app restriction manager app to exist
on the current user when it is called.

Change-Id: I809816d4f5d73378c23b18d7b74ebb282b7dc444
2016-02-11 17:23:06 +00:00
Shreyas Basarge
2b4c8f926f SyncManager sync blow up fix
Duplicates for periodic syncs would be
created just after boot and when a
periodic sync was delayed. This CL fixes
the behavior.

Bug: 26954967
Change-Id: I2440961629d443a62f96360563d435af9137857b
(cherry picked from commit 1675400a7c)
2016-02-10 19:09:44 +00:00
Shreyas Basarge
1675400a7c SyncManager sync blow up fix
Duplicates for periodic syncs would be
created just after boot and when a
periodic sync was delayed. This CL fixes
the behavior.

Bug: 26954967
Change-Id: I2440961629d443a62f96360563d435af9137857b
2016-02-10 14:22:33 +00:00
Svet Ganov
354cd3ce22 Multi packages per APK
This change introduces the ability to have multiple packages per
APK. The feature is currently restricted to privileged apps and
updates to such apps.

In essence the manifest can have multiple child package declarations.
A child package can declare everything an Android package can except
some tags or attributes that are not applicable and instead inherited
from the parent when needed. For example, the target SDK of the parent
applies to all children.

A child package can be updated only through the parent package.
A package with multiple child packages is installed, uninstalled
atomically - no partial installs where some child packages are not
installed.

The remaining work is to ensure broadcasts are also sent for child
packages. This will come in a subsequent change.

Sample app:ag/848432

Design doc: https://docs.google.com/document/d/18nFWtJuZchLxrHf5SBbJW03-Ky9Rh_G0-OVB14b6u78

Change-Id: I6fd021d981bf5786290e0c53502724a14c97358c
2016-02-08 15:14:07 -08:00
Paul Jensen
0ab80e6c26 Fix FrameworksServicesTests.apk to include libc++.so
am: 5f3dec374f

* commit '5f3dec374fac97365ec95ec407a1cffc2c3907c9':
  Fix FrameworksServicesTests.apk to include libc++.so
2016-02-08 11:41:25 +00:00
Paul Jensen
5f3dec374f Fix FrameworksServicesTests.apk to include libc++.so
libc++.so is no longer accessible to the app, so it must be
bundled in the app. This should get ApfTest passing again.

Change-Id: Ide004cb84f7f50feffb8f5acb46b7001dcffd208
2016-02-07 21:58:09 -05:00