History log of /frameworks/base/cmds/pm/src/com/android/commands/pm/Pm.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
a3e9ff7debde50f6b58ebc3033cbbad650c10ac7 16-Oct-2012 Jeff Sharkey <jsharkey@android.com> Support pm clear as --user.

Bug: 7352703
Change-Id: I0e9cc4f2313e5424d234c3cb051004c0321d9dac
/frameworks/base/cmds/pm/src/com/android/commands/pm/Pm.java
4c76ea6b88fad2b0147c050c02c6fd3d886d6743 12-Oct-2012 Jeff Sharkey <jsharkey@android.com> Pm command to get maximum users.

Used to drive CTS tests. Also print success message when removing
a user.

Bug: 7334718
Change-Id: Ia3886ddf860cd000ce567b0fed2ef0a4e2a2295c
/frameworks/base/cmds/pm/src/com/android/commands/pm/Pm.java
e6d3ccc99270aaf62808adc7475a25d96664f0fb 12-Oct-2012 Jeff Sharkey <jsharkey@android.com> Print newly generated userId.

Bug: 7334718
Change-Id: Id4dc456b079bebbe9f2d7ea2a8343d2215f296dc
/frameworks/base/cmds/pm/src/com/android/commands/pm/Pm.java
37d83a3caf138e35fa1a355787d20c351f6b37a6 27-Sep-2012 Ben Gruver <bgruv@google.com> Pass the originating uid to the package verifier

Bug: 6923241
Change-Id: I85a3e0d53b469543cb0551d3a440d2663b5d0697
/frameworks/base/cmds/pm/src/com/android/commands/pm/Pm.java
920ace0bbc2d4133dbec991d2636c99a57d6245e 21-Sep-2012 Amith Yamasani <yamasani@google.com> Query users excluding any being removed

Keep track of user creation and last logged-in time.
adb shell dumpsys users
User switcher shouldn't show users about to be removed.
No need to check for singleton for activities.

Bug: 7194894
Change-Id: Ic9a59ea5bd544920479e191d1a1e8a77f8b6ddcf
/frameworks/base/cmds/pm/src/com/android/commands/pm/Pm.java
151ec4c9f8ca34625733730a4551a23eb97cda23 08-Sep-2012 Amith Yamasani <yamasani@google.com> More multi-user methods in PM

pm can list installed packages by user now.

Bug: 6926465

Change-Id: I822311bfd6e7e2d6fb315fc484739fbf953c9bb6
/frameworks/base/cmds/pm/src/com/android/commands/pm/Pm.java
5e03e2ca7d25b899b129baad2dd5eca6bf99d88a 06-Sep-2012 Dianne Hackborn <hackbod@google.com> More multi-user stuff:

- New (hidden) isUserRunning() API.
- Maintain LRU list of visited users.
- New FLAG_IS_DATA_ONLY for ApplicationInfo.
- Clean up pending intent records when force-stopping a user (or package).
(Also fixes bug #6880627: PendingIntent.getService() returns stale
intent of force stopped app)
- Fix force-stopping when installing an app to do the force-stop across
all users for that app.
- When selecting which processes to kill during a force stop, do this
based on the actual packages loaded in the process, not just process
name matching.
- You can now use --user option in am when starting activities, services,
and instrumentation.
- The am --user option accepts "current" and "all" as arguments.
- The pm uninstall command now uninstalls for all users, so it matches
the semantics of the install command.
- PhoneWindowManager now explicitly says to start home in the current
user.
- Activity manager call to retrieve the MIME type from a content provider
now takes a user argument, so it will direct this to the proper user.
- The package manager uninstall paths are now implemented around
PackageSetting, not PackageParser.Package. This allows them to work
even if the application's apk has been removed (in which case it only
exists as a PackageSetting, not the PackageParser.Package parsed from
the apk).

Change-Id: I3522f6fcf32603090bd6e01cc90ce70b6c5aae40
/frameworks/base/cmds/pm/src/com/android/commands/pm/Pm.java
4120375d46091df8527bb701882e056fbb0e6b06 31-Aug-2012 Dianne Hackborn <hackbod@google.com> Remove Binder.getOrigCallingUid().

Replaced all remaining places that used it with explicit user
specification.

While doing this, I ran into stuff that was creating PendingIntent
objects (that now need to specify the explicit user they are for),
which are also posting notifications... but have no way to specify
the user for the notification.

So the notification manager in the system process now also gets a
formal concept of a user associated with the notification, which
is passed in to all the necessary aidl calls. I also removed the
old deprecated aidl interface for posting/cancelling notifications,
since we now always need a user supplied.

There is more work that needs to be done here, though. For example
I think we need to be able to specify USER_ALL for a notification that
should be shown to all users (such as low storage or low battery).
Along with that, the PendingIntent creation needs to be tweaked to
be able to handle USER_CURRENT by evaluating the user at the point the
pending intent is sent.

That's for another change, however.

Change-Id: I468e14dce8def0e13e0870571e7c31ed32b6310c
/frameworks/base/cmds/pm/src/com/android/commands/pm/Pm.java
786b44046a79d6c4c9cd07f5989d491c7196ad80 28-Aug-2012 Dianne Hackborn <hackbod@google.com> Fix installing applications from non-primary users.

We also now send the correct broadcasts to each user.

You no longer need to be running the shell as root
to be able to create/remove users.

Also added some more man page material to the pm command, and
got rid of a bunch of showUsage() calls that now make error
messages completely buried because of how large the usage info
has become.

And the package manager now shows the user each historical broadcast
was sent to.

Change-Id: Iab42498e1352a0c023069139c80fc04d2d69ab4b
/frameworks/base/cmds/pm/src/com/android/commands/pm/Pm.java
7e0e19d4201374d72b7082492bd269dbdb17d972 27-Aug-2012 Dianne Hackborn <hackbod@google.com> Restore man page entries.

Change-Id: I002808037ec117c039aeb71f425c1f43d4cac6d8
/frameworks/base/cmds/pm/src/com/android/commands/pm/Pm.java
7767eac3232ba2fb9828766813cdb481d6a97584 24-Aug-2012 Dianne Hackborn <hackbod@google.com> Keep track of whether an app is installed for each user.

This add a new per-user state for an app, indicating whether
it is installed for that user.

All system apps are always installed for all users (we still
use disable to "uninstall" them).

Now when you call into the package manager to install an app,
it will only install the app for that user unless you supply
a flag saying to install for all users. Only being installed
for the user is just the normal install state, but all other
users have marked in their state for that app that it is not
installed.

When you call the package manager APIs for information about
apps, uninstalled apps are treated as really being not visible
(somewhat more-so than disabled apps), unless you use the
GET_UNINSTALLED_PACKAGES flag.

If another user calls to install an app that is already installed,
just not for them, then the normal install process takes place
but in addition that user's installed state is toggled on.

The package manager will not send PACKAGE_ADDED, PACKAGE_REMOVED,
PACKAGE_REPLACED etc broadcasts to users who don't have a package
installed or not being involved in a change in the install state.
There are a few things that are not quite right with this -- for
example if you go through a full install (with a new apk) of an
app for one user who doesn't have it already installed, you will
still get the PACKAGED_REPLACED messages even though this is
technically the first install for your user. I'm not sure how
much of an issue this is.

When you call the existing API to uninstall an app, this toggles
the installed state of the app for that user to be off. Only if
that is the last user user that has the app uinstalled will it
actually be removed from the device. Again there is a new flag
you can pass in to force the app to be uninstalled for all users.

Also fixed issues with cleaning external storage of apps, which
was not dealing with multiple users. We now keep track of cleaning
each user for each package.

Change-Id: I00e66452b149defc08c5e0183fa673f532465ed5
/frameworks/base/cmds/pm/src/com/android/commands/pm/Pm.java
706e8ba26bf0de19ad5f736516dae40c4c88c2d7 20-Aug-2012 rich cannings <richc@google.com> Pass URLs to package verifiers

This change passes the originating URL and accompanied referrer to
package verifiers, when available.

Bug: 6544677
Change-Id: I9ebc71bc13f549bd88267e444816151a99bda000
/frameworks/base/cmds/pm/src/com/android/commands/pm/Pm.java
258848d2ae04f447ff1c18023fa76b139fcc0862 11-Aug-2012 Amith Yamasani <yamasani@google.com> User Manager service to manage users and query user details

Moved a bunch of methods from PackageManager to UserManager.

Fix launching of activities from recents to correct user.

Guest creation APIs

Change-Id: I0733405e6eb2829675665e225c759d6baa2b708f
/frameworks/base/cmds/pm/src/com/android/commands/pm/Pm.java
e1d7c711df3e3a2d2f195457882aa4ddb5626167 08-Aug-2012 Rich Cannings <richc@google.com> Revert "Pass URLs to package verifiers"

This reverts commit 24713907fe4632d263aea82f7a35c8fb08918a09

Change-Id: Ie04ba73475b813635c4a74915c45e83250801b6b
/frameworks/base/cmds/pm/src/com/android/commands/pm/Pm.java
24713907fe4632d263aea82f7a35c8fb08918a09 26-Jul-2012 rich cannings <richc@google.com> Pass URLs to package verifiers

This change passes the originating URL and accompanied referrer to
package verifiers, when available.

Bug: 6544677
Change-Id: If9ff6663ad7f3426b7aea2aceb1413b689788138
/frameworks/base/cmds/pm/src/com/android/commands/pm/Pm.java
197a0c82a1fbf337ec0a85d36b6b89c3d6e8a0ac 12-Jul-2012 Dianne Hackborn <hackbod@google.com> Improve cleanup of file caches.

This rewrites installd's code for deleting cache files to be better:

- Isn't really stupid about just deleting directories in the order
they are found on the filesytem; now collects all cache files and
sorts them by mod time to determine which to delete.
- Also deletes cache files in /data/media and for all users.

This also tweaks DeviceStorageMonitor to be a little smarter about
deciding when to flush cache files, having upper and lower limits
that it allows memory to get down to and then flash files to reach
the higher free storage limit. This should reduce the amount that
we perform flushing when starting to reach the storage limit.

Finally add a new pm command to force a cache flush.

Change-Id: I02229038e1ad553d1168393e5cb6d5025933271d
/frameworks/base/cmds/pm/src/com/android/commands/pm/Pm.java
fd3d009dde21d7670d42d26f197f67c4c8e59184 31-May-2012 Amith Yamasani <yamasani@google.com> Remove some unnecessary man page entries

Change-Id: I1ceda3f5efac83b80ab4b6e7cae4086aeed5062a
/frameworks/base/cmds/pm/src/com/android/commands/pm/Pm.java
ceb1b0bfaea56251796b08c07b963de7403d84eb 24-Apr-2012 Anonymous Coward <nobody@android.com> Add encryption parameters to package installation

Change-Id: Ic9f8ab9f8110f08bb3c00725cfce5b8ee7b766f3
/frameworks/base/cmds/pm/src/com/android/commands/pm/Pm.java
719a6320a789e76566d6416d5ec35491d21f5c44 30-Apr-2012 Jeff Sharkey <jsharkey@android.com> Change permission enforcement through pm command.

Add "set-permission-enforced", which can currently only mutate
enforcement of READ_EXTERNAL_STORAGE.

Bug: 6363043
Change-Id: I3f7929738c8c36b0a54fbf171c03fe16c09b5d99
/frameworks/base/cmds/pm/src/com/android/commands/pm/Pm.java
483f3b06ea84440a082e21b68ec2c2e54046f5a6 14-Mar-2012 Amith Yamasani <yamasani@google.com> Package restrictions per user

Packages can be enabled/disabled per user.
This requires maintaining stopped/launched states and
enabled / disabled components and packages per user.

Refactored pm.Settings and PackageSettingsBase to keep
track of states per user.

Migrated the stopped-packages.xml to users/<u>/package-restrictions.xml

Changed intent resolution to handle individual user restrictions.
Bunch of IPackageManager calls now have a userId argument.
Make AppWidgetService handle removals of packages.

Added some tests for pm.Settings and PackageManager.

Change-Id: Ia83b529e1df88dbcb3bd55ebfc952a6e9b20e861
/frameworks/base/cmds/pm/src/com/android/commands/pm/Pm.java
e639da7baa23121e35aa06d6e182558e0e755696 22-Feb-2012 Dianne Hackborn <hackbod@google.com> New development permissions.

These are permissions that an application can request, but won't
normally be granted. To have the permission granted, the user
must explicitly do so through a new "adb shell pm grant" command.

I put these permissions in the "development tools" permission
group. Looking at the stuff there, I think all of the permissions
we already had in that group should be turned to development
permissions; I don't think any of them are protecting public APIs,
and they are really not things normal applications should use.

The support this, the protectionLevel of a permission has been
modified to consist of a base protection type with additional
flags. The signatureOrSystem permission has thus been converted
to a signature base type with a new "system" flag; you can use
"system" and/or "dangerous" flags with signature permissions as
desired.

The permissions UI has been updated to understand these new types
of permissions and know when to display them. Along with doing
that, it also now shows you which permissions are new when updating
an existing application.

This also starts laying the ground-work for "optional" permissions
(which development permissions are a certain specialized form of).
Completing that work requires some more features in the package
manager to understand generic optional permissions (having a
facility to not apply them when installing), along with the
appropriate UI for the app and user to manage those permissions.

Change-Id: I6571785c6bb5f6b291862b7a9be584885f88f3a5
/frameworks/base/cmds/pm/src/com/android/commands/pm/Pm.java
742a67127366c376fdf188ff99ba30b27d3bf90c 04-May-2011 Amith Yamasani <yamasani@google.com> Multi-user - 1st major checkin

Switching activity stacks
Cache ContentProvider per user
Long-press power to switch users (on phone)

Added ServiceMap for separating services by user
Launch PendingIntents on the correct user's uid
Fix task switching from Recents list
AppWidgetService is mostly working.

Commands added to pm and am to allow creating and switching profiles.

Change-Id: I15810e8cfbe50a04bd3323a7ef5a8ff4230870ed
/frameworks/base/cmds/pm/src/com/android/commands/pm/Pm.java
92a208c6d3e0fdae54bbc942e7e041e48812bcaa 02-Nov-2011 Ashish Sharma <ashishsharma@google.com> Add a command option to display installerPackageName

Change-Id: I2e5cb5891c610531d9ba7c359fd5dd521f8ecfec
/frameworks/base/cmds/pm/src/com/android/commands/pm/Pm.java
5ab2157bf1f105b02d3e2913cd3a33f9765b74ca 27-Jul-2011 Kenny Root <kroot@google.com> Infrastructure to support package verifier

Allow a package verifier to approve or disapprove of a package being
installed.

Change-Id: Ibfea0f2b1aaa4ab1589a4e59f96144702b9bf94b
/frameworks/base/cmds/pm/src/com/android/commands/pm/Pm.java
46d110329e659cc9cb9514e220ce273701eb151d 24-Jun-2011 Dianne Hackborn <hackbod@google.com> Small cleanup of am/pm commands.

Change-Id: I5af730bc177635821a82d4dd3ec9130a5dcd525a
/frameworks/base/cmds/pm/src/com/android/commands/pm/Pm.java
0ac3031c159a0904e73eb4439cdc724d8df4a6e6 17-Jun-2011 Dianne Hackborn <hackbod@google.com> Implement remaining infrastructure for user disabling apps.

Change-Id: If8135eb0e27ec36f8f159eb7b6397add7acd0299
/frameworks/base/cmds/pm/src/com/android/commands/pm/Pm.java
a51b6fd6f8a53f040894ef07cf23695581595e6b 20-May-2011 Kenny Root <kroot@google.com> resolved conflicts for merge of b2d0ee16 to master

Change-Id: I4483a6d0ccecfea4a1e66bb6eba80d13e8b9a3a4
e6cd0c747e76723bc51a23925c239ae10f9d3b5c 19-May-2011 Kenny Root <kroot@google.com> resolved conflicts for merge of 2433c443 to honeycomb-plus-aosp

Change-Id: I3385f57e5761679e6700bcbe3c41deb3ecd43ba1
2433c443bb5fe96d9a39b59e10e3c03d791e2278 19-May-2011 Kenny Root <kroot@google.com> am f2006f31: Merge "Break apart queries to getInstalled* API" into gingerbread

* commit 'f2006f3123dcdf598e052051041b49c89710b53e':
Break apart queries to getInstalled* API
3d0724dc220a2e027b9e38f61c39c84c28a505d5 13-May-2011 Dianne Hackborn <hackbod@google.com> resolved conflicts for merge of 0e59729b to master

Change-Id: I2d3a6bddf66b1df0c101c45ea2fec1cf65caf01b
0f1de9adde0b52d2a385a76232bd7ac30c3eeea2 12-May-2011 Dianne Hackborn <hackbod@google.com> New compat mode front end: UI and persistence.

Adds a really crappy UI for toggling compat mode.

Persists compat mode selection across boots.

Turns on compat mode by default for newly installed apps.

Change-Id: Idc83494397bd17c41450bc9e9a05e4386c509399
/frameworks/base/cmds/pm/src/com/android/commands/pm/Pm.java
0e2c0f37d98bb5539b0fe41865aaf1add0ff1bb3 16-Apr-2011 Kenny Root <kroot@google.com> Break apart queries to getInstalled* API

To avoid blowing past the Binder IPC limit, change the
PackageManagerService to have a DB-like interaction where the client
tells the service the last "row" that it read.

The fact that we use a HashMap instead of a TreeMap makes this
problematic. For now we're just making a new ArrayList for the keys and
then sorting them for each call. This can make the API slower for callers
of this, but it's probably greatly overshadowed by the cost of the data
transfer itself.

Bug: 4064282
Change-Id: Ic370fd148d4c3813ae4f2daffa1a7c28d63d5a09
/frameworks/base/cmds/pm/src/com/android/commands/pm/Pm.java
0b285499db739ba50f2f839d633e763c70e67f96 15-Apr-2011 Amith Yamasani <yamasani@google.com> Plumbing in PackageManager and installd for multi-user support.

- Create /data/user directory and symlink /data/user/0 -> /data/data for
backward compatibility
- Create data directories for all packages for new user

- Remove data directories when removing a user

- Create data directories for all users when a package is created

- Clear / Remove data for multiple users

- Fixed a bug in verifying the location of a system app

- pm commands for createUser and removeUser (will be disabled later)

- symlink duplicate lib directories to the original lib directory

Change-Id: Id9fdfcf0e62406a8896aa811314dfc08d5f6ed95
/frameworks/base/cmds/pm/src/com/android/commands/pm/Pm.java
c39bb4aaa7be1b9b0cc9fb0b1f03d54f7609ffeb 28-Feb-2011 Kenny Root <kroot@google.com> Switch to returnCode for IPackageDeleteObserver

Before the IPackageDeleteObserver only knew whether the deletion
succeeded or failed, but not the reason why.

Bug: 2520191
Change-Id: I1f0d7c04f06c539660b6e17e7e133defb0f61b5b
/frameworks/base/cmds/pm/src/com/android/commands/pm/Pm.java
4f05220d10338b6ad668c87e70cbe7b9914a9047 09-Jan-2011 Dianne Hackborn <hackbod@google.com> Merge commit '690d20bb53ba2485f59d128b365eff991d5cc3e6' into manualmerge
95db1cfc741c23c7f4192128e3b7bb3c43761bdb 09-Jan-2011 Dianne Hackborn <hackbod@google.com> am cd23823d: Merge "Fix issue # 3227963: SecurityException: Neither user 10023 nor..." into gingerbread

* commit 'cd23823d4f533431c76baa104eb50b7803b3b391':
Fix issue # 3227963: SecurityException: Neither user 10023 nor...
690d20bb53ba2485f59d128b365eff991d5cc3e6 22-Dec-2010 Dianne Hackborn <hackbod@google.com> Fix issue # 3227963: SecurityException: Neither user 10023 nor...

...current process has android.permission.WAKE_LOCK

When updating a system app, we would actually uninstall the package
of the system app, which also meant removing its uid...! It was just
luck that we would get the same uid when installing the update after
that. During that time, if anyone tried to do anything related to
that uid, it would be unknown.

This change tweaks how we go about replacing system apps by making
it more like normal apps -- to make this work, if we need to disable
the system app, we generate a new PackageSetting from the current
system app and replace it into our data structures, so we can update
that without trashing the current correct information about the (still
actually there) system app.

Also fixed a problem where we were not killing the currently running
app before installing, like we do when updating a normal application.

And fixed a problem where we were not deleting the /data .apk when
uninstalling a system app update.

And added a new option to the "pm" command to clear the data associated
with an app.

Change-Id: I0e879677849aa42950a3c360bf78ad820e87674b
/frameworks/base/cmds/pm/src/com/android/commands/pm/Pm.java
ccc714131359eb1022d8c6702b7d82ab9e93f27c 13-Dec-2010 Dianne Hackborn <hackbod@google.com> resolved conflicts for merge of 78e9f4cb to master

Change-Id: I1135361e6d66f524c3f349e2bf1f31bd4191c634
78e9f4cbaece783b7b87ce3fb0a157dae766012a 13-Dec-2010 Dianne Hackborn <hackbod@google.com> am e4a59519: Fix issue #3154576: battery stats checkin should include UID -> packages+ map

* commit 'e4a5951925f16f18dae91ed65567e96528f17fee':
Fix issue #3154576: battery stats checkin should include UID -> packages+ map
e4a5951925f16f18dae91ed65567e96528f17fee 07-Dec-2010 Dianne Hackborn <hackbod@google.com> Fix issue #3154576: battery stats checkin should include UID -> packages+ map

Includes some other small fixes to battery collection and a few
other things.

Output of package info looks like this:

5,0,i,uid,1000,com.android.settings
5,0,i,uid,1000,com.android.providers.subscribedfeeds
5,0,i,uid,1000,com.android.providers.settings
5,0,i,uid,1000,com.android.server.vpn
5,0,i,uid,1000,android
5,0,i,uid,1000,com.android.systemui
5,0,i,uid,1000,com.google.android.backup
5,0,i,uid,1001,com.android.phone
5,0,i,uid,1001,com.android.providers.telephony
5,0,i,uid,1022,com.android.nfc
5,0,i,uid,10021,com.google.android.location
5,0,i,uid,10021,com.google.android.syncadapters.calendar
5,0,i,uid,10021,com.google.android.gsf
5,0,i,uid,10021,com.google.android.syncadapters.contacts
5,0,i,uid,10026,com.android.providers.downloads.ui
5,0,i,uid,10026,com.android.providers.media
5,0,i,uid,10026,com.android.providers.drm
5,0,i,uid,10026,com.android.providers.downloads
5,0,i,uid,10032,com.android.launcher
5,0,i,uid,10039,com.google.android.gm
5,0,i,uid,10041,com.google.android.gallery3d
5,0,i,uid,10049,com.android.providers.calendar

Change-Id: I9e38f254eef146339113ad270f5c6e8b60fb7a1d
/frameworks/base/cmds/pm/src/com/android/commands/pm/Pm.java
edebb2fe1d1c4d3ad17db91cd7e2bfe8feafd0b7 02-Dec-2010 Jean-Baptiste Queru <jbq@google.com> am b087ceea: am 40eade14: Merge from open-source master

* commit 'b087ceead79bcb304e5793c6ae9109ce590847dc':
Fix crash by "adb shell pm list permissions -f|-s"
1c3274ca12a6931568693b897c269107f0346eab 30-Nov-2010 Ali Utku Selen <aliutku.selen@sonyericsson.com> Fix crash by "adb shell pm list permissions -f|-s"

pm command makes the assumption that every permission should
contain android:description and android:label attributes while
they are not mandatory. If a permission does not contain these
two attributes, we get "android.content.res.
Resources$NotFoundException: String resource ID #0x0"
followed by a NPE when using -f or -s options.

With the following change, users will get "null" in output for
respective fields.

Change-Id: I4e7f407592fa071abdab1d979775f46ec27dc9d2
/frameworks/base/cmds/pm/src/com/android/commands/pm/Pm.java
babe28e01c6e845e41f8a7d23ab0b2a2c93a2e6b 31-Aug-2010 Joe Malin <jmalin@google.com> Doc change: Update pm command usage for test packages

Change-Id: If9c51e0265394538023a913fa271dfb80f14a92e
/frameworks/base/cmds/pm/src/com/android/commands/pm/Pm.java
40e472521a544f26cb6956995788f7c36fff1404 08-Apr-2010 Suchi Amalapurapu <asuchitra@google.com> Fix 2579461
Move install location values to secure settings.
Diable attribute for UI. Set default value to auto.
Add command line interface to set install location via pm.

Change-Id: I80e97b3d24845adad7102f40dcbe238f00efa406
/frameworks/base/cmds/pm/src/com/android/commands/pm/Pm.java
e99bb5f10b90736d10cee9729b56cba156fc0921 19-Mar-2010 Suchi Amalapurapu <asuchitra@google.com> Add new method call back in MountService.
PackageManager invokes this call back when its done handling
the media status update.
Add new uid check for updateExternalMediaStatus
Change killPids method in ActivityManager.
Remove mountsd command in Pm.java We cannot arbitrarily enable/disable
packages in PackageManager now.

Change-Id: I28dcba4afd2b4486f68abdaa1628a31b66544c91
/frameworks/base/cmds/pm/src/com/android/commands/pm/Pm.java
14b6abda1309631d49d4bebbb0317a7e1dfc0a50 17-Mar-2010 Suchi Amalapurapu <asuchitra@google.com> Add new install flag to install on internal flash only
Change default install location policy for new flag.
New error code for media unavailable.

Change-Id: I5a5d0828b067692b2b94a15a2bcc7534f796c1a2
/frameworks/base/cmds/pm/src/com/android/commands/pm/Pm.java
8946dd3355fc1dcbad872c0546e356474d4cc5de 19-Feb-2010 Suchi Amalapurapu <asuchitra@google.com> Move package from internal to external and vice versa.
/frameworks/base/cmds/pm/src/com/android/commands/pm/Pm.java
5b993ce7bc29e43a3215a50ce6ce5d6550d4e5e2 12-Feb-2010 Suchi Amalapurapu <asuchitra@google.com> Include install location preference when installing packages.
Changes include
Add new remote call in default container service to determine
install location.
Rename INSTALL_ON_SDCARD
Remove recommentAppInstall method
Add some additional flags used in remote stubs.
Move check for protected apps prior to copy.
Unit tests

DefaultContainerService first parses the file uri(if content uri is specified
it returns a default install internal only value) and returns
a recommended location. Based on which the temporary id is determined
either a file name or a container id and the file is copied there.
This is then later renamed during install.
Todo's light weight parsing of package when determining location since we
just need the install location attribute only when finding out
recomended location. This will also enable to move the check for
updated system apps(cannot be on sdcard) prior to copying.
/frameworks/base/cmds/pm/src/com/android/commands/pm/Pm.java
fd3530f90562bb7e66edfee39d90fc8beda82f1d 18-Jan-2010 Suchi Amalapurapu <asuchitra@google.com> Mount/Unmount secure containers
Persist flags in PackageSetting. Flags are relevant to ApplicationInfo.FLAG_SYSTEM, Application.FLAG_ON_SDCARD, ApplicationInfo.FLAG_FORWARD_LOCK.
New pm command to simulate mount/unmount in Pm. This will be removed
when MountService/vold event generation gets fixed.
Calls from MountService into PackageManager when media gets mounted/unmounted.
Scan the packages and grant permissions when the sdcard gets mounted.
This api might change again.
/frameworks/base/cmds/pm/src/com/android/commands/pm/Pm.java
af8e9f4805643f90a9dc0ecfa119e0a860c12f8a 12-Jan-2010 Suchi Amalapurapu <asuchitra@google.com> app install on sdcard. provide skeleton implementation
to install an app on sdcard, just resources.
Add new install path for /asec in installd.
ignore . when checking for apk path since the sdcard packages id'ed
by package name.
Add new -s option to adb shell pm
Refactor fwd locked from scanMode to ApplicationInfo.
Add new flag for sd install
Add new parse flags for fwd locking and installing on sdcard
New mock api's in PackageManagerService to invoke MountService api's. These
will be refactored again and so have been wrapped internally.
Some error codes in PackageManager
Changes in PackageManagerService to use mPath and mScanPath during installation
and switch to using PackageParser.Package.applicationInfo attributes for
source and public resource directories.
Some known issues that will be addressed later
using system_uid for now. needs some tinkering with uid and packagesetting creation to use the actual app uid
error handling from vold not very robust. ignoring lot of things for now
sending a delayed destroy to delete packages. will revisit later
revisit temp file creation later. just copy for now
/frameworks/base/cmds/pm/src/com/android/commands/pm/Pm.java
039c68e75606e837cf021815a0210836724574ad 27-Sep-2009 Dianne Hackborn <hackbod@google.com> The touch screen is probably a feature.

Also extend the feature APIs a bit.

Change-Id: I99e932d7f4e61edb0e20f75c55e9831e4b59a14d
/frameworks/base/cmds/pm/src/com/android/commands/pm/Pm.java
23b4faf69437b732d681d9bee5c9a84379d5ccad 25-Sep-2009 Xavier Ducrohet <xav@android.com> Use reflection to figure out a readable string from install error code.

Instead of a switch that needs to be maintained, the code now
look for public static final int fields in PackageManager
whose names start with INSTALL_FAILED or INSTALL_PARSE_FAILED.

If their int value match the error code, the name of the field
is used as a human readable error string.

Change-Id: If58ddc4d9ccc40a9a8aaec9de4cc7e4931db0292
/frameworks/base/cmds/pm/src/com/android/commands/pm/Pm.java
f03fb486ac089bf68ae3bfe7b6687dd4b928a340 01-Sep-2009 Xavier Ducrohet <xav@android.com> Add error output to pm for FAILED_MISSING_FEATURE

Change-Id: Ib9955b69b69db7d442402ab33e148cb40dec3d40
/frameworks/base/cmds/pm/src/com/android/commands/pm/Pm.java
b181118b6e58c0014da4e9d52bf38548adc73a8a 22-May-2009 Dianne Hackborn <hackbod@google.com> Define TARGET_CPU_ABI for finding native code in .apks
/frameworks/base/cmds/pm/src/com/android/commands/pm/Pm.java
ade3ecad94d1f4431576f53bae26c35efbf7a2c9 12-May-2009 Dianne Hackborn <hackbod@google.com> Implement issue #1783881 (manifest option for adb-install-only apps)

You can now use android:testOnly="true" to not allow your .apk to be installed
as a normal app. The only way to do so is with the pm command and giving the
-t option, which sets a new INSTALL_ALLOW_TEST flag when installing.

I also used this to clean up the install API... actually, mostly to hide
it, since it is not accessible to apps so shouldn't be in the SDK. We
will be doing some more work on it, so this will prevent adding yet
another backwards-compatibility-for-no-reason version.
/frameworks/base/cmds/pm/src/com/android/commands/pm/Pm.java
c64322c35212e919906ffd66118c7d5d3ad36636 28-Apr-2009 Jacek Surazski <jaceks@google.com> PackageManager keeps track of who installed what.

Stores the package name of the installer app in packages.xml
/frameworks/base/cmds/pm/src/com/android/commands/pm/Pm.java
851a54143c15a1c33361efae2db3f7f45059b472 08-May-2009 Dianne Hackborn <hackbod@google.com> Implement targetSdkVersion and maxSdkVersion, plus version code names.

This adds new attributes for specifying a targetSdkVersion and maxSdkVersion.
There is a new ApplicationInfo flag that is set if the application has set
its targetSdkVersion to the current platform or later. Also you can now
use a string for minSdkVersion and targetSdkVerion, to indicate you are
building against a development tree instead of an official platform.
/frameworks/base/cmds/pm/src/com/android/commands/pm/Pm.java
105925376f8d0f6b318c9938c7b83ef7fef094da 19-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake_rel/...@140373
/frameworks/base/cmds/pm/src/com/android/commands/pm/Pm.java
9066cfe9886ac131c34d59ed0e2d287b0e3c0087 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
/frameworks/base/cmds/pm/src/com/android/commands/pm/Pm.java
d83a98f4ce9cfa908f5c54bbd70f03eec07e7553 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
/frameworks/base/cmds/pm/src/com/android/commands/pm/Pm.java
b798689749c64baba81f02e10cf2157c747d6b46 10-Jan-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@125939
/frameworks/base/cmds/pm/src/com/android/commands/pm/Pm.java
f013e1afd1e68af5e3b868c26a653bbfb39538f8 18-Dec-2008 The Android Open Source Project <initial-contribution@android.com> Code drop from //branches/cupcake/...@124589
/frameworks/base/cmds/pm/src/com/android/commands/pm/Pm.java
54b6cfa9a9e5b861a9930af873580d6dc20f773c 21-Oct-2008 The Android Open Source Project <initial-contribution@android.com> Initial Contribution
/frameworks/base/cmds/pm/src/com/android/commands/pm/Pm.java