• Home
  • History
  • Annotate
  • only in /frameworks/base/services/java/com/android/server/pm/
History log of /frameworks/base/services/java/com/android/server/pm/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
ca60ba1874a6537b42854b52cd766ebf1a8c8189 30-Oct-2012 Kenny Root <kroot@google.com> Merge "Move app-lib definition up for system app scanning" into jb-mr1-dev
584c4cdbf36681bee210bffecb81f7900fcfa1b6 29-Oct-2012 Kenny Root <kroot@google.com> Move app-lib definition up for system app scanning

System apps were getting the wrong path because app-lib directory was
defined after the scanning of packages.

Bug: 7425516
Change-Id: I7a7a6b2a74f846c84516440ee950099bdc564d0b
ackageManagerService.java
f031f230f5e42613dab6b30431fac9b2839d68e6 27-Oct-2012 Amith Yamasani <yamasani@google.com> Fix for some downloaded apps showing up on all users

Bug: 7226656

In the case of packages with sharedUserId, the packages were inserted
into mPackages a little later. We were reading the package restrictions
before this happened and so the apps were being removed from the restricted
list, effectively setting installed=true.

Moved the block that reads the restrictions to after the processing of
mPendingPackages.

Also, don't setInstalled for all users in the pending packages processing.

Change-Id: I382787e45fecdb871d80ffb4d854782d8e32e4a7
ettings.java
6f34b411144a8202c96d05ff79e8040d3885643a 23-Oct-2012 Amith Yamasani <yamasani@google.com> Fix the user name for the owner.

Use a version number to update the name to Owner, from Primary.
For new installations, use the correct localized string.

Bug: 7417150

Fix a typo in the permission description.

Bug: 7333304
Change-Id: I123741e581c6a02d4597b3cd81f2ca48a8587e2a
serManagerService.java
799916e6ac706921e43a3382e5d9e06e13f87525 24-Oct-2012 Dave Burke <daveburke@google.com> Merge "Revert "Check non-primary user dirs during package scan"" into jb-mr1-dev
383fa18b511c195cc51a96c5504442bfec998e9f 24-Oct-2012 Dave Burke <daveburke@google.com> Revert "Check non-primary user dirs during package scan"

This reverts commit 4525f5b69cb44a9a0c92f9c525fc47541f456621

Change-Id: I31b7a0860972532478ab3420556b806bfa78739a
nstaller.java
ackageManagerService.java
92bc9b3196907a76d4b73c3f361d41c14dfd7f5c 24-Oct-2012 Kenny Root <kroot@google.com> PMS: check outInfo for null during delete

It appears that changing an application's signature during boot can pass
an outInfo of null to this function.

Bug: 7402550
Change-Id: I839fea6c8ee728a352c6b906f0fa6671c85f8694
ackageManagerService.java
56e75631bd737e5362309330d4839cc1dddb501c 24-Oct-2012 Dianne Hackborn <hackbod@google.com> Merge "Fix issue #7342364: JellyBean broke Toddler Lock, again" into jb-mr1-dev
77119bc6c90a62beb2f83d9496d99199a7aefe14 23-Oct-2012 Dianne Hackborn <hackbod@google.com> Fix issue #7342364: JellyBean broke Toddler Lock, again

Change-Id: I400c02711edc302a1bc7fbf98b62fcb9f76e5e12
ackageManagerService.java
4525f5b69cb44a9a0c92f9c525fc47541f456621 22-Oct-2012 Kenny Root <kroot@google.com> Check non-primary user dirs during package scan

During package scan, only the primary user data directories were
checked. If the secondary user didn't have an application directory, it
would happily ignore it. The app would then crash upon startup.

Bug: 7391882
Change-Id: I1fa92aa27386104d4ac6bc5dc92bfbf2e7dfac9f
nstaller.java
ackageManagerService.java
8074e98b20ac04fdc032a1ed00dd6763b7e04147 21-Oct-2012 Amith Yamasani <yamasani@google.com> Merge "Fix crashes when quickly adding and removing users" into jb-mr1-dev
9bef3294d3660a85442829a25c9777e25d3c3cc8 20-Oct-2012 Kenny Root <kroot@google.com> Merge changes Ie3c8ca8d,Ia175b36d into jb-mr1-dev

* changes:
Try to free cache before giving up on install
Robustly add symlink and add for non-primary users
db6a14cc85cede0769735fdac4da70766989a3ce 18-Oct-2012 Amith Yamasani <yamasani@google.com> Fix crashes when quickly adding and removing users

Make USER_REMOVED an ordered broadcast and send it before the user's
state is completely removed from the system. This gives services the
opportunity to clean up their state, while still having access to the
user's directory and UserInfo object (such as serial number).

Tell SyncManager to skip over dying/partially created users.

Improve UserManager tests, waiting for users to be removed fully.

Bug: 7382252

Change-Id: I93cfb39c9efe6f15087bf83c569a2d154ef27168
ackageManagerService.java
serManagerService.java
cea3743499f4bb8e5f28a2e57686d7af313169c5 18-Oct-2012 Kenny Root <kroot@google.com> Try to free cache before giving up on install

Try to get installd to free up cache before giving up when there is too
little space free.

Bug: 7232123
Change-Id: Ie3c8ca8dfc190abbb9a29a7baee31f32e9de7d69
ackageManagerService.java
a3e90798b7ad3ed62e5b31842c699b2f98bd457b 18-Oct-2012 Kenny Root <kroot@google.com> Robustly add symlink and add for non-primary users

Amazingly, some apps still don't use the nativeLibraryPath. So add a lib
symlink for non-primary users to fix that.

Also, there was an error when the symlink existed that it would give up.
This shouldn't really happen, but in that case, just remove it and
create a new one to be safe.

Also, move the downgrade code to the appropriate place. This downgrade
case triggered the above symlink existing bug.

Bug: 7318366
Bug: 7371571
Change-Id: Ia175b36d98f00bdc2f2433b909aafd524eb34d15
nstaller.java
ackageManagerService.java
1638931166b7b5571886a8fe6d413ea90d4194b5 18-Oct-2012 Amith Yamasani <yamasani@google.com> Allow services to query the info for a dying user.

This allows services watching for USER_REMOVED to fetch the serialNumber of a dying user.

Also fix an AIOOBE when building the userId array, typically on cleanup.

Bug: 7368826
Change-Id: I24e52278af8353b5744372127da4bf4fafc89baa
serManagerService.java
756901d82b41f50610a63b7cf4c7747a70f1f724 12-Oct-2012 Amith Yamasani <yamasani@google.com> Do cleanup when Stopping users

Mark user 0 as initialized, otherwise it will show up as
uninitialized when viewed from secondary user if never switched to user 0.

Bug: 7301595

Also clean up any users that were in the process of being removed, if device
crashes at a bad time.

Change-Id: Ic16a6c9ccb6a64b7463725f6cc279335a821fcd5
serManagerService.java
38f8688baeb0f610a47c17bb7810349502d62ab6 12-Oct-2012 Jeff Sharkey <jsharkey@android.com> Return ApplicationInfo with requested userId.

Return ApplicationInfo with requested userId instead of trying to
infer it from calling UID.

Bug: 7334712
Change-Id: I9ce0061e2d020b0d74c7c9cd22d89c5ff2466a6c
ackageManagerService.java
36070b414a710dd09a24698699f501d58c5772a4 09-Oct-2012 rich cannings <richc@google.com> Fix verfication bypassed for adb installs

ADB installs appear as UserHandle.USER_ALL, and can only be performed by
UserHandle.USER_OWNER, so use the package verifier for UserHandle.USER_OWNER.
This returns a valid userId to call PackageManagerService.getPackageUid.

Bug: 7293091
Change-Id: I7a5497cfe5fa2e7aa804345cf9f507ec26a0db21
ackageManagerService.java
6309271f7b0f27ee725e36bfa48b4d250e44006f 07-Oct-2012 Dianne Hackborn <hackbod@google.com> Fix issue #7295951: Mako asks which Launcher to use at every re-boot

A couple problems:

- We need to clear app preferences later, now that we have encrypted apps.
- The multi-user implementation of this would allow different preferred
apps from different users to potentially interefere with each other.
They are not completely separate data structures.

Change-Id: Id4f1ebb6414fdf30ff1049adaa1efe83dabac01a
ackageManagerService.java
referredActivity.java
referredIntentResolver.java
ettings.java
634cf31345ae843392215237e741d76271a5cfed 05-Oct-2012 Amith Yamasani <yamasani@google.com> Fix serial number assignment for new user on a freshly wiped device

Bug: 7280093

User serial number was not being bumped up from 0 on a freshly wiped device
due to the userlist not existing. This was resulting in the first 2 users
getting the same serial number, messing up C2DM message delivery. This issue
doesn't show up if you boot the device before adding a user, so it wasn't
discovered earlier.

Change-Id: I8a5d99b9ad2ccfb66a16cacac9548ba53f0be387
serManagerService.java
cdf932e050ba2220025072f37e50cc011d310cad 03-Oct-2012 rich cannings <richc@google.com> Fix PackageInstaller displays with multi-user

With this fix, when all users cancel installing an app they were warned about,
then the "Installing..." screen disappears, as desired.

Bug: 7255231
Change-Id: I2475fa790a5d09abbf94411c696682502fb1e8df
ackageManagerService.java
5bc54bf354f6e674a129b2e286b4bd3eefe91c2b 03-Oct-2012 Dianne Hackborn <hackbod@google.com> Merge "Fix issue #7272775: Auto Start Apps Not Starting" into jb-mr1-dev
3ed62adad14c213117c2b869e71abc2474102ad4 03-Oct-2012 rich cannings <richc@google.com> Merge "Fix package verification with multi-user" into jb-mr1-dev
4a9f071f3d3fdd20615167cda6f22da912bc60c7 03-Oct-2012 Dianne Hackborn <hackbod@google.com> Fix issue #7272775: Auto Start Apps Not Starting

Bad defaults were causing stopped state to be set at each
boot.

Change-Id: I49b04e9c62f6ac391054201b508fddb6c7985615
ackageSettingBase.java
d55deb0a7163a40fe9772ce659f0a3e3ed340de3 02-Oct-2012 rich cannings <richc@google.com> Fix package verification with multi-user

Fixes the porblem of PackageManagerService always sending Intents to user 0.

Bug: 7272549
Change-Id: I25995d8b2b9a24346f4813e6d8d9a84e5d5d2b6b
ackageManagerService.java
6e2bee75cea415621165698fdd9ce857bbb8872e 01-Oct-2012 Jeff Sharkey <jsharkey@android.com> Migrate more System and Secure settings to Global.

Includes telephony, WindowManager, PackageManager, and debugging
settings. Update API to point towards moved values.

Bug: 7231764, 7231252, 7231156
Change-Id: I5828747205708872f19f83a5bc821ed0a801cb79
ackageManagerService.java
54289b8b4a110cc1ae106d79785cc762a2aebd6e 01-Oct-2012 Amith Yamasani <yamasani@google.com> Fix cache deletion for secondary users

Bug: 7249419

Change-Id: Idbc0f9994508059ebf5055aea961b87e08b3673a
nstaller.java
ackageManagerService.java
a2064df6ab77f71e9187da380cbe355c5eaf5a64 30-Sep-2012 rich cannings <richc@google.com> Disable package verification in test harness

Bug: 7233608
Change-Id: I521980728f5fb68b42a3906ff4fd25cd59dbbd7a
ackageManagerService.java
3ff8e1a80058e5557d13693d3223e1aa011c0038 29-Sep-2012 Dianne Hackborn <hackbod@google.com> Merge "Fix issue #7211769 and #7244492, thrash around on #7226656." into jb-mr1-dev
d4ac8d7b3de27a9f0e4c6af2496ca71d794e42d1 28-Sep-2012 Dianne Hackborn <hackbod@google.com> Fix issue #7211769 and #7244492, thrash around on #7226656.

Issue #7211769: Crash dialog from background user has non-working "report"

The report button now launches the issue reporter for the correct user.
Also for crashes on background users, either disable the report button,
or simply don't show the dialog depending on the build config.

Issue #7244492: Bugreport button in Quick Settings doesn't actually do anything

Now they do.

Issue #7226656: second user seeing primary user's apps

I haven't had any success at reproducing this. I have tried to tighten up
the path where we create the user to ensure nothing could cause the
user's applications to be accessed before the user it fully created and thus
make them installed... but I can't convince myself that is the actual problem.

Also tightened up the user switch code to use forground broadcasts for all
of the updates about the switch (since this is really a foreground operation),
added a facility to have BOOT_COMPELTED broadcasts not get launched for
secondary users and use that on a few key system receivers, fixed some debug
output.

Change-Id: Iadf8f8e4878a86def2e495e9d0dc40c4fb347021
ackageSettingBase.java
ettings.java
serManagerService.java
9dbbfcda81f251f23aded866f7f9d49d8a744c75 28-Sep-2012 Ben Gruver <bgruv@google.com> Merge "Pass the originating uid to the package verifier" into jb-mr1-dev
625239a05401bbf18b04d9874cea3f82da7c29a1 27-Sep-2012 Jeff Sharkey <jsharkey@android.com> Migrate more Secure settings to Global.

Migrate networking, storage, battery, DropBox, and PackageManager
related Secure settings to Global table.

Bug: 7232014, 7231331, 7231198
Change-Id: I772c2a9586a2f708c9db95622477f235064b8f4d
ackageManagerService.java
37d83a3caf138e35fa1a355787d20c351f6b37a6 27-Sep-2012 Ben Gruver <bgruv@google.com> Pass the originating uid to the package verifier

Bug: 6923241
Change-Id: I85a3e0d53b469543cb0551d3a440d2663b5d0697
ackageManagerService.java
bf6f6f9de72c9fd15e6bda9f228c05a9b37d6324 26-Sep-2012 Jeff Brown <jeffbrown@google.com> Update references to migrated global settings.

Fixed one setting that was migrated but not marked deprecated.

Removed a hidden setting that is no longer used by the new
power manager service.

Bug: 7231172
Change-Id: I332f020f876a18d519a1a20598a172f1c98036f7
ackageManagerService.java
752cd922f7091dfd5401faf70dc248934a9dbb6d 24-Sep-2012 Jeff Sharkey <jsharkey@android.com> Always bind to DefaultContainerService as OWNER.

When PackageManagerService deals with external storage, always bind
to DefaultContainerService as USER_OWNER. This avoids binding to a
stopped user, which would fail.

Bug: 7203111
Change-Id: I8e303c7558e8b5cbe4fea0acc9a472b598df0caa
ackageManagerService.java
ettings.java
5a370882f87321629f98f6149ac946a57e25dfa8 23-Sep-2012 Jeff Sharkey <jsharkey@android.com> Merge "Check READ_EXTERNAL enforcement outside of lock." into jb-mr1-dev
8da429e80d1778d7bcfbfbd64355c70fb466b3ce 23-Sep-2012 Dianne Hackborn <hackbod@google.com> Fix issue #7209355, #7214271.

Issue #7209355: Intent on the secondary user results in an intent picker
in the Primary user.
Issue #7214271: Crash in system UI

Also fix a bug where I recently broke the removeTask() operation in the
activity manager where it would remove the wrong task.

Change-Id: I448c73a0e83a78d9d8d96b4629658c169888d275
ackageManagerService.java
c50f31d213d6764602aed76ed9993d45d33d76d9 23-Sep-2012 Jeff Sharkey <jsharkey@android.com> Check READ_EXTERNAL enforcement outside of lock.

Since SettingsProvider can call back into PMS, query the default
enforcement state before acquiring mPackages lock.

Bug: 7182437
Change-Id: Ie218aedfc7a943e5b221814af3e0356c7199b0e4
ackageManagerService.java
4e5753f5f6c5e0c7f53722e2bfa451ac7f0b27db 20-Sep-2012 rich cannings <richc@google.com> Add setting to skip verifying ADB installs

Create a setting "verifier_verify_adb_installs" to allow developers to control
package verification on ADB installs only. If package verification is enabled,
the setting will:

0, Do not perform package verification on apps installed through ADB/ADT/USB
and perform package verification on all other installs.

1, Use package verification on all installs. (Default)

Bug: 7183252
Change-Id: I9d3eb8abb5ba5e93f8634d3135794e92ff6273b6
ackageManagerService.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
ackageManagerService.java
ettings.java
serManagerService.java
c72fc674a33b8d17585764d09d3bb6c77d7d947e 20-Sep-2012 Dianne Hackborn <hackbod@google.com> Implement multi-user PackageMonitor.

New APIs let you indicate what user(s) to monitor, and tell you
what user is changing when receiving a callback.

Fix package manager to only deliver package brpadcasts to the
running users. (This isn't really a change in behavior, since
the activity manager would not deliver to stopped users anyway).
Make sure all broadcasts that package monitor receives also include
user information for it to use.

Update wallpaper service to (hopefully) now Really Correctly
monitor package changes per user.

Change-Id: Idd952dd274abcaeab452277d9160d1ae62919aa0
ackageManagerService.java
4adb9d34162b109db3c67e352ad50c76dc7f2d45 19-Sep-2012 Amith Yamasani <yamasani@google.com> Merge "DevicePolicyManager per user" into jb-mr1-dev
599dd7ce9adf8ca067cefb0b191a5ac20ec35a79 15-Sep-2012 Amith Yamasani <yamasani@google.com> DevicePolicyManager per user

Bug: 7136483

Store device policy information for each user and apply them when user switches.

Global proxy can only be controlled by owner.
Camera restriction applies to all users, if any one has an admin that disables it.
Storage encryption can only be controlled by owner, although other users can query the state.
Wipe data will only remove the user if non-zero, wipe the device, if zero.

Change-Id: I359be46c1bc3828fd13d4be3228f11495081c8f2
ackageManagerService.java
27bd34d9d9fe99f11b80aa0bbdb402fb47ef4158 16-Sep-2012 Jeff Sharkey <jsharkey@android.com> Multi-user MTP.

The current MTP kernel driver at /dev/mtp_usb is exclusive, meaning
only one process can have it open. In addition, each MTP session
with a desktop requires unique object IDs, which doesn't hold true
across users on the device.

To solve these two issues, when switching users we cycle the USB host
stack to disconnect both local and remote MTP connections, giving the
new user's media process a chance to claim /dev/mtp_usb, and causing
the desktop to initiate a new MTP session.

This change also allows BroadcastReceivers to registerReceiver()
allow retrieval of a current sticky broadcast. Adds a system property
to override maximum users. Removes MOUNTED broadcasts for secondary
users. Allows INTERACT_ACROSS_USERS to getCurrentUser().

Bug: 6925114
Change-Id: I02b4a1b535af95fb2142655887b6d15a8068d18a
serManagerService.java
e928d7d95dbb64627e6ff3a0572190c555b59d96 18-Sep-2012 Amith Yamasani <yamasani@google.com> Pass Bitmap instead of ParcelFileDescriptor in UserManager

Add a USER_INFO_CHANGED intent for lockscreen and quicksettings to use
to monitor changes to the user name or icon.

Bug: 7164040
Change-Id: Id6fb8b6d38ce04ccd02bbadcf0c10699783d6c03
serManagerService.java
4215017c12a4d522e20a6164ff33e8ca7da3a3bd 18-Sep-2012 Kenny Root <kroot@google.com> Merge "Use shared app gid for dalvik cache" into jb-mr1-dev
1d31d5ba129007fc13bd0ed49a3e3cd60e748e7c 17-Sep-2012 Amith Yamasani <yamasani@google.com> Merge "Start userId from 10, reserving 1-9 for special use in the future." into jb-mr1-dev
07a0ede729f9b2f472b659b67b4cbc3602aa289a 17-Sep-2012 Amith Yamasani <yamasani@google.com> Start userId from 10, reserving 1-9 for special use in the future.

Change-Id: I3d0c1717d8b3add75ba43ed98e53ba02e6682c34
serManagerService.java
6a9b2cb7feb96fe17878089cf48e0e27e3ff531d 17-Sep-2012 Kenny Root <kroot@google.com> Use shared app gid for dalvik cache

For forward-locked apps, we need to be able to read the optimized dex
file from a common place. Make it owned by the shared app GID as well.

Bug: 7178231
Change-Id: Ib36d79e8df69d58e8e1e0f167659df995dc84b84
ackageManagerService.java
3b49f07a452e0a77c1d22db2065255689a461d31 17-Sep-2012 Amith Yamasani <yamasani@google.com> Add UserManager.getUserIcon()

So that we don't abuse the setUserIcon() for reading. So the new method won't try
to create the file, only return it if it exists.

Change-Id: I7a81d3f1b29d14d37e71f531744ce39f21d827ac
serManagerService.java
36c67c236ed188a034fdf13977fbc8d4fe0023e2 17-Sep-2012 rich cannings <richc@google.com> Enable package verification

Turn on package verification, if a verifier exists. Play app is a verifier.

Bug: 7064853
Change-Id: Id7d478a216d10b0a612678d6a9b0ee7f2037204a
ackageManagerService.java
d65afc65ea5b2bf83889dd88a9c94f895da8aece 16-Sep-2012 Dianne Hackborn <hackbod@google.com> Merge "More multi-user stuff." into jb-mr1-dev
5dc5a00e7ebadc085ded7e29feacd17e53698486 16-Sep-2012 Dianne Hackborn <hackbod@google.com> More multi-user stuff.

- New public APIs to find out when a user goes to the foreground,
background, and is first initializing.
- New activity manager callback to be involved in the user switch
process, allowing other services to let it know when it is safe
to stop freezing the screen.
- Wallpaper service now implements this to handle its user switch,
telling the activity manager when it is done. (Currently this is
only handling the old wallpaper going away, we need a little more
work to correctly wait for the new wallpaper to get added.)
- Lock screen now implements the callback to do its user switch. It
also now locks itself when this happens, instead of relying on
some other entity making sure it is locked.
- Pre-boot broadcasts now go to all users.
- WallpaperManager now has an API to find out if a named wallpaper is
in use by any users.

Change-Id: I27877aef1d82126c0a1428c3d1861619ee5f8653
serManagerService.java
13d428e8306d1bb1a3017045bc5d2f76edec32df 13-Sep-2012 rich cannings <richc@google.com> Send more information to verifiers

Send package name, version code and the uid of the application requesting the
install to package verifiers.

Bug: 7164155
Change-Id: I2464dc5d4551f60b4f38f7982495a8920c83e1cd
ackageManagerService.java
e4bf0eae061c821eaaec988097a8d31332d21646 14-Sep-2012 rich cannings <richc@google.com> DEFAULT_VERIFY_ENABLE turns verification off

When DEFAULT_VERIFY_ENABLE == false, package verification must be completely
off.

Bug: 7132197
Change-Id: Icc0dbb4a3f4f5f00ddadecda6cc42976618c4332
ackageManagerService.java
0b2fa8ca2238de575fc5cf32f28a92a7d422faef 14-Sep-2012 Kenny Root <kroot@google.com> Don't prematurely delete temporary files

When verification and encryption is used, the temporary file was deleted
prematurely.

Also, on next boot-up, scan the directory we use for temporary files to
clean them up if the user rebooted in the middle of installation.

Bug: 7132197
Change-Id: Ic9e8aab9a664ca00d9ac16f72e53fc43d78d21bc
ackageManagerService.java
24271a8c4c55a60047fd3d35c8a7af98b0f4e666 13-Sep-2012 Kenny Root <kroot@google.com> Merge "Use shared app gid for forward-locked processes" into jb-mr1-dev
aefd73d2b9f17a06f05346f302db1e393a7ece19 13-Sep-2012 Kenny Root <kroot@google.com> Merge "Try to avoid possible NPE" into jb-mr1-dev
0f001d3ee0a4db694029b1956fa5b901dcdde781 13-Sep-2012 Kenny Root <kroot@google.com> Try to avoid possible NPE

For some reason .getParent() appears to be returning null for a data
directory. We don't need to use the parent; we can just use the path.

Bug: 7151733
Change-Id: I5e17cc14fe53669882329d67d8a7b4ec35b81104
ackageManagerService.java
f69c812f49cb2dea296cd319984e58af026f4c3a 13-Sep-2012 Jeff Brown <jeffbrown@google.com> Wait for installd to finish starting before booting.

Fixes a race condition where the system server might
try to access /data/user/0 before it was created. In so
doing, the system server could end up creating a directory
in that location with the wrong permissions and everything
would promptly crash.

Bug: 7151686
Change-Id: I349c12fd2b9685d2e7f6305e74f6bf7d5816b752
nstaller.java
ackageManagerService.java
4a86019aeeed8420c809b94ac07edeff86972108 12-Sep-2012 rich cannings <richc@google.com> Temporarily turn off package verification

Bug: 7152858
Change-Id: Ic3b1900e486224dafcf3cce5db13e5f795650b51
ackageManagerService.java
b049e212ab7fe8967893c202efcb30fecfdb82fb 08-Sep-2012 Jeff Sharkey <jsharkey@android.com> Include user identifier in external storage paths.

When building external storage paths, always include user in path
to enable cross-user paths and aid debugging.

Each Zygote process continues to only have access to the appropriate
user-specific emulated storage through bind mounts. A second set of
mounts continue supporting legacy /sdcard-style paths. For example,
a process running as owner has these mount points:

/storage/emulated_legacy
/storage/emulated_legacy/Android/obb
/storage/emulated/0
/storage/emulated/obb

Since Environment is created before Zygote forks, we need to update
its internal paths after each process launches.

Bug: 7131382
Change-Id: I6f8c6971f2a8edfb415c14cb4ed05ff97e587a21
ackageManagerService.java
e091f22e226f7177e45e23850670c1ad9b63fd75 12-Sep-2012 Kenny Root <kroot@google.com> Use shared app gid for forward-locked processes

Use a shared app gid for each app across different users which allows
forward-locked applications to share the same APK file.

Change-Id: Ifecf51ee7865547117746f83e9733083d3dd5111
ackageManagerService.java
a36180925bdbde9308f9ae6d27dd5fbadb2fa511 11-Sep-2012 Kenny Root <kroot@google.com> Merge "Remove "unlinklib" command from installd" into jb-mr1-dev
faea76ff8bc9a350765873af81334afe4d14afbd 11-Sep-2012 Amith Yamasani <yamasani@google.com> Enforce a user limit

By default only 1 user is allowed. Some devices permit more than 1.
Set the real user limit in a device overlay for config.xml

Change-Id: I2e0bffa13393b954fcd20e55b92f20de980c58c0
serManagerService.java
9bbd70a96397bd5f1445ad6c21977fccfb350dfa 10-Sep-2012 Kenny Root <kroot@google.com> Remove "unlinklib" command from installd

unlinklib is no longer necessary since libraries are now either stored
in an ASEC container or in /data/app-lib

Replace lib directory with a symlink to the /data/app-lib directory even
if it's a dangling link. That way developers don't name something "lib"
in their directory which gets blown away during an update.

Change-Id: I142cf13dba9c13aafbaf0ff8d5e9872cbf1cc910
nstaller.java
ackageManagerService.java
2e7d0cb592381e2efd9b86d5ee38d8ec657b6a1a 11-Sep-2012 Kenny Root <kroot@google.com> Merge "Move native libraries to /data/app-lib" into jb-mr1-dev
1676c856d61b97c871dc2be0cb1f1fb1e12e24e9 10-Sep-2012 Dianne Hackborn <hackbod@google.com> Flesh out multi-user in am commands.

Now we default to the current user instead of user 0 for most commands
(except where we can do the command for all users).

Many more commands take a user argument: force-stop, kill, profile,
dumpheap.

Improved help text.

Change-Id: I719a13b4d31b668f57ca21e51d7043ac3e0d4e1b
serManagerService.java
ddbe50df2ca70700a46e5849347989b520d1113e 06-Sep-2012 Kenny Root <kroot@google.com> Move native libraries to /data/app-lib

Instead of unpacking libraries into /data/data/<appname>/lib, unpack
them into /data/app-lib so that multi-user applications can use the same
libraries.

Change-Id: I636dafb5a9eea8cf5a41f1360698e7695455f385
nstaller.java
ackageManagerService.java
5455f6826f832ed0f07d28a772f4489d7223acb3 09-Sep-2012 Kenny Root <kroot@google.com> Update PackageSetting flags when updating

Commit 5e03e2ca7d25b899b129baad2dd5eca6bf99d88a moved from
PacakgeParser.Package to PackageSetting which revealed that we weren't
updating the pkgFlags when replacing an existing application.

Add flags to PackageSetting so that deletion of the package later succeeds.

Change-Id: I2e0d4e07da31f48b68601f3f3240966b6e17dbdf
ackageManagerService.java
ettings.java
0c191624fba8484e811027a9db40a62a960ab7dc 09-Sep-2012 Kenny Root <kroot@google.com> Remove "protect" command from installd

No one uses the "protect" command anymore, so remove it from installd.

Change-Id: Ia990bae6f95cd6e317496f5dd173ec15164d7164
nstaller.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
ackageManagerService.java
cd620591b764cd999f18878985444fba01d5b710 08-Sep-2012 Nick Kralevich <nnk@google.com> Merge "installd: fix forward locking symlink" into jb-mr1-dev
1275abd013eee87b3fec5b704a799440cb1c71fe 08-Sep-2012 rich cannings <richc@google.com> Merge "Move verification settings to Settings.Global" into jb-mr1-dev
11941fd651be468c8ab6c90256616418ecf3a6a8 08-Sep-2012 Dianne Hackborn <hackbod@google.com> Fix crash when setting wallpaper from non-primary user.

When accessing a content provider, there is a check for whether
the provider can run in the caller's process; if so, even if the
provider is currently published, we return to the caller that it
can run locally.

This check was broken -- it had an old condition that allowed
content providers owned by the system UID to run in any other UID's
process. This is wrong, since by definition the other
UIDs would not be able to access the data under the original UID.

We ran into this because the activity picker is part of the
android platform manifest, so runs as the system process. However
it needs to run as the user who invoked it, so when coming from the
non-primary user we spin up a "system" process running as a uid of
that user. Now when that process tries to access the settings
provider, the broken check would think that a new instance of the
settings provider should be created in the caller's process.

Change-Id: I7bf495ed8370cb271bdaec073d5b7dda9e38c546
ettings.java
7de350a91301985b7f2d9f28edde5aade8495d9b 08-Sep-2012 Nick Kralevich <nnk@google.com> installd: fix forward locking symlink

installd was not creating a compatibility symlink when
installing a forward locked application. Fix.

Bug: 7121527
Change-Id: Ied507ab2b759d8658af563e6ac8f0dbb0d286cce
ackageManagerService.java
4d8fc793f044cf2c857ac72ebe51641b8e6c413d 07-Sep-2012 rich cannings <richc@google.com> Move verification settings to Settings.Global

Move Settings.Secure.PACKAGE_VERIFIER_ENABLE,
Settings.Secure.PACKAGE_VERIFIER_TIMEOUT,
Settings.Secure.PACKAGE_VERIFIER_DEFAULT_RESPONSE to
Settings.Global.PACKAGE_VERIFIER_ENABLE,
Settings.Global.PACKAGE_VERIFIER_TIMEOUT,
Settings.Global.PACKAGE_VERIFIER_DEFAULT_RESPONSE, respectively.

Bug: 7082362
Change-Id: I21fde031a330563891c0129132f3d6369ac5e7a5
ackageManagerService.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
ackageManagerService.java
ettings.java
68ed7e448d36c2f82062add8a95dfdf995873557 04-Sep-2012 rich cannings <richc@google.com> Enable package verification

Turn on package verification, if a verifier exists. Play app is now a verifier.

Bug: 7064853
Change-Id: I11f6b108c507ea6236038b1415eb9064ca4c3c6d
ackageManagerService.java
20e809870d8ac1e5b848f2daf51b2272ef89bdfc 01-Sep-2012 Dianne Hackborn <hackbod@google.com> Add registering for explicit users.

New API to register as an explicit user, which allows you to
also select ALL to see broadcasts for all users.

New BroadcastReceiver API to find out which user the broadcast
was sent to.

Use this in app widget service to handle per-user package broadcasts
and boot completed broadcasts correctly.

Change-Id: Ibbe28993bd4aa93900c79e412026c27863019eb8
ackageManagerService.java
61f57379ca2c5b6290c8da7548fa17128f7ab24f 31-Aug-2012 Amith Yamasani <yamasani@google.com> Centralize the creation of the user system directory

Environment.getUserSystemDirectory(int userId)

Use it all relevant places that was hardcoding it.
Also, wipe out the user's system directory when user is removed, otherwise old state
might be transferred to a new user.

Change-Id: I788ce9c4cf9624229e65efa7047bc0c019ccef0a
ettings.java
serManagerService.java
a2875f481bc40fb5c7e5ae2d475dfb6d557294c0 31-Aug-2012 rich cannings <richc@google.com> Merge "Notify verifiers that verification is complete" into jb-mr1-dev
f203aeef993b0f4ce65c9630d06bbd50a504e89f 30-Aug-2012 Amith Yamasani <yamasani@google.com> Enforce permissions for calls with specified userId

Fix a couple of places where incorrect userIds were being passed in.

Change-Id: I398c676e0488ff7e584be96e96c8b32652134238
ackageManagerService.java
d1b5cfc94ae940f42be352e7ed98c21c973471b2 29-Aug-2012 rich cannings <richc@google.com> Notify verifiers that verification is complete

Send the Intent.ACTION_PACKAGE_VERIFIED to all verifiers when
verification is complete (either one verifier verified the package or a
timeout occurred). Details of what occurred is in a new extra,
PackageManager.EXTRA_VERIFICATION_RESULT.

Bug: 7048930
Change-Id: I4f9855a29b0eb6d77f469891402c69e2e8922945
ackageManagerService.java
5ac72a29593ab9a20337a2225df52bdf4754be02 30-Aug-2012 Dianne Hackborn <hackbod@google.com> Improve multi-user broadcasts.

You can now use ALL and CURRENT when sending broadcasts, to specify
where the broadcast goes.

Sticky broadcasts are now correctly separated per user, and registered
receivers are filtered based on the requested target user.

New Context APIs for more kinds of sending broadcasts as users.

Updating a bunch of system code that sends broadcasts to explicitly
specify which user the broadcast goes to.

Made a single version of the code for interpreting the requested
target user ID that all entries to activity manager (start activity,
send broadcast, start service) use.

Change-Id: Ie29f02dd5242ef8c8fa56c54593a315cd2574e1c
serManagerService.java
694121c4004e80deec71736481cfb03bd50e38f5 30-Aug-2012 Amith Yamasani <yamasani@google.com> Merge "Fix an NPE in PackageManager when getting the AppInfo for an app" into jb-mr1-dev
317046a08784f0df75165ac1eaaf3d237704618e 30-Aug-2012 Amith Yamasani <yamasani@google.com> Fix an NPE in PackageManager when getting the AppInfo for an app

Bug: 7072043
Change-Id: I37378b13820152434e7b3249e13c27001fe4ae5a
ackageManagerService.java
80a4af2bbc6af42ae605e454bf89558e564f5244 28-Aug-2012 Dianne Hackborn <hackbod@google.com> Start implementing concept of "running" users.

The activity manager now keeps track of which users are running.

Initially, only user 0 is running.

When you switch to another user, that user is started so it is
running. It is only at this point that BOOT_COMPLETED is sent
for that user and it is allowed to execute anything.

You can stop any user except user 0, which brings it back to the
same state as when you first boot the device. This is also used
to be able to more cleaning delete a user, by first stopping it
before removing its data.

There is a new broadcast ACTION_USER_STOPPED sent when a user is
stopped; system services need to handle this like they currently
handle ACTION_PACKAGE_RESTARTED when individual packages are
restarted.

Change-Id: I89adbd7cbaf4a0bb72ea201385f93477f40a4119
serManagerService.java
def8b0f011b5b2b02235063d5021ddfd58aa0baf 29-Aug-2012 Dianne Hackborn <hackbod@google.com> Merge "Fix infinite loop when uninstalling apps." into jb-mr1-dev
377de7b13e6706911cca1d6826b2e4665edd60d4 29-Aug-2012 Dianne Hackborn <hackbod@google.com> Fix infinite loop when uninstalling apps.

Change-Id: Ibdf7fa832529a358d1115fc300651101c5185484
ackageManagerService.java
2deaa3698d33d428b527329537440ab65ae8dced 29-Aug-2012 rich cannings <richc@google.com> Merge "Add permission checks for Verification API calls" into jb-mr1-dev
7e67151b912622f8a279ab1523a9bcf26ebaff3d 27-Aug-2012 rich cannings <richc@google.com> Add permission checks for Verification API calls

Ensure that only applications with
android.Manifest.permission.PACKAGE_VERIFICATION_AGENT can call application
verification APIs, like PackageManager.verifyPendingInstall and
PackageManager.extendVerificationTimeout

Bug: 7049083
Change-Id: I5fc28b37e864d67cd319a1ed9d03a90dd15ad052
ackageManagerService.java
0e17e5bc43373ff9dd8d567f876a26f990ed638e 28-Aug-2012 Dianne Hackborn <hackbod@google.com> Merge "Fix installing applications from non-primary users." into jb-mr1-dev
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
ackageManagerService.java
ackageSettingBase.java
be7ddb9f293076e0c14dc72ea498aced8742b5a9 27-Aug-2012 Andy Stadler <stadler@google.com> Merge "Fix package verifier lookup" into jb-mr1-dev
2b9146523347d4458d17d99824afdac29e312176 27-Aug-2012 Amith Yamasani <yamasani@google.com> Fix adb install

Was not properly handling creating DefContainerService when the installation was
for USER_ALL. Not a problem for Market installs.

Bug: 7061571
Change-Id: I4528b4c56e38effa137da56460e78c55b242ba45
ackageManagerService.java
080ca09c7f4c0033d0efece23687b71f7f8febc9 25-Aug-2012 Amith Yamasani <yamasani@google.com> Merge "Bind to the correct default container service when installing/moving/measuring pkgs" into jb-mr1-dev
6ec101288b93d7548ed9ac9169356e7939783813 23-Aug-2012 Amith Yamasani <yamasani@google.com> Bind to the correct default container service when installing/moving/measuring pkgs

Change-Id: I0acfe955b5d57b4985d1922fe3dd841a81c824ed
ackageManagerService.java
4428e17c5e05c0dad76da8f1c28ccba62a66cd91 25-Aug-2012 Dianne Hackborn <hackbod@google.com> Some clean up of app install and user management.

UserManagerService is now closely tied to PackageManagerService,
sharing the same locks. There is no longer direct access of
Installer by UserManagerService, instead the package manager is
back to solely owning it.

Creating a new user now correctly only installs system apps for
that user.

Fixed some misc bugs, where we were getting nulls when
querying content providers and instrumentation in uninstalled
users, incorrect locking, etc.

Change-Id: Ife69b6e373d0cf7c5cfc03fc588e36b43ad5d8b0
ackageManagerService.java
ettings.java
serManagerService.java
250ce285318f9f7d714805e4f859a395ac9615f6 25-Aug-2012 Andy Stadler <stadler@google.com> Fix package verifier lookup

queryIntentReceivers() needs the resolvedType string to be non-null
in order to find the receiver.

Change-Id: If473d7e08e79940c3e495bc7a9d136e4130599a1
ackageManagerService.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
ackageManagerService.java
ackageSettingBase.java
ettings.java
serManagerService.java
d9ef3e5495db1c46bcfcc1a2d4386af8db6deb0c 22-Aug-2012 rich cannings <richc@google.com> Allow verifiers to extend timeout

Create a new verifier API to extend the timeout for a giving package,
including the resulting action (allow or deny) upon the timeout occuring.

Bug: 6901038
Change-Id: I351f7944327f863aff1d7dd1227be74652fa1511
ackageManagerService.java
ackageVerificationState.java
2c1dfa29b40a988e3ea8f6922768465743aafddc 23-Aug-2012 Amith Yamasani <yamasani@google.com> Merge "Fix deadlock in removing a user" into jb-mr1-dev
0cd867c83e726c88355375af4d14ee83f3339bbe 23-Aug-2012 Amith Yamasani <yamasani@google.com> Fix deadlock in removing a user

Cleanup PackageManager settings after the package directories are removed.

Change-Id: I264bc95ea21da653a234d7c81df5b25d4de7aa9e
serManagerService.java
1952637425eece18aa1ce3d80d4b49086ef3bcf7 22-Aug-2012 Amith Yamasani <yamasani@google.com> Remove permission requirement for some UserManager calls

Update javadocs to be explicit about permissions.
Minor fixes in UserManagerService

Change-Id: I0d355e0a60e5dbdb49ed06091111d480ff249f3d
serManagerService.java
0c3804950236fe170ebf6cc7a5f1e3e305b8f315 21-Aug-2012 Dianne Hackborn <hackbod@google.com> Improve multi-user app management.

Introduce API to get per-user storage information, keep track
of services associated with users, and various small cleanup.

Change-Id: I5d4e784e7ff3cccfed627d66a090d2f464202634
nstaller.java
ackageManagerService.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
ackageManagerService.java
fc6e0ca07e599de5229582efe29c4f78eabaa3b8 18-Aug-2012 Amith Yamasani <yamasani@google.com> Fix build part 2

Change-Id: I3b4ed430f214468a22d3b3aaf3605e570cfd0ed1
serManagerService.java
a3f133afe885f9e005dfc0584cb7b3b90f75f665 10-Aug-2012 Amith Yamasani <yamasani@google.com> Save preferred activity info with user id.

So each user can have their own set of intent resolution preferences.

ResolverActivity now launches the activity on the correct user, and
persists the preference for the correct user.

Bug: 6961905
Change-Id: I6d3a8a9af89bc649277d4fc8d0f367ee123f8392
ackageManagerService.java
referredActivity.java
serManagerService.java
2a00329c6d55c6cd9166e01963d7410e95d80d21 15-Aug-2012 Amith Yamasani <yamasani@google.com> UserHandle to UserSerialNo mapping

Use AtomicFile for usermanager files.

Added a MANAGE_USERS permission that apps (signature permission) can use
to create/query/modify/remove users.

Change-Id: I5cf232232d0539e7508df8ec9b216e29c2351cd9
serManagerService.java
9a994b5350731b8169a9b25463f57266ee2988fb 17-Aug-2012 Kenny Root <kroot@google.com> am 050c87f8: am a950daf5: Merge changes Ieb566a2a,I953057cd

* commit '050c87f87e2a48c7bc90f5b15fb6e4e37e667286':
Use Libcore's stat instead of FileUtils#getFileStatus
Use Libcore.os.stat instead of FileUtils
050c87f87e2a48c7bc90f5b15fb6e4e37e667286 17-Aug-2012 Kenny Root <kroot@google.com> am a950daf5: Merge changes Ieb566a2a,I953057cd

* commit 'a950daf5c14a0009c2c62e9c3e0e8d51eb0cf7d9':
Use Libcore's stat instead of FileUtils#getFileStatus
Use Libcore.os.stat instead of FileUtils
520ee7bcadafdc5768fa8fc8890199ebe29886da 17-Aug-2012 Kenny Root <kroot@android.com> am a2e8365c: am 9b0da58e: Merge "Introduce a restorecon JNI binding."

* commit 'a2e8365cc883de0d3e56e9f4af350ecfe1b8fc4c':
Introduce a restorecon JNI binding.
a2e8365cc883de0d3e56e9f4af350ecfe1b8fc4c 17-Aug-2012 Kenny Root <kroot@android.com> am 9b0da58e: Merge "Introduce a restorecon JNI binding."

* commit '9b0da58e3a30b760de37138cdd51d20f269c383e':
Introduce a restorecon JNI binding.
786cbcacd2efbd94476eb05a4d5b77211f20d434 16-Aug-2012 Kenny Root <kroot@google.com> Use Libcore.os.stat instead of FileUtils

PackageManagerService just needed to know the owner for this file, so
just use stat instead so we can remove the old JNI code.

This is the last user of FileUtils#getPermissions so just remove the
FileUtils method as well.

Change-Id: I953057cd6b9de4410f33b6f22e4bddff02fe2988
ackageManagerService.java
f02b60aa4f367516f40cf3d60fffae0c6fe3e1b8 16-Aug-2012 Dianne Hackborn <hackbod@google.com> Rename UserId to UserHandle.

This is the start of turning this into a formal public API.

Change-Id: I5786d2c320f1de41a06ed5d0f65adb68967287a0
ackageManagerService.java
ettings.java
serManagerService.java
38cc2a5a3ad076fbbb0824a91f49730a4297549b 13-Aug-2012 Kenny Root <kroot@google.com> am 3221bf27: am 438a0efc: Do not eject internal ASECs when storage unmounted

* commit '3221bf27ff6b8eebf360ed2496ad5c56b95fd689':
Do not eject internal ASECs when storage unmounted
3221bf27ff6b8eebf360ed2496ad5c56b95fd689 13-Aug-2012 Kenny Root <kroot@google.com> am 438a0efc: Do not eject internal ASECs when storage unmounted

* commit '438a0efcfbee5dc953e8e5bbdf4cb3dbe94b3f80':
Do not eject internal ASECs when storage unmounted
438a0efcfbee5dc953e8e5bbdf4cb3dbe94b3f80 09-Aug-2012 Kenny Root <kroot@google.com> Do not eject internal ASECs when storage unmounted

If the incoming request is to notify of storage unmounted, don't mess
with apps that are in internal ASECs.

Bug: 6948035
Change-Id: I63ffb895c4d994ee03a5a9bd6bb23f69c88e2a87
ackageManagerService.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
ackageManagerService.java
ettings.java
serManager.java
serManagerService.java
e1d7c711df3e3a2d2f195457882aa4ddb5626167 08-Aug-2012 Rich Cannings <richc@google.com> Revert "Pass URLs to package verifiers"

This reverts commit 24713907fe4632d263aea82f7a35c8fb08918a09

Change-Id: Ie04ba73475b813635c4a74915c45e83250801b6b
ackageManagerService.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
ackageManagerService.java
9ec6cdde9f8f22356dcc9f811d99ebf813194721 31-May-2012 Dianne Hackborn <hackbod@google.com> Optimize memory use of IntentResolver.

Use raw arrays instead of ArrayList for data structures.

Temporarily includes a copy of the old intent resolver for
validating the new implementation.

Change-Id: I988925669b6686ac73b779be6cd6fe3a9fd86660
ackageManagerService.java
ettings.java
554cb0c290406f5bba34908489db5382a69d0a9a 05-Jul-2012 rpcraig <rpcraig@tycho.ncsc.mil> Introduce a restorecon JNI binding.

Label the vmdl.*\.tmp files and the final .apk file differently.
Modify the WallpaperManagerService to restorecon the wallpaper file.

Signed-off-by: rpcraig <rpcraig@tycho.ncsc.mil>

Change-Id: Idfc056e9ec0508d7e11100626a7114f341f1af70
ackageManagerService.java
1abb1cb3a8fe17f7866150604c2fd73751da787e 26-Jan-2012 Jaikumar Ganesh <jaikumar@google.com> Changes to Bluetooth Service structure.

Changes to make Bluetooth Service part of the system_service.
These changes may be temporary.

Changes to update to the new disable API.

Change-Id: If89dba17e6e6c6daa53c37684221763a2da076e9

Conflicts:

services/java/com/android/server/pm/PackageManagerService.java
ackageManagerService.java
c32e190ea6da8c9acd8dc1a29a6e8794ecf7d857 30-Jun-2012 Dianne Hackborn <hackbod@google.com> resolved conflicts for merge of a9c38461 to master

Change-Id: Ie7044c4f9f15384c3edd328fa8e2932c731d9d5c
a9c3846194b69f1bfa73066be670c9d77f6dd0d7 30-Jun-2012 Dianne Hackborn <hackbod@google.com> am bfb752f8: Merge "Fix issue #6761130: Clearing app data in settings does not clear app\'s USB storage" into jb-dev

* commit 'bfb752f8f0e4d73dc251c19d2ef79649fbbe4fd1':
Fix issue #6761130: Clearing app data in settings does not clear app's USB storage
183ce028f10442dd6ada59de8fa531d690134663 30-Jun-2012 Dianne Hackborn <hackbod@google.com> Fix issue #6761130: Clearing app data in settings does not clear app's USB storage

The package manager calls to clear data / clear cache were not also
having default container service clear the data on external storage. Now
they do.

Change-Id: Ib5e5eb6adf2cac5a4cc094cc1a02ac8cfb6a2edf
ackageManagerService.java
25a525411b0fa6ec386b4fea9d827ff37f8146a0 26-Jun-2012 Kenny Root <kroot@google.com> am 7d33d0c3: am c17f92ce: Merge "Use removePackageLI instead of removing mPackages" into jb-dev

* commit '7d33d0c36c7e8c9de4139af383f7491823055bc7':
Use removePackageLI instead of removing mPackages
7d33d0c36c7e8c9de4139af383f7491823055bc7 26-Jun-2012 Kenny Root <kroot@google.com> am c17f92ce: Merge "Use removePackageLI instead of removing mPackages" into jb-dev

* commit 'c17f92ce047e8d62fac829d1df5dae654f7e4de8':
Use removePackageLI instead of removing mPackages
eca64b391408dfdb9ff3ae03fc39cfdb6918f3ad 26-Jun-2012 Kenny Root <kroot@google.com> Use removePackageLI instead of removing mPackages

When adding an system app via OTA, trying to remove it from mPackages
directly doesn't work. The ContentProviders and other things aren't
removed and point to the hidden system app's applicationInfo instead of
the updated app.

Bug: 6685263
Change-Id: I487cf518e0e3c60fae736e9b974617023a7dee8d
ackageManagerService.java
ettings.java
4f8ecd80296508a1dc69d3f3a23fd91e962c2784 19-Jun-2012 Jeff Brown <jeffbrown@google.com> Move power manager to a new package.

Change-Id: I5f5a6435e64354b7d6535e8e9a63934ba7a3f448
hutdownThread.java
04919812d6ceed55b4b3695cca5b911b0b95e012 19-Jun-2012 Dianne Hackborn <hackbod@google.com> am 56b3a321: am 1991850d: Merge "Implement issue #6680894: Provide a way to configure app defaults..." into jb-dev

* commit '56b3a321e7c6f03d1bc0c5c0915d56bc46b7a33e':
Implement issue #6680894: Provide a way to configure app defaults...
56b3a321e7c6f03d1bc0c5c0915d56bc46b7a33e 19-Jun-2012 Dianne Hackborn <hackbod@google.com> am 1991850d: Merge "Implement issue #6680894: Provide a way to configure app defaults..." into jb-dev

* commit '1991850de7bbcc534c2cb457f33055c533542136':
Implement issue #6680894: Provide a way to configure app defaults...
fc8b7fe02630f64a1d6c8ecb06f4c250e7478f1d 19-Jun-2012 Dianne Hackborn <hackbod@google.com> Implement issue #6680894: Provide a way to configure app defaults...

...for a smoother OOB experience

Way provided.

Put your defaults in system/etc/preferred-apps/*.xml.

Figure out what to put there with "adb shell dumpsys package preferred-xml".

Bug: 6680894
Change-Id: Ia06bb0061876274a5f80bf06d1ba5ad155edc323
ackageManagerService.java
ettings.java
5bb87cd9b81506b0c25d3f9184e406762a9e9d9c 14-Jun-2012 Amith Yamasani <yamasani@google.com> SearchManagerService made multi-user aware

Cache Searchables per user and query package manager through the
private interface.

Change-Id: I1d24fdd27cce8c27be45287cbfcb4df1e2ce2cf1
ackageManagerService.java
554259fe02afba852c9999e827b3c086e92637bd 13-Jun-2012 Jeff Sharkey <jsharkey@android.com> am 9eabf916: am f6f7f1d2: Low disk space string change, surface state.

* commit '9eabf916dc5d53bc6c765d39cca0847993e73dcf':
Low disk space string change, surface state.
9eabf916dc5d53bc6c765d39cca0847993e73dcf 13-Jun-2012 Jeff Sharkey <jsharkey@android.com> am f6f7f1d2: Low disk space string change, surface state.

* commit 'f6f7f1d2dc6e8fad5d6ff9a56af9929488873b4f':
Low disk space string change, surface state.
b8151ecd6ef4faa5c16d0a4c3abb45ec84d1f97a 19-Apr-2012 Amith Yamasani <yamasani@google.com> Add an icon to the user information.

Store the icon in the user folder under /data/system,
similar to how the wallpaper is stored.

Change-Id: Id8ccb55b9e2ba7b4c557505a7f69f04eca1518cf
ackageManagerService.java
serManager.java
f6f7f1d2dc6e8fad5d6ff9a56af9929488873b4f 13-Jun-2012 Jeff Sharkey <jsharkey@android.com> Low disk space string change, surface state.

Surface current low disk state through IPackageManager for use in
Settings app.

Bug: 6576409
Change-Id: I9ae9ce99a2faa3015a237036c03567d1ae11628f
ackageManagerService.java
ca3148edf156f326f598687d1e02362119ac2bec 11-Jun-2012 Jean-Baptiste Queru <jbq@google.com> am 6e85ad7d: resolved conflicts for merge of 80d21f2f to jb-dev-plus-aosp

* commit '6e85ad7d267f47ba3a367651a70d147725dc26ae':
Avoid memory leak in the Shutdown confirmation dialog.
6e85ad7d267f47ba3a367651a70d147725dc26ae 11-Jun-2012 Jean-Baptiste Queru <jbq@google.com> resolved conflicts for merge of 80d21f2f to jb-dev-plus-aosp

Change-Id: I44b2ba647fb3b208119d10aed3fa6fc85dddfb0d
c7e2d4a57bca3c9b2fe005041314c9cbc6f843b2 08-Jun-2012 Dianne Hackborn <hackbod@google.com> am 33e39aef: am 0876ab0a: Merge "Fix issue #6295373: "Package com.google.android.apps.authenticator2 has..." into jb-dev

* commit '33e39aefdf9266dc4858f7a6171f46f43ffa3ec3':
Fix issue #6295373: "Package com.google.android.apps.authenticator2 has...
33e39aefdf9266dc4858f7a6171f46f43ffa3ec3 08-Jun-2012 Dianne Hackborn <hackbod@google.com> am 0876ab0a: Merge "Fix issue #6295373: "Package com.google.android.apps.authenticator2 has..." into jb-dev

* commit '0876ab0ac17518c479e9dffe025884870a586d9c':
Fix issue #6295373: "Package com.google.android.apps.authenticator2 has...
0876ab0ac17518c479e9dffe025884870a586d9c 08-Jun-2012 Dianne Hackborn <hackbod@google.com> Merge "Fix issue #6295373: "Package com.google.android.apps.authenticator2 has..." into jb-dev
f8dc339a527efbb1a3f41b7883f599476412e8a6 08-Jun-2012 Kenny Root <kroot@google.com> am 625b92fc: am f27f2f8f: Merge "Delete old forward-locked apps on upgrade" into jb-dev

* commit '625b92fcf7ce3237eb4894e3c41846a65022831d':
Delete old forward-locked apps on upgrade
625b92fcf7ce3237eb4894e3c41846a65022831d 08-Jun-2012 Kenny Root <kroot@google.com> am f27f2f8f: Merge "Delete old forward-locked apps on upgrade" into jb-dev

* commit 'f27f2f8f71f584471fe558845c24121e957b2cf2':
Delete old forward-locked apps on upgrade
f27f2f8f71f584471fe558845c24121e957b2cf2 08-Jun-2012 Kenny Root <kroot@google.com> Merge "Delete old forward-locked apps on upgrade" into jb-dev
987ad958210d8e5b25682a77fed01497d5762576 08-Jun-2012 Kenny Root <kroot@google.com> am 6dd3a0d6: am 87353093: Merge "Measure ASECs for forward-locked apps" into jb-dev

* commit '6dd3a0d61f707e7f5a9338113217eadac1849e48':
Measure ASECs for forward-locked apps
d0c5f515c05d05c9d24971695337daf9d6ce409c 08-Jun-2012 Dianne Hackborn <hackbod@google.com> Fix issue #6295373: "Package com.google.android.apps.authenticator2 has...

...mismatched uid: X on disk, Y in settings" errors on Froyo and Gingerbread

Deal more gracefully with the uid changing in three ways:

1. If the uid on disk has become root, then have installd change it to
the application's uid. This is to correct a potential case where
installd was interrupted while linking or unlinking the libs dir,
during which it temporarily changes the owner of the dir to root
so that a malicious app can not get in its way. So if the uid on
disk has become root, we assume we can safely just change it back
to the correct uid.

2. When scaning packages at boot, use the same "delete and rebuild data
directory" code for third party applications as we have for system
applications. This allows us to at least end up in a state where the
app will run, even if its data is lost.

3. But we really don't want to get in to case 2, so if an application
update is being installed and we find that the uid we now have for
the app is different than the one on disk, fail the update. This will
protect against for example a developer changing the sharedUserId of
their app and getting into this bad state.

Bug: 6295373
Change-Id: Ic802fdd818ac62449ff3c61d1fff1aa4d4942f39
nstaller.java
ackageManagerService.java
6dd3a0d61f707e7f5a9338113217eadac1849e48 08-Jun-2012 Kenny Root <kroot@google.com> am 87353093: Merge "Measure ASECs for forward-locked apps" into jb-dev

* commit '87353093ef98f13c45c418884734460a1b09c149':
Measure ASECs for forward-locked apps
87353093ef98f13c45c418884734460a1b09c149 08-Jun-2012 Kenny Root <kroot@google.com> Merge "Measure ASECs for forward-locked apps" into jb-dev
8a97c0905a2658c1e656c237124cb207d7ff148f 07-Jun-2012 Kenny Root <kroot@google.com> am 41668981: am 906272b9: Merge "Only call fixSdPermissions when appropriate" into jb-dev

* commit '41668981aeef6f56d7528d91efa0372b9f6224b2':
Only call fixSdPermissions when appropriate
41668981aeef6f56d7528d91efa0372b9f6224b2 07-Jun-2012 Kenny Root <kroot@google.com> am 906272b9: Merge "Only call fixSdPermissions when appropriate" into jb-dev

* commit '906272b977f5bfd977ca69d0826bb95ba3fcda63':
Only call fixSdPermissions when appropriate
2afded11aad8e3228a0f71585ecfb89c6c54b066 05-Jun-2012 Kenny Root <kroot@google.com> Measure ASECs for forward-locked apps

Forward-locked apps are mostly in ASEC containers now, so the
containers need to be measured as well.

Bug: 6606390
Change-Id: I69e9fe47aabe1e130568779a45fe8000b3ce9d4c
ackageManagerService.java
c7a8999a52351c0c49dbbb25d6d1ccb1a3c12883 06-Jun-2012 Kenny Root <kroot@google.com> Only call fixSdPermissions when appropriate

When media packages were loaded, they would lose their forward-locked
status since the flags covering it was not available when the
doPostInstall step was called.

Bug: 6611980
Change-Id: I807fcec6b61cedf7654808b704fba7de9c7c1922
ackageManagerService.java
84e35eadfba001bf3b99877ce28bfbd4a32a2e08 07-Jun-2012 Kenny Root <kroot@google.com> Delete old forward-locked apps on upgrade

The old style forward-locked apps were in a directory called
/data/app-private but the new style forward-locked apps are in ASEC
containers. This made the upgrade path confused and it wouldn't
correctly generate the InstallArgs to delete the old file.

Bug: 6619438
Change-Id: If4323fa8701d9fc653998f5db58670b4124b9e87
ackageManagerService.java
271bc78a2c17dfe78cfe2b48966291a7a5727e9b 02-Jun-2012 Jeff Brown <jeffbrown@google.com> am 8363fb73: am 40ba4dad: Merge "Add a thread to handle the radio shutdown." into jb-dev

* commit '8363fb73b568d506645602c6489ce955cddde10d':
Add a thread to handle the radio shutdown.
8363fb73b568d506645602c6489ce955cddde10d 02-Jun-2012 Jeff Brown <jeffbrown@google.com> am 40ba4dad: Merge "Add a thread to handle the radio shutdown." into jb-dev

* commit '40ba4dad4c56b8a7fbae4a93a6e5385993301ad4':
Add a thread to handle the radio shutdown.
b8203719bd037b39d12413f54d546e9ecc9e4872 01-Jun-2012 Jeff Brown <jeffbrown@google.com> Add a thread to handle the radio shutdown.

Protect the ShutdownThread from possible hangs in the telephony,
Bluetooth or NFC stack while turning off the radios.

Bug: 6585958
Change-Id: I6b448c854c5a0efb0eedd90437853ef2571e785b
hutdownThread.java
d4cb08df751e29338f4df1a76b303aa720f2bc00 24-May-2012 Amith Yamasani <yamasani@google.com> Merge "FileInputStream is not closed in "UserManager.java : readUserList()""
9a69c5fce7cb359a780dc02a9a829d75d47edded 23-May-2012 Rich Cannings <richc@google.com> Merge "Added code to log the current value of the "allow unknown sources" setting after successful package installation."
f8a98ed4e127c7775d121177afeb5fa2b5ae5153 15-May-2012 Matt Finifter <finifter@google.com> Added code to log the current value of the "allow unknown sources" setting after
successful package installation.

Change-Id: Id8de7ae94e3b3b68e033c24649ca67324d894ce8
ackageManagerService.java
a6cfe52eb83995b124efec5f73bcb179caadf888 22-May-2012 rich cannings <richc@google.com> Allow APKs to install when verifier times out.

When app verfication is enabled and the verifier times out, allow
PackageManagerService to continue with the installation.

Bug: 6531120
Change-Id: Ic6aef755af92588e8887c918b70fb195c683b24c
ackageManagerService.java
3004fe8d3d12808525b726f617e30d8ba4c2aef6 22-May-2012 rich cannings <richc@google.com> Merge "Set DEFAULT_VERIFICATION_TIMEOUT to 10 seconds"
88ab8c8de4d8d2e2c1f3237024ecdefd77300916 22-May-2012 Kenny Root <kroot@google.com> am 0eaeb69d: Merge "Do not bother to remove pending installs" into jb-dev

* commit '0eaeb69d1c4849da8ab1df70b84e90837193df67':
Do not bother to remove pending installs
14ae367caef3111c5c1f7a0fa42b22b1afe6073a 22-May-2012 Kenny Root <kroot@google.com> Do not bother to remove pending installs

Pending install list is cleared if there is an error connecting to DCS,
so don't try to remove each pending install in the loop.

Change-Id: I736114878ad92136c3b8a3ca27a1f058adaba395
ackageManagerService.java
aa8513e171e4714809235e08a75aff3814d9a02b 22-May-2012 rich cannings <richc@google.com> Set DEFAULT_VERIFICATION_TIMEOUT to 10 seconds

Bug: 6531174
Change-Id: I330a765e7f03cce3633046ef989f066c2aca5562
ackageManagerService.java
8101eb7a74d1a65aebd33c58742fc461dcb4518f 18-May-2012 Kenny Root <kroot@google.com> am ae9d040f: Merge "Wait for ASECs to be scanned before proceeding" into jb-dev

* commit 'ae9d040f715130389de3dbc3bf52e24e5f29425a':
Wait for ASECs to be scanned before proceeding
51a573c76737733638c475f52e441c814e6645cc 17-May-2012 Kenny Root <kroot@google.com> Wait for ASECs to be scanned before proceeding

Move MountService up the list, then pause waiting for MountService to
finish scanning ASECs before the services that require those packages to
be ready.

Additionally, don't automatically mark all ASEC apps as FLAG_EXTERNAL on
reboot. This prevents AppWidgets and other things from being used with
ASECs which are on internal storage.

Bug: 6445613
Change-Id: I3e0b3e244fec966814d7a5ea93de5d337aea79bd
ackageManagerService.java
e262d4bdbd1b76a5a41123bcde4f1ad04e3f91a6 17-May-2012 Kenny Root <kroot@google.com> am 11e123f7: Merge "Check system app before removal" into jb-dev

* commit '11e123f7684378578242f5824e14ddba2f68d9ca':
Check system app before removal
11e123f7684378578242f5824e14ddba2f68d9ca 17-May-2012 Kenny Root <kroot@google.com> Merge "Check system app before removal" into jb-dev
87b5d7b26e279be7c7a1b4333babcb2ee895ca01 16-May-2012 Kenny Root <kroot@google.com> Check system app before removal

Mae sure we check to see whether an app is really deleted or just
skipped.

Bug: 6494869
Change-Id: I918f16e4ccda87f7f6f67855c7a7aef435c64e20
ackageManagerService.java
017c5f78d9e56d07e77d707565f376a7ac6b56a4 15-May-2012 Kenny Root <kroot@google.com> am 4ebaf0f1: Merge "Change thread priority for disk measurement to bg" into jb-dev

* commit '4ebaf0f1d4be34f475bb663784b40cf79b9d2184':
Change thread priority for disk measurement to bg
a69b7eb1fc6ab6f47411493a17463fe7a43b8b3f 14-May-2012 Kenny Root <kroot@google.com> Change thread priority for disk measurement to bg

Change the thread priority for all disk measurement and statfs calls to
background priority.

Also move the measurement fully into the measurement task since it makes
more sense.

Bug: 6332097
Change-Id: Iafc2151313ad9b14117daf67e933dccd32f68d54
ackageManagerService.java
a48816375f68a8b4a945efcb68e405308a50adc9 12-May-2012 Jeff Brown <jeffbrown@google.com> am 58770232: Merge "Move power HAL interactions to PowerManagerService." into jb-dev

* commit '58770232216cd735afdfd3dd53151070e06de5ce':
Move power HAL interactions to PowerManagerService.
58770232216cd735afdfd3dd53151070e06de5ce 12-May-2012 Jeff Brown <jeffbrown@google.com> Merge "Move power HAL interactions to PowerManagerService." into jb-dev
7304c343821309dd15f769b18f1de2fa43751573 12-May-2012 Jeff Brown <jeffbrown@google.com> Move power HAL interactions to PowerManagerService.

This refactoring sets the stage for a follow-on change that
will make use additional functions of the power HAL.

Moved functionality from android.os.Power into PowerManagerService.
None of these functions make sense being called outside of the
system server. Moving them to the PowerManagerService makes it
easier to ensure that the power HAL is initialized exactly once.

Similarly, moved ShutdownThread out of the policy package and into
the services package where it can tie into the PowerManagerService
as needed.

Bug: 6435382
Change-Id: I958241bb124fb4410d96f5d5eb00ed68d60b29e5
hutdownThread.java
f2fe4cb11b2b93acf1a983e856efe26b6bb79683 12-May-2012 Jeff Sharkey <jsharkey@android.com> am cd586258: Merge "Enforce READ_EXTERNAL through Settings.Secure." into jb-dev

* commit 'cd5862586ab555b53ffd0a62488843838d1aa94d':
Enforce READ_EXTERNAL through Settings.Secure.
f53857716a0db805c51c0cae93550d90e32e4749 11-May-2012 Jeff Sharkey <jsharkey@android.com> Enforce READ_EXTERNAL through Settings.Secure.

Always defers to user-defined setting, when present.

Bug: 6389556
Change-Id: I079d2a41b772facfdac74eefc4c8072fc9284f97
ackageManagerService.java
ettings.java
c4cbbb131ff419100a4901a856edf3469efef74b 10-May-2012 Kenny Root <kroot@google.com> am 8c3906d9: Merge "Use the right flag types when creating InstallArgs" into jb-dev

* commit '8c3906d920f55ec0d42252ef8f460e6066b1d4b6':
Use the right flag types when creating InstallArgs
88670d816ba48076bf89afe57b78b09d1e4288bb 10-May-2012 Kenny Root <kroot@google.com> Use the right flag types when creating InstallArgs

Need to use PackageManager.INSTALL_{EXTERNAL,FORWARD_LOCKED} for
createInstallArgs instead of ApplicationInfo.FLAG_etc for the install
args to be created correctly. If certain flags conflict, there will be a
failure to delete the package.

Change-Id: Ibd8705943371596b2f2d6c24bd071b737ca74ef4
ackageManagerService.java
bb1028de0f6a60866f0610a9a4c36c410a043c7b 09-May-2012 Kenny Root <kroot@google.com> am c29b49fa: Merge "Handle addition of system apps during OTA" into jb-dev

* commit 'c29b49faf3e193a8c72c25c6e362ac26ea0e2464':
Handle addition of system apps during OTA
71244f0b6c6908ce13fef6fedf7e0e69cd983527 09-May-2012 Kenny Root <kroot@google.com> am 8a2fe268: Merge "Prune hidden system apps when removed via OTA" into jb-dev

* commit '8a2fe26873f73a7a422cadf9e5ccfd7c68bbd9ca':
Prune hidden system apps when removed via OTA
83ea86091bf94571912694c7caf8be1c21727f91 09-May-2012 Kenny Root <kroot@google.com> am 29bb27ef: Merge "Add encryption parameters to package installation" into jb-dev

* commit '29bb27ef90564a294d506c2ffd546ba21788aeac':
Add encryption parameters to package installation
208d341bbd61bf818ec0acddb6cad4e616239d50 08-May-2012 Kenny Root <kroot@google.com> Handle addition of system apps during OTA

If there were apps already installed that were added in a later system
OTA, bad things would happen.

If the previously installed application is an older version, simply
delete the installed application. If the system app is older than the
previously installed one, mark it as a disabled system app and use the
previoulsy installed application.

Additionally, the application will now have the correct granted
permissions.

Bug: 6251602
Change-Id: Iea444b6acac460fca1e08d4e2cbf68a258214ca6
ackageManagerService.java
c52d6fd04316483f4a88f3a087b93bb197cd97f4 08-May-2012 Kenny Root <kroot@google.com> Prune hidden system apps when removed via OTA

System applications which had an update applied to them at some point
were in a semi-broken state when removed via an OTA. The
"updated-package" setting would stay around forever and permissions
wouldn't be revoked.

Change-Id: I908e813b5de59c0f777d9b051253b28255a1c694
ackageManagerService.java
ettings.java
ceb1b0bfaea56251796b08c07b963de7403d84eb 24-Apr-2012 Anonymous Coward <nobody@android.com> Add encryption parameters to package installation

Change-Id: Ic9f8ab9f8110f08bb3c00725cfce5b8ee7b766f3
ackageManagerService.java
f154df1a31e73c8b4342f54ea7d5508295d30936 03-May-2012 Kenny Root <kroot@google.com> am 03f22533: Merge "Fix some problems with ASECs" into jb-dev

* commit '03f22533a7ed398351f7c98af4a91d91354a2095':
Fix some problems with ASECs
bf023589b3d9994f43823c7cb0450d278b084f9b 03-May-2012 Kenny Root <kroot@google.com> Fix some problems with ASECs

On devices that had external storage, permissions weren't set correctly
on non-forward-locked applications. Also, moving forward locked
applications didn't work since DefaultContainerService wasn't able to
read it.

Fixed some faulty unit tests as well.

Bug: 6427212
Change-Id: I5c1f0bf5278549069c78939f0708c4c43a7d4006
ackageManagerService.java
bf65cc3bb6f17e4e11418b1ae17f7b7a0f29fd57 01-May-2012 Jean-Baptiste Queru <jbq@google.com> am 8f2e753b: am cbc71bd7: Merge "Fix off-by-one error when filtering application UIDs"

* commit '8f2e753be2343b41f7233e9e0eb79077c8f9a732':
Fix off-by-one error when filtering application UIDs
cbc71bd73fb5eb674e0213b8713d330501d4cec7 01-May-2012 Jean-Baptiste Queru <jbq@google.com> Merge "Fix off-by-one error when filtering application UIDs"
6dceb88f1c7c42c6ab43834af2c993d599895d82 12-Apr-2012 Kenny Root <kroot@google.com> Allow forward locked apps to be in ASECs

We couldn't put forward-locked apps in ASEC containers before since we
didn't have any permissioned filesystems. This adds the ability for
forward-locked applications to be in ASEC containers.

This means that forward locked applications will be able to be on the SD
card now.

This change also removes the old type of forward-locking that placed
parts of apps in /data/app-private. Now all forward-locked applications
will be in ASEC containers.

Change-Id: I17ae0b0d65a4a965ef33c0ac2c47e990e55707ad
ackageManagerService.java
5cc510bf895266f9f9b23de28cf29d10385ef793 25-Apr-2012 Seohyeon.Song <coming0410@gmail.com> FileInputStream is not closed in "UserManager.java : readUserList()"

Change-Id: I50f54c70c8b6bc808fa59ce589b0480780cc811b
serManager.java
5c6d80c9348d61cf59cc0c5bf4bc19450feba947 24-Apr-2012 Dianne Hackborn <hackbod@android.com> am 27e1680b: am 5a3370e5: am 50b53700: Merge "Fix for too many binder calls in packagemanager"

* commit '27e1680b5cd3694029ddac4128050b17f59f235e':
Fix for too many binder calls in packagemanager
9392ad25a866ea2dff68683795294103157f8ed7 21-Apr-2012 Amith Yamasani <yamasani@google.com> Merge "Fix dumpsys package."
7ea3e7df1f1ff5dde8ffb42fa179beef679f40ea 21-Apr-2012 Amith Yamasani <yamasani@google.com> Fix dumpsys package.

Was bailing out due to insufficient permissions to query users.

Bug: 6374050
Change-Id: Ic4a4ab32e2efb4d1fc1f1607fd304f99d5382743
ettings.java
2782a478d0214cf71a32d4537fc9fb191d1072fb 15-Apr-2012 Kenny Root <kroot@google.com> Move forward lock utilities to PackageHelper

The forward lock utilities will need to be called from
DefaultContainerService for ASEC packages in the future. Move them to
PackageHelper to aid in the transition.

Also move the public resource copying to the FileInstallArgs step which
makes a little bit more sense.

Change-Id: I3a62ac817719db3ee1c89c106a551dcbe9c44744
ackageManagerService.java
9771a3144c8121877b5dc2fad439cfe378bc7a72 21-Feb-2012 Henrik Engström <henrik.engstrom@sonyericsson.com> Fix for too many binder calls in packagemanager

The packagemanager uses a ParceledListSlice to send back its lists
of installed packages and apps. The list slice has a method append
which, in addition to adding the item to the list, also returns true
if the list has passed a size limit (about 1/4 of the total possible
IPC parcel size) to let the caller know that he should send the
slice. However, when used by the pm, it has an extra ! that makes it
send whenever it ISN'T over this limit instead (and conversely, not
send if it is under). This causes a lot more calls than needed since
it sends tiny one item slices instead of larger ones. This patch
removes the extra ! making it behave correctly.

Change-Id: I8db46d380a25406b55f3214aee1505e81949acc5
ackageManagerService.java
313a93ddf9dce7bdda21f29c10a464dd303871da 15-Apr-2012 Kenny Root <kroot@google.com> Merge "Close streams for forward-locked apps"
3f99afc0d5c25321b870f95415d7f31e2b3ec934 14-Apr-2012 Kenny Root <kroot@google.com> Close streams for forward-locked apps

Forward-locked apps aren't very prevalent, but it needed to be
restructured to make sure both streams and ZipFile objects are closed.

Change-Id: I41f863224fecd24069e525e9ce3738de8237bd5e
ackageManagerService.java
011d778c9ff3c03184ce12dbd363d0f2f844de57 14-Apr-2012 Kenny Root <kroot@google.com> Merge "Add warning log for mismatched signatures"
8c11f1d6abbf322f4e0aca2a27a076ec1af1e071 14-Apr-2012 Kenny Root <kroot@google.com> Add warning log for mismatched signatures

It's difficult to see in bugreports when this situation arises. Add a
small log so we can easily determine installation failure reason.

Change-Id: Ie59c205cf731cad7b3d04ceb995e58a093c62455
ackageManagerService.java
854b2b1670bda1eeb87a14b7ac3d222024f0aad6 14-Apr-2012 Jeff Sharkey <jsharkey@android.com> Surface list of apps with given network policy.

Bug: 6007276
Change-Id: I0f0e939ee6481496480c4afaa108c99eb158547c
ackageManagerService.java
5d32e772b3a19c1ac84e665f2885755427d590c8 13-Apr-2012 Jeff Sharkey <jsharkey@android.com> Enforce READ_EXTERNAL on non-user builds.

Enable default enforcement of READ_EXTERNAL_STORAGE on non-user
builds. Users can still explicitly enable enforcement in Settings.

Bug: 6131916
Change-Id: I7dc66b624ad252ed2a2ad3647f3ea85dda7f8e82
ackageManagerService.java
ettings.java
1c27576aff247ff1d7789e0a571958726f161593 12-Apr-2012 Jeff Sharkey <jsharkey@android.com> Include enforcement state in dumpsys.

Bug: 6323087
Change-Id: I6d779798538c114ea9816d3bdbbff5552c285df6
ettings.java
135936072b24b090fb63940aea41b408d855a4f3 23-Mar-2012 Amith Yamasani <yamasani@google.com> User management and switching

Broadcast intents that get sent out when users are added/removed/switched.

More work on generating user-specific information in package manager queries.
APIs to update user name and query a user by id.
Removed Package.mSetStopped and mSetEnabled, since they're not user specific.

User removal:
- Cleanup ActivityManager, PackageManager, WallpaperManager, AppWidgetService
and AccountManager.
- Shutdown processes belonging to the user.

Don't show vibrate option in long-press power if there's no vibrator.

Lock the screen when switching users, to force unlocking.

Change-Id: Ib23a721cb75285eef5fd6ba8c7272462764038fa
ackageManagerService.java
ackageSetting.java
ackageSettingBase.java
ettings.java
serManager.java
1358ebe46c47a8c5d80d3f9bc4768805ac80ca46 27-Mar-2012 Magnus Eriksson <eriksson.mag@gmail.com> Fix off-by-one error when filtering application UIDs

A filtering check in writeLPr() mistakenly includes the first application UID
(10000) with the result that the package with UID 10000 is missing from
packages.list. This patch fix the error.

Change-Id: I3651beb346290db8e09317391b95a77aed1946b6
Signed-off-by: Magnus Eriksson <eriksson.mag@gmail.com>
ettings.java
69f819b397e5e4b50b1931da6ef1caba0229640a 23-Mar-2012 Jeff Sharkey <jsharkey@android.com> Merge "Include GIDs for unenforced permissions."
b9a070189c2280a6356a8abb9483b517a41e14c3 23-Mar-2012 Jeff Sharkey <jsharkey@android.com> Include GIDs for unenforced permissions.

When READ_EXTERNAL_STORAGE isn't enforced, grant its GID to all
launched processes. When changing enforcement, kill all processes
below foreground adjustment, causing them to be relaunched with
update GIDs.

Bug: 6131916
Change-Id: I6d83efc937919f13a1a7d9caac902e572869406a
ackageManagerService.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
ackageManagerService.java
ackageSetting.java
ackageSettingBase.java
ettings.java
serManager.java
edc84ee8392afa0102f098168329db5bb43a6d4b 20-Mar-2012 Jeff Sharkey <jsharkey@android.com> Selective enforcement of READ_EXTERNAL_STORAGE.

Store enforcement state of specific permissions, allowing them to be
selectively enforced. Currently supports READ_EXTERNAL_STORAGE, which
by default isn't enforced, but enforcement can be enabled at runtime.

Bug: 6131916
Change-Id: I4bcc215a2eb5e6507d6257b577311cbd13c77acf
ackageManagerService.java
ettings.java
6569625beef705ec489662b80d372c4423f9c7f7 06-Mar-2012 Dianne Hackborn <hackbod@google.com> Fix issues #6103378 and #5959515.

Change-Id: I762d86dd7119c9ac02f4b8803c4a250c6b7637c7
6103378: APR: IOOBE at android.content.pm.PackageParser.generatePackageInfo(
PackageParser.java:355)
5959515: PackageManager doesn't validate className in setComponentEnabledSetting
ackageManagerService.java
0450510f5932c07e66c1208f007711fe514d2555 29-Feb-2012 Dianne Hackborn <hackbod@google.com> Fix issue where pm would clear preferred apps when updating an app.

The code for this was fairly conservative since the components of the
apps could change, leaving junk in the preferred app list. Now we
don't pro-actively clear them, but try to catch missing components
later.

Change-Id: I793063449dcc577fd3d56bb56495b308f0c95ea8
ackageManagerService.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
ackageManagerService.java
ettings.java
20963df86f3f27f4c54c1ddf177c57d58f0a9128 05-Jan-2012 Joe Onorato <joeo@google.com> Show the flags in package manager debugging.
ettings.java
21fbd1f7da53dc044737803dccddf8099f1fc1e9 10-Feb-2012 Dianne Hackborn <hackbod@google.com> Some cruft removal.

Change-Id: If4a94bfd4a033748eb13e8f3ff25e24382746778
ackageManagerService.java
ettings.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
nstaller.java
ackageManagerService.java
serManager.java
2f36229db823d152f3efd879e751e81a601a75b0 20-Jan-2012 Andy McFadden <fadden@android.com> Use Map.Entry, not HashMap.Entry

Map.Entry is the defined return value from entrySet(). HashMap.Entry
shouldn't be used directly.

Change-Id: Ia21598c6a73fe7eb22179ce114095f779c903084
ackageManagerService.java
ettings.java
70522addd031f6c667849f76c074e463a141c61d 06-Jan-2012 Nick Kralevich <nnk@google.com> Don't allow reading of packagelist files.

Ensure that all requests to read the list of installed packages
go through the PackageManager directly. Don't allow non-system
program to directly read the raw package list files.

Change-Id: Id083e6b3de4dd9173abfdc741ebf3f60997a1052
ettings.java
bfd89b35bae3f679e1a219f22c07bde9eb63241b 16-Dec-2011 Dianne Hackborn <hackbod@google.com> Don't forget to close files.

Change-Id: Ibfe465e1d7a947bbe40da17e8e8a2713856f95b5
serManager.java
f5b8671c340f189c50b41c53622f979b6d5e0a57 06-Dec-2011 Dianne Hackborn <hackbod@google.com> Fix issue #5714517: App shortcuts can result in bad task intents

New API to let you build an Intent whose base configuration is correct,
but has an additional "selector" to pick out the specific app that you
would like launched.

Change-Id: Ide9db6dc60e2844b7696cfe09b28337fe7dd63db
ackageManagerService.java
ee9aef0b42ba2c074199e0eca1367cb42be69616 16-Nov-2011 Dianne Hackborn <hackbod@google.com> Maybe fix issue #5627399: java.lang.RuntimeException - While sign in...

...through setup wizard after wipe data

Deal with finish() being called when there are no running activities
on the stack.

Also some improved debugging output.

Change-Id: Ia1d3f3f7e7b79c06ca95c738081322fc80282e0d
ackageManagerService.java
62539e9efa02c4037d3310a8b4f16f0085cd8c37 10-Nov-2011 Kenny Root <kroot@google.com> Close file on exception as well

Bug: 5458045
Change-Id: I4c79b9c273ff69dda292e5cc7b2b60f8db2edbd9
ettings.java
58f42a59bda3bc912d0d2f81dc65a9d31d140eaa 10-Oct-2011 Dianne Hackborn <hackbod@google.com> Fix issue #5405788: Device continuously opening and closing...

...the "Complete action using" dialog

When an application goes idle, it sends back to the activity manager
the configuration it last used, to make sure the two don't get out
of sync. Fix a bunch of edge cases here in dealing with that, and
be sure to also send the current configuration when launching an
activity so the client is always up-to-date when launching.

Also a small fix to not show the upgrading dialog during first boot.

Change-Id: I14ed366a87cd689d1c78787369e052422290ac6f
ackageManagerService.java
ettings.java
a503a0f5d407fd10528e26b6eaed0e4e1d3badc1 03-Oct-2011 Kenny Root <kroot@google.com> Add explicit mimetype for verifier calls

Change-Id: I29ffb216680aa24fd9ca3fb4d190038f6d724cb9
ackageManagerService.java
05ca4c90644921df9193d92b2abdc81ef77e4a62 15-Sep-2011 Kenny Root <kroot@google.com> Allow non-required package verifiers

* Verifiers can be specified in the AndroidManifest.xml

* Those verifiers can respond to the new Intent action

* PackageManager API for those verifiers: verifyPendingInstall

Change-Id: I4892bce2e6984871e6e93c60a1ca0dae145f5df5
ackageManagerService.java
ackageVerificationResponse.java
ackageVerificationState.java
67c5b1251178532726964c2e0f4229d079ff0a3e 23-Sep-2011 Dianne Hackborn <hackbod@google.com> Merge "Fix issue #5321282: Force Stop Button in Battery Screen Not disabled correctly"
fec5e75c96e8a35a7a6e55c40d435f72a80c97df 23-Sep-2011 Kenny Root <kroot@google.com> Less verbose message when dexopt non-APK

The message when something is not an APK that is submitted for dexopt is
not extremely helpful. Make it more precise and remove the useless
traceback.

Change-Id: Ibb34b2b2c10ee28ea98662c3f6fd070529cf8c4f
ackageManagerService.java
80a7ac10634dabb39644004f3edfc648a2c036f7 23-Sep-2011 Dianne Hackborn <hackbod@google.com> Fix issue #5321282: Force Stop Button in Battery Screen Not disabled correctly

If the app had activities still finishing, when we checked whether it was
now stopped we would get told no. Also some other improvements:

- Schedule an idle as part of the force stop, to get any finishing
activities out of the stack soon rather than waiting for some activity
to idle.
- Don't filter out stopped system apps. This is dangerous because
system apps may have no way for the user to explicitly launch them,
so they could get put into a stopped state for which there is no way
to get them out. Also if the user really wants a system app to not
run, the new disabling mechanism is more appropriate.

Change-Id: I34003f21dac29e2ca0f66a23b88c710de41bab99
ackageManagerService.java
3a9b5fbb97e65019abec97f172b4cbf2100d1225 20-Sep-2011 Kenny Root <kroot@google.com> Unhide new PackageManager APIs for API 14

Change-Id: I83110285ccee39a4cd872a1c2af8357f541833d4
ackageManagerService.java
0aaa0d931716e9f57a1d84d795fab2df75092756 13-Sep-2011 Kenny Root <kroot@google.com> Add verifier device identity

This adds a special device identifier that is usable only for device
validation. The user will be presented with this number encoded in
easily-transcribable Base32 in the Developer options of Settings.

Change-Id: I4843f55ee90d689a51d0269b22454ca04c1be7ec
ackageManagerService.java
ettings.java
d2509fd83597595914ef0627685e917380863eb6 12-Sep-2011 Dianne Hackborn <hackbod@google.com> Add boot mode where only "core apps" are started.

A core app is one that has coreApp="true" in its manifest tag.

The system can successfully boot (though a little painfully) with
only framework-res.apk, SettingsProvider.apk, SystemUI.apk,
DefaultContainerService.apk, and Launcher2.apk set as core apps.

Currently this boot mode is always turned off.

Change-Id: Ieaa4a8031c2c391a12996aa8d8b1d65fc2b09d6b
ackageManagerService.java
ba24e4d8bbeb60e96d74f05e21691dad61ce497e 01-Sep-2011 Dianne Hackborn <hackbod@google.com> Fix issue #5229575: Youtube link shared through messaging is not...

...opening after selecting option "Youtube" as a luncher.

Also:

* Tweak window animations so that the wallpaper exist animations do not
stop too early (causing the wallpaper to suddenly disappear).
* Make sure no input is being processed while booting, to avoid
accidentally doing things especially in the upgrade dialog.
* Some other small cleanup.

Change-Id: I40a6b53731991d4e31ac4502e3d85f0e47507481
ackageManagerService.java
ae05e8655d173d61169d9659ef1e9818d2cfc36b 25-Aug-2011 Brett Chabot <brettchabot@android.com> Disable package verification by default.

Change-Id: I0e02cd177dbb99fc97e964ac87251a900d915b95
ackageManagerService.java
661cd52e0e1d527132eb1cae604d3e64da7ec0cb 22-Aug-2011 Dianne Hackborn <hackbod@google.com> Add progress dialog for booting after an upgrade.

This introduces a new facility for code during the boot process
to display messages to the user through a progress dialog. This
is only for use when performing longer-than-usual post-upgrade
operations such as running dexopt on applications or upgrading
databases.

Change-Id: I0e78439ccec3850fb67872c22f235bf12a158dae
ackageManagerService.java
d99b293d5f11b784d7406f5398bc654920b42482 18-Aug-2011 Dianne Hackborn <hackbod@google.com> Fix issue #5180553: permission RECEIVE_BOOT_COMPLETED is not checked

Change-Id: I069673f2fbdf05e409c5e9ed99ccd1e15b4fe3ed
ackageManagerService.java
46d2545db48e6b8565ef7beedf6486ef5d7f4507 16-Aug-2011 Kenny Root <kroot@google.com> Merge "Infrastructure to support package verifier"
bcc2d40a11432736e94c1dd3c64abd1aac476c20 16-Aug-2011 Kenny Root <kroot@google.com> Merge "Throw exception on odd length Signatures"
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
ackageManagerService.java
e342551e56e422a4409caaa51d225e750eb7c7b0 11-Aug-2011 Kenny Root <kroot@google.com> Merge "Better errors from copyResource"
f9abb405903cab1fcd379388a96925524840c607 11-Aug-2011 Dianne Hackborn <hackbod@google.com> New broadcast telling when an app is fully removed.

Change-Id: Ia516d826f302a01881fa92d9ffdc0adfbf669a4b
ackageManagerService.java
f5121a9b802c6ddd3661ed5cae602380dbe67090 11-Aug-2011 Kenny Root <kroot@google.com> Better errors from copyResource

Copy resource would fail without a good error code when the file
couldn't be found during copy.

Also destroy the target container ID during move operations since it
might exist. If the copy failed due to it existing, it would get
destroyed anyway. This way the user has a chance to have a good outcome
the first time.

Bug: 3375299
Bug: 5113898
Change-Id: I00559833f0801bc50e7cc031b462495e37a6b4ab
ackageManagerService.java
461ff1f03c803a9a0a01f6a834101f811ea85c61 09-Aug-2011 Kenny Root <kroot@google.com> Add security checks for new API

Bug: 5137679
Change-Id: Ic0c1e0cf2960a7062ba318b60ee2c92506f6aab6
ackageManagerService.java
7d608423b721e0153f37bfd5eba78fcd2489562d 08-Aug-2011 Dianne Hackborn <hackbod@google.com> Move OOM kernel settings to activity manager.

The activity manager now take care of plugging the correct settings
into the OOM killer in the kernel. This is a lot cleaner because
it is really central to how the activity manager works, and nobody
else cares about them.

Taking advantage of this, the activity manager computes what it
thinks are appropriate OOM levels based on the RAM and display
size of the device.

Also a small optization to the package manager to keep a binding
to the package install helper for a bit after done using it, to
avoid thrashing on it.

And some new APIs that are now needed by Settings.

Change-Id: I2b2d379194445d8305bde331c19bde91c8f24751
ackageManagerService.java
1137341885d8dc451dddc2e01319fb0fab00bbc3 29-Jul-2011 Kenny Root <kroot@google.com> Throw exception on odd length Signatures

The old version of this code would silently truncate odd-length
Signatures. However, this masks some bugs. Add a throw of
IllegalArgumentException so users can easily see where they're getting
bad input for Signatures.

Also, go through the existing code and catch this exception or
pre-check the input strings so system_server doesn't crash later.

Bug: 5092338
Change-Id: I8c672c5eaeb738a92c4581ce0df09baf719980ef
ackageSignatures.java
1ebd74acf9977daa42133507e970dab88e08f0ef 04-Aug-2011 Kenny Root <kroot@google.com> Better error codes for missing files

Make sure that files that don't exist aren't returning bogus 'out of
space' error codes.

Add some Javadoc so I can remember what each thing does in an IDE.

Add copyright header to NativeLibraryHelper

Bug: 3375299
Change-Id: Iac46019160921daca65b21d38897e5165063316e
ackageManagerService.java
5832ead89a6cfab83d4ed07e7ca20bc52eea923c 03-Aug-2011 Kenny Root <kroot@google.com> Parent's canonical path; not parent of canonical

When moving from SD card to internal, the PackageManager should check if
the native library directory parent's canonical path matches the
canonical data directory.

However, it was checking the canonical native library directory's
parent matches the data directory which makes tests concerning moving
from SD card to internal storage fail.

Change-Id: I16420efbb6f52fd6877a8f62ad060f8a1b8b0033
ackageManagerService.java
4f35092af55d569975e6931ee6e8c0343f749d1e 28-Jul-2011 Kenny Root <kroot@google.com> Merge "Move extract native libraries to JNI code"
66269ea6f68f2f25888ce1080c94ac782742fafc 12-Jul-2011 Kenny Root <kroot@google.com> Move extract native libraries to JNI code

The built-in ZipFile class was quite a long time to find an unpack
libraries. Move everything to using the libutils ZipFileRO class that
goes quite a bit faster. Initial measurements are 6 times faster than
the Java code.

Also, read files off the disk and compare their CRC against the APK's
CRC to see if we need to write the new file to disk. This also cuts down
the bootup time by up to a second per APK that has native files.

Change-Id: Ic464a7969a17368fb6a6b81d026888c4136c7603
ackageManagerService.java
9c8625ead8acd695909d14e3cbda659622848873 25-Jul-2011 Kenny Root <kroot@google.com> Change user 0 directory back for compatibility

The PackageManagerTests aren't designed for multiple users yet, so they
fail. Since multiple users aren't supported yet, just change the default
data directory for user 0 back to how it was previously. This fixes the
existing tests and doesn't get anyone's hopes up since they won't see
/data/user/0/pacakge when we don't support multiple users yet.

Bug: 4380006
Change-Id: Iedcc3115b000759c0013ba6878e13cd2358897da
ackageManagerService.java
b8f400020b201cc40f5e16277af0dbafec38b8a3 20-Jul-2011 Dianne Hackborn <hackbod@google.com> Fix issue #4999574: Disabled system app not listed in Settings after reboot

Change-Id: I1a0a0724f72adcfa6aedffdcd3112bd4faa909d3
ettings.java
5d6d90fac8fa646521081c7b67aabaadb5db946b 11-Jul-2011 Jeff Brown <jeffbrown@google.com> Remove more simulator support code.
Bug: 5010576

Change-Id: Ie6c8665306bf4e822693b76f25c3a0f05c12d42d
ackageManagerService.java
10e89712863f5b91a2982dc1783fbdfe39c1485d 09-Jul-2011 Jeff Brown <jeffbrown@google.com> Eliminate single-process mode.
Bug: 5010576

Change-Id: Id450dc83efed4897d1e4ff451530fed14457aace
ackageManagerService.java
f4b92ec567477fcdea24fdd18116b045dfcf9852 01-Jul-2011 Brian Carlstrom <bdc@google.com> Revert "Add keychain user with special keystore access permissions"

This reverts commit 8c2a1a90a81f04573bfa578eab32f5fd4a30eafb.

Conflicts:

cmds/keystore/keystore.c

Bug:4970237
Change-Id: I626023d695becfada47e5f319b18e0889b766563
ackageManagerService.java
292f8bc9d1b790ab975a87a842c7fabc908b97e0 28-Jun-2011 Dianne Hackborn <hackbod@google.com> Plumb information from the framework about asec container size.

Change-Id: Ie0ec3cb6d463aefa341a8cbea80be790451ba5e3
nstaller.java
ackageManagerService.java
0ac3031c159a0904e73eb4439cdc724d8df4a6e6 17-Jun-2011 Dianne Hackborn <hackbod@google.com> Implement remaining infrastructure for user disabling apps.

Change-Id: If8135eb0e27ec36f8f159eb7b6397add7acd0299
ackageManagerService.java
ettings.java
a51b6fd6f8a53f040894ef07cf23695581595e6b 20-May-2011 Kenny Root <kroot@google.com> resolved conflicts for merge of b2d0ee16 to master

Change-Id: I4483a6d0ccecfea4a1e66bb6eba80d13e8b9a3a4
3d0724dc220a2e027b9e38f61c39c84c28a505d5 13-May-2011 Dianne Hackborn <hackbod@google.com> resolved conflicts for merge of 0e59729b to master

Change-Id: I2d3a6bddf66b1df0c101c45ea2fec1cf65caf01b
0f3f29b1b92f7f5788f3270c8cc6bf1f6d8bfc6e 09-May-2011 Amith Yamasani <yamasani@google.com> Use canonical paths to compare library directory with data directory.

Fix for unexpected recursive symbolic link when unpacking
native libraries contained in apks. This happened due to the data
directory of primary user becoming a symlink to the legacy data directory.

Bug: 4396427

Change-Id: Iaed2f21ada4eda16ce729ead259a52203300dfa8
ackageManagerService.java
25641ca1ac5b09727f86fe01389877332a00455d 19-Apr-2011 Amith Yamasani <yamasani@google.com> Merge "Plumbing in PackageManager and installd for multi-user support."
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
nstaller.java
ackageManagerService.java
serDetails.java
serManager.java
2e3ede527d8a972795a49ffc7eef4ead391107ec 13-Apr-2011 Kenny Root <kroot@google.com> Merge "Updated system packages retain shared user"
beb182a4945b9b762fac77edd1183897bcac5b32 11-Apr-2011 Amith Yamasani <yamasani@google.com> Merge "Package manager changes to store and update user information."
4b2e934928a2eb65927bd39197198c28c49efb94 31-Mar-2011 Amith Yamasani <yamasani@google.com> Package manager changes to store and update user information.

Some API stubs for managing users and storing their details.
List of users is stored in an xml file.
Each user's properties are stored in a separate xml file.

Some unit tests for modifying the XML files.

Change-Id: If2ce2420723111bd426f6762def3c2afc19a0ae5
serDetails.java
1d1b4893762c8daad2b31dc79cad2dbcc1b251d2 08-Apr-2011 Kenny Root <kroot@google.com> Updated system packages retain shared user

If a system package was updated that used permissions provided by a
package signed with a different signature, it wouldn't grant
those permissions to the updated system app.

This is because the sharedUser field was not set in the disabled system
package. Therefore it was checking the disabled system package's
individual user permission grants which were empty.

This change populates the sharedUser field for disabled system packages
after reading all the existing shared users from the saved settings
database.

Bug: 4245273
Change-Id: I57c58c4083bd59f45095c184d6ca5a302f79ff6e
ettings.java
8c2a1a90a81f04573bfa578eab32f5fd4a30eafb 08-Apr-2011 Brian Carlstrom <bdc@google.com> Add keychain user with special keystore access permissions

Change-Id: I02fe5171add62c5cd9f57b01bc137f3bc1cb3a69
ackageManagerService.java
63ebffcb84f4e2fc55d576aed07c4559f66d97a8 06-Apr-2011 Joe Onorato <joeo@google.com> turn off log spew

Change-Id: I7e5564e02460ff41829c9fd26d80032ea3104498
nstaller.java
447106fc839520d18dcb367ba17fc8ec345bb9e8 23-Mar-2011 Kenny Root <kroot@google.com> Split dump and annotate users of mPackages lock

Split the dump() command between PMS and Settings.

Try to annotate all users of the mPackages lock in preparation for
switch to reader/writer lock.

Also mark some locals final as I was reading through the usage of the
synchronization on mPackages.

Change-Id: Ia7add63e835e67156edf886f98acebe50cc41f70
ackageManagerService.java
ackageSettingBase.java
ettings.java
cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96a 22-Mar-2011 Kenny Root <kroot@google.com> Split PackageManagerService into subclasses

Split PackageManagerService from one monolithic class with several inner
classes to several classes. This will help determining how its data
structures can be reshuffled to provide better separation of concerns.

Change-Id: Ic7571daebdcf13ce08e08f34204c5bbf4140139b
asePermission.java
rantedPermissions.java
nstaller.java
ackageManagerService.java
ackageSetting.java
ackageSettingBase.java
ackageSignatures.java
endingPackage.java
referredActivity.java
ettings.java
haredUserSetting.java