189 Commits

Author SHA1 Message Date
Dianne Hackborn
b921b37b1c am a327dbdd: am ecb0e637: Fix issue #2541849: System crash when an app with active notifications...
Merge commit 'a327dbddccb002919b98bdfd7abd81619826a3b8' into kraken

* commit 'a327dbddccb002919b98bdfd7abd81619826a3b8':
  Fix issue #2541849: System crash when an app with active notifications...
2010-04-07 22:42:46 -07:00
Dianne Hackborn
ecb0e63787 Fix issue #2541849: System crash when an app with active notifications...
...in status bar is installed on sdcard and device is powered down.

Don't do the GC until everyone has had a chance to take care of external
storage going away.

This is more correct, but doesn't completely fix the problem that
appears when shutting down.

Change-Id: I24b19337ba6262cfd8d010645dbf67e76ea03058
2010-04-07 22:19:55 -07:00
Suchi Amalapurapu
3e543abbc1 am a599469f: am c2461be6: Merge "Fix 2579461 Move install location values to secure settings. Diable attribute for UI. Set default value to auto. Add command line interface to set install location via pm." into froyo
Merge commit 'a599469f9095532cac95a8e7600412f156b88f1c' into kraken

* commit 'a599469f9095532cac95a8e7600412f156b88f1c':
  Fix 2579461
2010-04-07 21:32:30 -07:00
Suchi Amalapurapu
40e472521a Fix 2579461
Move install location values to secure settings.
Diable attribute for UI. Set default value to auto.
Add command line interface to set install location via pm.

Change-Id: I80e97b3d24845adad7102f40dcbe238f00efa406
2010-04-07 20:43:54 -07:00
Suchi Amalapurapu
070e1ecfee am a137cf2a: am 4b18ced6: Merge "Fix 2578016." into froyo
Merge commit 'a137cf2a1899b863913b4ab32a87835c2d47d8fe' into kraken

* commit 'a137cf2a1899b863913b4ab32a87835c2d47d8fe':
  Fix 2578016.
2010-04-07 16:35:57 -07:00
Suchi Amalapurapu
30f775b12a Fix 2578016.
Add some checks before moving package.
Checkin test code.
Regenerate test apks

Change-Id: I769ece128fefd3429ce93208a77d887c7759d2e1
2010-04-07 11:43:31 -07:00
Dianne Hackborn
357bff46b8 am 710312b3: am 48bce451: Merge "Fix issue #2569139: Cannot login to last.fm after upgrade from Donut to FRF01B" into froyo
Merge commit '710312b3bb0ec7bef39742e0e3fc2a3e5c987532' into kraken

* commit '710312b3bb0ec7bef39742e0e3fc2a3e5c987532':
  Fix issue #2569139: Cannot login to last.fm after upgrade from Donut to FRF01B
2010-04-06 12:43:00 -07:00
Dianne Hackborn
f22221fd19 Fix issue #2569139: Cannot login to last.fm after upgrade from Donut to FRF01B
This is a quick and dirty solution to re-assign permissions after booting
from a platform update.  It is not great, because it means that an app
can have permissions that the user didn't get to see when they originally
installed it.  Unfortunately it's not clear what else to do here, nor is
there time to do anything significant.

Change-Id: I82faba141b5883c87212afa7febecf9860a413e3
2010-04-06 11:17:08 -07:00
Dianne Hackborn
5a0797a910 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
2010-04-05 18:52:39 -07:00
Dianne Hackborn
6e52b5d768 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
2010-04-05 18:37:57 -07:00
Suchi Amalapurapu
5130073d17 am 21f15f68: am a77acab9: Merge "Handle exceptions when doing dexopt." into froyo
Merge commit '21f15f68c2940a87954d9889e208ffbbed2c1995' into kraken

* commit '21f15f68c2940a87954d9889e208ffbbed2c1995':
  Handle exceptions when doing dexopt.
2010-04-02 12:53:45 -07:00
Suchi Amalapurapu
73dafa1f66 Handle exceptions when doing dexopt.
Change-Id: Iaeba98ef9fef2f1dbf3dbe2e8e4497dae8d0fe7f
2010-04-01 21:02:21 -07:00
Suchi Amalapurapu
392be3fa3d am 1aa64b53: am ae18171a: Change certificate policy.
Merge commit '1aa64b53eb9b3cc7904705076a015a5cd0e3b536' into kraken

* commit '1aa64b53eb9b3cc7904705076a015a5cd0e3b536':
  Change certificate policy.
2010-03-31 23:22:56 -07:00
Suchi Amalapurapu
ae18171acd Change certificate policy.
The certificates of the package and its shared user certificates
 are initialized only when installing the package.

When scanning the packages, the certificates are collected from the apk
if the time stamp changes. If not the one's from
PackageSetting(read from packages.xml) are reused.

Removed mergeSignatures and updateSignatures since we don't support
this any more.
Also fix some bugs related to reinstalling failed upgrades.

Some unit tests.

Change-Id: Ibdeff170bd386d723f774136b18e0ad59d9cdabb
2010-03-31 19:58:25 -07:00
Dianne Hackborn
8cb52c8a7d am bc50bdca: am e259bc77: Fix issue #2558391: Package manager problem when not replacing existing system partition app
Merge commit 'bc50bdca0ae1f7d173e4f589db250dc519740c16' into kraken

* commit 'bc50bdca0ae1f7d173e4f589db250dc519740c16':
  Fix issue #2558391: Package manager problem when not replacing existing system partition app
2010-03-31 11:17:01 -07:00
Dianne Hackborn
e259bc770b Fix issue #2558391: Package manager problem when not replacing existing system partition app
This fixes the package manager to ensure we can't get in this bad state of
an update to a system app being installed as a separate app.

Change-Id: I2a3f601bbc06b74f31ca09192993614bc6885ff7
2010-03-31 11:07:47 -07:00
Jeff Brown
a749f86974 Fix a previous bad merge.
Change-Id: I12e577873389d6200f8add252867e63dee2d2c3c
2010-03-31 00:43:36 -07:00
Jeff Brown
767225d820 resolved conflicts for merge of d9ee01a9 to kraken
Change-Id: I645177513e6dfa4b3b02c0061b8026bde4acde8d
2010-03-30 23:49:17 -07:00
Jeff Brown
0733079111 Show SD unavailable icon for apps on SD when ejected.
This change include a minor refactoring of PackageItemInfo and related
classes to eliminate code duplication and to avoid redundant work
searching for an ApplicationInfo instance we already have.

Bug: b/2537578
Change-Id: Id0794c3f055ea58b943028f7a84abc7dec9d0aac
2010-03-30 22:20:42 -07:00
Dianne Hackborn
b4915265a0 am ab86fc91: am de2722af: Merge "Package manager optimizations." into froyo
Merge commit 'ab86fc91f5b54b8b730c0f594f04bbfb4c41697a' into kraken

* commit 'ab86fc91f5b54b8b730c0f594f04bbfb4c41697a':
  Package manager optimizations.
2010-03-30 13:42:50 -07:00
Dianne Hackborn
d7c096845d Package manager optimizations.
Addresses:
Issue #2550648: PackageManagerService setComponentEnabledSetting unconditionally
writes Settings xml
Issue #2549084: Make PackageManager.addPermission have async version

Also make the writing of settings when changing the preferred activities to use
the same async mechanism, and fiddle with thread priorities in the background
thread to go up to foreground priority when holding the lock to write settings
and a few other places.  (At some point we should really clean this up to never
acquire the main lock while in the background.)

Change-Id: Ib2b7632543f6fb3f92a225518579f3b2d15e1413
2010-03-30 13:34:43 -07:00
Oscar Montemayor
1f4df90bfa DO NOT MERGE
Removing unused features from source tree.
Please refer to Bug#2502219.

Change-Id: I879c29bfd5ffe933f64bb1082aaae7c956450a5a
2010-03-29 18:12:24 -07:00
Dianne Hackborn
af7cea3a51 Fix issue #2540920: connectivity issues with tripit/pandora
Need to be sure to compute gids when SD card is mounted, since we
need the package info for that.  Note that this is not re-granting
permissions (and in the future we could optimize this to just pass
through the mounted apps).

Change-Id: I51e1c23d17a6429642132902ef75c65a307fc33a
2010-03-24 12:59:52 -07:00
Suchi Amalapurapu
c7537ee7b6 Clean up stale containers if needed at install time.
This is needed when restoring applications installed on sdcard
via Market after a data wipe. The stale containers need to be cleaned up before
reinstalling again.
Add a test case for installing when a stale container exists.

Change-Id: I20c30b3003e85fb31531dd3cf9cb59962fe8fe5f
2010-03-24 10:32:37 -07:00
Suchi Amalapurapu
f7f5dda5e5 Add new activity manager method to get list of running applications installed on sdcard.
Use new method in UsbStorageActivity.
Fix moving dex files.
moveDex should be suffixed with LI since it uses Installer

Change-Id: Id5ef0254578e84b9aae2c2ac44f722eb5a0fda1c
2010-03-23 16:56:08 -07:00
Dianne Hackborn
bbfd58a007 Fix bug where group IDs were not being assigned during boot.
Change-Id: Ic735e98b106932eef2c2458d73fa016274fd796f
2010-03-23 11:51:44 -07:00
Suchi Amalapurapu
f654a484b2 Don't delete stale containers on sdcard.
Comment out flaky test

Change-Id: Ic7da6421c1a1980c19f7f1c929976432245479fa
2010-03-23 09:59:08 -07:00
Dianne Hackborn
f657b63c1c Fix restoring of permissions after a reboot.
It turns out the whole loadedPermissions thing was pointless at this
point, and causing the problem: we would write out the granted
permissions, then at boot load them into loaded permissions, and
never actually put them in granted.

Just remove loadedPermissions.  The grantedPermissions (that is
the permissions the user has approved be granted to the app) are
all we care about.

Change-Id: I54d9dc418d6277ae0b35b8c1fc4b9c11f34f86f0
2010-03-22 18:08:07 -07:00
Suchi Amalapurapu
e99bb5f10b Add new method call back in MountService.
PackageManager invokes this call back when its done handling
the media status update.
Add new uid check for updateExternalMediaStatus
Change killPids method in ActivityManager.
Remove mountsd command in Pm.java We cannot arbitrarily enable/disable
packages in PackageManager now.

Change-Id: I28dcba4afd2b4486f68abdaa1628a31b66544c91
2010-03-22 10:49:49 -07:00
Dianne Hackborn
1afd1c90eb Maybe fix issue #2457218: Corrupt batterystats.bin file preventing phone boot - LIBtt68127
No steps to repro, but makes the code more robust by using the standard
JournaledFile class and doing sanity checks on the input it reads.

This required moving the JournaledFile class in to the framework (and
we really should get rid of either it or AtomicFile, but they have
different recovery semantics so that is tough).  Also went through and
cleaned up the file management in various places.

Change-Id: Ieb7268d8435e77dff66b6e67bb63b62e5dea572e
2010-03-19 13:59:07 -07:00
Suchi Amalapurapu
ebb83ade1e Grant permissions to apps on sd when enabling/disabling packages.
Change-Id: I0f011bd4a3348ccd46fd7ae9765edf8933b94142
2010-03-19 13:23:14 -07:00
Dianne Hackborn
806da1d46c 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
2010-03-18 19:25:19 -07:00
Suchi Amalapurapu
90d8ee650b 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
2010-03-18 17:44:21 -07:00
Dianne Hackborn
d4310ac944 Rework permissions to be retained when an app is temporarily uninstalled.
This allows us to keep the assigned permissions when apps are temporarily
removed due to the SD card being unmounted, and also if you use the
facility to uninstall an app but keep its data.

Also fixes issue #2515189: Potential permission spoofing attack in
Android (external bug 7166)

Change-Id: I2a120ec938552028c989f9e0e890c32773957738
2010-03-18 02:02:17 -07:00
Suchi Amalapurapu
14b6abda13 Add new install flag to install on internal flash only
Change default install location policy for new flag.
New error code for media unavailable.

Change-Id: I5a5d0828b067692b2b94a15a2bcc7534f796c1a2
2010-03-17 18:43:31 -07:00
Suchi Amalapurapu
8a9ab24a5c Do storage checks before initiating a move.
Add new remote method to check for insufficient error conditions.
Some fixes in MountService when updating media status on PackageManagerService
Fix size calculation condition in installd.

Add new error code if media is unavailable.
New tests for testing error codes.
Some additional debugging statements in MountService.

Change-Id: Ibfe90d5ed6c71d57f9c1c67806f38b5ae9ecdfbf
2010-03-16 16:36:26 -07:00
Dianne Hackborn
a2fd9d1786 Fix NPE when clearing preferred packages.
Fixes issue #2507124:
cts.PackageManagerRequiringPermissionsTest:testClearPackagePreferredActivities
is failing with NPE

Also introduce some compatibility code to simple ignore calls to set
preferred packages from old applications, and changes some package manager
logs to Slog.

Change-Id: Id3f98ac8e106da526ba4c12879a9ddaabf28f462
2010-03-11 23:40:24 -08:00
Dianne Hackborn
4b45041006 Need to keep new package's cert when using original-package.
Fixes bug #2504353: Lost all widgets and shortcuts after upgrading form FRE68 to FRE69

Change-Id: I62bab66bbd90bf0956d1716bae1b6073d01e2d8a
2010-03-11 16:20:08 -08:00
Dianne Hackborn
2ee89ea288 Applications should -not- be able to set preferred activities.
I can't believe I let this slip through.  And in the SDK no less. :(

The APIs for setting preferred activities will now throw a security
exception when used.  This may break some apps, we'll see how it
goes.  If it is too bad we can just make these log and not throw
anything, but I would much prefer they throw an exception.

Change-Id: I3aed434750eef8b202aa9d5bd774a0121be521c6
2010-03-10 21:26:23 -08:00
Suchi Amalapurapu
6069beb2df Rename ApplicationInfo.FLAG_ON_SDCARD to ApplicationInfo.FLAG_EXTERNAL_STORAGE
Change-Id: Iadef9f9bb2851c38b6d79be1bafbf932abce4210

Change-Id: I2e412bace3d8005db5057a3497bd836d0038b90c
2010-03-10 09:46:49 -08:00
Suchi Amalapurapu
a2b6c3775e 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
2010-03-09 09:24:35 -08:00
Christopher Tate
4528186e0d Refactor android.backup => android.app.backup
Change-Id: I0b21316ff890d7f3c7d4b82837bb60670724c2e8
2010-03-05 16:27:15 -08:00
Suchi Amalapurapu
9444bea903 Add null checks for strings 2010-03-05 11:37:57 -08:00
Suchi Amalapurapu
d32c8020dd Fix persisting flags for apps with data only
Force gc's before deleting containers.:
2010-03-04 18:16:17 -08:00
Dianne Hackborn
c1552397be Allow multiple original-package tags.
Also fix some issues with moving files from update commands.
2010-03-03 16:26:26 -08:00
Suchi Amalapurapu
9b10ef5fe8 Rework the way PackageManager binds to default container service.
Clean up stale containers when enabling/disabling packages on sdcard.
Check the path of packages which are being enabled.
Make sure gc's are done prior to destroying containers when moving applicati
as well as enabling/disabling packages for sdcard mount status changes.

Some miscellaneous issues
   Remove hack to avoid renaming containers.
   Fix test with forward locked apps
   Remove adding container id to asec list when renaming
   Some cosmetic changes to DefaultContainerService
2010-03-03 14:06:10 -08:00
Dianne Hackborn
87bba1ee14 Move DeviceAdmin APIs to android.app.admin.
Also add ability for admins to hide themselves when not in use,
a facility for admins to not allow other admins to reset
their password, and debug dumping.
2010-02-26 23:32:48 -08:00
Suchi Amalapurapu
1f9e1b4c37 Remove public variables in PackageManager
Dont invoke getInstallLocation for forward locked apps.
If INSTALL_ON_SDCARD is selected as default, forward locked
apps are not being installed because of conflicting flags.
2010-02-26 14:32:24 -08:00
Dianne Hackborn
2269d1572e 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.
2010-02-25 11:39:33 -08:00
Suchi Amalapurapu
c42e29e0a5 Add new handler mechanism in MountService to make unmount api asynchronous.
MountService updates state on PackageManager and then tries to
kill processes holding file references to media about to be unmounted by
invoking api on ACtivityManager. This is retried upto 4 times to make sure all
processes holding file references are killed before unmounting the media
at specified path.

Also changed PackageManger api to return boolean value to indicate if
MountService is likely to receive broadcasts related to apps on sd.
2010-02-24 20:30:03 -08:00