11752 Commits

Author SHA1 Message Date
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
Geremy Condra
c3bdf87505 Merge "Support routing sockets as another user" 2013-07-15 21:57:18 +00:00
Geremy Condra
b7fb8dbad6 Merge "Restricted profiles use Owner's VPN" 2013-07-15 21:56:55 +00:00
Geremy Condra
045ad910b7 Merge changes Ia6646363,I94389b64
* changes:
  Add per user VPN support
  Add NetworkUtil function for marking sockets
2013-07-15 21:56:30 +00:00
Chad Brubaker
d475c70424 Support routing sockets as another user
Add support for routing sockets as if they were another user's.
This is for services that handle delegated network tasks like MediaServer and DownloadManager.

Change-Id: Id20efc1f5c2cce6f8838d777762f6c0a703a9437
2013-07-15 12:14:10 -07:00
Chad Brubaker
c2865195b6 Restricted profiles use Owner's VPN
Restricted profiles cannot start their own VPN and will use the Owner's
VPN if one is running.

Change-Id: I1fc153742047f9149acb414c4c9d35305e97d8d0
2013-07-15 12:13:47 -07:00
Svetoslav
d08d7ee4e9 Allowing the root user to use the screen introspection APIs.
We were allowing the system and the shell user to access use the
screen introspection APIs but the root user was not able to to so.
This change enableS the root user to also use these APIs. Note that
we usually allow the root user to access privileged functionality
similarly to the shell user of the system.

bug:8877685

Change-Id: Ie4008339e864b835bd3a2d5e06b042e4431c5270
2013-07-15 10:20:31 -07:00
Chad Brubaker
4ca19e8377 Add per user VPN support
VPNs are now per user instead of global. A VPN set by user A routes only
user A's traffic and no other user can access it.

Change-Id: Ia66463637b6bd088b05768076a1db897fe95c46c
2013-07-12 20:51:03 -07:00
Dianne Hackborn
a413dc06b2 Add new proc state constants and delivery.
The activity manager now keeps a new "process state" for
each process, indicating the general execution and memory
state of the process.  This closely follows the out-of-memory
adjustment and scheduling class that it currently tracks,
but roles these together (plus a little more info) into one
more semantically meaningful number.

This value is reported to each process as it changes, so they
can do things like tune the Dalvik garbage collector to match
the current process state.

I think I should also switch to this for process states.  It
will give is more meaningful divisions of time for each process.

Also fix a problem in the activity stack where the previous
process was not being set correctly when moving between
activity stacks.

Change-Id: I598b1667dc46547f8fadae304e210c352cc9d41f
2013-07-12 18:14:46 -07:00
Dianne Hackborn
9ad5bc7e64 Merge "Reduce some event log noise:" 2013-07-13 01:02:32 +00:00
Dianne Hackborn
cf11716409 Reduce some event log noise:
- Only log battery levels on level changes, not voltage or temp.
- Reduce the text in the start service log to only the suffix
  of the service component, and a uid field.

Change-Id: I6d65e6700e021b3b005dccc90d64f36c1f97137f
2013-07-12 17:26:02 -07:00
keunyoung
27116e35e8 Merge "add TYPE_PRIVATE_PRESENTATION window type" 2013-07-12 23:03:21 +00:00
keunyoung
a446bf0e8c add TYPE_PRIVATE_PRESENTATION window type
- This window type can be used for Presentation created on top of virtual
  private display.
- There can be PRIVATE_PRESENTATION specific policy / behavior, but for now,
  there is nothing special.

Change-Id: I9fde0f0376e57fcc60000d3a3f8657a21ef58993
2013-07-12 14:41:10 -07:00
Christopher Tate
70d3dd4f79 Merge "Out-of-band apk pushes to the privileged install dir" 2013-07-12 20:18:55 +00:00
Geremy Condra
f33468e68a Merge "Add NetworkManagement support for fwmark routes" 2013-07-12 19:47:19 +00:00
Christopher Tate
409bb36a13 Out-of-band apk pushes to the privileged install dir
The new apk will now correctly allow system permissions to an app
placed in the privileged install dir via 'adb push' on the fly.

Change-Id: Ie4284d12628e08d9562d18eee6a7e8f74ae6295e
2013-07-12 12:33:09 -07:00
Amith Yamasani
46db67cf7f Merge "Fix build" 2013-07-12 19:24:10 +00:00
Amith Yamasani
ed411593ec Fix build
Change-Id: If4c4f1f104826b599c86bc1c924ebadc5223c8f0
2013-07-12 12:23:16 -07:00
Wink Saville
7ab34954c8 am 97b077bc: am 42a85412: am 925ec03f: Merge "VZW wants the phoneNumber to be 10 zero\'s if there isn\'t one." into jb-mr2-dev
* commit '97b077bc18752e7dafe041cb04c19e67ce69939c':
  VZW wants the phoneNumber to be 10 zero's if there isn't one.
2013-07-12 12:14:01 -07:00
Wink Saville
97b077bc18 am 42a85412: am 925ec03f: Merge "VZW wants the phoneNumber to be 10 zero\'s if there isn\'t one." into jb-mr2-dev
* commit '42a85412d12078f36c3fdeda1211bdc3800bab0c':
  VZW wants the phoneNumber to be 10 zero's if there isn't one.
2013-07-12 12:03:53 -07:00
Wink Saville
925ec03fcd Merge "VZW wants the phoneNumber to be 10 zero's if there isn't one." into jb-mr2-dev 2013-07-12 18:59:03 +00:00
Amith Yamasani
abee69bc08 am 8361a9f7: am 1a1a7c08: am 06a441de: Merge "Pass along the user id to AttributeCache requests" into jb-mr2-dev
* commit '8361a9f719b6a416a40134951daf28297b6e0670':
  Pass along the user id to AttributeCache requests
2013-07-12 11:25:24 -07:00
Amith Yamasani
8361a9f719 am 1a1a7c08: am 06a441de: Merge "Pass along the user id to AttributeCache requests" into jb-mr2-dev
* commit '1a1a7c0878320b94d01da6bdfaa857c85b4199a3':
  Pass along the user id to AttributeCache requests
2013-07-12 11:21:27 -07:00
Amith Yamasani
06a441de3b Merge "Pass along the user id to AttributeCache requests" into jb-mr2-dev 2013-07-12 18:17:09 +00:00
Lorenzo Colitti
51a845688c Merge "Make legacy VPN work over stacked interfaces." 2013-07-12 03:33:20 +00:00
Vinit Deshapnde
e088428400 Merge "Allow enabling TDLS on specific routes" 2013-07-12 00:58:07 +00:00
Vinit Deshapnde
64f0d5ba15 Allow enabling TDLS on specific routes
This change exposes couple of internal APIs to enable TDLS between local
machine and a remote machine. The implementation translates client provided
remote IP to a MAC address using system ARP cache, and then instructs the
driver to enable TDLS with that endpoint. Another API takes application
specified MAC address.

Bug: 8538898

Change-Id: Ida343fc42ba3a817a4f380255596e7fb7fcdfb9b
2013-07-11 15:12:44 -07:00
Chad Brubaker
cca54c4dec Add NetworkManagement support for fwmark routes
Add NetworkManagementService binds for netd's fwmark routes

Change-Id: I55cf6b198d56f1fb0d20818ddf176a0f779a33b6
2013-07-11 13:41:40 -07:00
Lorenzo Colitti
41fb98c868 Make legacy VPN work over stacked interfaces.
On stacked interfaces like 464xlat, Legacy VPN can't find the
default gateway because it uses getRoutes, which only returns
routes for the base link and not for the stacked links. It also
assumes that the interface that the default route points to is
the interface for the base link (e.g., rmnet0) instead of the
interface the route actually points to (e.g., clat4).

Fix this by calling getAllRoutes to find the default IPv4 route,
and get the interface name from the route we find instead of
assuming it's the base interface.

Bug: 9597516
Change-Id: Ia6ce0b6258a421cd22f60dedca7e94176b32176b
2013-07-11 18:15:48 +09:00
Wink Saville
8cf3560469 VZW wants the phoneNumber to be 10 zero's if there isn't one.
Bug: 9784059
Change-Id: I41bba908855648d2560440655d8a75a7cb2e0859
2013-07-10 23:00:07 -07:00
Dianne Hackborn
9865ef1ba5 Merge "Add -c option to meminfo to dump a compact form." 2013-07-11 02:03:33 +00:00
Dianne Hackborn
20cdcee47d Add -c option to meminfo to dump a compact form.
Also fix a bug in FastPrintWriter where println(long) was
not printing the newline.

Change-Id: Idcb4eaab0c1ec4b992032b5e36478ef11a6533d9
2013-07-10 18:47:04 -07:00
Amith Yamasani
4befbecfcc Pass along the user id to AttributeCache requests
Bug: 9759331
Change-Id: Ib96ba6a89c58edc207021aa43a2b67b4f6c50117
2013-07-10 16:18:01 -07:00
Craig Mautner
fb20eb48aa Merge "Add convertToTranslucent to API." 2013-07-10 21:52:28 +00:00
Kenny Root
3b4d69508a Merge "KeySetManager: convert comments to Javadoc" 2013-07-10 19:35:49 +00:00
Dianne Hackborn
1304f4ae32 Add new location monitoring op, make some of app ops public.
The new location monitoring op is to tell us when an application
is monitoring for any location changes.  It may be useful information
in addition to the more explicitly information about when location
data actually goes to the app.

Also make parts of AppOpsManager public for use by gcore.  It is
not available to third party apps.

Change-Id: Ib639f704258ffdd7f3acd7567350ed2539da628a
2013-07-09 18:17:27 -07:00
Craig Mautner
5eda9b3301 Add convertToTranslucent to API.
Rename convertToOpaque to convertFromTranslucent. Add the
counterpart to Activity.convertFromTranslucent() for returning from
opaque to a translucent Activity. The caller should wait until
TranslucentConversionListener.onTranslucentConversionComplete() is
called before actually changing the background to translucent.

Change-Id: Id04b026bcc4dd8bad9a33a7af126e1bb28fb9c03
2013-07-09 14:50:12 -07:00
Amith Yamasani
235e817c80 Merge "Clean up any restrictions files that shouldn't be there." 2013-07-09 18:32:41 +00:00
Amith Yamasani
b82add27d0 Clean up any restrictions files that shouldn't be there.
Partially fixes the mess that was caused by #9681399

Change-Id: Iaabe15c87d1b002f0b2210b34adcc31b8fb4329c
2013-07-09 11:24:44 -07:00
Satoshi Kataoka
42e230cdb4 Merge "Consolidate InputMethodUtils" 2013-07-09 14:42:18 +00:00
Satoshi Kataoka
b282726d86 Consolidate InputMethodUtils
Change-Id: Ib5a5f3af8ea9eaaa81697d13c20abe28121e7373
2013-07-09 23:20:06 +09:00
Dianne Hackborn
a4cc205ee8 More procstats work.
The historical data is now a more central part of the stats.
When a checkin happens, the data is not deleted, just marked
as checked in so we can continue to access it.

The default procstats dump is now a new "summary" mode that
shows a more useful set of data for all of the running processes.
By default the current and all committed states are shown; you
use "--current" to only show the current.  Use "--details" to
get the previous more detailed data (which now includes detailed
process data like the per-package data).

Also tweaked uid printing to be a little more compact.

Change-Id: I5414ea7c07134ebd5dc83f6f7b9f6e30151eda85
2013-07-08 18:06:24 -07:00
Kenny Root
2042e9df48 KeySetManager: convert comments to Javadoc
To help with development, change comments to Javadoc and adding some
links.

Change-Id: Id97febd978f14bace8242d8e0610b1166a13265b
2013-07-08 16:28:35 -07:00
Kenny Root
ee302758d6 Merge "KeySetManager: change KEYSET_NOT_FOUND to public" 2013-07-08 20:25:27 +00:00
Jean-Baptiste Queru
619682dfae am 58d52298: am 57512008: am 8f793103: Merge "Set foreground priority for shutdown receivers."
* commit '58d52298bebe21c4fb79ec8fc5e1c76a7503e0a5':
  Set foreground priority for shutdown receivers.
2013-07-08 12:22:59 -07:00
Jean-Baptiste Queru
58d52298be am 57512008: am 8f793103: Merge "Set foreground priority for shutdown receivers."
* commit '57512008e2f9f1f04ff5a11b522533c753ed36fe':
  Set foreground priority for shutdown receivers.
2013-07-08 12:20:15 -07:00
Jean-Baptiste Queru
57512008e2 am 8f793103: Merge "Set foreground priority for shutdown receivers."
* commit '8f793103d81e988e2ef25ecdfde1b279e299a97e':
  Set foreground priority for shutdown receivers.
2013-07-08 12:15:30 -07:00
Jean-Baptiste Queru
8f793103d8 Merge "Set foreground priority for shutdown receivers." 2013-07-08 19:01:26 +00:00
Craig Mautner
785a22188f Merge "Move mLaunchingActivity from stack to supervisor." 2013-07-08 18:46:05 +00:00
Jean-Baptiste Queru
c6376b54ba am a998fa2d: am e14afe71: am 58f26e9d: Merge "The order of child windows is switched"
* commit 'a998fa2df957ad3f1c860d5ab8903041cf53a2f0':
  The order of child windows is switched
2013-07-08 11:27:51 -07:00