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
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
Before the IPackageDeleteObserver only knew whether the deletion
succeeded or failed, but not the reason why.
Bug: 2520191
Change-Id: I1f0d7c04f06c539660b6e17e7e133defb0f61b5b
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
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
...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
OBB files on USB storage or SD card should be removed when an
application is removed.
Bug: 3356804
Change-Id: Ifbbf043368b125fcd47fd74e5cd2e5167a8deb00
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
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
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
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
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
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
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
...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
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
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
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
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
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
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
Merge commit '13e46665ff69c1a37880762d7d611aacdf02dac7'
* commit '13e46665ff69c1a37880762d7d611aacdf02dac7':
Work on issue #3101415: Crespo apps seem to have their UID changed over time.
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>
Merge commit '10d48f26e72dc7978ae683e8f99cc71409eb75ef'
* commit '10d48f26e72dc7978ae683e8f99cc71409eb75ef':
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