History log of /frameworks/base/core/java/android/content/pm/PackageParser.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
5962b12bedc4a1d0354816c1cd6b06ba04f6d807 05-Oct-2012 Craig Mautner <cmautner@google.com> Adds showWhenLocked attribute to Activities.

The new attribute allows an Activity such as the alarm to appear
on all users screens.

Bug: 7213805 fixed.
Change-Id: If7866b13d88c04af07debc69e0e875d0adc6050a
/frameworks/base/core/java/android/content/pm/PackageParser.java
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
/frameworks/base/core/java/android/content/pm/PackageParser.java
2ca2c8787130506d350d997c18bbc274faf88e37 17-Sep-2012 Dianne Hackborn <hackbod@google.com> More adjustments to permissions.

- New "cost money" flag can be put on a permission to
have this emphasized in the UI.
- Some further re-organization of permissions to better
match UX spec.

Change-Id: I450ac739eff6b90e7c7fc39589d68db82b61f897
/frameworks/base/core/java/android/content/pm/PackageParser.java
7454d3b73cfd0d7ad58b0285102b09aad1e0150f 13-Sep-2012 Dianne Hackborn <hackbod@google.com> New permissions UI, again.

Change-Id: I0bbecd88ff1f212b30d1ef32d5bcaa49cdf1e9ce
/frameworks/base/core/java/android/content/pm/PackageParser.java
7767eac3232ba2fb9828766813cdb481d6a97584 24-Aug-2012 Dianne Hackborn <hackbod@google.com> Keep track of whether an app is installed for each user.

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

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

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

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

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

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

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

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

Change-Id: I00e66452b149defc08c5e0183fa673f532465ed5
/frameworks/base/core/java/android/content/pm/PackageParser.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
/frameworks/base/core/java/android/content/pm/PackageParser.java
a30a4806aca7f36fb416f485b332060b03a16c0b 09-Aug-2012 Nick Kralevich <nnk@google.com> PackageParser: remove temporary code.

This code isn't needed and wasn't doing what I thought
it was doing.

Bug: 3306452
Change-Id: Ifeab672e379fd331a6f0ef1504eebb29aa6b4466
/frameworks/base/core/java/android/content/pm/PackageParser.java
9d16c219f1ca0836a832e25a61fcaf9c1d0dd67b 08-Aug-2012 Nick Kralevich <nnk@google.com> Merge "Content Providers: change default for android:exported" into jb-mr1-dev
7d19e0242faac8017033dabb872cdf1542fa184c 08-Aug-2012 Dianne Hackborn <hackbod@google.com> More mult-user API work.

- You can now use android:singleUser with receivers and providers.
- New API to send ordered broadcasts as a user.
- New Process.myUserHandle() API.

For now I am trying out "user handle" as the name for the numbers
representing users.

Change-Id: I754c713ab172494bb4251bc7a37a17324a2e235e
/frameworks/base/core/java/android/content/pm/PackageParser.java
f097b16cfddce2dbb097b929458fe9b0a402963e 28-Jul-2012 Nick Kralevich <nnk@google.com> Content Providers: change default for android:exported

Change the default value of android:exported to true
for applications which target a newer API version.
This will help stop inadvertent content provider
exposure to untrusted apps.

Bug: 3306452

Change-Id: I8cb34e823aef9551319951ce92217345c54cee63
/frameworks/base/core/java/android/content/pm/PackageParser.java
b4163a6e12ee7100c758c6d3d062ade1f2843fce 03-Aug-2012 Dianne Hackborn <hackbod@google.com> Add APIs for interacting across users.

- Expose the existing Context.sendBroadcast() as
Context.sendBroadcastAsUser().
- Add new android:singleUser attribute for services.
- Add new INTERACT_ACROSS_USERS_FULL permission for full
system-level access to cross-user interface (allows
sendBroadcastAsUser() to send to any receiver).
- Add new INTERACT_ACROSS_USERS_FULL permission for
more restricted cross-user interaction: this is required
for android:singleUser, and allows you to use
sendBroadcastAsUser() but only to send to your own
receivers.

Change-Id: I0de88f6718e9505f4de72e3f45d29c0f503b76e9
/frameworks/base/core/java/android/content/pm/PackageParser.java
2bd8d0403be62df679f0f94ab4d84c9ae9a2e918 11-Jun-2012 Dianne Hackborn <hackbod@google.com> Fix issue #6641368: can't launch gallery

This is a revert of 1db36528b12395b9ed9bf8a1005a6d4ace737627,
but with comments added so I don't make this mistake again. :)

Change-Id: I053216279e3721f08f32f561bb989736ef619f82
/frameworks/base/core/java/android/content/pm/PackageParser.java
1db36528b12395b9ed9bf8a1005a6d4ace737627 08-Jun-2012 Dianne Hackborn <hackbod@google.com> Whoops, this version number wasn't updated when JB was introduced!

Change-Id: I9c9cd658cc1cba99b84059c8873c22b21b9f3c19
/frameworks/base/core/java/android/content/pm/PackageParser.java
4034bc431df8903072bca513a81ecdcf858c718b 01-Jun-2012 Dianne Hackborn <hackbod@google.com> Survey says: NIET!

Bug: 6593206
Change-Id: I5390609a5615d6aff1793a9bc361012a0cea330b
/frameworks/base/core/java/android/content/pm/PackageParser.java
7cb9be26c1f16de738178e89e4cf9ec8a35e7d41 31-May-2012 Kenny Root <kroot@google.com> Move package-wide flags out of parseApplication

Being on SD card and being forward-locked are package-wide flags that
shouldn't depend on an APK having an <application> stanza.

Bug: 6563724
Change-Id: If5f2159cd8e3fa136f959b656d82b05ea6bdfae5
/frameworks/base/core/java/android/content/pm/PackageParser.java
99222d212f9ff5081d4ce6eef09dbe8eff85b83a 07-May-2012 Dianne Hackborn <hackbod@google.com> Finish up issue #6249094: Display permissions based on relevance to private data

Added bitmaps for permission group icons. We had to pick either
icons for a dark or light background, and it had to be light for
settings, so the installer theme has gone back to dark.

Tweaked the permission groups to match the icons.

Redid the group priorities to make them correct (they were written
with higher priorities being less important).

Fixed bug where priority was not being used for system apps.

Change-Id: Ia3d3f0c1614a11b4cfd11682ce9e6c9f87d75c06
/frameworks/base/core/java/android/content/pm/PackageParser.java
fd5015be41080970c9a992a8ef17a1deefb57478 01-May-2012 Dianne Hackborn <hackbod@google.com> Add new APIs for permission group flags and priorities.

Change-Id: I2d476c6aa9dbd05407ec49be45986f42d2acf9e7
/frameworks/base/core/java/android/content/pm/PackageParser.java
a4a54e2a5f383e766bfecaec776e0b00002badd1 17-Apr-2012 Amith Yamasani <yamasani@google.com> Make sure persistent processes are not replicated for secondary users.

An intent is launched in a singleton process if the process is persistent
and the resolved activity/service/etc is not requested to run in a different
process.

Change-Id: I1463e73a76bc8bde4185f9cf4395edb47515841d
/frameworks/base/core/java/android/content/pm/PackageParser.java
79af6063d536eb7edbc73be0fa2b8eb734758db7 10-Apr-2012 Dianne Hackborn <hackbod@google.com> Merge "Hide the optional permission stuff, not making it in to JB."
e824120016248bcfe3962883fe9f3b0481dd1c3d 06-Apr-2012 Dianne Hackborn <hackbod@google.com> Hide the optional permission stuff, not making it in to JB.

Also lock down the rest of the development tools permissions to
be development permissions that must be granted through an
explicit shell command.

Change-Id: I1ba216fffe1aab4bb9f83fcef108efc504f892f4
/frameworks/base/core/java/android/content/pm/PackageParser.java
5e4705a82786103982b2c9980b0dcd0bb54208d3 06-Apr-2012 Dianne Hackborn <hackbod@google.com> Fix dumb bug.

Change-Id: I5e0dfc0f03677888c22d938013299a8ec4597c69
/frameworks/base/core/java/android/content/pm/PackageParser.java
31b0e0e86ad061cd8005e80817bcad017e2d56dd 06-Apr-2012 Dianne Hackborn <hackbod@google.com> Implement call log permission compatibility.

If a pre-JellyBean application requests read/write contacts, it
will implicitly be given read/write call log.

Change-Id: I029db4b09fda737bb8fba4e1611355ebdbbfd34f
/frameworks/base/core/java/android/content/pm/PackageParser.java
dd8fab2629131b09367df747afd9a61e42dd1992 23-Mar-2012 Adam Powell <adamp@google.com> TaskStackBuilder and Activity navigation features for framework

Promote navigation helpers from the support library to the core
platform.

The support library's meta-data element has been replaced with a
first-class parentActivityName attribute. This attribute is valid
on both activity and activity-alias elements. An activity-alias
will inherit the target activity's parentActivityName if one is
not explicitly specified.

Automatic Up navigation for Activities

Add the public method onNavigateUp() to Activity. The default
implementation will use the metadata supplied in the manifest about an
activity's hierarchical parent (parentActivityName) to do the right
thing.

If any activities in the parent chain require special Intent
arguments, the Activity subclass should override onNavigateUp() to
properly implement Up navigation for the app, supplying such arguments
as needed.

If automatic Up navigation within the same task can't find an activity
matching the supplied intent in the current task stack, it will act as
an in-app "home" and return to the root activity (presumably the app's
front page) in that task. (From this state, pressing "back" with
default behavior will return to the launcher.)

Change-Id: If163e27e59587f7af36975a09c986cb117ec3bc6
/frameworks/base/core/java/android/content/pm/PackageParser.java
59dfce8bdaf011337530a0dbec7f7280871f9bc9 03-Apr-2012 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #6140391 Make RTL awareness as an opt-in into the AndroidManifest

- introduce "supportsRtl" as a new application attribute in the AndroidManifest
- "supportsRtl" default value is FALSE (no RTL support)
- adapt the View layoutDirection and textDirection logic to take care of "supportsRtl" value

Change-Id: I5e4f9f576e14f35dedc6b0c29a7142c397f598e0
/frameworks/base/core/java/android/content/pm/PackageParser.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
/frameworks/base/core/java/android/content/pm/PackageParser.java
483f3b06ea84440a082e21b68ec2c2e54046f5a6 14-Mar-2012 Amith Yamasani <yamasani@google.com> Package restrictions per user

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

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

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

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

Added some tests for pm.Settings and PackageManager.

Change-Id: Ia83b529e1df88dbcb3bd55ebfc952a6e9b20e861
/frameworks/base/core/java/android/content/pm/PackageParser.java
7924512aa12c6af37d90e8ccfcdf04eb78a294a3 12-Mar-2012 Dianne Hackborn <hackbod@google.com> Add new READ_EXTERNAL_STORAGE permission.

Also adds some initial compatibility code for dealing with it.

Change-Id: I104bff11798349e4aaa6da9b7be787b257daa1bb
/frameworks/base/core/java/android/content/pm/PackageParser.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
/frameworks/base/core/java/android/content/pm/PackageParser.java
e639da7baa23121e35aa06d6e182558e0e755696 22-Feb-2012 Dianne Hackborn <hackbod@google.com> New development permissions.

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

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

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

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

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

Change-Id: I6571785c6bb5f6b291862b7a9be584885f88f3a5
/frameworks/base/core/java/android/content/pm/PackageParser.java
37ce3a8af6faab675319d0803b288ab1dddc76be 06-Feb-2012 Amith Yamasani <yamasani@google.com> Multi-user - wallpaper service

- Allow each user to have their own wallpaper (live or static).
- Migrate old wallpaper on upgrade.
- Update SystemBackupAgent to backup/restore from primary user's
new wallpaper directory.

Reduce dependency on Binder.getOrigCallingUser() by passing the
userId for bindService.

Change-Id: I19c8c3296d3d2efa7f28f951d4b84407489e2166
/frameworks/base/core/java/android/content/pm/PackageParser.java
a0c283eac33dd2da72235751bbfa4f2d9898d5ea 09-Feb-2012 Dianne Hackborn <hackbod@google.com> Add new feature for running services in "isolated" sandbox processes.

This reserves a range of uids (for each user) in which these processes
run. These uids are not associated with an application, so they
effectively run with no permissions. When a Service requests to
run in such a process through android:isolatedProcess="true", each
time it is brought up a new isolated process is started with its
own unique uid.

What we have so far gives us the basic infrastructure; more work
remains to further lock down what these uids have access to.

Change-Id: Ibfd27c75619cba61f528f46ede9113f98dc5f45b
/frameworks/base/core/java/android/content/pm/PackageParser.java
742a67127366c376fdf188ff99ba30b27d3bf90c 04-May-2011 Amith Yamasani <yamasani@google.com> Multi-user - 1st major checkin

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

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

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

Change-Id: I15810e8cfbe50a04bd3323a7ef5a8ff4230870ed
/frameworks/base/core/java/android/content/pm/PackageParser.java
0836c7cb98dd3ff1ef0379dcb97be8b315fed7eb 21-Oct-2011 Dianne Hackborn <hackbod@google.com> Fix issue #5228934: IME shows up on boot, or when digits screen is tapped

Activity aliases weren't propagating the softInputMode from the original
activity.

Change-Id: I47534e6c9a0f94bb6eb3fd2186ba9ffc8d583d08
/frameworks/base/core/java/android/content/pm/PackageParser.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
/frameworks/base/core/java/android/content/pm/PackageParser.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
/frameworks/base/core/java/android/content/pm/PackageParser.java
bcc954d772e8cd5ef640060cbc0be50e7e4778f2 09-Aug-2011 Kenny Root <kroot@google.com> Manifest digest stored during package scanning

This allows things that scanned an APK to pass a hash of the manifest to
others that would then be able to compare it.

Change-Id: I465f5edf3acab2a952c3d321c8df2247ffe012ea
/frameworks/base/core/java/android/content/pm/PackageParser.java
d2d2925ff7ae9456c1c6c9147b1b9fd9a99ea607 08-Aug-2011 Kenny Root <kroot@google.com> Eliminate warnings from PackageParser

Change-Id: I1e07029261df59907115fd1f54da3e9b3fbfa240
/frameworks/base/core/java/android/content/pm/PackageParser.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
/frameworks/base/core/java/android/content/pm/PackageParser.java
269248d112e35fe8e9f0d5d11c96dcb2ac1118b0 02-Aug-2011 Adam Powell <adamp@google.com> Fix bug 5098288 - Rethink the suite of new themes

Cut down the list of new themes for ICS. Holo apps now have
Theme.Holo, Theme.Holo.Light, and Theme.Holo.Light.DarkActionBar to
choose from.

Add manifest attribute android:uiOptions to express
splitActionBarWhenNarrow. Other options may move into this later as
well. (DialogWhenLarge?) This attribute is valid on both activity and
application tags; application settings will serve as the default for
activities that do not explicitly set uiOptions.

uiOptions are not currently reflected in the startup window for new
activities.

Change-Id: Iffdc2ce4cc69f79c9bd4e541b7923286e6936c1e
/frameworks/base/core/java/android/content/pm/PackageParser.java
79ec80db70d788f35aa13346e4684ecbd401bd84 24-Jun-2011 Christopher Tate <ctate@google.com> Make full backup API available to apps

New methods for full backup/restore have been added to BackupAgent
(still hidden): onFullBackup() and onRestoreFile(). The former is the
entry point for a full app backup to adb/socket/etc: the app then writes
all of its files, entire, to the output. During restore, the latter
new callback is invoked, once for each file being restored.

The full backup/restore interface does not use the previously-defined
BackupDataInput / BackupDataOutput classes, because those classes
provide an API designed for incremental key/value data structuring.
Instead, a new FullBackupDataOutput class has been introduced, through
which we restrict apps' abilities to write data during a full backup
operation to *only* writing entire on-disk files via a new BackupAgent
method called fullBackupFile().

"FullBackupAgent" exists now solely as a concrete shell class that
can be instantiated in the case of apps that do not have their own
BackupAgent implementations.

Along with the API change, responsibility for backing up the .apk
file and OBB container has been moved into the framework rather than
have the application side of the transaction do it.

Change-Id: I12849b06b1a6e4c44d080587c1e9828a52b70dae
/frameworks/base/core/java/android/content/pm/PackageParser.java
2d6833bab353e31ceb4230f3f3563fca2e0d9f6f 25-Jun-2011 Dianne Hackborn <hackbod@google.com> Turn on HW accel by default for apps that target ICS.

Change-Id: I010e11e03b2dfd0d1db8c47f74c25a28586fd79c
/frameworks/base/core/java/android/content/pm/PackageParser.java
0ac3031c159a0904e73eb4439cdc724d8df4a6e6 17-Jun-2011 Dianne Hackborn <hackbod@google.com> Implement remaining infrastructure for user disabling apps.

Change-Id: If8135eb0e27ec36f8f159eb7b6397add7acd0299
/frameworks/base/core/java/android/content/pm/PackageParser.java
b0628bfd5aac480a0d412ac96b8af1d97ac01c30 03-Jun-2011 Christopher Tate <ctate@google.com> Implement shared-storage full backup/restore

Every available shared-storage volume is backed up, tagged with its
ordinal in the set of mounted shared volumes. This is an approximation
of "internal + the external card". This lets us restore things to the
same volume [or "equivalent" volume, in the case of a cross-model
restore] as they originated on.

Also fixed a bug in the handling of files/dirs with spaces in
their names.

Change-Id: I380019da8d0bb5b3699bd7c11eeff621a88e78c3
/frameworks/base/core/java/android/content/pm/PackageParser.java
ead40eaedb7993ca8c5153c349dd65f276d6862e 04-Jun-2011 Dianne Hackborn <hackbod@google.com> resolved conflicts for merge of cc20b4e3 to master

Change-Id: I990368443a16a0577f7a1f5623b348cca3f81ac4
2515db74fe2e75018f618591fabe23fda8362bf3 03-Jun-2011 Dianne Hackborn <hackbod@google.com> am 3a80c504: am 8b9a2b6c: am e6676351: Work around OpenFeint bug.

* commit '3a80c50485809fe72d6de83dacad494c5e84ed24':
Work around OpenFeint bug.
546d64f56d0f930070289e26021f97638601e388 02-Jun-2011 Dianne Hackborn <hackbod@google.com> resolved conflicts for merge of 5c2e4d20 to master

Change-Id: Iadbee872468ceafb54c5877046c91f6052f3c953
2762ff3dc864018352362f6d103de471f9529ba6 02-Jun-2011 Dianne Hackborn <hackbod@google.com> Add new supports-screen API to set maximum allowed size.

Change-Id: I0a7cd4ba73a4c18558e6daee28963d5fd12c7978
/frameworks/base/core/java/android/content/pm/PackageParser.java
e66763516a9c27c192adaba417616371a1c3c9bf 02-Jun-2011 Dianne Hackborn <hackbod@google.com> Work around OpenFeint bug.

Change-Id: Ib8320e50bb63fc56dc0118d5c8e9e328dbd3fcb1
/frameworks/base/core/java/android/content/pm/PackageParser.java
df6e980e3f63eb0f6f9eb437fa925d5009cd9c44 26-May-2011 Dianne Hackborn <hackbod@google.com> Add new supports-screens attributes for declaring the compatible screens.

Change-Id: I40d57e4354e48accc1027c9f90916ea73eb5190d
android:requiresSmallestWidthDp provides the smallest supported width.
android:compatibleWidthLimitDp provides the largest compatible width.
/frameworks/base/core/java/android/content/pm/PackageParser.java
161e67ff3ba26408eea09221734ad2e29a1eed11 20-May-2011 Dianne Hackborn <hackbod@google.com> resolved conflicts for merge of 06a8ceac to master

Change-Id: Id51574c825affddfac14ad7214c5496d6a3d6e69
69cb87576ba163b61bb0e6477a3b7c57a9b11d40 20-May-2011 Dianne Hackborn <hackbod@google.com> Add new "-swNNNdp" resource qualifier.

Change-Id: I0101e88ca9d8d44138bdcaf571f24b0352f4f6ce
/frameworks/base/core/java/android/content/pm/PackageParser.java
0305e354e12c9ff25bfd252cb282346632171b73 13-May-2011 Dianne Hackborn <hackbod@google.com> This API change is now part of MR2.

Change-Id: I242e66fb9c46d48244942298361f408062fb05c4
/frameworks/base/core/java/android/content/pm/PackageParser.java
ebff8f92f13513ce37bd74759eb1db63f2220590 13-May-2011 Dianne Hackborn <hackbod@google.com> DO NOT MERGE. Integrate add new screen width/height in "dp" configs.

You can now specify resource configuration variants "wNNNdp"
and "hNNNdp". These are the minimum screen width/height in "dp"
units. This allows you to do things like have your app adjust
its layout based only on the about of horizontal space available.

This introduces a new configuration change flag for screen size.
Note that this configuration change happens each time the orientation
changes. Applications often say they handle the orientation change
to avoid being restarted at a screen rotation, and this will now
cause them to be restarted. To address this, we assume the app can
handle this new config change if its target SDK version is < ICS.

Change-Id: I4acb73d82677b74092c1da9e4046a4951921f9f4
/frameworks/base/core/java/android/content/pm/PackageParser.java
4a627c71ff53a4fca1f961f4b1dcc0461df18a06 01-Apr-2011 Christopher Tate <ctate@google.com> Full local backup infrastructure

This is the basic infrastructure for pulling a full(*) backup of the
device's data over an adb(**) connection to the local device. The
basic process consists of these interacting pieces:

1. The framework's BackupManagerService, which coordinates the
collection of app data and routing to the destination.

2. A new framework-provided BackupAgent implementation called
FullBackupAgent, which is instantiated in the target applications'
processes in turn, and knows how to emit a datastream that contains
all of the app's saved data files.

3. A new shell-level program called "bu" that is used to bridge from
adb to the framework's Backup Manager.

4. adb itself, which now knows how to use 'bu' to kick off a backup
operation and pull the resulting data stream to the desktop host.

5. A system-provided application that verifies with the user that
an attempted backup/restore operation is in fact expected and to
be allowed.

The full agent implementation is not used during normal operation of
the delta-based app-customized remote backup process. Instead it's
used during user-confirmed *full* backup of applications and all their
data to a local destination, e.g. via the adb connection.

The output format is 'tar'. This makes it very easy for the end
user to examine the resulting dataset, e.g. for purpose of extracting
files for debug purposes; as well as making it easy to contemplate
adding things like a direct gzip stage to the data pipeline during
backup/restore. It also makes it convenient to construct and maintain
synthetic backup datasets for testing purposes.

Within the tar format, certain artificial conventions are used.
All files are stored within top-level directories according to
their semantic origin:

apps/pkgname/a/ : Application .apk file itself
apps/pkgname/obb/: The application's associated .obb containers
apps/pkgname/f/ : The subtree rooted at the getFilesDir() location
apps/pkgname/db/ : The subtree rooted at the getDatabasePath() parent
apps/pkgname/sp/ : The subtree rooted at the getSharedPrefsFile() parent
apps/pkgname/r/ : Files stored relative to the root of the app's file tree
apps/pkgname/c/ : Reserved for the app's getCacheDir() tree; not stored.

For each package, the first entry in the tar stream is a file called
"_manifest", nominally rooted at apps/pkgname. This file contains some
metadata about the package whose data is stored in the archive.

The contents of shared storage can optionally be included in the tar
stream. It is placed in the synthetic location:

shared/...

uid/gid are ignored; app uids are assigned at install time, and the
app's data is handled from within its own execution environment, so
will automatically have the app's correct uid.

Forward-locked .apk files are never backed up. System-partition
.apk files are not backed up unless they have been overridden by a
post-factory upgrade, in which case the current .apk *is* backed up --
i.e. the .apk that matches the on-disk data. The manifest preceding
each application's portion of the tar stream provides version numbers
and signature blocks for version checking, as well as an indication
of whether the restore logic should expect to install the .apk before
extracting the data.

System packages can designate their own full backup agents. This is
to manage things like the settings provider which (a) cannot be shut
down on the fly in order to do a clean snapshot of their file trees,
and (b) manage data that is not only irrelevant but actively hostile
to non-identical devices -- CDMA telephony settings would seriously
mess up a GSM device if emplaced there blind, for example.

When a full backup or restore is initiated from adb, the system will
present a confirmation UI that the user must explicitly respond to
within a short [~ 30 seconds] timeout. This is to avoid the
possibility of malicious desktop-side software secretly grabbing a copy
of all the user's data for nefarious purposes.

(*) The backup is not strictly a full mirror. In particular, the
settings database is not cloned; it is handled the same way that
it is in cloud backup/restore. This is because some settings
are actively destructive if cloned onto a different (or
especially a different-model) device: telephony settings and
AndroidID are good examples of this.

(**) On the framework side it doesn't care that it's adb; it just
sends the tar stream to a file descriptor. This can easily be
retargeted around whatever transport we might decide to use
in the future.

KNOWN ISSUES:

* the security UI is desperately ugly; no proper designs have yet
been done for it
* restore is not yet implemented
* shared storage backup is not yet implemented
* symlinks aren't yet handled, though some infrastructure for
dealing with them has been put in place.

Change-Id: Ia8347611e23b398af36ea22c36dff0a276b1ce91
/frameworks/base/core/java/android/content/pm/PackageParser.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
/frameworks/base/core/java/android/content/pm/PackageParser.java
0c5001d776d56bae02a5cc2663286a125d99bc5e 13-Apr-2011 Dianne Hackborn <hackbod@google.com> Add APIs to remove tasks.

You can remove sub-tasks inside of a task, or an entire task.

When removing an entire task, you can have its process killed
as well.

When the process is killed, any running services will get an
onTaskRemoved() callback for them to do cleanup before their
process is killed (and the service possibly restarted).

Or they can set a new android:stopWithTask attribute to just
have the service automatically (cleanly) stopped at this point.

Change-Id: I1891bc2da006fa53b99c52f9040f1145650e6808
/frameworks/base/core/java/android/content/pm/PackageParser.java
43a17654cf4bfe7f1ec22bd8b7b32daccdf27c09 07-Apr-2011 Joe Onorato <joeo@google.com> Remove the deprecated things from Config.java. These haven't been working since before 1.0.

Change-Id: Ic2e8fa68797ea9d486f4117f3d82c98233cdab1e
/frameworks/base/core/java/android/content/pm/PackageParser.java
3fc982f41fda1f254bfbc35490d81cd82a0ed90a 31-Mar-2011 Dianne Hackborn <hackbod@google.com> Add new resource configurations for screen width/height in "dp".

You can now specify resource configuration variants "wNNNdp"
and "hNNNdp". These are the minimum screen width/height in "dp"
units. This allows you to do things like have your app adjust
its layout based only on the about of horizontal space available.

This introduces a new configuration change flag for screen size.
Note that this configuration change happens each time the orientation
changes. Applications often say they handle the orientation change
to avoid being restarted at a screen rotation, and this will now
cause them to be restarted. To address this, we assume the app can
handle this new config change if its target SDK version is < ICS.

Change-Id: I22f8afa136b4f274423978c570fa7c9855040496
/frameworks/base/core/java/android/content/pm/PackageParser.java
e7f972122db87dc54e41ed1a6e417534d43bca3a 24-Feb-2011 Dianne Hackborn <hackbod@google.com> Implement issue #3426299: Introduce application "stopped" state

The package manager now keeps track of whether an application is
stopped. There are new intent flags to control whether intent
filters in a stopped application will match the intent. This is
currently used in one place, sending broadcasts, so that stopped
apps can not be launched due to background processes.

The package manager during first init makes sure no applications
are in the stopped state. When new applications are installed,
that begin in the stopped state. When the activity manager is
launching a component of an application, it ensures the application
is taken out of the stopped state.

The "force stop" button in manage applications will now put an
application back in to the stopped state; it can't go back out
of the stopped state until one of its components is launched by
the activity manager.

There will probably be a few more places where we need to filter
stopped applications out of intent matches, but doing this for
broadcast is a very big first step.

This also introduces a new broadcast that is sent to an application
after it is replaced with a new .apk. But only if the app is not
in the stopped state. This makes it a lot easier for developers to
implement code to get their application back in proper running shape
after an upgrade.

Finally another new broadcast is added that is sent to a package's
installer at the first time it is launched. This allows the installer
to tell the package about it being installed only when it is first
actually used.

Change-Id: I589c53ff0e0ece868fe734ace4439c0d202dca2d
/frameworks/base/core/java/android/content/pm/PackageParser.java
4b7b7ccd6651f54239c8849d4d85a633c2bbdf6a 02-Feb-2011 John Reck <jreck@google.com> Fix COMPONENT_ENABLED_STATE check (copy from HC)

This fixes a problem where ai.enabled would be set to false incorrectly,
causing widgets to not show up in launcher.

Change-Id: I25e11ab9033e1d8d3dcc581edcbe40acdddd1f85
/frameworks/base/core/java/android/content/pm/PackageParser.java
3b403694be42836b50adb061448d6a27697b12ac 17-Jan-2011 Dianne Hackborn <hackbod@google.com> am 64e30643: am c237bb27: Merge "Add manifest API to request a large heap." into honeycomb

* commit '64e306430570fcfb35a1b14e1b333ad114b23829':
Add manifest API to request a large heap.
3b81bc18bb661c02ad8074c39dab16644c1e65d0 15-Jan-2011 Dianne Hackborn <hackbod@google.com> Add manifest API to request a large heap.

You can now do android:largeHeap="true" on an application.

Doesn't yet do anything, waiting for Dalvik API.

Also tweak package parsing so that the SDK API level is set in the
configuration, allowing manifest resource value selection based on
that.

Change-Id: I6e035f9702a97b055416743b88f83a22ba4a9584
/frameworks/base/core/java/android/content/pm/PackageParser.java
8c3dc00a7d34776f1abff6dabd4a3d9f377952a0 13-Jan-2011 Jason parks <jparks@google.com> am 4a534fa8: am a3cdaa53: Revert "Remove the APIs for the old encryption scheme."

* commit '4a534fa899e0101e26e5b670383aa357c10483b8':
Revert "Remove the APIs for the old encryption scheme."
a3cdaa5337fa573c4c61770195d6232c2e587090 13-Jan-2011 Jason parks <jparks@google.com> Revert "Remove the APIs for the old encryption scheme."

This reverts commit 1125d780a8b61703b8eb28c5c77dac5f3f0022dd.
/frameworks/base/core/java/android/content/pm/PackageParser.java
02f9acbdb4df8758d0474a1a968f12bd18ed6f92 13-Jan-2011 Jason parks <jparks@google.com> am da6f7dbf: am ca6777b2: Merge "Remove the APIs for the old encryption scheme." into honeycomb

* commit 'da6f7dbf9f8bf90c84147dbc57b885b3ece03e81':
Remove the APIs for the old encryption scheme.
ca6777b23bbe9283380efb2ba7e6d0a79d8669db 13-Jan-2011 Jason parks <jparks@google.com> Merge "Remove the APIs for the old encryption scheme." into honeycomb
1125d780a8b61703b8eb28c5c77dac5f3f0022dd 12-Jan-2011 Jason parks <jparks@google.com> Remove the APIs for the old encryption scheme.

Change-Id: I55116a5b29b10dfd50015805ec019b485257f68b
/frameworks/base/core/java/android/content/pm/PackageParser.java
090093592e24a067c08c4049344fcf37601960c0 12-Jan-2011 Kenny Root <kroot@google.com> am c669559d: am b5a4b5d3: Merge "Allow updated system apps to retain priority" into honeycomb

* commit 'c669559dc3c1d348145d902c623166a9d874b5a8':
Allow updated system apps to retain priority
502e9a47c64d819a7aa45251bcf7cb5dd77a310b 10-Jan-2011 Kenny Root <kroot@google.com> Allow updated system apps to retain priority

Previously any updated system apps would not be able to have a greater
than 0 priority on an activity intent filter. Moving the priority check
later in the package scanning allows it to apply to updated system
packages as well.

Cherry-pick from gingerbread branch

Bug: 2572398
Change-Id: I95d8b6360bf7a3f39cd7a1ff09e1ee57e11583d8
/frameworks/base/core/java/android/content/pm/PackageParser.java
1f22d2a31abc5fa8a2d97f1f506bb2c25c87a96b 08-Jan-2011 Dianne Hackborn <hackbod@google.com> DO NOT MERGE Fix issue #3333958: Package Manager can sometimes mistakenly think...

...an app is disabled!

Ouch.

Change-Id: I45dc2beef4e413fd447d905632901fadd924cb6e
/frameworks/base/core/java/android/content/pm/PackageParser.java
b35cd54b88292bd6cf0387406ad9071f5475c6a7 05-Jan-2011 Dianne Hackborn <hackbod@google.com> No longer needed.

Change-Id: Ia2e8264147bb02e29599227d0588e40b1e626358
/frameworks/base/core/java/android/content/pm/PackageParser.java
ccc714131359eb1022d8c6702b7d82ab9e93f27c 13-Dec-2010 Dianne Hackborn <hackbod@google.com> resolved conflicts for merge of 78e9f4cb to master

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

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

Output of package info looks like this:

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

Change-Id: I9e38f254eef146339113ad270f5c6e8b60fb7a1d
/frameworks/base/core/java/android/content/pm/PackageParser.java
a0b46c9c441f017a2008ca8ee2c864987465996b 22-Oct-2010 Dianne Hackborn <hackbod@google.com> Implement issue #3116702: New manifest tags for supported screen sizes

Merged from GB.

Change-Id: I94730b54bcacd083f77708e84c35f4932a7b9d2e
/frameworks/base/core/java/android/content/pm/PackageParser.java
a6d9c7c04c4b17d85ac70f4494777555655f3be1 22-Oct-2010 Dianne Hackborn <hackbod@google.com> Implement issue #3116702: New manifest tags for supported screen sizes DO NOT MERGE

Change-Id: Iabf64d86c89d387ffbfbc39f950d308a73fe17eb
/frameworks/base/core/java/android/content/pm/PackageParser.java
615e2fa1755ea3b6b8196f783842cd394ad3beb2 10-Oct-2010 Dianne Hackborn <hackbod@google.com> am b77455ee: am 78d68836: Implement tracking of package install times.

Merge commit 'b77455ee290691b036ac79236a93e57ff294ef0c'

* commit 'b77455ee290691b036ac79236a93e57ff294ef0c':
Implement tracking of package install times.
78d688369a2240009d3bbe4126996a973b2e2fe2 07-Oct-2010 Dianne Hackborn <hackbod@google.com> Implement tracking of package install times.

Provides information about the time at which the package was
first installed and the time it was last updated.

Change-Id: Icb43f77b5b669a1ce685e8913046b8be386b6175
/frameworks/base/core/java/android/content/pm/PackageParser.java
72b526a13c9b548a1e1a0239f670e36744cb0fdc 07-Oct-2010 Dianne Hackborn <hackbod@google.com> am cb9f1e4d: am 6f7e10ca: Merge "Make it easier to figure out whether an app can go on sd card." into gingerbread

Merge commit 'cb9f1e4d30ab4f9203e30abe807cbe33d07db4a0'

* commit 'cb9f1e4d30ab4f9203e30abe807cbe33d07db4a0':
Make it easier to figure out whether an app can go on sd card.
54e570f78b45d6c47578a4a2513097b590b6d43f 05-Oct-2010 Dianne Hackborn <hackbod@google.com> Make it easier to figure out whether an app can go on sd card.

Change-Id: I9195a0881b2c435b138f39c2ab1505dc820caf10
/frameworks/base/core/java/android/content/pm/PackageParser.java
dc71b9e4d67327065a992924a021cad4bc100fa2 01-Oct-2010 Dianne Hackborn <hackbod@google.com> resolved conflicts for merge of 6a3eddb4 to master

Change-Id: I1ca1d100274d4a733ef2bf58b0d5d7217b4f858e
cef65eeb0315c3118bf8860d6f723cb49ff6bc52 01-Oct-2010 Dianne Hackborn <hackbod@google.com> Rub in a little 'ol log-b-gone.

Mmmmmm... great fresh scent!

Change-Id: I050e70b31b5d4a9c6731f15a4b51a3620a33a78d
/frameworks/base/core/java/android/content/pm/PackageParser.java
cc8f44bc819a76ac8d0127c57a303bd839240a62 28-Sep-2010 Kenny Root <kroot@google.com> am e7dd4e38: am 04a426f5: Merge "Use buffered I/O during certificate parsing" into gingerbread

Merge commit 'e7dd4e38c47f2f7760d1ce4f86d6321e17f98d1d'

* commit 'e7dd4e38c47f2f7760d1ce4f86d6321e17f98d1d':
Use buffered I/O during certificate parsing
d63f7dbf5d30320e8fd4dd8056d245f7b1e818ba 27-Sep-2010 Kenny Root <kroot@google.com> Use buffered I/O during certificate parsing

The PackageParser was using a raw InputStream instead of wrapping it in
a BufferedInputStream which could degrade performance.

Change-Id: I15c86c3ead363ddbadf4ae27e011feda90fcc579
/frameworks/base/core/java/android/content/pm/PackageParser.java
234e42df5fac958ed9f15aae6005dd72e4bdf08a 25-Sep-2010 Dianne Hackborn <hackbod@google.com> DO NOT MERGE. Fix issue #3000764: API REVIEW: android.R.*

Not going out in GB.

Change-Id: I9d4f5938ec7d2a54c0f72b8eb5a177ee66f12146
/frameworks/base/core/java/android/content/pm/PackageParser.java
d02bdaab495641ab50e2123fdfd99a819cc40540 26-Aug-2010 Daniel Sandler <dsandler@android.com> Remove experimental immersive mode support. DO NOT MERGE

Bug: 2949215

Change-Id: I7d998ef571ef7e149bb96261430e92150b80b77d
/frameworks/base/core/java/android/content/pm/PackageParser.java
41bfa37cb2ca244432061bddb1c8bf802545ae6e 27-Aug-2010 Dianne Hackborn <hackbod@google.com> resolved conflicts for merge of 409b7120 to master

Change-Id: I1741e205b5ff5ae62a38ab3b096bcc3d96883538
02486b1327e3007c62d253dd89ba9db1852b87f8 26-Aug-2010 Dianne Hackborn <hackbod@google.com> Hide heavy-weight API.

And give it a better name, for when it is later un-hidden.

Change-Id: Iae0d3054d44f873b9f953bc41d175a47802a185e
/frameworks/base/core/java/android/content/pm/PackageParser.java
3e6d50cc484f2eee0cff63789cc7796718eb6b68 24-Aug-2010 Dianne Hackborn <hackbod@google.com> Make Theme.Holo the default theme for new apps.

Also change Holo to have an action bar, instead of a title bar.

Change-Id: I45c2f06938509ae02cde99d1c06c228f86e8e3e8
/frameworks/base/core/java/android/content/pm/PackageParser.java
ce845d73015acea0a337dd06721f5c649f565242 05-Aug-2010 Kenny Root <kroot@google.com> am c5183aca: am c68bcc32: Merge "Only allow one movePackage operation in-flight" into gingerbread

Merge commit 'c5183acae55e08f4bfcb58aa122a200863748a63'

* commit 'c5183acae55e08f4bfcb58aa122a200863748a63':
Only allow one movePackage operation in-flight
529b60a3b16ac3dff24f2403d760ab8ebc9670ff 04-Aug-2010 Romain Guy <romainguy@google.com> Add android:hardwareAccelerated to Activity.

Hardware acceleration can now be enabled/disabled locally on each activity
declared in the manifest. It can also be enabled/disabled directly on a
window through the WindowManager.LayoutParams.

Change-Id: I91dd0b26c4e7eb8cd7288e523ed6b7bda6d0990b
/frameworks/base/core/java/android/content/pm/PackageParser.java
deb112674e9940a46c87fa4e3bae5d8d1ee84ef3 02-Aug-2010 Kenny Root <kroot@google.com> Only allow one movePackage operation in-flight

When a movePackage operation is requested, don't allow multiple requests
to pile up for one package. Once a move is completed, an observer will
receive the message and be allowed to call movePackage again.

Change-Id: Ie3842b6d96446febc0037bf9b8f1ca250735edc2
/frameworks/base/core/java/android/content/pm/PackageParser.java
b0289f62af77a2811b4528fe284aad871e3c6b31 02-Aug-2010 Kenny Root <kroot@google.com> am 59d4a536: am 739cdab7: Merge "Do not deference before null check" into gingerbread

Merge commit '59d4a5369cd68d4b65809ded407611b62b013f9a'

* commit '59d4a5369cd68d4b65809ded407611b62b013f9a':
Do not deference before null check
930d3af75f9e9663222f4c4a1d75b326cf811e35 31-Jul-2010 Kenny Root <kroot@google.com> Do not deference before null check

The return of parsePackageLite wasn't checked until after it was
deferenced. Move the deference below the null check and remove redundant
set.

Bug: 2852726
Change-Id: I3eaaea5050948145eed44b64507dc846993d98eb
/frameworks/base/core/java/android/content/pm/PackageParser.java
4cca89c0425a93dd842d85a56205c017a418e1c1 26-Jul-2010 Dianne Hackborn <hackbod@google.com> am 3a2ff74f: am 46730fc7: Fix handling of application disabled state.

Merge commit '3a2ff74fa4c3f014555ec64fccc16e1b9f6d0111'

* commit '3a2ff74fa4c3f014555ec64fccc16e1b9f6d0111':
Fix handling of application disabled state.
46730fc78388607fd562044cbaaa26ffc9f65337 25-Jul-2010 Dianne Hackborn <hackbod@google.com> Fix handling of application disabled state.

Change-Id: I617b76e89eeb75437b384b92f1205bb00b15bb70
/frameworks/base/core/java/android/content/pm/PackageParser.java
6c55b8b143b4cc8335789bff58a2ac545bd58806 23-Jun-2010 Daniel Sandler <dsandler@android.com> am 71764c4c: am 613dde4a: Revised "immersive mode" API.

Merge commit '71764c4ce5b248a79542238b171a783e82e0fe37'

* commit '71764c4ce5b248a79542238b171a783e82e0fe37':
Revised "immersive mode" API.
613dde4aa651e11dac3db859723cc6faf8fc0a82 21-Jun-2010 Daniel Sandler <dsandler@android.com> Revised "immersive mode" API.

No longer a window bit, FLAG_IMMERSIVE is now set on
ActivityInfo.flags and in the Activity's manifest as
android:immersive="true" (ActivityInfo).

[An "immersive" activity is one that wishes to avoid being
paused by full-screen notifications (like an incoming call).
An activity that sets FLAG_IMMERSIVE/android:immersive is
sending a signal to the notification manager, status bar,
etc. that they should try to find some other way to get the
user's attention in high-priority situations.]

[Originally: change Ie290c2e.]

Change-Id: I967bb10b930b8f0772b10f81f2957a03fa3f1736
/frameworks/base/core/java/android/content/pm/PackageParser.java
d0b15cecc63b03ca4e42549ed3a54ae2c7e31866 04-Jun-2010 Dianne Hackborn <hackbod@google.com> resolved conflicts for merge of f3307ae8 to master

Change-Id: Ic59db363391f73343eba32894113914ceea5a963
860755faa6bdd3c2aeae49c05b87b5bc080ae60c 04-Jun-2010 Dianne Hackborn <hackbod@google.com> Add support for heavy-weight applications.

Only one can be running at a time, their process can not be killed,
and a notification is posted while it is running.

Change-Id: I843015723947e0c934ae63a1aeee139327c0bc01
/frameworks/base/core/java/android/content/pm/PackageParser.java
812ccbeb3ce55c50463fda1d161b2eeed8b19cd2 01-Jun-2010 Romain Guy <romainguy@google.com> Add new hardwareAccelerated manifest attribute to enable HW drawing.

Change-Id: I2bb0252f3699cb720e7f5b6868419c9904e4fb35
/frameworks/base/core/java/android/content/pm/PackageParser.java
14cee9f688c32d63d8521188e7422811629bb7c2 24-Apr-2010 Dianne Hackborn <hackbod@google.com> New xlarge screen size.

Not complete, only for experimentation at this point.

This includes a reworking of how screen size configurations are matched,
so that if you are on a larger screen we can select configurations for
smaller screens if there aren't any exactly matching the current screen.

The screen size at which we switch to xlarge has been arbitrarily
chosen; the compatibility behavior has not yet been defined.

Change-Id: I1a33b3818eeb51a68fb72397568c39ab040a07f5
/frameworks/base/core/java/android/content/pm/PackageParser.java
81cd2e90ccdda498234384c8207afe2213714e60 22-Apr-2010 Adam Powell <adamp@google.com> Logo attribute for manifest and PackageManager methods to fetch it

Change-Id: I2c5ac44a4e2af982a616b2012901d7395013b19f
/frameworks/base/core/java/android/content/pm/PackageParser.java
5a0797a91016e85bb50a7d5c0d7e031166429ddd 06-Apr-2010 Dianne Hackborn <hackbod@google.com> am c94dad83: am 6e52b5d7: 2568467 System crash when installing corrupt APK

Merge commit 'c94dad83be792928206363cb43524a68b6a62ffe' into kraken

* commit 'c94dad83be792928206363cb43524a68b6a62ffe':
2568467 System crash when installing corrupt APK
f0adaa1bd579a0749406f6f5c72d00a0a62eb0e6 06-Apr-2010 Dianne Hackborn <hackbod@google.com> am eab92d7b: am 01f6b75b: Merge "Fix issue #2564479: Favorite Recipes App Installation Fail" into froyo

Merge commit 'eab92d7bec5ff0d12ee68047bba4ade3afb718a7' into kraken

* commit 'eab92d7bec5ff0d12ee68047bba4ade3afb718a7':
Fix issue #2564479: Favorite Recipes App Installation Fail
6e52b5d76850ee60bbef2f3d8a2e47bd589e28e8 05-Apr-2010 Dianne Hackborn <hackbod@google.com> 2568467 System crash when installing corrupt APK

Also fix another crash I just saw in the package manager, when a
permission got left around from a previous install but as no
longer defined.

Change-Id: I33b87420f0c59e24b8b77fab8b0316461d99e048
/frameworks/base/core/java/android/content/pm/PackageParser.java
d1cff1b4a477bad7f6c968572ecdff26ca6e8cda 03-Apr-2010 Dianne Hackborn <hackbod@google.com> Fix issue #2564479: Favorite Recipes App Installation Fail

Change-Id: Ide1045e3f6bef9ed2a2fee08bfeda8c58feb685f
/frameworks/base/core/java/android/content/pm/PackageParser.java
1f4df90bfab8ca42eabe95f19eadff3432eee7fd 27-Mar-2010 Oscar Montemayor <oam@google.com> DO NOT MERGE
Removing unused features from source tree.
Please refer to Bug#2502219.

Change-Id: I879c29bfd5ffe933f64bb1082aaae7c956450a5a
/frameworks/base/core/java/android/content/pm/PackageParser.java
ef3f5ddc2137ed99e41f00441b688fb56b855179 30-Mar-2010 Ben Cheng <bccheng@android.com> Replace "safeMode" with a more specific name "vmSafeMode" in the public API.

Bug: 2553512
Change-Id: Id0dad80ecdcb8c7430dcf1ac26132ccd9c0770f5
/frameworks/base/core/java/android/content/pm/PackageParser.java
806da1d46c94c71728b94dec75dec6519c962b5c 19-Mar-2010 Dianne Hackborn <hackbod@google.com> Fix issue #2512507: Shortcuts and Widgets lost on upgrading from Eclair to FRE70D

Apps on the system partition are now allowed to change their certs, as
long as they are not using a shared user id.

Change-Id: I02ff7ac874dc649b7f8cbb705ae8d7ed31e1d125
/frameworks/base/core/java/android/content/pm/PackageParser.java
90d8ee650be988d8479f4f14ae8e541bb4cb034b 18-Mar-2010 Suchi Amalapurapu <asuchitra@google.com> Switch default install location to unspecified.
Add a new install location unspecified for backward compatibility.
There is not much difference between policies auto and unspecified.
But we dont have to make any code changes in PackageParser based
on our preference for install location.
Add tests

Change-Id: I563238133261d911d08fbc66344687b7dfc870b1
/frameworks/base/core/java/android/content/pm/PackageParser.java
3de55bcd34afd5871816526294f9514d1adf3fe5 13-Mar-2010 Christopher Tate <ctate@google.com> API CHANGE: expose the backup-related ApplicationInfo flag masks

Fixes bug #2507582 by doing the following:

- Un-@hide the FLAG_ALLOW_BACKUP, FLAG_KILL_AFTER_RESTORE, and
FLAG_RESTORE_ANY_VERSION mask constants in ApplicationInfo. These
correspond, respectively, to the <application> manifest tag's
android:allowBackup, android:killAfterRestore, and
android:restoreAnyVersion attributes.

- Remove the android:restoreNeedsApplication attribute and the
corresponding FLAG_RESTORE_NEEDS_APPLICATION constant [which was still
marked @hide]. We now always use the application's own Application
class when performing a normal restore. In the future when we support
an externalized full-filesystem backup/restore operation, we will use
an OS-defined agent class with a base-class Application instance, but
this will not happen until a future release.

Also expands real documentation on the above ApplicationInfo constants;
that work is part of bug #2465360

Change-Id: I735d07a963ae80a01343637d83bef84e4c23fdcc
/frameworks/base/core/java/android/content/pm/PackageParser.java
6069beb2dfed6da837bf7faa3db3f6119edc017a 10-Mar-2010 Suchi Amalapurapu <asuchitra@google.com> Rename ApplicationInfo.FLAG_ON_SDCARD to ApplicationInfo.FLAG_EXTERNAL_STORAGE

Change-Id: Iadef9f9bb2851c38b6d79be1bafbf932abce4210

Change-Id: I2e412bace3d8005db5057a3497bd836d0038b90c
/frameworks/base/core/java/android/content/pm/PackageParser.java
cf244ada58539ce857ec041d7288d0271204fbb6 10-Mar-2010 Dianne Hackborn <hackbod@google.com> Add ability for some manifest attributes to reference resources.

This loosens our restriction on many manifest attributes requiring
literal string values, to allow various ones to use values from
resources. This is only allowed if the resource value does not change
from configuration changes, and the restriction is still in place
for attributes that are core to security (requesting permissions) or
market operation (used libraries and features etc).

Change-Id: I4da02f6a5196cb6a7dbcff9ac25403904c42c2c8
/frameworks/base/core/java/android/content/pm/PackageParser.java
a2b6c3775ed6b8924232d6a01bae4a19740a15f8 06-Mar-2010 Suchi Amalapurapu <asuchitra@google.com> Add conditions to check for updated system applications. Restrict them
to internal flash only even before we copy.

Return error codes when install flag options mismatch.
Some conditions for existings apps
- install flags override existing location
- explicity manifest option install location overrides previous location
- if upgraded package's install location is unspecified or auto, fall
back to recommended install policy which considers user setting as well.

Check for sdcard status before finding available size on sdcard
Add light weight parsing for manifest attributes including package name and
install location only

Change-Id: I5143dda87c88c595f564b317326c926d0ec3ceb8
/frameworks/base/core/java/android/content/pm/PackageParser.java
c1552397be706c243338389c628a44eee6011eae 04-Mar-2010 Dianne Hackborn <hackbod@google.com> Allow multiple original-package tags.

Also fix some issues with moving files from update commands.
/frameworks/base/core/java/android/content/pm/PackageParser.java
aaec779513737a70007dea955f60e1b8bcbc2f1a 25-Feb-2010 Suchi Amalapurapu <asuchitra@google.com> Pick up default install location
/frameworks/base/core/java/android/content/pm/PackageParser.java
2269d1572e5fcfb725ea55f5764d8c3280d69f6d 25-Feb-2010 Dianne Hackborn <hackbod@google.com> Re-arrange android-common so framework no longer links with it.

This is the framework part, moving classes around so the framework
no longer needs to link to android-common. Makes some APIs public,
others that didn't need to be public are private in the framework,
some small things are copied.
/frameworks/base/core/java/android/content/pm/PackageParser.java
3dda518a4fd57cdded3afa50d8aa206501de7fc6 25-Feb-2010 Christopher Tate <ctate@google.com> Add 'restoreAnyVersion' attr for apps that want to restore "future" data

If a backup-participating app sets android:restoreAnyVersion="true" in its
manifest <application> tag, then its agent will be invoked for restore
even if the available dataset was created by a later version of the app
than is currently installed on the device. This will not typically be
a problem for third party applications, since for them the installation
and initial data restore are tightly coupled, but it can cause serious
problems for applications which are both preinstalled on the system
partition and overridden by later updates. The primary difficulty
that this new attribute addresses is this:

1. User buys a Nexus One, Market self-updates, and the user installs some apps.
At this point the backup data on the server may indicate that the version of
Market which originated its bookkeeping is newer than the stock N1 Market app.
2. User loses their phone, and buys a replacement N1. At setup time, Market
has not yet had a chance to self-update, so when the restore comes in, it's
tagged as being from "the future" and so the restore is refused. No apps get
reinstalled.

Bug: 2442127
Change-Id: I076a9553dc613e5c3189350e778315718ed1ed2b
/frameworks/base/core/java/android/content/pm/PackageParser.java
6dee18c5cfdd5d63f3a9c299d2b61f819c07e920 10-Feb-2010 Dianne Hackborn <hackbod@google.com> New implementation of <original-package> tag.

We now have the new package retain the name of the old package. This makes
sure that all existing references to it (shortcuts, widgets, etc) will still
work.

This does mean that your package can run under either the old or new name,
depending on whether the user got it with an update. Buyer beware!

I have tried testing all of the paths of updating, installing another
update in /data, uninstalling the update, updating system with an even
newer update, etc. I think they all work. No promises though.
/frameworks/base/core/java/android/content/pm/PackageParser.java
23085b781e145ed684e7270af1d5ced6800b8eff 09-Feb-2010 Ben Cheng <bccheng@android.com> Support per-application switch to execute the VM in safe mode.

The new attribute can be set by adding android:safeMode="true"
in AndroidManifest.xml with the SDK.

Tested with pairing locally compiled SDK with Eclipse and verified that the JIT
(the only component currently included in the safe mode) is indeed disabled
with the new attribute.

Bug: 2267583
/frameworks/base/core/java/android/content/pm/PackageParser.java
117818e4f171b1fd9daa05349c48f61388f04567 09-Feb-2010 Suchi Amalapurapu <asuchitra@google.com> Add new manifest option for install location
Change recommendAppInstallLocation api
add code to parse new attribute.
Define flags in PackageInfo
Add new settings attributes for enabling setting and value for install location
Some tests
The policy for install location: if explicitly set in manifest as internal only we try to install the app only on internal storage. if set to preferExternal, we try to install it on sdcard if possible. If not we fall back to internal.
If the user enables setting SET_INSTALL_LOCATION(which will always
be set to false in final release builds) and sets a prefered location, we try
to honour it.
/frameworks/base/core/java/android/content/pm/PackageParser.java
e04b1ad9cd3d9a159d4c7721a374f987be1062cd 09-Feb-2010 Bjorn Bringert <bringert@android.com> Fix NPE in PackageParser

Before, PackageParser threw NPE when reading <path-permission>
android:writePermission set.

Fixes http://b/issue?id=2430967

Change-Id: I4c69f0210ab362a649ff239c5f9e927d93c2f241
/frameworks/base/core/java/android/content/pm/PackageParser.java
b858dfda5012a1040927ed62c3bb856c3294d882 02-Feb-2010 Dianne Hackborn <hackbod@google.com> Implement system data migration support.

This adds three new features:

- <original-package android:name="com.foo" /> manifest tag.
This allows an .apk to specify another package it originally came from,
propagating all state and data from the old to new package.

- <adopt-permissions android:name="com.foo" /> manifest tag.
In some more complicated cases, a new .apk may be a combination
of multiple older .apks that each declared their own permissions.
This allows you to propagate the permissions from these other
.apks into the new one.

- A new system/etc/updatecmds directory.
You can place files here which describe data files to move from
one package to another. (See below for details.)

Also in this change: we now clean up the data directories of
.apks that disappear from the system image, and some improvements
to logging and reporting error messages.

A typical file in the updatecmds directory looks like this:

-------
com.google.android.gsf:com.google.android.providers.talk
databases/talk.db
com.google.android.gsf:com.google.android.googleapps
databases/gls.db
-------

This says that for com.google.android.sfs, there are two packages to
move files from:

From com.google.android.providers.talk, the file databases/talk.db.
From com.google.android.googleapps, the file databases/gls.db

As part of moving the file, its owner will be changed from the old
package to whoever is the owner of the new package's data directory.

If those two files had existed, after booting you would now have the
files:

/data/data/com.google.android.gsf/databases/talk.db
/data/data/com.google.android.gsf/databases/gls.db

Note that all three of these facilities assume that the older .apk
is completely removed from the newer system. The WILL NOT work
correctly if the older .apk still remains.
/frameworks/base/core/java/android/content/pm/PackageParser.java
8aa2e8939c61d788cbc192098465e79f584e173a 22-Jan-2010 Dianne Hackborn <hackbod@google.com> More device admin work: description, policy control.

There is now a description attribute associated with all components,
that can supply user-visible information about what the component does.
We use this to show such information about device admins, and wallpapers
are also updated to be able to show this in addition to the existing
description in their meta-data.

This also defines security control for admins, requiring that they
declare the policies they will touch, and enforcing that they do
so to be able to use various APIs.
/frameworks/base/core/java/android/content/pm/PackageParser.java
af8e9f4805643f90a9dc0ecfa119e0a860c12f8a 12-Jan-2010 Suchi Amalapurapu <asuchitra@google.com> app install on sdcard. provide skeleton implementation
to install an app on sdcard, just resources.
Add new install path for /asec in installd.
ignore . when checking for apk path since the sdcard packages id'ed
by package name.
Add new -s option to adb shell pm
Refactor fwd locked from scanMode to ApplicationInfo.
Add new flag for sd install
Add new parse flags for fwd locking and installing on sdcard
New mock api's in PackageManagerService to invoke MountService api's. These
will be refactored again and so have been wrapped internally.
Some error codes in PackageManager
Changes in PackageManagerService to use mPath and mScanPath during installation
and switch to using PackageParser.Package.applicationInfo attributes for
source and public resource directories.
Some known issues that will be addressed later
using system_uid for now. needs some tinkering with uid and packagesetting creation to use the actual app uid
error handling from vold not very robust. ignoring lot of things for now
sending a delayed destroy to delete packages. will revisit later
revisit temp file creation later. just copy for now
/frameworks/base/core/java/android/content/pm/PackageParser.java
f0108cda21bec61418b24aa6217406072780b5d5 22-Dec-2009 Tom Taylor <tomtaylor@google.com> resolved conflicts for merge of ad2fa35d to master

Change-Id: Ia4362cd48ac0689b91003943a4cd9660da72ff90
d4a4729c0cac582a2dcec7c8cfb316b81885a0f0 21-Dec-2009 Tom Taylor <tomtaylor@google.com> Update imports to android-common

Several files were moved to android-common. Update all the references
to import those files from the new location.
/frameworks/base/core/java/android/content/pm/PackageParser.java
506de3b57667e76cf92086b30d007c21c2cebbfd 25-Nov-2009 Dianne Hackborn <hackbod@google.com> am 5417933a: am d1689ea8: am 8e1985d4: Merge change Ie552036f into eclair

Merge commit '5417933a456f23a0ca30bb73632feee5dd5f8e46'

* commit '5417933a456f23a0ca30bb73632feee5dd5f8e46':
Fix issue #2286419: maxSdkVersion causes existing apps to disappear.
935ef2c4f43eaa849f62055c383d8fd7dcf3eead 25-Nov-2009 Dianne Hackborn <hackbod@google.com> Fix issue #2286419: maxSdkVersion causes existing apps to disappear.

Change-Id: Ie552036f4ea673e0ce9981ff1cbd1fbe08678510
/frameworks/base/core/java/android/content/pm/PackageParser.java
1874aa487cf5da31f5770d21f0973a417f99247c 11-Nov-2009 Oscar Montemayor <oam@google.com> Encrypted File Systems project. Implementation of opt-out flag in AndroidManifest XML file.
This flag is necessary for applications to specifythat their daa is never to be encrypted when the encrypted file system feature is
commplete and enabled.
Encrypted File Systems project.
Adding android:neverEncrypt flag to AndroidManifest.XML to allow packages to opt-out from EFS features.

Encrypted File Systems Project.
Fixing white spaces and end-line issues.

Encrypted File SYstems Project: opt-out flag.
Removed AndroidManifest.xml changes, as will make that change in a separate integration.
/frameworks/base/core/java/android/content/pm/PackageParser.java
d83006cbe86545a1e8882b1a4ed90005ebf3423e 29-Oct-2009 Suchi Amalapurapu <asuchitra@google.com> When upgrading packages with shared user ids make sure we are eliminating
the package about to be deleted or upgraded when updating permissions associated
with the shared user. Include a simple null check when retrieving the permission.

Fix PackageParser to avoid ArrayIndexOutOfBounds exceptions in several places
/frameworks/base/core/java/android/content/pm/PackageParser.java
8d5ae98549f68a1214a72e6d79456503eb7d96f5 06-Oct-2009 Suchi Amalapurapu <asuchitra@google.com> Make sdk version and code names static finals in PackageParser.
Remove api to set these values.
Remove an unused method in AppSecurityPermissions
/frameworks/base/core/java/android/content/pm/PackageParser.java
bd0a81ff1c0e92e80e05e2f12bb1805c7d081e94 04-Oct-2009 Dianne Hackborn <hackbod@google.com> Work on issue #2163789: Way too much logging

Dr.No from mcleron.

Change-Id: Iaca2268684f83fe8757e64db0b0e047a19755311
/frameworks/base/core/java/android/content/pm/PackageParser.java
a33e3f79259b56b03c7912af35944f34ad190e3c 30-Sep-2009 Dianne Hackborn <hackbod@google.com> Fix issue #2154794: Force close when start facebook application.

I think when we were scanning the updated app in the system image,
from an older version on the data partition, we were not setting
the existing package to have the system flag, so not auto-granting
any new permissions.

This also includes some other cleanup in the package manager to
remove old files in various places, and tighten up logging.

Also similar logging cleanup elsewhere.

Change-Id: I6d113c7cf7e736ab9be512d6d7c94c806a24199a
/frameworks/base/core/java/android/content/pm/PackageParser.java
7eca687c2ee8f633678a1cd3ebf0886c0e6bbcf9 29-Sep-2009 Dianne Hackborn <hackbod@google.com> Fix bug where we would return null with disabled components.

Change-Id: I1624a42803f1c4b02736f558a8eeeeba2890667e
/frameworks/base/core/java/android/content/pm/PackageParser.java
ffa424800d0338b8b894aef2ea1e3e3344cbda7a 24-Sep-2009 Dianne Hackborn <hackbod@google.com> Fix issue #2133206: dialogs/menus should auto-dismiss when screen turns off

Lot of infrastructure for more things to go away when "clear system dialogs"
happens, and now do this when we turn on the lock screen.

Change-Id: I567130296fe47ce82df065ed58ef21b37416ceaf
/frameworks/base/core/java/android/content/pm/PackageParser.java
5e1ab335e6e8fbfa19c64d53880a22f472010953 02-Sep-2009 Christopher Tate <ctate@android.com> Expand apps' control over the settings restore process

Applications can now specify two more aspects of the restore process: whether
they need to run with their own custom Application subclass rather than being
launched in the usual restricted mode during restore, and whether it's okay for
the backup manager to kill the app process once restore has completed. The new
manifest attributes for these are, respectively, android:restoreNeedsApplication
and android:killAfterRestore.

If unspecified in the manifest, restoreNeedsApplication is false, and
killAfterRestore is true.

In order to support kill-after-restore cleanly, this change also adds a new
system-process-only interface to the Activity Manager, which will schedule a
"commit suicide" event on the target app's main thread looper.

The framework backup agents have been given the appropriate new backup
attributes as well.
/frameworks/base/core/java/android/content/pm/PackageParser.java
49237345d83e62fdb9eb8d50b13ad086636a04fa 28-Aug-2009 Dianne Hackborn <hackbod@google.com> Add platform infrastructure for features.

This introduces a new mechanism to define features associated with
a platform, query the current device for the available features,
and enforce that apps requiring features that aren't available can't
be installed.

Also now allows uses-library to specify that a library is optional,
so the lack of such a library will not prevent the app from being
installed (but if it does exist it will be correctly linked into
the app).

Change-Id: I5b369b46cfa0b3d37c9e08fd14ef1098a978e67b
/frameworks/base/core/java/android/content/pm/PackageParser.java
c748541ca0caffbe33c1d4690773d89c06bb3253 27-Aug-2009 Suchi Amalapurapu <asuchitra@google.com> Add a null check in PackageParser
/frameworks/base/core/java/android/content/pm/PackageParser.java
11b822d2a91ea17c34c0cb1c11e80a9a30d72864 22-Jul-2009 Dianne Hackborn <hackbod@google.com> Simplify density compatibility to a boolean.

Instead of a list, we now just have a single boolean indicating whether an
application is density aware, and this set set to true by default as of
Donut.
/frameworks/base/core/java/android/content/pm/PackageParser.java
c4db95c077f826585d20be2f3db4043c53d30cf5 22-Jul-2009 Dianne Hackborn <hackbod@google.com> First pass at reworking screen density/size APIs.

This changes the names of the directories in aapt, to what you see
in the list of DpiTest resources. Also adds a new "long" configuration
for wide screens, which the platform sets appropriate, and introduces
a new kind of resizeability for not large but significantly larger
than normal screens which may have compatibility issues.
/frameworks/base/core/java/android/content/pm/PackageParser.java
69fff4a72d4dfc9208db79d773ef3ca23350287e 21-Jul-2009 Mitsuru Oshima <oshima@google.com> * Disable compatibility mode for all cases.
/frameworks/base/core/java/android/content/pm/PackageParser.java
841f13c8e9ff3f7695b6c18a8abcec3c947983ff 18-Jul-2009 Mitsuru Oshima <oshima@google.com> * Reverted the change in PackageParser that I checked by accident
* More surface view fix.
- correct event translation on surface view.
- use compatible window
* removed FLAG_NO_COMPATIBILITY_SCALE. It was my misunderstanding of how SurfaceView works, and this was not necessary.
* Added compatibility related info to package dumpsys
/frameworks/base/core/java/android/content/pm/PackageParser.java
ba3ba57921dedaaef669719c0359c0caf60e008b 09-Jul-2009 Mitsuru Oshima <oshima@google.com> * Use cached resources for widgets
/frameworks/base/core/java/android/content/pm/PackageParser.java
854060af30f928c0a65591e9c8314ae17056e6b8 10-Jul-2009 Dianne Hackborn <hackbod@google.com> Fix bug #1873249i: Apps can DoS/brick device

This is the problem where various things are listening for broadcasts
(such as battery status, PIN/PUK/Network) that an application can send
to cause harm to the system.

Solving this is tricky because many of these broadcasts are sticky,
and I have never figured out how to do permissions with sticky
broadcasts in a sane way. So instead, I am going to punt on the
general problem and just brute force it:

There is new a way for system components to declare specific
broadcast actions to be protected, which means that only the system
and the phone can send them. This is good enough for now. None
of it is exposed in the public API so we can make something a little
less stupid in the future if we ever need to.
/frameworks/base/core/java/android/content/pm/PackageParser.java
2af632f87d487deaa5b2eb71341cfc4f0c0d1173 08-Jul-2009 Dianne Hackborn <hackbod@google.com> Add new <path-permission tag for use by global search.

This adds a new <path-permission> tag you can use inside of a <provide>
to define additional path-based permissions that broaden the global
read and write permissions. The initial use for this will be global
search, so that a content provider that is protected by permissions
can make a part of itself available to global search under another
permission. This addresses the issue with global search not being able
to request permissions it would need of providers it doesn't know
about at build time.
/frameworks/base/core/java/android/content/pm/PackageParser.java
1ecf5d28817f0a051e77488380dcd5bc622ea169 07-Jul-2009 Mitsuru Oshima <oshima@google.com> Re-implementation of large screen support using window manager.
* added background filler surface to fill the outer rim. Using the same layer as dim surface because
they never co-exists (in the same window)
* clean up the obsolete code in CompatibiltyMode/ViewRoot for support large screen support.
/frameworks/base/core/java/android/content/pm/PackageParser.java
723738cfaec3dd7b0fe152c872c41bebf94074c4 26-Jun-2009 Dianne Hackborn <hackbod@google.com> Expand support for different screen sizes.

Applications can now declare that they support small, normal, or
large screens. Resource selection can also be done based on these
sizes. By default, pre-Donut apps are false for small and large,
and Donut or later apps are assumed to support all sizes. In either
case they can use <supports-screens> in their manifest to declare
what they actually support.
/frameworks/base/core/java/android/content/pm/PackageParser.java
5c1e00b14d2ef10ec76abf3e951fa8003a67f558 19-Jun-2009 Dianne Hackborn <hackbod@google.com> Fix targetSdkVersion, make resize mode a flag, delayed dexopt, easy ApplicationInfo.

- Fix a bug where targetSdkVersion could not be set if minSdkVersion. Stupid, stupid.
Also make sure to fail if minSdkVersion is for a code name. Really stupid.

- Change the API for resize compatibility mode to be a bit in the flags field, instead
of a separate boolean.

- Implement delayed dexopting, to avoid the looong full dexopt during boot. This is
only enabled for "eng" builds. When in this mode, the activity manager will make
sure that a dexopt has been done before loading an .apk into a process, and will
try to avoid displaying ANRs if they are due to the dexopt causing some operation
to take longer than it normally would (though I make no guarantees about this
totally working).

- Add API to Context to get the ApplicationInfo for its package, for easy access to
things like targetSdkVersion.
/frameworks/base/core/java/android/content/pm/PackageParser.java
d299b8194dde8c4875e5f032918ab35ebad8b1f1 05-Jun-2009 Suchi Amalapurapu <asuchitra@google.com> Add a new attribute to android manifest for defining the GLES version number.
This attribute is parsed by the PackageParser into ConfigurationInfo. The major
and minor version numbers are defined as the higher and lower order bits.
/frameworks/base/core/java/android/content/pm/PackageParser.java
9189cabb0b6c6c28232fe6f412b7ba7a37352a6a 03-Jun-2009 Mitsuru Oshima <oshima@google.com> * Moved supports-density tag under manifest
* Refactored Compatibility code
* Added CompatibilityInfo class
* Removed getApplicationScale from Context
* Added Resources#getCompatibilityInfo so that RootView can get the compatibility info w/o going through Context
* Expandable support
* Added expandable tag under manifest
* Old application w/o expandable is given the default screen size ([320, 480] x density).
* The non-expandable window is centered.
/frameworks/base/core/java/android/content/pm/PackageParser.java
5a3a77dabd744d5be79d7745c2a977c108a9ad98 01-Jun-2009 San Mehat <san@google.com> base: Rename WRITE_SDCARD -> WRITE_EXTERNAL_STORAGE

Signed-off-by: San Mehat <san@google.com>
/frameworks/base/core/java/android/content/pm/PackageParser.java
181fafaf48208978b8ba2022683ffa78aaeddde1 14-May-2009 Christopher Tate <ctate@google.com> Retool the backup process to use a new 'BackupAgent' class

Backups will be handled by launching the application in a special
mode under which no activities or services will be started, only
the BackupAgent subclass named in the app's android:backupAgent
manifest property. This takes the place of the BackupService class
used earlier during development.

In the cases of *full* backup or restore, an application that does
not supply its own BackupAgent will be launched in a restricted
manner; in particular, it will be using the default Application
class rather than any manifest-declared one. This ensures that the
app is not running any code that may try to manipulate its data
while the backup system reads/writes its data set.
/frameworks/base/core/java/android/content/pm/PackageParser.java
45515659438964ec47f4feac247f0e9dce587c86 24-Apr-2009 Jaikumar Ganesh <jaikumar@google.com> Enforce permissions for PhoneStateListener events.

PhoneStateListener events like LISTEN_CALL_STATE_CHANGED,
have privacy information like phone numbers and hence,
need to be protected with a permission. The permission
READ_PHONE_STATE is used for this purpose. Use the permission
trick to ensure backward compatability.
/frameworks/base/core/java/android/content/pm/PackageParser.java
a96cbb435d7b2197ab2b61fd98d14cbd6e0c5c3d 14-May-2009 Dianne Hackborn <hackbod@google.com> Implement compatibility support for WRITE_SDCARD permission.

Now old applications will automatically be granted it. Also renamed it from
SDCARD_WRITE to WRITE_SDCARD to be consistent with our other permissions,
and re-arranged how we do targetSdkVersion to actually be usuable for this
kind of stuff.

Note that right now this results in basically all apps being given the
WRITE_SDCARD permission, because their targetSdkVersion is not set. I will
be dealing with that in a future change.
/frameworks/base/core/java/android/content/pm/PackageParser.java
e7fe35b88aa77766d322b8a683995a2bdae6210d 13-May-2009 Dianne Hackborn <hackbod@google.com> Whoops fix installing. I am dumb.
/frameworks/base/core/java/android/content/pm/PackageParser.java
ade3ecad94d1f4431576f53bae26c35efbf7a2c9 12-May-2009 Dianne Hackborn <hackbod@google.com> Implement issue #1783881 (manifest option for adb-install-only apps)

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

I also used this to clean up the install API... actually, mostly to hide
it, since it is not accessible to apps so shouldn't be in the SDK. We
will be doing some more work on it, so this will prevent adding yet
another backwards-compatibility-for-no-reason version.
/frameworks/base/core/java/android/content/pm/PackageParser.java
851a54143c15a1c33361efae2db3f7f45059b472 08-May-2009 Dianne Hackborn <hackbod@google.com> Implement targetSdkVersion and maxSdkVersion, plus version code names.

This adds new attributes for specifying a targetSdkVersion and maxSdkVersion.
There is a new ApplicationInfo flag that is set if the application has set
its targetSdkVersion to the current platform or later. Also you can now
use a string for minSdkVersion and targetSdkVerion, to indicate you are
building against a development tree instead of an official platform.
/frameworks/base/core/java/android/content/pm/PackageParser.java
257eef353dfc9519b63e3fe2616505c5534b460a 27-Apr-2009 Mitsuru Oshima <> Merge branch 'readonly-p4-donut' into donut
8d112675879a2b83197d3b4ae4fb623abd1a1ec3 27-Apr-2009 Mitsuru Oshima <> AI 147845: Compatibility mode support. Part 1
Adding supports-density tag to manifest file/ApplicationInfo.
BUG=1752478

Automated import of CL 147845
/frameworks/base/core/java/android/content/pm/PackageParser.java
1d442e0d990b581357f33f5463c7c5cb49b551e8 21-Apr-2009 Dianne Hackborn <hackbod@google.com> More optimization of dumpsys output.

There are three major classes of changes here:

- Avoid writing lines where their values are often empty, false, or some other typical thing.
- Use partial writes to the PrintWriter to avoid creating temporary strings.
- Use StringBuilder where we need to generate real String objects (and where possible cache the result).
/frameworks/base/core/java/android/content/pm/PackageParser.java
b2a3dd88a53cc8c6d19f6dc8ec4f3d6c4abd9b54 09-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@137197
/frameworks/base/core/java/android/content/pm/PackageParser.java
9066cfe9886ac131c34d59ed0e2d287b0e3c0087 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
/frameworks/base/core/java/android/content/pm/PackageParser.java
d83a98f4ce9cfa908f5c54bbd70f03eec07e7553 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
/frameworks/base/core/java/android/content/pm/PackageParser.java
3001a035439d8134a7d70d796376d1dfbff3cdcd 19-Feb-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@132276
/frameworks/base/core/java/android/content/pm/PackageParser.java
f013e1afd1e68af5e3b868c26a653bbfb39538f8 18-Dec-2008 The Android Open Source Project <initial-contribution@android.com> Code drop from //branches/cupcake/...@124589
/frameworks/base/core/java/android/content/pm/PackageParser.java
54b6cfa9a9e5b861a9930af873580d6dc20f773c 21-Oct-2008 The Android Open Source Project <initial-contribution@android.com> Initial Contribution
/frameworks/base/core/java/android/content/pm/PackageParser.java