13834 Commits

Author SHA1 Message Date
Narayan Kamath
bf88205bef Fall back to persist.sys.language/country if locale isn't set.
This will prevent users from losing their language setting when they
take an OTA to M.

bug: 23021286
Change-Id: Ifb66f6bf6a940ab745edac709321f3009ec6eab4
2015-08-12 11:03:46 +01:00
Alan Viverette
c12ec70def Avoid use-after-free race condition when rebasing theme
... by never rebasing the theme. We don't need to do this unless the
system theme is configuration-dependent, which it is not currently.

Bug: 22943781
Change-Id: I96e695441543379e4d5fdf3cc6f18d9e6cf953b4
2015-08-11 10:26:08 -04:00
Miao Chou
658bf2fa6d Add BluetoothService to reduce resuming time after reboot
As a subclass of SystemService, BluetoothService wraps around
BluetoothManagerService to unlock Auto-enabling Bluetooth earlier by overriding
onBootPhase() and removes the need to wait for BOOT_COMPLETED message.

Bug:21705209
Change-Id: I2acc41370a750d8416e11e662e06392326741d2c
2015-07-01 19:09:44 +00:00
Alan Viverette
15d48a16f6 DO NOT MERGE: Remove DayNight theme
Do not go gentle into that good night,
Old age should burn and rave at close of day;
Rage, rage against the dying of the light.

Though wise men at their end know dark is right,
Because their words had forked no lightning they
Do not go gentle into that good night.

Bug: 21854466
Change-Id: I0b7cd116c23f7df88e94f31b3aee7dd22a102804
2015-06-18 15:15:16 -07:00
Christopher Tate
2c9655b3d4 If we're out of space, retry background dexopting later
Give it 4 hours to give the user time to do stuff, then retry;
repeat until we have space to work in.

Bug 20468442

Change-Id: Id4b11abcc38a9e2a50a062f0067a13ce0ae831ad
2015-06-12 13:06:45 -07:00
Alan Viverette
e54d245b99 Improve keying for theme caches, rebase system theme on config change
Themes now use an array of applied styles rather than a String to store
their history. They are keyed based on a hash code computed from the
history of applied styles. The themed drawable cache has been abstracted
out into its own class.

Also updates system context to use DayNight as the default and ensures
that GlobalActions uses the correct context, which exercises the change.

CTS tests have been added in another CL.

Bug: 20421157
Change-Id: I9eb4b7dffd198ad24d02f656eaf0839570b59caa
2015-05-06 10:41:43 -07:00
Prerepa Viswanadham
d1808401ca Merge changes from topic 'mwd-merge-050415' into mnc-dev
* changes:
  Merge commit 'b6f59f4' into master_merge
  Merge commit 'f6db0ce' into master_merge
  Merge commit '17455a3' into master_merge
  Merge commit 'b4d5b32' into master_merge
  Merge commit 'a1a2fa7' into master_merge
  Merge commit '8dfdb98' into master_merge
  Merge commit 'eba66c3' into master_merge
2015-05-05 01:06:38 +00:00
Svet Ganov
b9d71a6f89 Add body sensors app op - framework base
Change-Id: Idd5cd573fab3405e5b2a6e51d2d9d115650826e9
2015-05-01 13:56:04 -07:00
John Spurlock
df7f02b6e0 am ad61b833: Merge "Fix no vibration during shutdown."
* commit 'ad61b8336aa9627a6ae19580bbdc370dc8bd6810':
  Fix no vibration during shutdown.
2015-04-30 12:47:20 +00:00
Dianne Hackborn
0b4daca9ba Implement user-settable power save whitelist.
The whitelist is now maintained by DeviceIdleController,
which is moving out into its own independent system service.
Network stats now queries it for the whitelist, instead of
collecting that itself.

Also did a few improvements in alarm manager -- made the
code for moving alarms out of the pending list more robust,
and fixed the debug output to always print the contents of
the pending list even if we aren't in a pending state.  (That
would have helped me identify the problem much earlier.)

Change-Id: I0f7119d4c553c3af4d77b2f71246fa6e2c13c561
2015-04-29 12:38:09 -07:00
Jeff Brown
5d6443bf7c Set initial screen brightness earlier in the boot process.
Previously we had to wait for systemReady before setting the brightness
due to the order in which the display power controller was initialized.
Unfortunately it could take us a rather long time to reach that stage,
particularly after an OTA where the screen would remain at maximum
brightness for minutes while "Optimizing Apps".

This change moves the brightness backlight setting code deeper
into the display manager which has a couple of nice side-benefits
in that it now becomes much easier to coordinate display power mode
changes with display backlight changes.  So this change also resolves
some issued with changing the backlight while in DOZE_SUSPEND and
ensuring that backlight changes generally end up being performed
before executing a power mode change except in the case where the
display needs to come out of suspend first.  (So now the backlight
will be set before entering DOZE from the ON state.)

Deleted some dead code in LightService which was in the way.

Bug: 19029490
Change-Id: I494b5223e676248daf2ff8be3ec338845977f73c
2015-04-13 01:51:22 -07:00
Ruben Brunk
9d21ee5d77 Add CameraService to system server.
- Adds a camera service to system server that forwards events to the
  mediaserver camera service.
- Notify the camera service when the device user changes.

Bug: 19186859
Change-Id: I172a2ce46c8e8a131ae7e8dd99d60c5f4f0d6668
2015-03-31 12:01:22 -07:00
John Reck
c74e289a65 Merge "Add GraphicsStatsService" 2015-03-30 19:39:27 +00:00
Mike Lockwood
5781cd5b21 Make the MIDI Manager optional, enabled by "android.software.midi" feature
Change-Id: I76d442ea28beea4b9e2876bfef501d8f61403702
2015-03-27 13:23:41 -07:00
John Reck
edc524c905 Add GraphicsStatsService
More S's for More Speed

Split JankTracker's backing data from the
class to allow for data relocation to/from ashmem regions

Pack the jank tracking data to fit in 256 bytes

Change-Id: Ife86a64b71a328fbd0c8075fe6a0404e081f725b
2015-03-27 11:50:56 -07:00
John Spurlock
221d2cbf2f Merge "Remove the ability to disable audio service." 2015-03-24 22:30:14 +00:00
John Spurlock
b4f01b966b Remove the ability to disable audio service.
Running in a configuration without audio service is not fully tested.
Remove the configuration option for now. Also remove unused delegation
layer in SoundPool.

Bug: 19891112
Change-Id: I47be0e32d54b8ef8fa25cf47b85eacf8a4969500
2015-03-24 17:22:13 -04:00
Dianne Hackborn
88e98dfa59 More work on device idle mode.
- There is now an API for people to find out about
  its state.
- Moved DeviceIdleController to be closer to the
  power manager implementation, since they are
  closely related.
- Job scheduler now knows about idle state and doesn't
  run jobs while the device is idle.
- Battery stats now keeps track of "idling" vs "idle mode".
  Idling is when we consider the device to be idle,
  independent of whether we are actually in deep idle mode.
  This allows us to keep track of longer-term changes
  independently of cycling in and out of idle mode.
- Battery stats also now keeps track of package changes in
  its daily stats.
- Small optimization to network policy manager service to
  not touch uids that do not have the NETWORK permission.

Change-Id: I0b3304fb3722c78cdfdd0c1eada7369ece7cbcf9
2015-03-24 11:03:49 -07:00
Adam Lesinski
3561761776 Merge "Set the appliance (tv/watch) in the configuration earlier" 2015-03-23 18:33:10 +00:00
Jeff Sharkey
bf2673384c Merge "Bring MountService into the SystemService world." 2015-03-22 20:03:55 +00:00
Jeff Sharkey
56e629322f Bring MountService into the SystemService world.
Change-Id: I7f7db49ff373b199f7b81f184a7c62bee682af67
2015-03-21 20:41:00 -07:00
Adam Lesinski
05199e83a4 Set the appliance (tv/watch) in the configuration earlier
Some UI is displayed (boot/optimizing) before the configuration
has been completely set. This noteably happens for watches and
TVs because UIModeManagerService hasn't started yet.

UIModeManagerService is started earlier, and its dependency
TwilightService is loaded during the "all system services ready"
boot phase.

b/18388692

Change-Id: Iabdf8ac3eb04ebcb44779d752e19042769cc65c6
2015-03-19 14:40:25 -07:00
Dianne Hackborn
8ad2af7e5b First stab at device idle mode.
Introduce a new device idle controller service that
monitor's the device state and determines when to go
in to idle mode.  When in idle mode, all we do right
now is turn off network access the same as we do for
power save mode.  Many more things should come in the
future -- stopping the alarm manager from scheduling
(most) alarms, telling GmsCore for it to stop doing
stuff, etc.

Battery stats now has state tracking for devie idle
mode, as well as events for the reasons we can come
out of idle mode (significant motion or the device
becoming active).  Also added new events noting when
packages are installed.

Renamed the "low power" event in battery stats to
"power save" because the former was just way too
confusing.

Finally, fix buffer size reading kernel wake locks.
(Stupidly, just increasing the buffer size.  Ideally
we should try to be smarter and grow our buffer to
fit the data available, but I'll leave that for
another time.)

Change-Id: I0be2062466c83ee9d890c6cf5a228d9cc4090eca
2015-03-19 11:10:55 -07:00
riddle_hsu
d3b371755d Fix no vibration during shutdown.
In ShutdownThread:rebootOrShutdown, the vibrator is created
by "new SystemVibrator()" which will use default constructor
of Vibrator.

And because system server is not bound application,
ActivityThread.currentPackageName will be null.
Then the member mPackageName of Vibrator is null.

When doing vibration:
VibratorService.startVibrationLocked
 -> mAppOpsService.startOperation
 -> getOpsLocked (null package will get null op)
 -> return MODE_ERRORED
 -> no vibration

https://code.google.com/p/android/issues/detail?id=160830

Pass null context in SystemServer.performPendingShutdown
because vibrator service is not ready, and from the call
sequence, there is no available context to use.

Change-Id: I3e0175ba6dc2e1a92787873eda4461fba6e89783
2015-03-18 19:01:36 +00:00
Lorenzo Colitti
0ea7b1b094 Enable Ethernet if the device has FEATURE_USB_HOST.
Any device that supports USB OTG is capable of running Ethernet
via a USB OTG cable and Ethernet to USB adapter.

Currently, we only start the Ethernet system service if the
device has FEATURE_ETHERNET, but this requires that every device
explicitly declare FEATURE_ETHERNET, which causes bugs like
http://b/18515146 , where the L OTA broke Ethernet on nakasi.

Therefore, start the Ethernet service on all devices that have
FEATURE_USB_HOST.

Bug: 18515146
Change-Id: I3b4e85d1ad8e1aea9baa046a27f5b4dd68c42028
2015-03-05 16:06:43 +09:00
John Spurlock
08c7116ab9 Remove unused imports in frameworks/base.
Change-Id: I031443de83f93eb57a98863001826671b18f3b17
2015-02-28 14:47:49 -05:00
John Spurlock
6156017c22 Move AudioService to services.
...and a few dependencies. Move remaining shared items to AudioSystem.

Change-Id: Ib9623ff867678d34977337856bb0156e8cdaeeb5
2015-02-09 17:13:38 -05:00
Mike Lockwood
10024b3dc1 MidiManager updates:
MIDI ports are now implemented as file descriptors directly between the sender
and receiver, so the MidiService is no longer in the message path.

To facilitate the above, each port has its own file descriptor, rather than multiplexing
all ports on a device through a single socket.

Added a new class MidiDeviceServer, which is used by implementors of MIDI devices.
This replaces the MidiVirtualDevice class (which only was included in changes that were reviewed but never submitted).

The USB MIDI implementation has moved from the MIDI service to the USB service.
The USB MIDI implementation uses MidiDeviceServer as its interface, so we now have a common
interface for all MIDI device implementations.

Change-Id: I8effd1583f344beb6c940c3a24dbf20b477a6436
2015-01-14 16:51:54 -08:00
Santos Cordon
8c07abe220 am 02775fca: am 8dd185b0: am 5d2c1e69: (Telecom-system part 3) Adding Telecom Loader Service
* commit '02775fca2b78af8089e9f50575ca639898f4f21c':
  (Telecom-system part 3) Adding Telecom Loader Service
2014-12-09 23:20:31 +00:00
Santos Cordon
02775fca2b am 8dd185b0: am 5d2c1e69: (Telecom-system part 3) Adding Telecom Loader Service
* commit '8dd185b08fae8d41bec558ab5a63012454cbb78e':
  (Telecom-system part 3) Adding Telecom Loader Service
2014-12-09 00:18:08 +00:00
Santos Cordon
5d2c1e69ec (Telecom-system part 3) Adding Telecom Loader Service
Bug: 18112269
Change-Id: I85ab03156bf906fdc72b459c4c68240ab3bf1894
2014-12-08 23:30:10 +00:00
Mike Lockwood
67f8e8bd89 MIDI Manager work in progress
Still to do:

Add MidiInputPort and MidiOutputPort classes
Schedule sending MIDI events in the future
Security/permissions
Reconsider interface for virtual devices
Look into performance optimizations

Change-Id: I9b7d63b196996a04be0a830efa913043da1328a8
2014-12-08 10:45:37 -08:00
dcashman
6ec2cbd8d2 am c25cfc57: am 24d02652: Merge "Prevent EntropyMixer from registering with service manager."
* commit 'c25cfc57e0d863b002620f5e7dd14822418c678f':
  Prevent EntropyMixer from registering with service manager.
2014-12-01 23:59:50 +00:00
dcashman
24d02652bf Merge "Prevent EntropyMixer from registering with service manager." 2014-12-01 23:49:26 +00:00
dcashman
fe8afa99a7 Prevent EntropyMixer from registering with service manager.
EntropyMixer is designed to be triggered in two ways, as either the
result of a self-set timer or of one of three system broadcasts.  It is not
meant to be triggered in any other way, so exposing it via servicemanager
is undesirable.

Bug: 18106000

Cherry-pick of commit: 9287e0dd272b85b475e33bcbd7d868517a0f98f9

Change-Id: I9aeb35e7ffde75090f4234ea193514fb883b1425
2014-11-26 13:50:30 -08:00
dcashman
9fd6d9d995 Merge "Remove if(true) line." 2014-11-26 17:23:01 +00:00
dcashman
0e0dbf9367 Merge "Prevent EntropyMixer from registering with service manager." 2014-11-26 17:17:00 +00:00
dcashman
4e3f5d3fe4 Remove if(true) line.
Commit: e4d9a01bfc7451afff1ed399a5801c7aa2af2831 introduced an
if (true) block with the intention of changing it.  Remove it.

Change-Id: Ida637cb69c57b7b676f37a3397d72e0bf010523a
2014-11-26 09:06:57 -08:00
Narayan Kamath
c9269da26c am edda97c9: am fdbef408: Merge "Start MountService before performBootDexOpt"
* commit 'edda97c9ffc4fae08744e42fdbf60040e8f97b99':
  Start MountService before performBootDexOpt
2014-11-26 11:10:48 +00:00
Narayan Kamath
fdbef4081d Merge "Start MountService before performBootDexOpt" 2014-11-26 10:59:29 +00:00
dcashman
9287e0dd27 Prevent EntropyMixer from registering with service manager.
EntropyMixer is designed to be triggered in two ways, as either the
result of a self-set timer or of one of three system broadcasts.  It is not
meant to be triggered in any other way, so exposing it via servicemanager
is undesirable.

Bug: 18106000
Change-Id: I9aeb35e7ffde75090f4234ea193514fb883b1425
2014-11-25 12:59:12 -08:00
padarshr
4a84116d11 Start MountService before performBootDexOpt
This change is to start Mountservice before starting
performBootDexOpt, as in one case, in performBootDexOpt
when system upgrade happens, StorageManager will be started to
get the low threshold of DataDir. But, at this point, as
Mountservice is still not up, StorageManager will end up
having a null object of Mountservice.

Change-Id: I6dec474266faa5de67449c1bbe6ef30791e5ecaa
2014-11-25 10:42:15 -08:00
Narayan Kamath
343f478241 Tell installd when boot completes.
installd can then clear the ".booting" marker from the dalvik-cache
(owned by root). This marker is used to detect boot loops.

bug: 18280671

(cherry picked from commit 76a748e62f354c799342044f724e1f4b80121837)

Change-Id: I2364c05837ac04d428b5a34ab1802964a11d2df4
2014-11-19 14:41:08 +00:00
padarshr
ada454152e Start MountService before performBootDexOpt
This change is to start Mountservice before starting
performBootDexOpt, as in one case, in performBootDexOpt
when system upgrade happens, StorageManager will be started to
get the low threshold of DataDir. But, at this point, as
Mountservice is still not up, StorageManager will end up
having a null object of Mountservice.

Change-Id: I6dec474266faa5de67449c1bbe6ef30791e5ecaa
2014-11-18 10:53:18 +00:00
Narayan Kamath
76a748e62f Tell installd when boot completes.
installd can then clear the ".booting" marker from the dalvik-cache
(owned by root). This marker is used to detect boot loops.

bug: 18280671

Change-Id: I878f1463c7f523892605c17b980a51ac3b6645e2
2014-11-11 10:50:46 +00:00
Jeff Hao
7eb599b267 Get UsageStats if no PackageUsage is available for boot dexopt filtering.
Bug: 17191977
Change-Id: I33e18459e49afa42b8e8218574a2434e5205a6da
2014-10-23 11:27:42 -07:00
Chenjie Luo
2cab8825b3 Add system property config.disable_networktime to configure NetworkTimeUpdateService
Bug: 17934875
Change-Id: Ie5acf7266a5766f407db8f23d2c3d26920fa4020
2014-10-16 13:33:25 -07:00
Chenjie Luo
d25e4efdc1 Revert "Add system property config.disable_timeupdate to configure NetworkTimeUpdateService"
This reverts commit c597c55ffeb9debcf2dba8a77a80caa9016ea4d1.

Change-Id: Idc83e582c10dda2c6245ec19921785f361a07a68
2014-10-16 20:22:24 +00:00
Chenjie Luo
c597c55ffe Add system property config.disable_timeupdate to configure NetworkTimeUpdateService
Bug: 17934875
Change-Id: Ic1acff13190f38cedb1ecf22783d4dfd3373511d
2014-10-16 11:36:31 -07:00
Dianne Hackborn
8d05172112 More work on issue #17656716: Unhandled exception in Window Manager
Fix Slog.wtf to not acquire the activity manager lock in its code
path, so that it can never deadlock.  This was the original intention
of it, but part was missed.

Now we can put back in the code to detect when strict mode data is
getting large (a little more targeted now to the actual problem),
and use Slog.wtf to report it.  And as a bonus, when this happens
we will now clear all of the collected violations, to avoid getting
in to the bad case where IPCs start failing.  So this should be
good enough for L to fix the problem, with wtf reports for us to
see if the underlying issue is still happening.

Finally, switch a butch of stuff in the system process from Log.wtf
to Slog.wtf, since many of those are deadlocks waiting to happen.

Oh and fix a crash in the settings provider I noticed in APR.

Change-Id: I307d51b7a4db238fd1e5fe2f3f9bf1b9c6f1c041
2014-10-01 16:58:56 -07:00