Commit Graph

3155 Commits

Author SHA1 Message Date
Jeff Sharkey
f439bcd953 am 578f67c2: am dfed2448: Merge "Delegate mkdirs() to vold when lacking perms." into klp-dev
* commit '578f67c25c6bb160cf30bf39b7e41bc039000a5c':
  Delegate mkdirs() to vold when lacking perms.
2013-09-20 16:05:16 -07:00
Jeff Sharkey
dfed244876 Merge "Delegate mkdirs() to vold when lacking perms." into klp-dev 2013-09-20 22:56:07 +00:00
Jeff Sharkey
2d8b4e8013 Delegate mkdirs() to vold when lacking perms.
Apps without sdcard_r or sdcard_rw are still able to write to
their package-specific directory, but someone needs to first make
that directory on their behalf.  This change will delegate the
mkdirs() call through to vold when an app fails to create directly.

MountService validates that the path belongs to the calling user, and
that it's actually on external storage, before passing to vold.

Update Environment to make app-vs-vold paths clearer.

Bug: 10577808
Change-Id: I43b4a77fd6d2b9af2a0d899790da8d9d89386776
2013-09-20 14:34:02 -07:00
Dianne Hackborn
9bef5b67dc resolved conflicts for merge of 20021b30 to master
Change-Id: Ie758de25a277ed0a25bf08e4cd2c57c9519bd52d
2013-09-20 10:40:34 -07:00
Craig Mautner
2c34bd6a9a am cd569b31: am e8a94224: Merge "Return tasks in correct order." into klp-dev
* commit 'cd569b31d398fe846eeee567d2816a3bb93dd493':
  Return tasks in correct order.
2013-09-20 09:58:22 -07:00
Christopher Tate
0719715586 am 654aad21: am 9c5cc571: Merge "Support for "not the home app you\'re looking for" metadata" into klp-dev
* commit '654aad21609642f7d0891962d72c0dfd4077fb94':
  Support for "not the home app you're looking for" metadata
2013-09-20 09:58:18 -07:00
Dianne Hackborn
3bc8f78d7a Implement issue #10691475: Kill cached processes if about to...
...be uncached and too large

When the device is in a low RAM state, when we go to pull a cached
process out to use for some background operation, we can now kill
the current process if we consider its size to be too large.

Note that the current implementation for killing processes is to
just use the same killUnneededProcessLocked() method that we already
have for other things like too many cached processes.  This is a
little wrong here, though, because in this case we are at the
point where the caller is actually looking for a process to use.
This current code is not actually removing or cleaning up the
process, so we still need to return the now killed ProcessRecord
and let things fall out from there, which typically means the caller
trying to make an IPC on it and failing and falling into its "oh
no the process died unexpectedly" path.  All code using this
*should* be able to handle this correctly, anyway, since processes
really can be killed at any time.

At some point we may to make this implementation cleaner, where it
actually tears down the process right in the call and returns a
null ProcessRecord.  That is very dangerous however (we'd need to
go through all paths into this to make sure they are going to be
okay with process state changing on them like that), and I'm not
sure it is really worthwhile.  This intention is that killing
processes like this is unusual, due to processes being too large,
and anyway as I wrote all of our incoming code paths must already
be able to handle the process being killed at this point and one
could argue this is just another way to excercise those code paths.
Really, the main negative to this is that we will often have spam
in the log with exceptions about processes dying unexpectedly.
If that is the only issue, we could just add some conditions to
quiet that up at in this case.

We don't want to compute the size of the process each time we try
to evaluate it here (it takes 10s or ms to do so), so there is now
a new field associated with the process to give us the last pss
size we computed for it while it was in the cached state.

To be able to have better cached pss data when we now need it, the
timing for computing process pss has been tuned to use a much
shorter delay for the situations when the process has first switch
into a new state.  This may result in us having a fair amount more
pss data overall, which is good, as long as it doesn't cause us to
be computing pss excessively and burning cpu.

Procstats now also has new state to keep track of the number of
times each process has been killed by this new system, along with
the min, avg, max pss of all the times it has happened.  This has
slightly changed the checkin format to include this additional data
at the end of pkgkills/prockills lines.

Other changes here:

- Fixed a problem where GPU RAM was not being seen when dumping
  the full RAM details of a process.  This was because in that
  case the system would ask the process to compute its own MemInfo,
  which it returned, but the process doesn't have permission to
  access the files containing the GPU RAM data.  So now the system
  always computes the MemInfo and hands it to the app.

- Improved broadcast delays to not apply the delay if the next receiver
  of the broadcast is going to run in the same process as the last
  one.  A situation I was seeing was an application that had two
  receivers, one of which started a service; we are better off letting
  the second receiver run while the service is running.

- Changed the alarm manager's TIME_TICK broadcast to be a foreground
  broadcast.  This really should have been anyway (it is supposed to
  go out even minute, on the minute, very accurately, for UI elements
  to update), and is even more important now that we are doing more
  things to delay background broadcasts.

- Reworked how we maintain the LRU process list.  It is now divided
  into the two parts, the top always containing the processes holding
  activities.  This better matches the semantics we want (always try
  to keep those around modulated by the LRU order we interleave with
  other cached processes), and we now know whether a process is being
  moved on the LRU list because of an activity operation so we can
  only change the order of these activity processes when user operations
  happen.  Further, this just makes that common code path a lot simpler
  and gets rid of all the old complexity that doesn't make sense any
  more.

Change-Id: I04933ec3931b96db70b2b6ac109c071698e124eb
2013-09-19 14:35:53 -07:00
Craig Mautner
e8a9422495 Merge "Return tasks in correct order." into klp-dev 2013-09-19 20:03:24 +00:00
Christopher Tate
9c5cc571e5 Merge "Support for "not the home app you're looking for" metadata" into klp-dev 2013-09-19 19:46:20 +00:00
Christopher Tate
bd413f6c05 Support for "not the home app you're looking for" metadata
* Make sure that pm.getHomeActivities() returns the activity metadata
  as well, so that the caller can trace the reference

* Add a public canonical name for that metadata key

Bug 10749961

Change-Id: Ic4d0750d61001ffe5af180398f042afa30eea1ce
2013-09-19 12:31:49 -07:00
Craig Mautner
c0fd805234 Return tasks in correct order.
Fixed ActivityManager.getRunningTasks().

Fixes bug 10705790.

Change-Id: Ia3f66e592e08a87896a1ab59f980618ec5310dfe
2013-09-19 11:20:17 -07:00
David Braun
a2ee725744 am fdacf747: am 345d491b: Merge "Implement new method for handling SMS/MMS on the platform" into klp-dev
* commit 'fdacf74764ed42b6550cefa0306621200517b36e':
  Implement new method for handling SMS/MMS on the platform
2013-09-17 15:18:13 -07:00
David Braun
345d491b77 Merge "Implement new method for handling SMS/MMS on the platform" into klp-dev 2013-09-17 22:14:54 +00:00
Dianne Hackborn
df2dae01b0 am 40489be9: am 61158244: Merge "Implement issue #10691359: Kill long-running processes" into klp-dev
* commit '40489be90b7c145da75034f793932500f0e5d380':
  Implement issue #10691359: Kill long-running processes
2013-09-16 14:37:30 -07:00
Dianne Hackborn
35f72be50b Implement issue #10691359: Kill long-running processes
We now have the activity manager kill long-running processes
during idle maintanence.

This involved adding some more information to the activity manager
about the current memory state, so that it could know if it really
should bother killing anything.  While doing this, I also improved
how we determine when memory is getting low by better ignoring cases
where processes are going away for other reasons (such as now idle
maintenance).  We now won't raise our memory state if either a process
is going away because we wanted it gone for another reason or the
total number of processes is not decreasing.

The idle maintanence killing also uses new per-process information
about whether the process has ever gone into the cached state since
the last idle maintenance, and the initial pss and current pss size
over its run time.

Change-Id: Iceaa7ffb2ad2015c33a64133a72a272b56dbad53
2013-09-16 14:05:34 -07:00
David Braun
f5d831915d Implement new method for handling SMS/MMS on the platform
Multi project change:
The changes in this project add the new (hidden) default sms application
setting to Settings.Secure and updates AppOps to support the concept
of an op defaulting to something other than allowed. OP_WRITE_SMS is set
to default to MODE_IGNORED.

Bug: 10449618
Change-Id: I37619784ac70c27cf9fbcbfcac1b263398bc4e01
2013-09-16 13:43:51 -07:00
Ying Wang
8d2373810a am 3c9d0490: am c38acbbe: Merge "Fix docs build." into klp-dev
* commit '3c9d049084c6a5d5033cbf6cccee30177508267f':
  Fix docs build.
2013-09-14 12:06:30 -07:00
Ying Wang
930d4e52ad Fix docs build.
Change-Id: I4a1608bfad809d67240db2070fda85df486179e6
2013-09-14 11:57:17 -07:00
Maggie Benthall
96b82aae35 am b964e5ed: am f5aba5ad: Merge "CA cert monitoring: add notifications and actions for dialog" into klp-dev
* commit 'b964e5edff92849c4ade7d43b86bfaca26d2a4a4':
  CA cert monitoring: add notifications and actions for dialog
2013-09-14 11:04:08 -07:00
Maggie Benthall
f5aba5ad1e Merge "CA cert monitoring: add notifications and actions for dialog" into klp-dev 2013-09-14 18:00:13 +00:00
Michael Jurka
6f11e3254e am 9d4d14fa: am 276e6c7a: Merge "Add new intent/method for cropping and setting wallpapers" into klp-dev
* commit '9d4d14fa292e4ef7beb66c20b0b2c139b81d3c8f':
  Add new intent/method for cropping and setting wallpapers
2013-09-14 05:32:00 -07:00
Michael Jurka
276e6c7a89 Merge "Add new intent/method for cropping and setting wallpapers" into klp-dev 2013-09-14 12:25:51 +00:00
Christopher Tate
9b6c9a1592 am fcda3283: am 7560c256: Merge "Add hidden API for querying available \'home\' activities" into klp-dev
* commit 'fcda3283d27f8dfaa812fb735af43eea2e077c64':
  Add hidden API for querying available 'home' activities
2013-09-13 17:22:45 -07:00
Maggie Benthall
0469f41010 CA cert monitoring: add notifications and actions for dialog
In DevicePolicyManagementService, on boot and when certs are installed,
post notification to tell the user that their traffic may be
monitored.
Have QuickSettings use the MonitoringCertInfoActivity instead
of building the dialog itself.

Bug: 10633199

Change-Id: Ie4b97295a9fc25867c87872feccdb17f4bea071d
2013-09-13 15:46:30 -04:00
Christopher Tate
a2a0850de8 Add hidden API for querying available 'home' activities
To support improved home-app selection UX in Settings.

Bug 9958444

Change-Id: I106090784618bf7bea6fce28f4f9b9fb8480d310
2013-09-13 12:16:00 -07:00
Michael Jurka
e8d1bf7a43 Add new intent/method for cropping and setting wallpapers
Also, create a system fallback WallpaperCropper

Bug: 4225598

Change-Id: I6bc6d5a3bb3df1dc00f3db701978aa172020c568
2013-09-13 17:04:46 +02:00
Chet Haase
ebcb9ecf2b am 9501a452: am e850c973: Merge "Hide translucent activity conversion API" into klp-dev
* commit '9501a452af30dd15559804193c8183bbaa42a669':
  Hide translucent activity conversion API
2013-09-12 16:44:24 -07:00
Tor Norbye
b6a3ef1834 Merge "Add typedefs and nullness annotations." 2013-09-12 22:22:06 +00:00
Chet Haase
e850c973b0 Merge "Hide translucent activity conversion API" into klp-dev 2013-09-12 19:41:33 +00:00
Alexander Ray
4c980cc6ae am b0049151: am 7563d423: Merge "Add consumer IR framework" into klp-dev
* commit 'b0049151f7c1f2ffa7481ac7c6f6baf7a548c5e8':
  Add consumer IR framework
2013-09-11 17:23:01 -07:00
Dianne Hackborn
8d717b917c resolved conflicts for merge of 03422d26 to master
Change-Id: I5d012fb122224c949a0039450bf0a9a475dc8e82
2013-09-11 16:43:22 -07:00
Tor Norbye
d9273d6f28 Add typedefs and nullness annotations.
This changeset adds in typedef annotations (custom annotations
marked with @IntDef) for various int parameters and return values
in the API. It also adds nullness annotations for cases where the
documentation explicitly mentioned null policy, or where it was
blindingly obvious from the context. Also fixed some typos in the
documentation.

Change-Id: Ica27c01368895818e26237544edd8483007155bb
2013-09-11 14:55:38 -07:00
Chet Haase
abd3d778e5 Hide translucent activity conversion API
This API and functionality is not yet completely baked. It's worth
thinking more about this mechanism before exposing it as public API.

Issue #10461415 KLP API Review: Activity convert to translucent

Change-Id: I94d986b62443b3bfa7a9a19807ecebe36bf57e07
2013-09-11 14:33:05 -07:00
Alexander Ray
7563d42331 Merge "Add consumer IR framework" into klp-dev 2013-09-11 19:05:38 +00:00
Dianne Hackborn
95d785346b Fix issue #10688644: Java crash in com.android.phone:
java.lang.SecurityException: Operation not allowed

There was a situation I wasn't taking into account -- components
declared by the system has a special ability to run in the processes
of other uids.  This means that if that code loaded into another
process tries to do anything needing an app op verification, it will
fail, because it will say it is calling as the system package name but
it is not actually coming from the system uid.

To fix this, we add a new Context.getOpPackageName() to go along-side
getBasePackageName().  This is a special call for use by all app ops
verification, which will be initialized with either the base package
name, the actual package name, or now the default package name of the
process if we are creating a context for system code being loaded into
a non-system process.

I had to update all of the code doing app ops checks to switch to this
method to get the calling package name.

Also improve the security exception throw to have a more descriptive
error message.

Change-Id: Ic04f77b3938585b02fccabbc12d2f0dc62b9ef25
2013-09-11 09:59:47 -07:00
Erik Gilling
51e95df8f2 Add consumer IR framework
Change-Id: I786c00db0cce61ef75e4edc24e90f2cdcba6dbfb
2013-09-11 09:52:47 -07:00
Adam Skory
a7cda03a47 resolved conflicts for merge of 7d17de35 to master
Conflicts:
	core/res/res/values/public.xml

Change-Id: I14b4e332be7ef27e76a2773a504cb942bd0642ef
2013-09-11 16:16:19 +01:00
Adam Skory
86d9c457de Merge "Revert services assist context in KitKat" into klp-dev 2013-09-11 11:27:50 +00:00
Adam Skory
7140a25f01 Revert services assist context in KitKat
Reverts extension to assist context API to query
foreground services for assist context data.

Also hides Intent.ACTION_VOICE_ASSIST because
nobody's actually using it yet.

Bug: 10461702
Change-Id: Idf6836adc659b434e11ebb2b98e8b814c94a7227
2013-09-11 12:04:58 +01:00
Jeff Brown
279f3cdf70 am 9993f8ff: am dc6fd0a2: Merge "Propagate input ANR reason to activity manager log." into klp-dev
* commit '9993f8ff24718553c05872d9f13f4114701b3428':
  Propagate input ANR reason to activity manager log.
2013-09-10 16:58:06 -07:00
Jeff Brown
dc6fd0a20a Merge "Propagate input ANR reason to activity manager log." into klp-dev 2013-09-10 23:52:53 +00:00
Jeff Brown
bd181bb832 Propagate input ANR reason to activity manager log.
Make it a little easier to diagnose input dispatch timeouts by
providing the detailed reason as the ANR annotation in the log.

Bug: 10689184
Change-Id: Ie18fd9ad066b0673d1f57c030e027ad0085f4650
2013-09-10 16:44:24 -07:00
Alan Viverette
b1e91e37a3 Merge "Add public attr for fragmentBreadCrumbStyle, apply in constructor" 2013-09-10 23:03:42 +00:00
Alan Viverette
aaca5d888a Add public attr for fragmentBreadCrumbStyle, apply in constructor
BUG: 10680808
Change-Id: I7c22c1ff0b91892e62ea6bf6a311d33df6f13d78
2013-09-10 15:04:10 -07:00
David Braun
84166e888b am 4cd9612c: am b776122a: Merge "Factor out read/write SMS settings seperate from send/receive." into klp-dev
* commit '4cd9612c3268277581589b34cc49ed04c93873b2':
  Factor out read/write SMS settings seperate from send/receive.
2013-09-10 13:38:12 -07:00
David Braun
b776122a8a Merge "Factor out read/write SMS settings seperate from send/receive." into klp-dev 2013-09-10 20:33:28 +00:00
David Braun
18966a8dd8 Factor out read/write SMS settings seperate from send/receive.
Change-Id: I161782b1508be433c910ec13c0b18e728bf7d2ba
2013-09-10 13:14:46 -07:00
Alan Viverette
5b73e36507 Merge "Add View constructor that supplies a default style resource" 2013-09-10 02:04:22 +00:00
Alan Viverette
617feb99a0 Add View constructor that supplies a default style resource
Also updates the constructor of every class that extends View.

BUG: 10676369
Change-Id: Ifaf27bf82028d180afa4931c0e906df88d858ac3
2013-09-09 18:09:13 -07:00
Christopher Tate
4d0b9abae7 Merge "Fix clearApplicationUserData() to allow a null observer" into klp-dev 2013-09-09 21:26:50 +00:00