349 Commits

Author SHA1 Message Date
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
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
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
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 5d40fe9c6846ba765072e50ed1254293cb9195e4.

Change-Id: Ie41010c92fb860b19a12bcf63f6fe95ffa68da81
2011-01-17 13:00:47 -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
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 1125d780a8b61703b8eb28c5c77dac5f3f0022dd.
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
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
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
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
Brian Carlstrom
fd9ddd1a40 Integrate StrictMode with CloseGuard
In additional to adding the StringMode API for controling CloseGuard,
this checkin fixes several CloseGuard issues found booting a device.

Bug: 3041575
Change-Id: I4dffd184f49438d6d477ed81a1c2a2a5b56cc76b
2010-11-04 14:21:33 -07:00
Kenny Root
1174f71e94 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: 3121050
Change-Id: I46081f300e7a40354cb757f9eaa7ec98b9334c8b
2010-10-22 10:07:11 -07:00
Brad Fitzpatrick
385a753dea resolved conflicts for merge of 368fdba4 to master
Change-Id: I42b7b433c86a71a5da5db67109f056a280077c9d
2010-10-21 07:39:10 -07:00
Joe Onorato
431bb22695 Reduce logging.
Remember, the system and main logs are
    - Shared resources
    - Primarily for recording problems
    - To be used only for large grained events during normal operation

Bug: 3104855
Change-Id: I136fbd101917dcbc8ebc3f96f276426b48bde7b7
2010-10-19 15:08:05 -04:00
Kenny Root
1072b7f751 am c0e97872: am 928b0748: Merge "Don\'t symlink native library paths for old apps" into gingerbread
Merge commit 'c0e9787293b761b04bdb07908751b22458f17bbc'

* commit 'c0e9787293b761b04bdb07908751b22458f17bbc':
  Don't symlink native library paths for old apps
2010-10-19 11:19:45 -07:00
Kenny Root
e68d58a298 Don't symlink native library paths for old apps
Apps that existed in an ASEC container before we put native libraries
in the ASEC container will have their native libraries in the
/data/data/<app>/lib directory. Don't try to symlink to the ASEC
container's library directory in this case.

Bug: 3108230
Change-Id: I32167341cc8ff8c005e50f456ee7c783bfb0bf22
2010-10-18 16:55:27 -07:00
Dianne Hackborn
875ecaa511 am 13e46665: am 736f5ec4: Merge "Work on issue #3101415: Crespo apps seem to have their UID changed over time." into gingerbread
Merge commit '13e46665ff69c1a37880762d7d611aacdf02dac7'

* commit '13e46665ff69c1a37880762d7d611aacdf02dac7':
  Work on issue #3101415: Crespo apps seem to have their UID changed over time.
2010-10-18 08:04:47 -07:00
Nick Pelly
cd0e839a24 NFC: Move NFC service implementation out of system_server.
NFC service is now an application service in packages/apps/Nfc.

NFC service is registered through ServiceManager.addService(), and the proxy
object NfcAdapter obtains a handle to it through ServiceManager.getService().

**Important** Had to add new symbols AID_NFC / NFC_UID / android.uid.nfc and
modify service_manager.c, Process.java and PackageManagerService.java in order
to force the com.android.nfc process to take a fixed uid, so that it can use
ServiceManager.addService().

Most of the JNI has moved to packages/apps/Nfc/jni. However NdefRecord and
NdefMessage require some in-process native code, so android_com_NdefMessage.cpp
and android_com_NdefRecord.cpp stay in frameworks/base/core/jni. They link to
a very small library libnfc_ndef.so that implements NDEF message parsing. This
has been added to core.mk so all devices (even without NFC hardware) can work
with NDEF data.

Bug: 3041259
Bug: 3097445
Change-Id: If7f00cd8f2053acfc9319ca366d4a9c02bd396e6
Signed-off-by: Nick Pelly <npelly@google.com>
2010-10-17 18:35:29 -07:00
Dianne Hackborn
1769256966 am 10d48f26: am efb58101: Debug logs for issue #3101415: Apps seem to have their UID changed over time.
Merge commit '10d48f26e72dc7978ae683e8f99cc71409eb75ef'

* commit '10d48f26e72dc7978ae683e8f99cc71409eb75ef':
  Debug logs for issue #3101415: Apps seem to have their UID changed over time.
2010-10-17 13:49:16 -07:00
Dianne Hackborn
8bdf5935c0 Work on issue #3101415: Crespo apps seem to have their UID changed over time.
fsync!

Change-Id: Ie6c5397202579935ac69bf61d3e7b3081ecf269c
2010-10-15 14:46:33 -07:00
Dianne Hackborn
efb581018b Debug logs for issue #3101415: Apps seem to have their UID changed over time.
- Activity manager now prints the pid doing a startActivity request.
- Package manager now remembers messages about problems it has parsing
  packages.xml.

Change-Id: I11a75aa3953dbfa5dd41cfbdf69116c764ec228f
2010-10-15 11:22:17 -07:00