mintkat ramdisk
healthd: Only use battery values that seems legit

On some devices, there are other sysfs paths having a "capacity"
node than just the battery, which can return a weirdo value. We
make sure we only use legit battery levels (> 0%).

Change-Id: I3caf34e7fed4b89f953ec98c486b53b8786c8f74
fix up adb to prefer /sbin/sh if it exists

Change-Id: Ifa68efec387e6c12dc4bb2d0e764b8ecf96c0ad5
sdcard: fix usage for -w and -s options

Change-Id: I0ef4299d2ccf99a18970f02d4bd4e7c28dc5335e
init: Fix queue_all_property_triggers with nonexistent properties

Don't queue actions for "on property=*" if the property does not exist.
This fixes these errors on boot:

    init: property 'sys.powerctl' doesn't exist while
    expanding '${sys.powerctl}'
    init: powerctl: cannot expand '${sys.powerctl}

Change-Id: I3bd354d73a860f856be5df2c654f940445f9efd9
ueventd.rc: Change owner of graphics drivers to system

iWifi Display service needs permission to open these drivers.

Change-Id: I1d9e4ae372f09ecf4104888a9910d09903d892d1
(cherry picked from commit f087420bf5eada3017e107a3a8da4e74f683da18)
(cherry picked from commit 1b3f9226cd3ad681a0ef08038d874921ca62ee4c)
(cherry picked from commit 5b4becc1b814b0f9e96d4f3aaec380d74f4b0739)
Add NO_ATOMIC_INLINES check, to be used by libcutils

In Clang, extern always_inline symbols are exported, causing clashes
when linking something that includes the function definitions in
several source files (e.g. libcutils).
We need an option to make sure they're included only once.

Change-Id: I50279557fb3a02c633ce6428c3db79aa448c8b38
Signed-off-by: Bernhard Rosenkränzer <Bernhard.Rosenkranzer@linaro.org>
system: core: increase the polling time for remount_ro

eMMC4.5 introduces an addition of cache on the device.
We experienced long flush durations in some of the devices,
and therefore the adb reboot resets the target before the flush
completes.

CRs-Fixed: 562350
Change-Id: I3f54901e12ffd232a7696dadfde1edec99ef91c6
system: core: increase the polling time for remount_ro to 3600

eMMC4.5 introduces an addition of cache on the device.
We experienced long flush durations in some of the devices,
and therefore the adb reboot resets the target before the flush
completes.
Latest tests show that increasing it to 2400 wasn't enough thus
it was increased to 3600.

Change-Id: Ifbe7af16aa1861d0d57c808b0240361c0317d5c5
CRs-fixed: 581363
Added No Follow symlink option to chown and chmod

Enable symlink to not follow target file if "-h" option is
provided.

CRs-fixed: 545883
Change-Id: Iefd490bdd12cbe4cf9011f4b9b5e217493b2b503
Bluetooth: Enable system processes to set bluetooth properties

ANT and BT is part of the same wcnsss subsystem and hence libbt-vendor
is being used by both ANT and BT stack for hardware initialization.
ANT stack runs in system permission which loads libbt-vendor which in turn
needs write access to bluetooth. properties.

Change-Id: I29a9b74504f1c03b98db3cddb2a53399f4b6115b
chmod: Fix for recursive file mode change.

Provide correct size to string functions to ensure
file path is not truncated.

Change-Id: Ib6ed7eedf7d7010d748d8811a166c3c626725efe
CRs-Fixed: 589737
fix corruption in Vector<> when malloc falied

1. When alloc or realloc failed in the function SharedBuffer::editResize,
it would return a NULL pointer, then mStorage would update to be 1 by
SharedBuffer::data() if no pointer check here, which is an obviously
wrong address, and would cause corruption when used it e.g. in capacity().

So add the pointer check here for the return value of SharedBuffer::editResize,
if it's NULL do not use it to update mStorage, to avoid the value of mStorage
polluted.

2. when alloc or realloc falied in _grow & _shrink function, mStorage keep
the original value, so mCount should not be updated here.

Otherwise, mStorage might be 0 but mCount>0, so a corruption would happend
when it try to delete items from the Vector since mCount>0.

Change-Id: I7c3814e843c459834ca5eed392e8d63d1cb7d2d8
Signed-off-by: Shuo Gao <shuo.gao@intel.com>
Signed-off-by: Jian Luo <jian.luo@intel.com>
Signed-off-by: Bruce Beare <bruce.j.beare@intel.com>
Signed-off-by: Jack Ren <jack.ren@intel.com>
Author-tracking-BZ: 139626
ueventd: fix a busy loop while reading uevents

Under certain conditions, poll() may raise the POLLERR
flag along with POLLIN, in which case the check for
(ufd.revents == POLLIN) results in an endless busy loop.

The following fix was applied to
hardware/libhardware_legacy/uevent/uevent.c
to fix a similar bug:

  commit 3aabb260ceef10377c31c9e45fb239247f5cfeba
  Author: Mathias Agopian <mathias@google.com>
  Date:   Mon Oct 1 14:53:18 2012 -0700

    fix a typo in uevent_next_eventi

    Bug: 7114973
    Change-Id: I15a4c714b59aeb1d02db00517d70b5f0e5ab22c2

Applying the same fix for two more poll loops in init
and ueventd.

Change-Id: I50693f6d3c904992ac4b8a9a14a83c7106e6b9e0
adb: Check sender's socket id when receiving packets.

handle_packet() in adb.c didn't check that when an A_WRTE packet is
received, the sender's local-id matches the socket's peer id.

This meant that a compromised adbd server could sent packets to
the host adb server, spoofing the identity of another connected
device if it could "guess" the right host socket id.

This patch gets rid of the issue by enforcing even more checks
to ensure that all packets comply with the description in
protocol.txt.

+ Fix a bug where closing a local socket associated with a
  remote one would always send an A_CLSE(0, remote-id, "")
  message, though protocol.txt says that should only happen
  for failed opens.

  The issue was that local_socket_close() called
  remote_socket_close() after clearing the remote socket's
  'peer' field.

  The fix introduces a new asocket optional callback,
  named 'shutdown' that is called before that, and is
  used to send the A_CLSE() message with the right ID
  in remote_socket_shutdown().

  Also add some code in handle_packet() to detect
  invalid close commands.

Change-Id: I9098bc8c6e81f8809334b060e5dca4fc92e6fbc9
Merge branch 'EXP' into mintkat