Commit Graph

1390 Commits

Author SHA1 Message Date
Amith Yamasani
cd57b4950f am 3d27c9f9: am f1eebfc2: Merge "Remove unused APIs and rename others based on API review" into klp-dev
* commit '3d27c9f973b1dd35ed457785b452851316cdca8a':
  Remove unused APIs and rename others based on API review
2013-09-05 17:33:19 -07:00
Amith Yamasani
f1eebfc2cf Merge "Remove unused APIs and rename others based on API review" into klp-dev 2013-09-05 22:48:17 +00:00
Mike Lockwood
f55ba05cf8 Merge "ParcelFileDescriptor: Add comments to warn that parcelling must stay in sync with Parcel.cpp implementation" 2013-09-05 17:14:16 +00:00
Chet Haase
672fcd5c9a am 04f31501: am a9fa33b3: Merge "Change build version from KEY_LIME_PIE to KITKAT" into klp-dev
* commit '04f31501602a87ae9526983f4a92e623b4d68bb3':
  Change build version from KEY_LIME_PIE to KITKAT
2013-09-05 10:13:34 -07:00
Amith Yamasani
d304af6989 Remove unused APIs and rename others based on API review
Restrictions challenge is only to be used by device admins.

Bug: 10461761
Change-Id: I3db1249e2ce99f386602de59ed930302bb0a97fb
2013-09-05 09:30:23 -07:00
Mike Lockwood
8b85164c50 ParcelFileDescriptor: Add comments to warn that parcelling must stay in sync with Parcel.cpp implementation
Change-Id: If9fcdada0b2dbaae4973ac236b02e527e2e6b198
2013-09-05 08:47:38 -07:00
Chet Haase
e8222dddaf Change build version from KEY_LIME_PIE to KITKAT
Issue #10631619 Change build version to KitKat

Change-Id: I6ad13f6169ad74204078d36929479998b498ad8b
2013-09-05 08:44:33 -07:00
Todd Poynor
2e9992583c Merge "BatteryProperty: Add average current property" 2013-09-05 01:37:29 +00:00
Dianne Hackborn
1703c54a0e am 021a138b: am 8144585c: Merge "Fix issue #10422349: Limit/change the battery history data in batterystats" into klp-dev
* commit '021a138bdc0a8d1561cd7a429936afb8983c68b0':
  Fix issue #10422349: Limit/change the battery history data in batterystats
2013-09-04 18:32:16 -07:00
Todd Poynor
be7d9e399e BatteryProperty: Add average current property
Change-Id: I48907708024bddae9770bc1a3f0149ad901075c4
2013-09-04 18:20:22 -07:00
Dianne Hackborn
49021f5f79 Fix issue #10422349: Limit/change the battery history data in batterystats
Don't include history in real checkins; have a new compact option
for bug reports.

Change-Id: I077f9218b365154f6bae9cc685c2c6b378e0283a
2013-09-04 18:03:40 -07:00
David Christie
ef00641cbf am 55e4889c: am 61edc94a: Merge "Make location QuickSettings multi-user compatible (b/10563313)" into klp-dev
* commit '55e4889cea528253ff91fe5c1806c0c0b75d9827':
  Make location QuickSettings multi-user compatible (b/10563313)
2013-09-04 12:28:09 -07:00
David Christie
b12ba933f3 Make location QuickSettings multi-user compatible (b/10563313)
Change-Id: I8ae5238e66fa2d6890ffe5697d3e6d5f50413c3e
2013-09-04 11:36:17 -07:00
Todd Poynor
bfdd62323e ActivityManagerService use lmkd low memory killer daemon
Change-Id: Ie2f8af1e411c28d7f03be56c356ec39e1d71558e
2013-09-03 17:55:55 +00:00
Jeff Hao
c0a38c227e am 3a9c7161: am 6627e5b2: Merge "Change IsMethodTracingActive to GetMethodTracingMode for frameworks." into klp-dev
* commit '3a9c7161dfd6f16baddd2eb209a013609b927da7':
  Change IsMethodTracingActive to GetMethodTracingMode for frameworks.
2013-08-30 14:17:27 -07:00
Jeff Hao
ac27705f75 Change IsMethodTracingActive to GetMethodTracingMode for frameworks.
Bug: 9968521

Change-Id: Ic63340e0d2fef18f27fdfabdd056ac5304c3d54f
(cherry picked from commit ffbe799f3824f4be705ca726988355d3943a9004)
2013-08-30 18:02:52 +00:00
Jeff Hao
7be3a138d5 Add frameworks support for sample profiling from traceview gui.
(cherry picked from commit ca307d3138ff1e5d0bcf190eb24f3b8dbcabfaa9)

Change-Id: I3553bafe24ac8deb4fa3f9a4d78939c3848b3850
2013-08-28 22:13:17 -07:00
Jeff Sharkey
98486543cc am 6607275b: am 9fd81a90: Merge "Stronger DocumentsProvider contract." into klp-dev
* commit '6607275b3a99b28f4176f8f8cc87f46c5ed051db':
  Stronger DocumentsProvider contract.
2013-08-28 21:35:17 -07:00
Jeff Sharkey
6607275b3a am 9fd81a90: Merge "Stronger DocumentsProvider contract." into klp-dev
* commit '9fd81a9008d5c8dd33272b6a451d89fa2fa1841e':
  Stronger DocumentsProvider contract.
2013-08-28 21:32:08 -07:00
Jeff Sharkey
aeb16e2435 Stronger DocumentsProvider contract.
Using a contract class requires that a provider implement it exactly
with little help. This change introduces a DocumentsProvider abstract
class that provides a client-side implementation of the contract that
greatly reduces developer burden, and improves correctness.

This also moves to first-class DocumentRoot objects, and moves calls
with complex side effects to be ContentProvider.call() invocations,
offering more granular permission control over Uri operations that
shouldn't be available through Uri grants.

This new design also relaxes the requirement that root information be
burned into every Uri.  Migrate ExternalDocumentsProvider and
DocumentsUI to adopt new API.

Bug: 10497206
Change-Id: I6f2b3f519bfd62a9d693223ea5628a971ce2e743
2013-08-28 20:49:42 -07:00
Jeff Hao
f46f843171 am 5d21168b: am 366291e2: Merge "Add frameworks support for sample profiling from traceview gui."
* commit '5d21168bb4b33fb5eb8770996895a729880c7dbc':
  Add frameworks support for sample profiling from traceview gui.
2013-08-27 18:21:23 -07:00
Jeff Hao
ffee626c3a Add frameworks support for sample profiling from traceview gui.
(cherry picked from commit ca307d3138ff1e5d0bcf190eb24f3b8dbcabfaa9)

Change-Id: Ic193ddadf01c42905fc7c35a1a8bf89fba4556e9
2013-08-27 17:46:18 -07:00
Jeff Hao
e3d54fe23a Add frameworks support for sample profiling from traceview gui.
Change-Id: I702f12cdd8bd27b762f30e158fbe824909421dee
(cherry picked from commit ca307d3138ff1e5d0bcf190eb24f3b8dbcabfaa9)
2013-08-27 20:53:09 +00:00
Svetoslav Ganov
f026518672 am e0612ffe: am 826debf5: Merge "Print UI bug fixing and printer discovery refactoring." into klp-dev
* commit 'e0612ffe5495602134d60422f63bfc05387512e1':
  Print UI bug fixing and printer discovery refactoring.
2013-08-26 15:10:49 -07:00
Svetoslav Ganov
44720af55a Print UI bug fixing and printer discovery refactoring.
1. Added support for selecting a printer from the all printers activity
   that is not in the initial printer selection drop down. The user
   initially sees a sub set of the printers in the drop down and the
   last option is to see all printers in a separate activity. Some
   of the printers in the all printers activity are not shown in the
   initial drop down.

2. Refactored printer discovery by adding (private for now) printer
   discovery app facing APIs. These APIs are needed to support multiple
   printer selection activities (print dialog and all printers activities)
   and also the settings for showing all printers for a service.

   Now multiple apps can request observing for printers and there is
   a centralized mediator that ensures the same printer discovery
   session is used. The mediator dispatches printer discovery specific
   requests to print services. It also aggregates discovered printers
   and delivers them to the interested apps. The mediator minimizes
   printer discovery session creation and starting and stopping discovery
   by sharing the same discovery session and discovery window with
   multiple apps. Lastly, the mediator takes care of print services
   enabled during discovery by bringing them up to the current
   discovery state (create discovery session and start discovery if
   needed). The mediator also reports disappearing of the printers
   of a service removed during discovery and notifies a newly
   registered observers for the currnet printers if the observers are
   added during an active printer discovery session.

3. Fixed bugs in the print UI and implemented some UX tweaks.

Change-Id: I4d0b0c5a6c6f1809b2ba5dbc8e9d63ab3d48f1ef
2013-08-23 18:36:33 +00:00
Todd Poynor
d7b34771cb java-side interface for reading individual battery properties on demand
Change-Id: I60a84ed936f1115fdb122f34986f2e605ae274de
2013-08-22 03:12:21 +00:00
Jeff Sharkey
da5a3e12f4 Richer ParcelFileDescriptor close events.
When reading from the end of a pipe or socket, there is no way to
tell if the other end has finished successfully, encountered an error,
or outright crashed.  To solve this, we create a second socketpair()
as a communication channel between the two ends of a pipe or
socket pair, sending a status code with details about why the
ParcelFileDescriptor was closed.

The writer end of a pipe or socket can closeWithError() to send a
message to the reader end.  When the reader encounters EOF, they
call checkError() to detect if any error occured.  This also detects
the case where the remote process died without sending a success
message.

This design is also extended to support regular files on disk, using
the communication channel above to detect various remote close events
or crashes, and delivering that event to a supplied OnCloseListener.

Replaces JNI with best-practice Libcore.os calls, and deprecates
some flags to match Context.

Bug: 10330121
Change-Id: I8cfa1e4fb6f57397667c7f785106193e0faccad3
2013-08-16 14:34:43 -07:00
Jeff Sharkey
6e14b22cfe Merge "APIs for multiple external storage devices." into klp-dev 2013-08-12 00:13:35 +00:00
Jeff Sharkey
1abdb71230 APIs for multiple external storage devices.
Provide developer APIs to discover application-specific paths on
secondary external storage devices.  Covers files, cache, and OBB
directories.  Apps will not have write access outside their package-
specific directories on secondary devices, so only primary storage is
exposed through Environment.

Creation of .nomedia files will be handled by FUSE daemon in future
change.

Change-Id: Ifcce6201a686d80269d7285adb597c008cf8fa7c
2013-08-11 17:07:44 -07:00
Romain Guy
719c44e03b Prevent AsyncTask from creating too many threads
Bug #10228005

From the ThreadPoolExecutor documentation:

  - If fewer than corePoolSize threads are running, the Executor
    always prefers adding a new thread rather than queuing.
  - If corePoolSize or more threads are running, the Executor
    always prefers queuing a request rather than adding a new thread.
  - If a request cannot be queued, a new thread is created unless
    this would exceed maximumPoolSize, in which case, the task will
    be rejected.

Before this change AsyncTask could create up to 128 threads because
of the limited queue of 10 items (the capacity of a blocking queue
is fixed.)

This change increases the size of the queue to 128 items and reduces
the maximum number of threads to the number of CPU cores * 2 + 1.
Apps can still submit the same number of tasks.

Change-Id: I015d77b53b6a9fda39c618830b34d45a10de5571
2013-08-09 16:15:18 -07:00
Jeff Sharkey
184a0100ab Allow packages.list access with new GID.
The FUSE daemon is using packages.list to map from package name to
appId after it drops permissions, so create a new "package_info" GID
to grant read access.

Also switches FileUtils to use Libcore.os.

Change-Id: I9451ca4e90e8a985526805c6df0888a244a1db36
2013-08-08 17:38:13 -07:00
Dianne Hackborn
8a0de58ece Get ProcessStats callable from other processes.
Also fix a bug where, when parceling the stats, we were
computing the final duration values too late.  We need to
do that before we write the long table.

Change-Id: Idb6c1ed95417448c56973fe5866bfb3570e525f4
2013-08-08 15:00:18 -07:00
Todd Poynor
df89ca3308 batteryservice: add battery current now and charge counter data
Available for retrieval via future APIs if desired.  Dumped by dumpsys.
Not added to batterystats or ACTION_BATTERY_CHANGED intents at this point.

Also fixes a formatting problem in the existing dumpsys output for voltage.

Change-Id: I5320b19035914256fb872c13095c09c648dd522a
2013-08-07 18:33:12 +00:00
Dianne Hackborn
d2932243e3 Refactor ProcessStats, ProcessTracker.
ProcessStats is now called ProcessCpuTracker.

ProcessTracker is now ProcessStatsService, and its inner State
class is broken out into a separate top-level ProcessStats class.
This ProcessStats is moved to the framework, so we will be able
to use it elsewhere.

Change-Id: I6a127bcb835b6b474b72647c0b99b82c2137e5c5
2013-08-06 13:54:07 -07:00
Dianne Hackborn
221ea892dc Start restricting service calls with implicit intents.
The bindService() and startService() calls have always had
undefined behavior when used with an implicit Intent and there
are multiple matching services.  Because of this, it is not
safe for applications to use such Intents when interacting with
services, yet the platform would merrily go about doing... something.

In KLP I want to cause this case to be invalid, resulting in
an exception thrown back to the app.  Unfortunately there are
lots of (scary) things relying on this behavior, so we can't
immediately turn it into an exception, even one qualified by the
caller's target SDK version.

In this change, we start loggin a WTF when such a call happens,
and clean up some stuff in Bluetooth that was doing this behavior.

Change-Id: I62e25d07890588d2362104e20b054aebb6c0e007
2013-08-05 16:53:26 -07:00
Elliott Hughes
2a805f9304 resolved conflicts for merge of 368d81fe to master
Change-Id: I4bc59cd9a54cbc1b62ac135cf86dc73ac85968d5
2013-07-31 18:25:47 -07:00
Elliott Hughes
6d4b1e24ae Switch Process.myTid over to the libcore JNI too.
Change-Id: I80eaecff014fabf809f4be3c9ee8b26aa64bf0cf
2013-07-31 17:38:11 -07:00
Jeff Hao
406ec15647 Replace native Process getpid/getuid with calls to libcore equivalents.
The Process natives were getting called were getting called while
handling a jdwp packet before the vm had a chance to register them.

(cherry-pick of 5bce6a308fc8a3c1e449cf905b8b6e8ace4ef3e2.)

Change-Id: Ia2b4f79b11e427283a712b2d0c52948f394640bf
2013-07-31 17:19:23 -07:00
Todd Poynor
a9de3462a6 Add libbatteryservice AIDL and java interfaces
Add IBatteryPropertiesRegistrar and IBatteryPropertiesListener AIDLs,
BatteryProperties class.

Change-Id: Ic8e71178c02b04868eca29c3da88e877bc2590ca
2013-07-25 02:13:49 +00:00
Geremy Condra
5830e07521 Merge "Fix supplimentary network connections with VPNs" 2013-07-23 17:58:33 +00:00
Amith Yamasani
0343ec3abb User restriction API to disable single-user restrictions feature.
Change-Id: I80e08b38b5e32f3cb1af51398907510508ec199f
2013-07-23 09:17:21 -07:00
Dianne Hackborn
450d8c5b7c Fix issue #9940105: IllegalArgumentException in ArrayMap
Try to deal with unmarshalling old parcels.  Turns out someone
was writing a parcel to disk storing a Bundle.  Naughty, naughty.
This helps us not completely keel over.

Change-Id: Id343da2690b7bab89f6c3cb6fad1b92f270dad03
2013-07-19 17:05:30 -07:00
Chad Brubaker
f336d722c7 Fix supplimentary network connections with VPNs
Enables the use of supplimentary mobile networks like MMS, and HIPRI
while VPNs are running.

Change-Id: I313f57a905b4e16bd4322c68687cbff1cfbe9d3e
2013-07-19 15:57:05 -07:00
Amith Yamasani
7e81dd274f Merge "Have UserManagerService clear the restrictions and unblock apps" 2013-07-19 19:48:21 +00:00
Dianne Hackborn
127c5ef5d7 Fix crash.
Change-Id: I0b5d846d5a9e6b1c7c3756b653833c263634270b
2013-07-18 16:51:04 -07:00
Amith Yamasani
1a7472e722 Have UserManagerService clear the restrictions and unblock apps
Since this is an operation that could take a few seconds to run and needs to be
completed even if Settings dies, best to do it in the user manager.

Refactored PIN challenge/setup UI with a field to verify existing pin
when changing to a new one.

Change-Id: I0b7df5b2ccb7f343aa9282a9245d3bc2b577a794
2013-07-18 16:12:27 -07:00
Dianne Hackborn
b87655b3e5 Switch Bundle's implementation over to ArrayMap.
That was...  um...  easier than I thought it was going to be.

Change-Id: Id8f2211c1d5f8145e0bb009dca0f62a590f2b860
2013-07-18 11:10:29 -07:00
Dianne Hackborn
cdae0f3c60 Merge "Switch proc stats to use new process state constants." 2013-07-16 18:15:09 +00:00
Rom Lemarchand
0a880d0402 Merge "Increase swappiness of processes when memcgroups are enabled" 2013-07-16 02:32:13 +00:00
Dianne Hackborn
c823051972 Switch proc stats to use new process state constants.
These new constants are a better mapping to the kind of
information that procstats is wanting to collect about
processes.  In doing this, the process states are tweaked
to have a bit more information that we care about for
procstats.

This changes the format of the data printed by procstats,
so the checkin version is bumped to 2.  The structure is
the same, however the codes for process states have all
changed.  The new codes are, in order of precedence:

p -- persistent system process.
t -- top activity; actually any visible activity.
f -- important foreground process (ime, wallpaper, etc).
b -- important background process
u -- performing backup operation.
w -- heavy-weight process (currently not used).
s -- background process running a service.
r -- process running a receiver.
h -- process hosting home/launcher app when not on top.
l -- process hosting the last app the user was in.
a -- cached process hosting a previous activity.
c -- cached process hosting a client activity.
e -- cached process that is empty.

In addition, we are now collecting uss along with pss
data for each process, so the pss checkin entries now
have three new values at the end of the min/avg/max uss
values of that process.

With this switch to using process state constants more
fundamentally, I realized that they could actually be
used by the core oom adj code to make it a lot cleaner.
So that change has been made, that code has changed quite
radically, and lost a lot of its secondary states and flags
that it used to use in its computation, now relying on
primarily the oom_adj and proc state values for the process.

This also cleaned up a few problems -- for example for
purposes of determing the memory level of the device, if a
long-running service dropped into the cached oom_adj level,
it would start being counted as a cached process and thus
make us think that the memory state is better than it is.
Now we do this based on the proc state, which always stays
as a service regardless of what is happening like this, giving
as a more consistent view of the memory state of the device.

Making proc state a more fundamentally part of the oom adj
computation means that the values can also be more carefully
tuned in semantic meaning so the value assigned to a process
doesn't tend to change unless the semantics of the process
has really significantly changed.

For example, a process will be assigned the service state
regardless of whether that services is executing operations
in the foreground, running normally, or has been dropped to
the lru list for pruning.  The top state is used for everything
related to activities visible to the user: when actually on
top, visible but not on top, currently pausing, etc.

There is a new Context.BIND_SHOWING_UI added for when system
services bind to apps, to explicitly indicate that the app
is showing UI for the system.  This gives us a better metric
to determine when it is showing UI, and thus when it needs
to do a memory trim when it is no longer in that state.  Without
this, services could get in bad states of continually trimming.

Finally, more HashSet containers have been changed to ArraySet,
reducing the temporary iterators created for iterating over
them.

Change-Id: I1724113f42abe7862e8aecb6faae5a7620245e89
2013-07-15 16:21:35 -07:00