History log of /frameworks/native/cmds/installd/installd.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
a5e161b1207ef447a51e99856097d69d4a6111e1 29-Sep-2016 Mark Salyzyn <salyzyn@google.com> Replace cutils/log.h and rationalize log/log.h and android/log.h

- cutils/log.h treat as deprecated and lead by example
- android/log.h to be used instead of log/log.h if required
- add system includes that are assumed as side effects of log.h
- modules that use SLOG should use SLOG for all logging (installd)
- define LOG_TAG first
- remove logging infrastructure if not used

Test: build
Bug: 31289077
Change-Id: Iea147a0104c7ab7f12451304131d6500f42141e7
f3e30b936ef103dc0f3d8697e0f86ba82b49609e 10-Dec-2016 Jeff Sharkey <jsharkey@android.com> Filename refactoring, remove DEXOPT_OTA flag.

Test: builds, boots
Bug: 13758960, 30944031
Change-Id: Ib60899fc70b12f76fad9dfad596b513777752703
6c2c056193010cf93b4264810d462c120ce801c8 07-Dec-2016 Jeff Sharkey <jsharkey@android.com> Final push of installd to Binder; goodbye socket!

Move last two straggling installd commands to Binder and destroy the
socket-based communication channel forever.

Test: builds, boots, apps install fine, pre-OTA dexopt works
Bug: 13758960, 30944031
Change-Id: I2ecd604fb6627b9028a7e32f87d0367e4a4afde3
475c6f9743e5f6696c38fb22b8b8e9d49a82ab56 07-Dec-2016 Jeff Sharkey <jsharkey@android.com> Yet another set of installd Binder methods.

Pretty straightforward refactoring.

Test: builds, boots, apps install fine
Bug: 13758960, 30944031
Change-Id: I6e79fe1a3663807c24eb28dca684b539df398c13
c1e93e7d746e07791b0667c80ad43a407c515fa8 06-Dec-2016 Jeff Sharkey <jsharkey@android.com> Move more installd methods to Binder.

Test: builds, boots, apps install fine
Bug: 13758960, 30944031
Change-Id: I1fcaaaaad34c2f9a3d6a15443ef1764186669865
0274c977e3b10b52936fd5b2eb464857f0ca6358 06-Dec-2016 Jeff Sharkey <jsharkey@android.com> Shuffle installd Binder implementation around.

Instead of writing wrapper methods in InstalldNativeService.cpp,
this change shifts the Binder implementation over into the existing
commands.cpp file. This will let us migrate all methods over, and
then perform one final file rename to InstalldNativeService.cpp.

The downside of this approach is that we no longer have a giant kill
switch to quickly switch back.

Moves the moveCompleteApp() method over to Binder.

Test: builds, boots, apps install fine
Bug: 13758960, 30944031
Change-Id: I53550e05bc2b65155c3de18424f67b1a95450a6f
9087400f3c82b97aa17a74329c7e65c0a5ff4062 05-Dec-2016 Jeff Sharkey <jsharkey@android.com> Initial Binder interface for installd.

Define an AIDL for installd, starting with a single method. Publish
that interface for the system to start using. We'll circle back and
migrate more methods in future CLs.

Migrating installd to Binder will allow us to get rid of one of
the few lingering text-based command protocols, improving system
maintainability and security.

Test: builds, boots
Bug: 13758960, 30944031
Change-Id: Icdb5320082567e0355d8f76f413f01cfacf0fb99
b31206b67805617c79fb46ca39ccc5b26cdefd63 10-Sep-2016 Andreas Gampe <agampe@google.com> Installd: Add a delete_odex command

Add a command to delete odex files.

Bug: 31347757
Change-Id: I29bca8751bcee8d6981c682fbbc816c73b78ac68
(cherry picked from commit 3964da0636624ff9af42d1f316bed0752e37c490)
ad95fc06aa902ee7b96c09bb07af4061f87fe77f 07-Sep-2016 David Brazdil <dbrazdil@google.com> Merge "installd: Simplify Dalvik cache path creation"
d089ca1703769854356a263ca640d3e07ab8548d 27-Jun-2016 Andreas Gampe <agampe@google.com> Otapreopt: Implement new A/B OTA path

Refactor otapreopt_script, otapreopt_chroot and otapreopt such
that the actual work will be done as a child of the script driven
by update_engine.

The script now uses the new OtaDexoptService command to get the
right parameters for a dexopt call in otapreopt. As we reach
otapreopt_chroot and otapreopt directly, we can add parameters
without tainting the regular installd path. Use this to add the
target slot suffix, and make naming of the A/B artifacts include
the suffix instead of the generic "b."

Otapreopt_chroot startup is slightly complicated because all file
descriptors must be closed. Otherwise, dex2oat needs selinux
permissions to inherit the descriptors from update_engine.

Bug: 25612095
Bug: 28069686
Change-Id: I9d7b86ac8ecfdf91af3800f7e96f41534c0afc0f
(cherry picked from commit 0354bd0eaf24de533e86885b811f816f1e4d15c8)
548bdb930895d8fe6651eaada0bc5739ee5248c8 03-Jun-2016 Andreas Gampe <agampe@google.com> Otapreopt: Fix after shared-library work

Commit b63d91fd2737680351876406277b6c759f4db33c broke the installd
to otapreopt connection. Fix this. Also refactor a bit to make an
inadvertant break harder.

Bug: 25612095
Change-Id: I8e7b944ecbd5457e4ac4d6ffffdb0468618cf65f
(cherry picked from commit aef445d1c659698612c0e5a8f3d5f2b9f8a2b778)
249c1796a2e62f8751348e5bafce9f40e6538cba 06-Sep-2016 David Brazdil <dbrazdil@google.com> installd: Simplify Dalvik cache path creation

Installd computes Dalvik cache path for a dex file by concatenating
'/classes.dex' to the APKs absolute path and then replacing all '/'
characters with '@'. OTA preopt does the same, only in reverse order,
i.e by concatenating '@classes.dex' to altered absolute path.

This patch unifies the two approaches so as to keep only one string

Change-Id: I69bb6bca831f45c873a0eb8580cf8d4b011f3b09
eed4df806856e77d9d55d8209d7178e4b5c945e8 02-Jun-2016 David Sehr <sehr@google.com> installd support for profman --dump-info-for
am: 6727c2d0bf

* commit '6727c2d0bfc876c62d6ee60d8a05d26bef1d56ef':
installd support for profman --dump-info-for

Change-Id: I2289ea8e788f65deb158f422b1c3b4feb93b9477
6727c2d0bfc876c62d6ee60d8a05d26bef1d56ef 18-May-2016 David Sehr <sehr@google.com> installd support for profman --dump-info-for

Bug: 28748264
Change-Id: Idcd3ed86294c1d0c75c26ca938b88744a25e387a
b2287e16bbc7d8389fe040ddcaf1b297d131319a 27-Apr-2016 Jeff Hao <jeffhao@google.com> Merge "Support to pass <uses-library> option through to dex2oat." into nyc-dev
am: 8335fa3

* commit '8335fa3f500addd8804869388fd91d776aa56188':
Support to pass <uses-library> option through to dex2oat.

Change-Id: I8872e82441b39c1363a8e9852b63dd68e1d71d0f
b63d91fd2737680351876406277b6c759f4db33c 16-Mar-2016 Jeff Hao <jeffhao@google.com> Support to pass <uses-library> option through to dex2oat.

This change takes an app's shared libraries specified by <uses-library>
and passes it through to dex2oat to be used during compilation.

Part of a multi-project change.

Includes fix from c09662d9bbd35840b24cae8d336a0d11c0cbdb7b

Bug: 26880306

(cherry-picked from commmit de7f0cf8a699f6f7a7d29b4a14d800bea9abbef4)

Change-Id: Ideb2aba46f4cf52acb9dd480993513a60dbfd6ce
155cdf1126ca22600ac48852d5d55e6f946d0c57 18-Apr-2016 Jeff Sharkey <jsharkey@android.com> Merge "Consistent creation/destruction of user data." into nyc-dev
am: 82784bb

* commit '82784bbeb8668c18f8cdbafaac3faab5d296e9ac':
Consistent creation/destruction of user data.

Change-Id: I8f79173800fa8cc7d89ae0017fce0264e59d75c3
379a12b0072b322c7f86e690a8e8a220e500861c 15-Apr-2016 Jeff Sharkey <jsharkey@android.com> Consistent creation/destruction of user data.

Preparing and destroying users currently needs to be split across
installd, system_server, and vold, since no single party has all the
required SELinux permissions.

Start passing down flags so we only prepare/destroy storage areas
that have keys currently installed.

Add delete_dir_contents_and_dir() argument to ignore ENOENT, since
all we care about is the directory being gone.

Bug: 27896918
Change-Id: Ia1cccc9b35e6ff09e3ca50effeab676157b856e8
dba2879ffc47127265a3f5c0b7a4489cb2d9c1ba 11-Apr-2016 Jeff Sharkey <jsharkey@android.com> Merge "Let\'s try casting to fix the build." into nyc-dev
am: 6c444a4

* commit '6c444a40ec9725880580c789500cc069e3121d89':
Let's try casting to fix the build.

Change-Id: Iee3fbfa51645706fabecff7a8c2fcd6fb787eb08
7240a15f8a7eead09a3206baeb3d5eca5346c32f 11-Apr-2016 Jeff Sharkey <jsharkey@android.com> Let's try casting to fix the build.

Change-Id: Icd55458caefa27823b770f499a172ca96d1f7a0b
8b53c14bc1852fe1dbddd52881e49b1be894f190 11-Apr-2016 Jeff Sharkey <jsharkey@android.com> Merge "Use inode numbers for CE storage, fix sizes." into nyc-dev
am: 82b4c7a

* commit '82b4c7a92cfb2482deb57a328f5eb9c95d5fdc5e':
Use inode numbers for CE storage, fix sizes.

Change-Id: I1c1afd079765088a03db70d6d558b9f3bdb16e6e
2f720f7ec5c9d0b91defc85878e7330b10f8e89a 11-Apr-2016 Jeff Sharkey <jsharkey@android.com> Use inode numbers for CE storage, fix sizes.

Certain operations, such as clearing/destroying app data, or just
counting on-disk size, require us to know the CE storage directory
of a particular app. To facilitate these operations, offer a method
to get the inode of a CE directory, and accept that inode number
for later operations.

In previous releases, we started installing apps using a new
directory-based layout, where all app code, unpacked native libraries,
and optimized code is bundled together. So now we only have a single
path to measure for code size.

Start measuring both CE and DE storage data usage for apps, and tweak
the reporting so that empty cache/data directories actually show up
as "0 bytes".

Fix bugs in disk usage counting, since st_blksize has no bearing on
the allocated disk space. Also don't double-count "." and ".."
directories when measuring storage.

Bug: 27828915, 27197819
Change-Id: I350b951f5c24165edb253ac663c9aae020c24dc9
632350257cd93e34aa1e8b354c1535864b314c38 29-Mar-2016 Dan Austin <danielaustin@google.com> resolve merge conflicts of 1ccaed4 to nyc-dev-plus-aosp

Change-Id: Ib30c59ff496ed76ec46f4c8f7d954d571bcbf4ae
d1a6a2495ff82893728571136f4f080164c8dae5 25-Mar-2016 Calin Juravle <calin@google.com> Merge "Do not clean profiles unconditonally during app data clean up" into nyc-dev
edae669f18eb99b9316891fdde627e2f385c3c64 23-Mar-2016 Calin Juravle <calin@google.com> Do not clean profiles unconditonally during app data clean up

The goal is to enable profiles to be persisted across OTAs.

This CL makes profile removal a dedicated path which will be called by
PackageManger during an app update or uninstall.

Profiles are cleared when:
- requested to do a full clean up of application data files
- specifically requested to clear them (e.g. app updates)

Profiles are destroyed (includes profile directory removal)
- for each user individually when its application data is destroyed
- for all users if the package gets uninstalled.

Bug: 27081617
Bug: 27688727
Change-Id: Id53c7625011af3cdbe8a58ac0982982fa461e5fd
4d0f825dd76a1972a3d081e771cde28513a1c6ff 20-Mar-2016 Andreas Gampe <agampe@google.com> Installd: Separate profile merging and compilation

Create a new merge_profiles command to check and merge profiles.

(Almost) always pass a profile to a dexopt pass.

Require compilation filter input to dexopt and use it for dex2oat
(except for hard overrides like safe-mode).

Bug: 27689078
Change-Id: I1257857cc15c17e2271d1261ea4cc80752270fcb
01ad5984dd202311a7e301c8c771a5d4b7c76136 10-Mar-2016 Andreas Gampe <agampe@google.com> Otapreopt: Adapt for actual A/B

Add postinstall script for update_engine hook.

Add otapreopt_chroot as a gateway between installd and otapreopt.
Installd will fork and run otapreopt_chroot, which has the permission
to set up a chroot in /postinstall and run otapreopt from the B

Bug: 25612095
Change-Id: I4264598da00053ced87c849c738ddc0bc5437304
00087b70401bd09dfeaab9171d006e833e3cd844 14-Mar-2016 Greg Kaiser <gkaiser@google.com> installd: Avoid potential use of null 'src'.

In create_cache_path, we have code checking whether 'src' is null,
implying it's possibile it could be null here. To be safe, we move
our strlen call until after this check.

Change-Id: I6a67cdad8ebf8bdce1562ce5f0cbf98b084807ef
d828d6839f6a01e3f0b2b8b2694139dfa801c557 08-Mar-2016 David Brazdil <dbrazdil@google.com> Add 'rmprofiles' command to installd

Adds a new command to installd which clears all profile data of
a given package.

Bug: 27516490
Change-Id: I92cc374b5b6d95ca7755e08b95a9bc9060df2178
e65b4faa798269ab6ee0d27dab03b8b5caa6f956 01-Mar-2016 Andreas Gampe <agampe@google.com> Installd: Add move_ab command

Add a command to move A/B artifacts into the right position. This
is used for apps that live in data.

Bug: 25612095
Change-Id: I40c3ca54bd0f3b2d646a14b145e733096dabbbb2
cc6281cf8146cddb8ace7cbd58c67321639c1520 07-Feb-2016 Jeff Sharkey <jsharkey@android.com> Migrate default app data on non-FBE devices.

When a system app requests "forceDeviceEncrypted" they expect their
default app storage to point at a consistent location regardless of
device FBE support. So when booting upgraded non-FBE devices, we
may need to migrate any data from CE to DE. Note that on non-FBE
devices these are just semantic locations with identical protection.

This migration *only* works for non-FBE devices; changing
forceDeviceEncrypted flags on an FBE device always requires a full
data wipe.

Bug: 26668510
Change-Id: I8bd5b8ba882e6bd067c0381041b27c35d6e47788
73dae11162aa61396c06cbdb05b954764e944e02 19-Nov-2015 Andreas Gampe <agampe@google.com> Installd: Introduce otapreopt

Add a tool for dexopt during OTA. The tool will use /data/ota as
an ANDROID_ROOT wrt/ the dalvik-cache, compiling a new boot image
and system apps into this directory. Other apps will be compiled
to odex files suffixed with ".b".

Bug: 25612095
Change-Id: I6ac382973f13850f6b37402a1b2330c0014b47d9
e37d62803210f258ddb843c7d8d0494127069342 29-Jan-2016 Jeff Sharkey <jsharkey@android.com> Remove "updatecmds" feature.

This feature is very old and hasn't been used in many releases. In
addition, it was never taught about multi-user layouts, and it would
be incredibly hard to maintain in the new FBE world where CE keys
may not appear until several reboots after an OTA.

Bug: 26854442
Change-Id: Ibd8660e2a727469cd5ae41dab5e1014a9cfb6748
9a034c2ada5bd513619b72729071a10528f158ad 19-Jan-2016 Calin Juravle <calin@google.com> Merge "Add profile guided compilation hooks in installd"
60a794dc845b942907ca035ddc554eb8e0c7ebb6 23-Dec-2015 Calin Juravle <calin@google.com> Add profile guided compilation hooks in installd

Bug: 26080105
Change-Id: I6aaddffe79c55b9a6560c2d6542cf87abbd4fb11
eecb2d205366351af42fd0cd9e1a95de3980764e 12-Jan-2016 Janis Danisevskis <jdanis@google.com> Change permissions of apps' home dir to 0700 for SDK > 23

This patchset changes the installd such that apps' home
directory has permissions set to 0700 if build for a
target SDK version. In consequence the commands

create_app_data and move_complete_app

get one more parameter, the target SDK version.
Apps built for a lower SDK version will still have
home directories with permissions set to 0751.

Bug: 7208882
Change-Id: I0213834dd946c72f5d7e31965a9dc517ced268db
e02657d627a85628ec6f0f398fb85283b8d91bfa 13-Jan-2016 Jeff Sharkey <jsharkey@android.com> Remove older migration code.

We used to offer to migrate pre-multi-user devices to the new
multi-user layout around JB, but the new layout has been the default
for many years now, so it's safe to remove this logic.

All core directory creation is now handled by init.rc where FBE
policies can be setup correctly, so we shouldn't be in the business
of doing system bootstrapping here.

Remove some lingering FBE debugging code.

Bug: 26466827
Change-Id: I1dfe9c8fc02b64013a5c45cea99bf8f61f7d1d5b
c7d1b2250e8245a7e4e144758bc3ccd33b8d6319 11-Jan-2016 Jeff Sharkey <jsharkey@android.com> Let callers specify which storage to operate on.

Since CE and DE storage can have different availability lifecycles,
callers can't operate on both at the same time. Let them use flags
to specify which storage to work with.

Remove old unused methods, and name consistently in preparation for
eventual move to AIDL.

Bug: 26466827
Change-Id: Id5d7d03f5d8814864eea801f5a46496c085afdff
02d0de56c75347a0cb8d5a8565dc8c4ee7616057 12-Nov-2015 Andreas Gampe <agampe@google.com> Installd: Refactor in preparation for OTA

Refactor installd code so reuse with a few key plugin functions is
possible. Do a bit of code cleanup.

Bug: 25612095
Change-Id: I544604f0a391583a4c07887a8234343a3a255942
32717f851ec39e44b43dcd2053b091daff5e1753 07-Dec-2015 Todd Kennedy <toddke@google.com> Merge "Create new ephemeral app directory"
c7b8a11974f0bf0b13f47b9fb40059b1c50ec9b6 05-Dec-2015 Elliott Hughes <enh@google.com> Merge "Track rename from base/ to android-base/." am: f31cf3ab0f am: c21980bc12
am: 803823f8b6

* commit '803823f8b6663578922be595755351a9e710d93c':
Track rename from base/ to android-base/.
e4ec9eb7b4c452493589983970ba5ccc501728d1 05-Dec-2015 Elliott Hughes <enh@google.com> Track rename from base/ to android-base/.

Change-Id: I62c18891ffe319d20ff084f5ca2aa0c038c23cd3
5c1a910e6a2d2c42002dc6ed88ff770336afcb3f 24-Nov-2015 Todd Kennedy <toddke@google.com> Create new ephemeral app directory

Bug: 25119046
Change-Id: I829f7ae1df09f2b7af1cd64fbbad6c1f5a2d716d
63ec2d64196144b2d15d2baffedccfa011d6494f 09-Nov-2015 Jeff Sharkey <jsharkey@android.com> Create device-encrypted directories for apps.

When device has FBE, create device-encrypted storage location when
installing apps.

Also remove "renamepkg" unused command.

Bug: 22358539
Change-Id: Ic56eeecdc64bdaa7429b93426727a243a4e45f47
a5359950298f0bd5833ab72b7a26aef9fc45056f 26-Sep-2015 Todd Kennedy <toddke@google.com> am d529cd47: Merge "Pass dexopt flags as integer"

* commit 'd529cd470afa98512bf2eab7a58dae5a9b6e4847':
Pass dexopt flags as integer
76e767ca14bcbb4bc809cd1279ece82a3aabe8a4 25-Sep-2015 Todd Kennedy <toddke@google.com> Pass dexopt flags as integer

Instead of using a series of booleans, create a single flags integer
that contains all of the dexopt options.

Change-Id: I35542aa73ca57b0e765d19b1339b1429849c1ae8
a037f97dcf15000154e73aea4e92248c17a586f8 24-Sep-2015 Todd Kennedy <toddke@google.com> am 7f413889: Merge "Installd: Take boot status as dexopt parameter"

* commit '7f413889a3f0bff0c159141abb498650305f2089':
Installd: Take boot status as dexopt parameter
13f141910ba383404145924df64ad6626fe5b42f 21-Sep-2015 Andreas Gampe <agampe@google.com> Installd: Take boot status as dexopt parameter

Expect the boot status explicitly as a parameter so that we do not
have to rely on dev.bootcomplete, which isn't meaningfully set
when the device needs the decryption screen on boot.

Bug: 23898216
(cherry picked from commit 72ebebed876a62e719b098e43d9d516361bde029)
Change-Id: I9b34298caf70b1e5d40970cc0d04c469016a80a7
31f08986f83fa6f2dcf55523b2cf706460aeed7c 07-Jul-2015 Jeff Sharkey <jsharkey@android.com> Split app move into separate copy/delete steps.

App movement now has three distinct stages: copying, scanning, and
cleanup. Previously, a battery pull late in the move process would
end up with packages.xml pointing at the old location which had been
torn down. Now, we update packages.xml to point at the new location
as the "source of truth" before we start deleting the old location.

Bug: 21831336
Change-Id: I62b8916c673265c240e2574ea968cdce5a7a0074
d845c96128a40ca5802c0840ae190fa0af7d4735 04-Jun-2015 Narayan Kamath <narayan@google.com> Add an installd command to link files

Given a pair of absolute paths {from_path, to_path} , check that
they are both valid apk subpaths (eg. /data/app/package/foo) and
link(2) to_path to from_path. This is required by staged installs,
where we link existing apks and oat files to their staging location.

bug: 20889739
Change-Id: I3b5e3b43677af68be59308121a4409caaa6a72f0
d792118c493806eeb24a8203f508e6e18fe93bd7 01-May-2015 Jeff Sharkey <jsharkey@android.com> Offer to move both code and data together.

We now move code under /data/app/com.example when a complete move
is requested. This really only works for new cluster-style installs
that also have native libraries and OAT contained inside.

Teach measuring code about cluster-style installs when measuring
app footprint. Also offer to measure private data space for all

Bug: 19993667, 20275578
Change-Id: I6df7b947cb5cc8a4552f56f4b64a661e8512389f
e36372423000a906bafae68844ebc6c42d09335a 09-Apr-2015 Jeff Sharkey <jsharkey@android.com> Command to move private app data between volumes.

New "mvuserdata" command will move all private app data from one
volume UUID to another. It leverages the existing "cp" toybox
command to do the heavy lifting for all known users, preserving
details like timestamps and permissions. It invokes restorecon()
to correctly label the new location when the copy is finished.

Changes installd to no longer drop capabilities, so we run as root
again. This also allows us to exec "cp" with CAP_DAC_OVERRIDE and
CAP_FOWNER still in effect.

Bug: 19993667
Change-Id: I1f407a7c4a1af97ca5afc27b04eb16b4936cbdef
6fe28a06012250da85f808a0869f87e06e0bcce9 09-Apr-2015 Jeff Sharkey <jsharkey@android.com> Start accepting volume UUIDs from framework.

We're now parsing and passing through volume UUIDs sent across the
command socket. The "!" argument value is treated as null, which
means internal storage.

Bug: 19993667
Change-Id: I17729a769ce687a2e94e85991a6338c77ded0b66
41ea424413c0381ef2aa15fc5bd5d4b88abd23c4 09-Apr-2015 Jeff Sharkey <jsharkey@android.com> More volume UUID awareness.

Teach free_cache() and restorecon_data() about building per-volume
paths. Also clean up restorecon_data() by using std::string when
building paths.

Clearer names for path building utility methods, and tests to verify.

Bug: 19993667
Change-Id: Iacfbcdaa5b901cc2490bc8eba366dfdeb44f1d93
d107c305f74592e8078754b317d840a2dde661db 09-Apr-2015 Jeff Sharkey <jsharkey@android.com> Merge "Plumb through volume UUID when building paths."
c03de09173f98506e73e7cf7df21fe11795d4b24 08-Apr-2015 Jeff Sharkey <jsharkey@android.com> Plumb through volume UUID when building paths.

Since app data paths can live on expanded storage devices, accept the
target volume UUID when building paths. The null UUID indicates the
default internal storage.

To improve readability, start using std::string in several places,
which throws when allocations fail. For now, perform last-second
sanity checks on incoming path arguments, but we'll eventually want
to check arguments as they come through installd.cpp, instead of
crashing the entire daemon.

Also remove "lib" symlink code from install() and make_user_data(),
since we're no longer supporting /data/app-lib. The framework
already uses linklib() to create the right symlink for the selected
ISA-specific library dir.

Bug: 19993667
Change-Id: Ib9343575ffb62bf3981e19375de8f3822fc31e28
c92fb6247d4c4fbc34c0a5deb26ccf538ca9ec81 26-Mar-2015 Richard Uhler <ruhler@google.com> installd: Add support for SELF_PATCHOAT_NEEDED.

Change-Id: Ib9a6373f98474f1242367b5285086251a9d580e5
19803807cd7ae01868fcfa50305f4a7dd13765e2 07-Apr-2015 Jeff Sharkey <jsharkey@android.com> Switch installd to compile as C++.

This is the minimal change needed to switch it over to C++, which
paves the way for using more robust utilities like std::string.

Change-Id: I80ed6280146875eb6ddbbb340c05450388ca13f0