audio: Fixed dead lock in AudioService during volume change

- AudioService goes into dead lock when there is a volume
  change for source stream and the respective aliased stream
  simultaneously from multiple threads
- When setIndex is called for source stream, it also updates
  the index for the aliased streams. Meantime, setAllIndexes
  is called on aliased stream. Initially, it gets index of
  default device of source stream. It requires lock on the
  source stream. This is leading to a dead lock
- Fix is to avoid locking parent while updating child
  streams. Removing lock from method and synchronizing
  parent only when it is updating member variable.

Change-Id: Id38e539e2ec178ea25548312a1dd62d2de3043da
CRs-fixed: 635789
core: jni: fix memory leak in SoundTrigger JNI

jExtras object created in android_hardware_SoundTrigger
JNISoundTriggerCallback::onRecognitionEvent()
is not deleted causing a memory which depletes JNI
JNI local storage during back-to-back SoundTrigger
detections.
Delete jExtra after storing in return object.

Change-Id: Ib7048917b7538a27d4519504b30252879acc5447
CRs-fixed: 733969
Duplicate sounds file names are displayed in notification list

There are few duplicate notification sound files present in
/data/sounds/notifications & data/sounds/notifications/ogg.
- arcturus.ogg
- vega.ogg

Maintain sound files only under /data/sounds/notifications/ogg.

Conflicts:
        data/sounds/AllAudio.mk

Change-Id: Ibe347ed03d19a1ce4cb13c1bce1e4bbc26cb61be
CRs-fixed: 630101
Add a null check in exifParser to avoid crash while setting Wallpaper.

For some images, while setting as Wallpaper, the src array in
System.arraycopy was null in exifParser, which leads to crash.
This change adds null check to the array used in System.arraycopy.
Also, a safe check is made to ensure start index is not negative.

Change-Id: I46a16b6943aaeeb2395e335bf3926988b881be7a
BootReceiver: Skip subdirectories inside tombstones scan

Properly handle (vendor-specific) subdirs under tombstones
directory by skipping over them.

CRs-Fixed: 407529
Change-Id: I0cecd9fa629fad35d62d508ddaf13968c2e46f93
framework/base: get proper obb mountpoint based on user handle

Due to invalid obb mount point, CTS test case was failing to mount
obb file at /mnt/shell/emulated/0. Added new API to support user
based mount point for obb.

Change-Id: I9f113bd98ab3a4af00dd7f788b2dc3bc45627d6c
CRs-Fixed: 587497
Use a content observer for getting the default APN

Instead of executing a query of the database for the
default APN on every network state change, an observer
is used on the database to be notifited when the apn
has changed. This prevents unneccesary queries on the
the database.

CRs-fixed: 662137

Change-Id: I3155bd8b53a1877413ed54a861df1bfb1853b9e4
Conflicts:
services/core/java/com/android/server/location/GpsLocationProvider.java
Fixing IndexOutOfBounds Exception in ActivityManager

Bypass the iteration to avoid the exception during
the execution of ensureActivityVisibleLocked() because
startSpecificActivityLocked() within the loop may delete
the elements from History stack.

Change-Id: I0fdf098973fb167958959fc49a65a7130fad02d5
Add an option/category in Dev Set to customize the device hostname (1/2).

PS:
- cleanup

Change-Id: Iddeca1ea525f7c0ed84d6495babcdd73ec1db705