284 Commits

Author SHA1 Message Date
Colin Cross
a42cb8b0e2 resolved conflicts for merge of a67e34c8 to master
Change-Id: I597525886260884c9b2dfc7945e01eb8138a58c2
2014-03-21 13:11:02 -07:00
Jinsuk Kim
f2fecf48f7 am c61f4dd7: Merge "Add HDMI-CEC service" into klp-modular-dev
* commit 'c61f4dd744b1b0396703aa58eb22fc31d2b7050e':
  Add HDMI-CEC service
2014-03-21 02:37:00 +00:00
Jinsuk Kim
c61f4dd744 Merge "Add HDMI-CEC service" into klp-modular-dev 2014-03-21 02:32:38 +00:00
Jinsuk Kim
4f512fb451 Add HDMI-CEC service
This CL adds a system service handling HDMI-CEC protocol. The service
is equipped with the capability sending/receiving HDMI-CEC messages

Not all the messages are in place. Currently it has messages to support
a few features only, as follows:

- One touch play
- System information
- Routing control (partially - active source status maintenance only)
- Device OSD transfer
- Power status

It will be extended to cover the wider usages in the follow up CLs.

The CEC standard version referenced in the implementation is 1.3a.

Change-Id: Ifed0b02f52ebf098eddb3bd0987efbf353b7e8fe
2014-03-20 16:40:22 +09:00
Adam Lesinski
10caca13da am f5f6487e: am d8e585e7: am 006209c2: Merge "Remove reflection instantiation of Accessibility" into klp-modular-dev
* commit 'f5f6487e5999f6b4984e03bf6fe831ed83f5f4b6':
  Remove reflection instantiation of Accessibility
2014-03-17 23:32:32 +00:00
Adam Lesinski
d8e585e7e5 am 006209c2: Merge "Remove reflection instantiation of Accessibility" into klp-modular-dev
* commit '006209c2fc1b6deef10f6d52831e9cef35cca212':
  Remove reflection instantiation of Accessibility
2014-03-17 19:58:19 +00:00
Adam Lesinski
6c6cd5012b Remove reflection instantiation of Accessibility
Accessibility is mandatory so reflection is not required.

Change-Id: Ie5c7b0bba26809425fe0f66efcc09c333138b21f
2014-03-17 12:54:03 -07:00
Jeff Brown
3651cb7b4a am cd9cd758: am c213b3a3: am f7f80d7b: Merge "Start the dream manager even if dreams are not supported." into klp-modular-dev
* commit 'cd9cd758d6dc884220f86ff10812c9e33a978de5':
  Start the dream manager even if dreams are not supported.
2014-02-24 22:25:19 +00:00
Jeff Brown
c213b3a34c am f7f80d7b: Merge "Start the dream manager even if dreams are not supported." into klp-modular-dev
* commit 'f7f80d7b54b11d432bb6e72da526edf369128ea7':
  Start the dream manager even if dreams are not supported.
2014-02-24 22:18:32 +00:00
Jeff Brown
f7f80d7b54 Merge "Start the dream manager even if dreams are not supported." into klp-modular-dev 2014-02-24 22:16:00 +00:00
Jeff Brown
e0dd3ca81d Start the dream manager even if dreams are not supported.
The dreams manager also manages dozing.  It has a minimal footprint
so there is no real reason to disable the component (it just makes
debugging more difficult).

Improved the documentation of the config_dreamsSupported resource
to clarify exactly what it controls.

Bug: 12494706
Change-Id: I78244846f7c1ddfd11bc1605af59b0db91337971
2014-02-24 14:07:27 -08:00
Adam Lesinski
4c90185a35 am 542b55d9: am c8661519: am 83930aa0: Merge "Fix broken IME when decrypting storage" into klp-modular-dev
* commit '542b55d9a4bee2f98f8a0a6948e0873c5faaddc7':
  Fix broken IME when decrypting storage
2014-02-22 00:20:57 +00:00
Adam Lesinski
c866151926 am 83930aa0: Merge "Fix broken IME when decrypting storage" into klp-modular-dev
* commit '83930aa09aecef7429d8a1c07b80f10b7e2e13f6':
  Fix broken IME when decrypting storage
2014-02-21 22:17:26 +00:00
Adam Lesinski
8793dd873d Fix broken IME when decrypting storage
Bug:13113499
Change-Id: Icf767864c8ff694fd569b9237ae1004cc20204a2
2014-02-21 14:06:47 -08:00
RoboErik
3328868544 Merge "Initial round of MediaSession APIs" 2014-02-20 00:25:10 +00:00
RoboErik
01fe661ae5 Initial round of MediaSession APIs
This is far from complete but puts the basic components in place
for an app to interact with media sessions.

Change-Id: Icfe313f90ad76ae56badbe42b0e43fc5f68db36f
2014-02-19 13:41:37 -08:00
Adam Lesinski
f542a33c8d Fix build due to change in SystemServiceManager
Change-Id: I0fabb98b7b84e5c721757d20df4eac501ca21cc0
2014-02-19 12:29:58 -08:00
Adam Lesinski
a78068e7a3 am 13c83996: am 1c532c2e: am 4b07b26e: Merge "Make UsbService optional" into klp-modular-dev
* commit '13c839962e246517a7a95326610ea30c529d79dc':
  Make UsbService optional
2014-02-19 19:48:05 +00:00
Adam Lesinski
1c532c2e2d am 4b07b26e: Merge "Make UsbService optional" into klp-modular-dev
* commit '4b07b26e8654df52ca80bb2165ebdf9352ab9337':
  Make UsbService optional
2014-02-19 19:41:26 +00:00
Adam Lesinski
5441745eff am 019b1f26: am 2ea983a5: am 3d9bcb90: Create FEATURE_ constants for print and backup
* commit '019b1f2668ac17f5e52b6ce32a524d26134a062a':
  Create FEATURE_ constants for print and backup
2014-02-18 23:03:37 +00:00
Adam Lesinski
2ea983a567 am 3d9bcb90: Create FEATURE_ constants for print and backup
* commit '3d9bcb90ee6c0ffff93642539ae64fb672c7f14a':
  Create FEATURE_ constants for print and backup
2014-02-18 22:57:37 +00:00
Adam Lesinski
2cb6c60c0d Make UsbService optional
Tweaked the services Android.mk to build dependencies
when building with mm[m].

Change-Id: I6dad511c652bcacc085f27ede5f8f22a6982c6bd
2014-02-18 14:57:09 -08:00
Adam Lesinski
3d9bcb90ee Create FEATURE_ constants for print and backup
Bug:13079822

Change-Id: I6f4b759951d45989e8aad4011fae431ee2ecae0c
2014-02-18 14:33:00 -08:00
Jeff Brown
88aaef7128 am ce0552f3: am 8a4c2bb1: am 567f7ca4: Refactor dream manager to new pattern.
* commit 'ce0552f360d8c8f0bc45095293be369800ce9c93':
  Refactor dream manager to new pattern.
2014-02-14 09:50:37 +00:00
Jeff Brown
8a4c2bb1f0 am 567f7ca4: Refactor dream manager to new pattern.
* commit '567f7ca424280ae957b04d4f3df690055f2d41df':
  Refactor dream manager to new pattern.
2014-02-14 09:14:09 +00:00
Jeff Brown
567f7ca424 Refactor dream manager to new pattern.
Change-Id: I99ab4bd98d56a290368dc4b24e5bb24e0656b522
2014-02-13 23:26:59 -08:00
Jeff Brown
cab8617b8c am 25df673b: am 1b51c9cb: Merge "Make SystemService constructor take a Context." into klp-modular-dev
* commit '25df673b849de374cf1de40250dfd8a48b7ac28b':
  Make SystemService constructor take a Context.
2014-02-11 08:33:50 +00:00
Jeff Brown
25df673b84 am 1b51c9cb: Merge "Make SystemService constructor take a Context." into klp-modular-dev
* commit '1b51c9cb96fe2a0818289857a016521eed1ec183':
  Make SystemService constructor take a Context.
2014-02-11 08:18:34 +00:00
Jeff Brown
b880d880c6 Make SystemService constructor take a Context.
This change simplifies the process of initializing a SystemService
by folding the onCreate() step back into the constructor.  It removes
some ambuiguity about what work should happen in the constructor and
should make it possible for services to retain most of their final
fields after refactoring into the new pattern.

Change-Id: I25f41af0321bc01898658ab44b369f9c5d16800b
2014-02-10 20:01:43 -08:00
Adam Lesinski
9f97de1335 am a5a93f55: am 7f416631: Merge "Check feature bits before loading optional services" into klp-modular-dev
* commit 'a5a93f559d337ad5b79716b05ea43707eb779dc8':
  Check feature bits before loading optional services
2014-02-06 20:25:51 +00:00
Adam Lesinski
a5a93f559d am 7f416631: Merge "Check feature bits before loading optional services" into klp-modular-dev
* commit '7f416631413e75a1756bd316a2e1906725d72f24':
  Check feature bits before loading optional services
2014-02-06 20:16:30 +00:00
Adam Lesinski
898c13df7b Check feature bits before loading optional services
At startup, we check with PackageManager whether a system service is
available before attempting to load it. A system service is available
if its associated feature (similar to hardware features) is present.
This does not remove unavailable services from the compiled jar.

Change-Id: I13571805083aa4e65519a74acb52efd17b9fb3d7
2014-02-05 19:26:40 +00:00
Amith Yamasani
9158825f9c Move some system services to separate directories
Refactored the directory structure so that services can be optionally
excluded. This is step 1. Will be followed by another change that makes
it possible to remove services from the build.

Change-Id: Ideacedfd34b5e213217ad3ff4ebb21c4a8e73f85
2013-12-19 15:25:37 -08:00
Adam Lesinski
182f73fc4d Introduce a Lifecycle for system services
Provide an abstract class for system services to extend from,
similar to the android.app.Service.

This will allow services to receive events in a uniform way,
and will allow services to be created and started in the
correct order regardless of whether or not a particular
service exists.

Similar to android.app.Service, services are meant to implement
Binder interfaces as inner classes. This prevents services from
having incestuous access to each other and makes them use the
public API.

Change-Id: Iaacfee8d5f080a28d7cc606761f4624673ed390f
2013-12-12 16:35:11 -08:00
Amith Yamasani
09e9cdcece DO NOT MERGE : Move some system services to their own sub package.
(Cherry pick from master)

As a next step they can be moved into separate directories to be
built as separate modules that may or may not be included in a
particular configuration.

Moves AppWidgetService, BackupManagerService, ClipboardService, DevicePolicyMS,
and WallpaperMS.

Change-Id: Idd92871c1828bdde81d85fe99a9c87a22d53169d
2013-12-09 15:14:41 -08:00
Amith Yamasani
d50d41e4df DO NOT MERGE: Don't freak out if SystemUiService isn't available
Reducing dependencies on system services

Change-Id: Ifb1a3bfb9c8dda5e22ec698ddb588058d20bd566
2013-12-09 15:14:39 -08:00
Mike Lockwood
e63f6f7c8d DO NOT MERGE: Remove obsolete "headless" support
Change-Id: I829fe48e6ebcb819e260646bb19ac6ddfcf07f83
2013-12-09 15:14:37 -08:00
Jeff Brown
d40a4d74c6 Merge "Add media router service and integrate with remote displays." into klp-dev 2013-11-08 01:36:55 +00:00
Jeff Brown
69b07161be Add media router service and integrate with remote displays.
This change adds a new media router service whose purpose is to track
global state information associated with media routes.  This service
publishes routes to the media router instance in application processes
and handles requested state changes such as selecting or unselecting
global routes.  The service also binds to remote display provider
services which can offer new remote display routes to the system.

Includes a test application for manually verifying certain aspects
of the operation of the media router service.

The remote display provider interface is essentially a stripped down
media route provider interface as defined in the support library
media router implementation.  For now, it is designed to be used only
by first parties to publish remote display routes to the system so
it is not exposed as public API in the SDK.  In the future, the remote
display provider interface will most likely be deprecated and replaced
with a more featureful media route provider interface for third
party integration, similar to what is in the support library today.

Further patch sets integrate these new capabilities into the System UI
and Settings for connecting remote displays.

Bug: 11257292
Change-Id: I31109f23f17b474d17534d0f5f4503e388b081c2
2013-11-07 03:25:37 -08:00
Brian Carlstrom
5637ffced9 Move set of persist.sys.dalvik.vm.lib to SystemServer only
Bug: 11463182
Bug: 11479647
Change-Id: I38efdecdd65fe3efc9c33b4dc204a64543ae6377
2013-11-01 14:51:58 -07:00
Vinit Deshapnde
04675f6ae9 Set P2p statemachine's network manager before starting Wifi
Wifi statemachine starts P2p statemachine; which uses network management
service to (i.e. netd) to start p2p0 interface. But it only gets a
reference to network management service in conenctivityServiceReady().
Calling that later means there's a chance of a race between this
thread's setting of the network manager, and P2p statemachine thread's
usage of the same.

Bug: 11048296
Change-Id: If151026ed5fbb12db57ee7f9bdd47c67dd7142e5
2013-10-03 16:18:56 -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
Erik Gilling
51e95df8f2 Add consumer IR framework
Change-Id: I786c00db0cce61ef75e4edc24e90f2cdcba6dbfb
2013-09-11 09:52:47 -07:00
Svetoslav Ganov
a00271533f Refactoring of the print sub-system and API clean up.
1. Now a user state has ins own spooler since the spooler app is
   running per user. The user state registers an observer for the state
   of the spooler to get information needed to orchestrate unbinding
   from print serivces that have no work and eventually unbinding from
   the spooler when all no service has any work.

2. Abstracted a remote print service from the perspective of the system
   in a class that is transparently managing binding and unbinding to
   the remote instance.

3. Abstracted the remote print spooler to transparently manage binding
   and unbinding to the remote instance when there is work and when
   there is no work, respectively.

4. Cleaned up the print document adapter (ex-PrintAdapter) APIs to
   enable implementing the all callbacks on a thread of choice. If
   the document is really small, using the main thread makes sense.

   Now if an app that does not need the UI state to layout the printed
   content, it can schedule all the work for allocating resources, laying
   out, writing, and releasing resources on a dedicated thread.

5. Added info class for the printed document that is now propagated
   the the print services. A print service gets an instance of a
   new document class that encapsulates the document info and a method
   to access the document's data.

6. Added APIs for describing the type of a document to the new document
   info class. This allows a print service to do smarts based on the
   doc type. For now we have only photo and document types.

7. Renamed the systemReady method for system services that implement
   it with different semantics to systemRunning. Such methods assume
   the the service can run third-party code which is not the same as
   systemReady.

8. Cleaned up the print job configuration activity.

9. Sigh... code clean up here and there. Factoring out classes to
   improve readability.

Change-Id: I637ba28412793166cbf519273fdf022241159a92
2013-07-16 12:59:59 -07:00
Jeff Brown
ef69117979 Remove dead code in system server initialization.
System server always forks from Zygote so we no longer need
the system_server executable which was probably broken anyhow.
This makes the initialization sequence slightly more intelligible.

Likewise, we don't need the GrimReaper anymore because init
will automatically take care of restarting the system when the
service manager dies.

Change-Id: I02c88d9392f7c8133d9cde9d0d978da89ed80452
2013-07-15 15:08:39 -07:00
Svetoslav Ganov
4b9a4d1687 Print - platform APIs
Related changes:
    Skia (inlcude PDF APIs): https://googleplex-android-review.googlesource.com/#/c/305814/
    Canvas to PDF: https://googleplex-android-review.googlesource.com/#/c/319367/
    Settings (initial version): https://googleplex-android-review.googlesource.com/#/c/306077/
    Build: https://googleplex-android-review.googlesource.com/#/c/292437/
    Sample print services: https://googleplex-android-review.googlesource.com/#/c/281785/

Change-Id: I104d12efd12577f05c7b9b2a5e5e49125c0f09da
2013-06-21 18:43:17 -07:00
Ken Sumrall
025adc4457 Don't wait for the MountService to be ready when encrypting
The MountService will take 2 minutes to time out trying to
get volume and asec lists from vold, because vold is busy encrypting
and not listening to requests on its socket.  So when encrypting,
do not wait for it to be ready, as we don't have /data mounted anyhow.

Change-Id: I45c1067b168231cbec7a0f577de2ff3b28dbac55
2013-06-05 22:08:12 -07:00
Dianne Hackborn
713df150b9 Add app ops for wake locks.
Currently only supports auditing, not disabling.

Change-Id: Ie85f02c29b490d96e073f54d59e165d48c7c00c9
2013-05-20 16:49:46 -07:00
Dianne Hackborn
efa92b2182 Cleanup some of the thread merging.
Adds an optimization for checking whether a looper is stuck,
with a new Looper method to see if its thread is currently
idle.  This will allow us to put a large number of loopers
in the monitor efficiently, since we generally won't have to
do a context switch on each of them (since most looper threads
spend most of their time idle waiting for work).

Also change things so the system process's main thread
is actually running on the main thread.  Because Jeff
asked for this, and who am I to argue? :)

Change-Id: I12999e6f9c4b056c22dd652cb78c2453c391061f
2013-05-07 15:33:26 -07:00
Svetoslav
100ed154b7 am b0675df8: am faa47b52: Merge "Idle maintenance scheduling broken." into jb-mr2-dev
* commit 'b0675df8fd377230edc392e02ba0eba275b57992':
  Idle maintenance scheduling broken.
2013-05-06 13:56:14 -07:00