Commit Graph

1412 Commits

Author SHA1 Message Date
Dianne Hackborn
1cd9a73ac0 am f3b4cf7d: am 28eeb420: Merge "Implement #10749688: Improve low memory reporting" into klp-dev
* commit 'f3b4cf7d01b68418dd652e201868d140de081bd8':
  Implement #10749688: Improve low memory reporting
2013-09-13 17:30:31 -07:00
Jeff Sharkey
4c7c51480e am f5513f41: am 0bf2ed90: Merge "Move search to roots; Documents root; hide empty." into klp-dev
* commit 'f5513f41fe041bef29ec70abdce7cc6f582a11c2':
  Move search to roots; Documents root; hide empty.
2013-09-13 17:22:41 -07:00
Dianne Hackborn
28eeb42012 Merge "Implement #10749688: Improve low memory reporting" into klp-dev 2013-09-13 23:06:07 +00:00
Dianne Hackborn
8e69257a9c Implement #10749688: Improve low memory reporting
This significantly reworks the logging we do when
all cached processes are killed:

- We now collect the list of processes in-place so we
  have a snapshot of exactly when the low memory situation
  happened.
- In that snapshot we include the key process state: oom
  adj, proc state, adj reasons.
- The report then asynchronously collects pss information
  for those processes.
- The ultimate data printed to the log looks like a mix
  between the "dumpsys meminfo" and "dumpsys activity"
  output.  This code no longer uses "dumpsys meminfo"
  itself, so some of that data is no longer included,
  in particular pss organized by allocation type.

In doing this, I realized that the existing code that is
supposed to run "procstats" is not currently working.  And
at that point I realized, really, when we are collecting
this pss data we'd really like to include all those native
processes using ghod-only-knows how much RAM.  And guess
what, we have a list of processes available in
ProcessCpuTracker.

So we now also collect and print information for native
processes, and we also do this for "dumpsys meminfo" which
really seems like a good thing when we are printing summaries
of all pss and such.

I also improved the code for reading /proc/meminfo to be
able to load all the interesting fields from there, and
am now printing that as well.

Change-Id: I9e7d13e9c07a8249c7a7e12e5433973b2c0fdc11
2013-09-13 16:02:01 -07:00
Jeff Sharkey
3e1189b359 Move search to roots; Documents root; hide empty.
Documents searches now happen root-wide, instead of only under a
subdirectory.  Updates abstract class and flags to match.  Add flag
for a root to indicate it's empty, and hide empty roots in UI unless
creating.

Define "Documents" public directory and storage backend to contain
files.

Bug: 10712057, 10710865, 10710758
Change-Id: I8716367568969f9cb1d83927b2bf5a7013809350
2013-09-13 11:35:04 -07:00
Jeff Sharkey
123eeea6d6 am e2d76fa8: am cecccecc: Merge changes Ib1274847,I2eb2a1bf into klp-dev
* commit 'e2d76fa8c6d0f5c3d1a73a3ec9756c4bc545806d':
  Fix SDK build.
  Request all tethering interfaces, fix corruption.
2013-09-11 17:23:29 -07:00
Dianne Hackborn
8d717b917c resolved conflicts for merge of 03422d26 to master
Change-Id: I5d012fb122224c949a0039450bf0a9a475dc8e82
2013-09-11 16:43:22 -07:00
Jeff Sharkey
ceccceccff Merge changes Ib1274847,I2eb2a1bf into klp-dev
* changes:
  Fix SDK build.
  Request all tethering interfaces, fix corruption.
2013-09-11 20:16:59 +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
Jeff Sharkey
e4984bea95 Request all tethering interfaces, fix corruption.
netd now tracks statistics for tethered interfaces across tethering
sessions, so switch to asking for all tethering stats.  (Currently
we're double-counting all tethering data, ever since it started
tracking across sessions.)

Also catch OOME to handle corrupt stats files, which we then dump to
DropBox and then start over.

Bug: 5868832, 9796109
Change-Id: I2eb2a1bf01b993dd198597d770fe0e022466c6b9
2013-09-10 21:03:30 -07:00
Jeff Brown
605839066a Fix crash when Looper used after quit.
Calling Looper.loop() after quit() isn't supported but it shouldn't
crash either.

Bug: 8808624
Change-Id: I73ea54444ed908c2e8964645f4a8cd08b842baac
2013-09-09 16:14:20 -07:00
Jeff Brown
c677ff8c3b am cbf2b02d: am 23a5f44c: Merge "Fix native crash when message queue quits." into klp-dev
* commit 'cbf2b02d6c288c49f5bdbcb70d87c44d26086ba4':
  Fix native crash when message queue quits.
2013-09-06 18:41:43 -07:00
Jeff Brown
23a5f44c5a Merge "Fix native crash when message queue quits." into klp-dev 2013-09-07 01:34:52 +00:00
Jeff Brown
013cf847bc Fix native crash when message queue quits.
Fix a race when quitting the looper's message queue that could
cause the mPtr field to be zeroed out and the native object to
be destroyed while still in use.

This happened due to an optimization that was intended to release
the native looper's file descriptor as soon as the last message
was processed rather than waiting for the finalizer to run.

Bug: 9726217
Change-Id: I695a9a657acfdb3ce65a5737ff20cd11113d15fa
2013-09-06 18:07:12 -07:00
Robert Greenwalt
e52785e6a7 am 9234e15d: am ecd0db5a: Merge "Setting MTU size for specific network." into klp-dev
* commit '9234e15d8d4d99b211e6bb5c199790a77cf36be7':
  Setting MTU size for specific network.
2013-09-06 15:49:42 -07:00
Robert Greenwalt
ecd0db5a73 Merge "Setting MTU size for specific network." into klp-dev 2013-09-06 22:42:10 +00:00
Dianne Hackborn
1775ebb76f am b6459eb2: am 3e1fdd9e: Merge "Implement issue #10550827: watching gpu memory for occam_svelte" into klp-dev
* commit 'b6459eb25f0593561389d7cb3da38a4f960cce14':
  Implement issue #10550827: watching gpu memory for occam_svelte
2013-09-06 15:34:43 -07:00
sy.yun
9d9b74a900 Setting MTU size for specific network.
Able to config network specific MTU size. Normally, the default size of MTU is 1500.
 US - ATT 1410, TMUS 1440, SPRINT 1422
 KR - SKT 1440, KT 1450, LGU+ 1428
 JP - KDDI 1420, SoftBank 1340
 CA - RGS 1430, FIDO 1430, MTS 1430, BELL 1358, SaskTel 1358
 AU - TEL 1400

Bug: 10195070
Change-Id: Ie18650b37a3d44af944f2dae4aa97c04fb12cd5e
2013-09-06 15:26:19 -07:00
Dianne Hackborn
37c9943262 Implement issue #10550827: watching gpu memory for occam_svelte
Well, it would work if the published file permissions gave the
system process access to them. :(

Change-Id: I99e0c506f52c212384b20a042dcdd35516cf49c2
2013-09-06 15:06:04 -07:00
Igor Murashkin
a94db2467c am 76f883e0: am 034052b3: Merge "Binder: Log exceptions originating from the binder stub for oneway calls" into klp-dev
* commit '76f883e0a8fa6d62110824399440c779a1b68874':
  Binder: Log exceptions originating from the binder stub for oneway calls
2013-09-06 13:46:16 -07:00
Igor Murashkin
034052b352 Merge "Binder: Log exceptions originating from the binder stub for oneway calls" into klp-dev 2013-09-06 18:32:30 +00:00
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
Igor Murashkin
7eb6cfe10b Binder: Log exceptions originating from the binder stub for oneway calls
- Under a normal situation, if an exception happens in managed, the stack trace
  will be printed to logcat.
- Hitherto, the Binder#execTransact call silently caught exceptions and passed
  them to the remote side with Parcel#writeException
- Although this behavior might be acceptable when there is a remote side,
  for FLAG_ONEWAY calls the exception effectively disappeared.
- From the user point of view, it looked like code execution "halted" when an
  exception was thrown.

This tries to make the binder exception handling behavior more like normal,
by printing the exception to the log, to give a better indication of what
happened.

Change-Id: I1f37f0468f61e766a71db60d2fda2104936ab096
2013-09-05 11:17:20 -07: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