framework: Privacy Guard

 * Introduce a new privacy feature which allows the user to run an
   application with reduced visibility into his or her personal data.
 * Adds a per-application flag and simple API to determine if this flag
   is enabled for the current or calling process.
 * This flag can be used by content providers to decide if they should
   return a limited/empty dataset.

Change-Id: Id7c54d728e63acb2b02a2a9322930b54949f6c5d

Conflicts:
	core/java/android/app/ActivityManagerNative.java
	core/java/android/app/IActivityManager.java
	core/java/android/content/Context.java
	core/java/android/content/pm/PackageUserState.java
	core/java/android/provider/Settings.java
	core/res/res/values/cm_strings.xml
	services/java/com/android/server/LocationManagerService.java
	services/java/com/android/server/am/ActivityManagerService.java
	services/java/com/android/server/am/BroadcastQueue.java
	services/java/com/android/server/pm/PackageManagerService.java
	services/java/com/android/server/pm/PackageSettingBase.java
	services/java/com/android/server/pm/Settings.java
privacy guard: Use LocationBlacklist for location filtering

 * Google has built a per-package blacklist into the location service.
 * Let's use this to handle Privacy Guard instead of our one-off code
   which has a bunch of edge cases and can leave apps in a weird state.

Change-Id: I2f2ecd0b75ff51b44b1a6035189355d7bd63eaf4

Conflicts:
	services/java/com/android/server/LocationManagerService.java
am: Fix the privacy guard notification

 * The privacy guard notification was not showing everytime. Fix the
   logic and handle it in the right place so it hits both the create and
   resume startup path.

Change-Id: I80c88ffb0fcb4ed3ea64ceb228bb436975278ecc

Conflicts:
	services/java/com/android/server/am/ActivityStack.java
Frameworks: privacy guard fix possible NPE

If the user flash a data app over recovery on clean flash
(like a lot themed apps or gapps packages are doing)
the user will get into a bootloop because of an NPE
due an unknown state of the user due that
installedUser == null

To fix it
Check if installUser exists if yes then
call the provider settings value for the current
user

PatchSet 2+3: message update
	      fix for real now

Change-Id: Ie5f94a0d0a11ae24fdfdc8372c0433b26793b66e
Add SMS Middleware layer.

Add fix so ordered broadcasts are delivered to system
apps first in the event of a tie. This works around
the issue where terrible apps steal SMS notifications
from the broadcast queue to simply prevent notifications
that could otherwise be removed by a toggle.

Change-Id: I4fff0c584f8fce9c5f2f4fe86a82fe6480c307c7

Conflicts:
	core/res/AndroidManifest.xml
	core/res/res/values/cm_strings.xml
derp

Change-Id: I4cf28df3a4878a98fbf6ab227e9e899ce86b7770
Fix RIL_UNSOL_CDMA_PRL_CHANGED constant typo (1/2)

Change-Id: I6eef9350fa62857cb5fd133a385cb09150cb6d1b
Framework: Fix GSM signal strength

Certain OEM gsm ril libs send back a bogus value for LTE signal
that causes SignalStrength.java to default to LTE and report
incorrect signal values.
Use prop value ro.telephony.ril.v3=signalstrength to get proper
GSM signal reading on certain devices.

Change-Id: Ibb23d7b3a2d21001ccbbc6ebfbdc3c5248f18cfc
Signed-off-by: dhacker29 <davidhackerdvm@gmail.com>

Conflicts:
	telephony/java/android/telephony/SignalStrength.java
telephony: hide needsOldRilFeature

Change-Id: I741b510fdacc166ad40741bf2e9db5c8a1039384
Signal strength: add more checks to signal strength,

so it doesn't fall under the range of poor signal and automatically
assumes a gsm signal, actually checks if all values are true and not
valid then pass it on to lte or gsm. This fixes cases when gsm signal
is not valid and lte is active. When lte is active and shows a really
weak and gsm signal is not avalible due some broken vendor ril or
just running cdma lte and a few others senario creates this issue.

Change-Id: If9c5dc1a969605cd1eeb9218de02a9f8dbbd3ae1
Add support for Samsung extended AGPS

The AGPS implementation in the GPS chipset used in some Samsung devices
(i9100, i9300) can make use of the Psc field. Adapt the relevant
functions hiding the changes incompatible with other devices under the
AGPS_USE_PSC #define.

Credit to Qaweck from xda-developers forum for finding the meaning
of the field.

Change-Id: Ie4691c79ca379a1f5c0a87500c1b06b56ae7ac0d
FileUtils: add method to get UUID of a volume

Change-Id: I41b76c5e01c82a2f8e67b33133a76947877a2814

Conflicts:
	core/jni/Android.mk
android_os_FileUtils_getVolumeUUID: Fix the incorrect logical for call blkid_get_tag_value.
    There are two problems in here.
  1. For the function blkid_get_tag_value third parameter is should be the device, not the mount pointer, in the MediaPrivader.attachVolume, it will pass the mount path to call this function.
  2. The UUID for device is hex, so call atoi is not right. I think call strtol is better than atoi.

Change-Id: I76598a0993f08add3e9c7541cbc082d8d85e9af4
Fix hungarian keyboard layout

Change-Id: Ib75a5b709a65a48bcc371ef23cc15490587b77d0
Bluetooth: SAP: Add framework changes to support SAP

This change consists of:
SAP Disconnect from server support related changes

Change-Id: I7215f503244c5ee277e83d60d6960f18559acfb9
Camera: add ISO mode support

Change-Id: Ied2075f950269990d836fc768b2c6c36088d494f
camera: add power mode support

Based on commit 7036d66bec7697160ba1b2e255f1e7fae0c8c435 from CAF,
branch ics_chocolate.

Change-Id: I8a60668b18980fd5e6f9dd341db5a8a63deb99d0
Camera: add additional ISO modes (2/2)

Change-Id: I3460c3de4cbef467430673146a9ddb2fdc8f5032
Fix Photosphere/Camera FCs

Photosphere is setting a few parameters "blindly"
while the API says it should check the device capabilities first.

On TF101 (and probably other devices) the camera HAL doesn't handle
FLASH_MODE & SCENE_MODE and so it sends the required RuntimeException
for these, which makes Photosphere FC the Camera app.

=> Fix: check device capabilities & ignore these 2 parameters if the device doesn't support them.

Fix based on following Team EOS patch: https://review.teameos.org/#/c/1598/

Change-Id: Idd80299802e9213a3c40414ace3d516d39f47783
camera: Add support for sending raw commands

 * Certain camera drivers need magic commands to select special modes
   such as ZSL or HDR. Add support for sending raw commands from
   applications.

Change-Id: I512a765c7a67ffd2877e465cf6493ffc2b3b54ac