Commit Graph

360 Commits

Author SHA1 Message Date
Kenny Root
e6cd0c747e resolved conflicts for merge of 2433c443 to honeycomb-plus-aosp
Change-Id: I3385f57e5761679e6700bcbe3c41deb3ecd43ba1
2011-05-19 12:48:14 -07:00
Kenny Root
f2006f3123 Merge "Break apart queries to getInstalled* API" into gingerbread 2011-05-19 10:55:00 -07:00
Dianne Hackborn
0f1de9adde New compat mode front end: UI and persistence.
Adds a really crappy UI for toggling compat mode.

Persists compat mode selection across boots.

Turns on compat mode by default for newly installed apps.

Change-Id: Idc83494397bd17c41450bc9e9a05e4386c509399
2011-05-12 13:28:45 -07:00
Dan Morrill
4ec33c2aad Do not merge. Cherry-pick of Idc802af57fb9926a69ed52d4e776ef57d8b647c6
(package manager fix) to gingerbread.

Change-Id: Ia5373100e97bfe42d2211c6249996dc7ff4818e0
2011-05-02 17:00:13 -07:00
Dan Morrill
8325c3a891 Backporting I57c58c4083bd59f45095c184d6ca5a302f79ff6e to HC-MR1. New change
since file was renamed, making cherry-pick impossible.

Change-Id: Idc802af57fb9926a69ed52d4e776ef57d8b647c6
2011-05-02 14:06:06 -07:00
Kenny Root
0e2c0f37d9 Break apart queries to getInstalled* API
To avoid blowing past the Binder IPC limit, change the
PackageManagerService to have a DB-like interaction where the client
tells the service the last "row" that it read.

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

Bug: 4064282
Change-Id: Ic370fd148d4c3813ae4f2daffa1a7c28d63d5a09
2011-04-19 09:57:54 -07:00
Paul Milovanov
a57db345d3 PACKAGE_FIRST_LAUNCH intent sent to wrong pkg
In PackageManagerService, intent with ACTION_PACKAGE_FIRST_LAUNCH was
being sent to wrong package. It was being sent to the installed
package with installer package in the URI, whereas it should be sent
to installer package with installed package in the URI.
Comment in Intent.java:1417 seems to support that intent with this
action should be sent to the installer package, not installed.

Bug: 3426299
Change-Id: Iadec4ae7a1af6bab434716f8fcdb7d0b099d1ee1
2011-03-16 23:12:31 -07:00
Dianne Hackborn
f8b8a3fa95 Refector preferred activity code out of package manager.
This may be useful for others...  such as USB preferred devices, maybe?

Change-Id: I204081e2c84ccff6982a500baaf3540a80839a4b
2011-03-04 00:08:04 -08:00
Kenny Root
c39bb4aaa7 Switch to returnCode for IPackageDeleteObserver
Before the IPackageDeleteObserver only knew whether the deletion
succeeded or failed, but not the reason why.

Bug: 2520191
Change-Id: I1f0d7c04f06c539660b6e17e7e133defb0f61b5b
2011-03-01 09:27:57 -08:00
Dianne Hackborn
e7f972122d 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
2011-02-25 14:46:27 -08:00
Kenny Root
c7624d9338 Fix measurement of external media dir
Change-Id: I90a39c6a506ad0e5d18b40824d06eb1a7e376a3e
2011-02-23 16:25:25 -08:00
Kenny Root
35ab3ad61f Remove defunct secure FS work
Bug: 3365047
Change-Id: I68eaea295881f5431907e1b93bdd73e644e84aa5
2011-02-02 16:42:18 -08:00
Dianne Hackborn
db569b4918 am 6cf32312: Merge "Do not check features in PackageManagerService" into honeycomb
* commit '6cf32312aaee6716ffd1df7098838b08d80054e4':
  Do not check features in PackageManagerService
2011-01-31 18:51:56 -08:00
Kenny Root
4c3915a0f7 Do not check features in PackageManagerService
PackageManagerService shouldn't check features that a package declares
that it uses because this will cause problems in the future when we add
more features that older phones didn't explicitly declare. We must rely
on markets to know about phones and filter them for us to avoid this
situation.

Bug: 3409434
Change-Id: I419a5b936be3572b83a485081a6c81b2f1c8741c
2011-01-31 16:59:12 -08:00
Kenny Root
fa2ae1ad1a Do not check features in PackageManagerService DO NOT MERGE
PackageManagerService shouldn't check features that a package declares
that it uses because this will cause problems in the future when we add
more features that older phones didn't explicitly declare. We must rely
on markets to know about phones and filter them for us to avoid this
situation.

Bug: 3409434
Change-Id: I0d51b2de33d8110edc6824af4b5b8c901f96077f
2011-01-31 16:27:38 -08:00
The Android Open Source Project
b2abd8c424 Mass merge from gingerbread - do not merge
Change-Id: I45dc3596bf4211d8f91c64f2d1d00588878df629
2011-01-30 12:40:38 -08:00
Kenny Root
f4b2c0422c am 91c459ec: Copy user info from PackageSetting as well
* commit '91c459ec7dba6d56816ff5cbd92c627e0f718915':
  Copy user info from PackageSetting as well
2011-01-26 11:00:20 -08:00
Dianne Hackborn
5d9d03a023 Maybe fix issue #3093599: java.lang.IndexOutOfBoundsException...
...Invalid index 0, size is 0 at
android.app.ActivityThread.performPauseActivity(ActivityThread.java:2326)

It looks like if an arrow key is dispatched between the time the
list view is told its data set has changed and it does the resulting
layout pass, we could try to move the position to a now invalid
index.  This may prevent that from happening.

Also put in a better error message if saving state of a fragment
whose target is no longer in the fragment manager.

And fix a bug in PackageManager where we could return a null from
queryIntentActivities().

And add a new API to find out whether a fragment is being removed,
to help fix issue #3306021: NPE at
android.app.AlertDialog.getDefaultDialogTheme(AlertDialog.java)

Next, for new HC apps we can delay committing data to
storage until the activity is stopped.

Finally, use the new multi-threaded AyncTask executor in a few
places, so we don't have worked blocked by long-running tasks from
the application.

Change-Id: I27b2aafedf2e1bf3a2316309889613fa539760f3
2011-01-24 21:23:03 -08:00
Kenny Root
300c13a481 Erase OBB files when removing packages
OBB files on USB storage or SD card should be removed when an
application is removed.

Bug: 3356804
Change-Id: Ifbbf043368b125fcd47fd74e5cd2e5167a8deb00
2011-01-18 13:55:42 -08:00
Kenny Root
a1cbb94dbc Revert "Add the {get,set}PackageObbPaths calls to API"
This reverts commit 5d40fe9c68.

Change-Id: Ie41010c92fb860b19a12bcf63f6fe95ffa68da81
2011-01-17 13:00:47 -08:00
Kenny Root
34d2b41e48 Revert "Add the {get,set}PackageObbPaths calls to API"
This reverts commit 6c4d904851.

Going with a different tactic that doesn't dump stuff on
PackageManagerService.

Bug: 3214719
Change-Id: I0bbeccf3c21d264deda4256eb53713d2c98284f4
2011-01-17 11:49:22 -08:00
Kenny Root
bcd6c96e75 Add OBB size to PackageStats
Bug: 3356814
Change-Id: I4f871fb9fd0cb2f3177cc756631f95d928862571
2011-01-17 11:21:52 -08:00
Kenny Root
366949c2d9 Put externalSize measurements in PackageStats
When measuring a package's usage, put the external size in the
PackageStats as well. This will allow programs using a lot of space on
the external card to be held accountable.

Bug: 3308791
Change-Id: If2df07bdbf6ffb31577074fad8f4a87ca4e89086
2011-01-16 16:21:15 -08:00
Dianne Hackborn
3b81bc18bb 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
2011-01-16 12:08:38 -08:00
Kenny Root
bd392c5397 Check for null in PackageSetting constructor
Should bring honeycomb into parity with gingerbread changes.

Change-Id: Ieb48a0e420d4c2981130f268aba9b24f4fe25b84
2011-01-14 12:58:12 -08:00
Kenny Root
5d40fe9c68 Add the {get,set}PackageObbPaths calls to API
Add getPackageObbPaths() and setPackageObbPaths() to the public API.

Bug: 3214719
Change-Id: I8627b5f674a795d5780eb5c08911419110670a41
2011-01-14 12:18:48 -08:00
Kenny Root
ea6bf36281 Deep clone settings for system package update DO NOT MERGE
The copyFrom() method was not written to create a clone of the
PackageSetting, so just create a new constructor that actually does a
clone.

Bug: 3349588
Change-Id: I24bdce6c3559e097ecb64b61585ef3b12bca491f
2011-01-14 10:32:42 -08:00
Kenny Root
291e78cc9c Deep clone settings for system package update
The copyFrom() method was not written to create a clone of the
PackageSetting, so just create a new constructor that actually does a
clone.

Bug: 3349588
Change-Id: I61864869154340420f005cd5120cad751de30ee8
2011-01-13 16:17:50 -08:00
Jason parks
a3cdaa5337 Revert "Remove the APIs for the old encryption scheme."
This reverts commit 1125d780a8.
2011-01-13 14:15:43 -06:00
Jason parks
ca6777b23b Merge "Remove the APIs for the old encryption scheme." into honeycomb 2011-01-13 07:40:46 -08:00
Kenny Root
e8c04db71e Merge "Add the {get,set}PackageObbPaths calls to API" into gingerbread 2011-01-12 15:03:43 -08:00
Jason parks
1125d780a8 Remove the APIs for the old encryption scheme.
Change-Id: I55116a5b29b10dfd50015805ec019b485257f68b
2011-01-12 15:01:34 -06:00
Kenny Root
502e9a47c6 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
2011-01-12 11:57:23 -08:00
Kenny Root
6688b6c317 Merge "Allow updated system apps to retain priority" into gingerbread 2011-01-12 11:56:25 -08:00
Kenny Root
1c6e764275 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.

Bug: 2572398
Change-Id: I9fdf7906809518b28b49ffec31afec1442d85d3c
2011-01-11 15:51:46 -08:00
Kenny Root
97ef63ba1e Copy user info from PackageSetting as well
In order not to clobber the internal system's settings, we duplicate it
before putting it back into mPackages, but the PackageSetting has a
couple extra pieces of information that weren't being copied.

Bug: 3339279
Change-Id: Ic9b64117f287d53f2c0cebb924c775405690938e
2011-01-11 11:15:35 -08:00
Kenny Root
91c459ec7d Copy user info from PackageSetting as well
In order not to clobber the internal system's settings, we duplicate it
before putting it back into mPackages, but the PackageSetting has a
couple extra pieces of information that weren't being copied.

Bug: 3339279
Change-Id: I047087ac3477c7b2d5ce23e5e0a5e8c094bd0d3f
2011-01-11 11:04:54 -08:00
Kenny Root
6c4d904851 Add the {get,set}PackageObbPaths calls to API
Add getPackageObbPaths() and setPackageObbPaths() to the public API.

Bug: 3214719
Change-Id: Icb9f2f92f8c59bb3d31317f609854e81abbd1449
2011-01-09 13:20:28 -08:00
Dianne Hackborn
4f05220d10 Merge commit '690d20bb53ba2485f59d128b365eff991d5cc3e6' into manualmerge 2011-01-09 11:59:12 -08:00
Kenny Root
1683afac14 Fix check for required features
The required features check was in an null check for usesLibraries, so
it wasn't checking for required features when an application did not use
a library.

Bug: 3331713
Change-Id: I96d366ba00d4962b84f3796be97e2b622eb331a5
2011-01-07 15:43:05 -08:00
Dianne Hackborn
690d20bb53 Fix issue # 3227963: SecurityException: Neither user 10023 nor...
...current process has android.permission.WAKE_LOCK

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

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

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

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

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

Change-Id: I0e879677849aa42950a3c360bf78ad820e87674b
2010-12-22 16:31:44 -08:00
Dianne Hackborn
c1ff9b3255 am d485c76b: am c8e8a12b: Merge "Fix issue #3289835: NullPointerException in..." into gingerbread
* commit 'd485c76b5e09a8c311f8f129cbe5ec75499556be':
  Fix issue #3289835: NullPointerException in...
2010-12-20 11:33:27 -08:00
Dianne Hackborn
3ec27e06a7 Fix issue #3289835: NullPointerException in...
..PackageManagerService.grantPermissionsLP when updating system app

Change-Id: I36c1b96d2fe9a8737843d30f3a2669935fc281bb
2010-12-16 12:41:56 -08:00
Dianne Hackborn
ccc7141313 resolved conflicts for merge of 78e9f4cb to master
Change-Id: I1135361e6d66f524c3f349e2bf1f31bd4191c634
2010-12-13 14:55:25 -08:00
Dianne Hackborn
e4a5951925 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
2010-12-13 14:31:40 -08:00
Dianne Hackborn
880119bf43 Implement issue #2367442: Please add API for manipulating installer
package names

Change-Id: I0563e896a47ae1a6e77aebc2d624fb1bde52ffbc
2010-11-19 13:21:08 -08:00
Brad Fitzpatrick
6689ac8a56 Fix more things that CloseGuard found.
Not terribly happy with how the code looks after, though.

Change-Id: I7bf5f78ef6c0ac82339a2e49488ca6e64d13c05e
2010-11-15 16:26:04 -08:00
Brad Fitzpatrick
725d8f06ec Close some things in system_server that CloseGuard found.
Change-Id: I788c022235caddcb1972a34131442a683cd51eb5
2010-11-15 11:12:42 -08:00
Joe Onorato
646f46eddf make the resolver activity's items visible
Change-Id: Ic02c834c01c3d71d6e1c073f986b87ae5faa1da0
2010-11-08 15:08:56 -08:00
Kenny Root
70fc04c84d Reorganize PackageManager dump to avoid NPE
versionCode and mVersionName were added recently but ps.pkg can be null
in some situations. Move them to where it will check before
dereferencing it.

Bug: 3152896
Change-Id: If992a1f29ac7b8f595f847b7743fd2374662bb6e
2010-11-05 11:59:45 -07:00