Commit Graph

108 Commits

Author SHA1 Message Date
Suchi Amalapurapu
af8e9f4805 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
2010-01-14 14:02:39 -08:00
Tom Taylor
f0108cda21 resolved conflicts for merge of ad2fa35d to master
Change-Id: Ia4362cd48ac0689b91003943a4cd9660da72ff90
2009-12-22 10:11:55 -08:00
Tom Taylor
d4a4729c0c Update imports to android-common
Several files were moved to android-common. Update all the references
to import those files from the new location.
2009-12-21 13:59:18 -08:00
Doug Zongker
18803d37e2 resolved conflicts for merge of 5a2fdbba to master 2009-12-07 14:12:02 -08:00
Doug Zongker
ab5c49c7e7 move event log tags used by system server into this package
We can now locate event log tag definitions in individual packages
(and java constants for the tag numbers get auto-generated), so move
all the tags used by the system server into the package.
2009-12-04 10:31:43 -08:00
Dianne Hackborn
8a1b6decfb am e2585127: am 9ed7dc10: am 5886050f: Merge change I0d8f7593 into eclair
Merge commit 'e2585127974ce972a013407e2af95d8776a99a8e'

* commit 'e2585127974ce972a013407e2af95d8776a99a8e':
  Fix issue #2296457: PackageManager.addPackageToPreferred needs to a no-op
2009-12-02 20:24:44 -08:00
Dianne Hackborn
a7ca0e5e32 Fix issue #2296457: PackageManager.addPackageToPreferred needs to a no-op
Change-Id: I0d8f75938226e1bb49cf7b1154445631b0bb0bc9
2009-12-01 14:31:55 -08:00
Oscar Montemayor
a8529f6867 Encrypted File Systems Project. Installer modifications.
Started to modify isntaller for data redirection to a secure location.
2009-11-24 11:44:19 -08:00
David 'Digit' Turner
feba743b47 PackageManager: Support secondary ABI for native code at installation time.
The goal of this change is to allow the Package Manager to look for native
shared libraries corresponding to the CPU ABI reported by ro.product.cpu.abi2
if none was found for the CPU ABI given by ro.product.cpu.abi

This is used to support both ARMv5 and ARMv7 native code on modern ARMv7-based
devices. Typically, such a device would report a primary ABI of 'armeabi-v7a'
and a secondary one of 'armeabi', to indicate that it can run the binaries
generated for both.
2009-11-12 15:55:17 -08:00
Dianne Hackborn
86a72dacbe Fix issue #2256270: Package manager sends bad broadcasts when components change
Also reworks this intent protocol a little bit to be much more efficient, only
requiring one broadcast per package.

Change-Id: I580de4843ebd3c7f2e6df7295a2f80d2937cef7c
2009-11-11 20:13:53 -08:00
Suchi Amalapurapu
d83006cbe8 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
2009-10-29 00:46:55 -07:00
Suchi Amalapurapu
14e833faa0 If we fail to persist the current settings and fall back to the back settings file
when reading settings in PackageManager, we might rename the corrupted settings to
backup(in case of power failure between the earlier write failure and file deletion)
and end up loosing both files.
So just clear up the corrupted current settings file if we have backup.
The backup wouldn't exist if everything went well with persisting the earlier settings.

We do this in both read and write just in case.
2009-10-20 13:26:37 -07:00
Suchi Amalapurapu
b897cff1ef do not merge
Return valid package info for packages that have been uninstalled with
an option to retain data and resources using the flag GET_UNINSTALLED_PACKAGES
These packages do not have a package setting. just check the flag and return
the required info from PackageParser.generatePackageInfo
2009-10-15 20:20:00 -07:00
Suchi Amalapurapu
8d5ae98549 Make sdk version and code names static finals in PackageParser.
Remove api to set these values.
    Remove an unused method in AppSecurityPermissions
2009-10-06 10:29:06 -07:00
Suchi Amalapurapu
8550f25523 Check if rename of backed up file fails before persisting new changes.
If not these system services will end up with inconsistent settings files
when the device runs out of storage.
Delete mangled settings file in PackageManager if the current write fails
so that we don't end up overwriting the backed up version with the
mangled version
Include null check when retrieving fwd locked resource for an existing package
2009-09-30 15:36:29 -07:00
Dianne Hackborn
a33e3f7925 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
2009-09-30 15:09:33 -07:00
Dianne Hackborn
039c68e756 The touch screen is probably a feature.
Also extend the feature APIs a bit.

Change-Id: I99e932d7f4e61edb0e20f75c55e9831e4b59a14d
2009-09-26 16:39:23 -07:00
Suchi Amalapurapu
3d7e855df3 Check if rename of current settings file was successful before persisting
new changes to settings.
2009-09-17 16:30:14 -07:00
Suchi Amalapurapu
ee5ece4a4d Remove deadlock in PackageManager when installing or upgrading packages.
PM first creates a temporary file from the input package uri before installing it.
if the package uri points to a content uri, the content provider  has to be retrieved via the ActivityManager
which could cause deadlocks with the package manager locks being held.
Clean up by always copying or creating temporary files before acquiring these locks.
Fix issue when restoring a failed upgrade for third party apps.
2009-09-15 16:42:20 -07:00
Mike Lockwood
d42685d5de Add support for running apps with uid/gid AID_LOG by specifying android.uid.log in the manifest
This is needed to allow the BugReportService to start the dumpstate service.

Change-Id: I12cab23767c919592da102c654b6b80416717661
Signed-off-by: Mike Lockwood <lockwood@android.com>
2009-09-03 13:47:54 -04:00
Suchi Amalapurapu
0214e9475f For intent ACTION_PACKAGE_CHANGED, there could be a lot of broadcasts related to enabling/disabling
components by apps which could result in thrashing on the PackageManager. For apps that
    do not want to be restarted when such a broadcast is sent, we can just aggregate these broadcasts and
    handle them at one go.
    Changes include:
    New structure to hold pending broadcasts by class name. If a component is enabled or disabled frequently
    aggregate component enabled/disabled settings in this structure in a 10 second window and then
    send out the accumulated list of broadcasts to the ActivityManager.
    A new Handler implementation handles this message
    Add new attribute name EXTRA_CHANGED_COMPONENT_NAME in broadcast intent Intent.ACTION_PACKAGE_CHANGED for
    additional information for apps like Launcher.
    Rename a couple of parameters, the names were too jarring.
2009-09-02 12:32:32 -07:00
Dianne Hackborn
49237345d8 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
2009-08-27 21:51:00 -07:00
Jeff Hamilton
5bfc64f8f6 Include the list of registered providers the package manager dumpsys output. 2009-08-18 14:04:52 -05:00
Dianne Hackborn
766cbfe44b Add new API to compare certs of two UIDs. 2009-08-12 21:40:05 -07:00
Android (Google) Code Review
b13f32c0a0 am 8b2cdcd1: Merge change 20037 into donut
Merge commit '8b2cdcd184acfebfb245b15a71f5f1c32e53b050'

* commit '8b2cdcd184acfebfb245b15a71f5f1c32e53b050':
  fix issue with gids not being added for packages with shared user id
2009-08-05 15:45:34 -07:00
Suchi Amalapurapu
2ed287b6ba fix issue with gids not being added for packages with shared user id
Squashed commit of the following:

commit 2bc4c29dab22d8a541dfca0a20320b307ba64cfb
Author: Suchi Amalapurapu <asuchitra@google.com>
Date:   Tue Aug 4 16:24:55 2009 -0700

    fix issue with gids not being added for packages with shared user id
2009-08-05 14:59:07 -07:00
Android (Google) Code Review
cb798bcf13 am 73139aea: Merge change 9075 into donut
Merge commit '73139aead7203c22f3a4abb5e9fd8abd5ef249b1'

* commit '73139aead7203c22f3a4abb5e9fd8abd5ef249b1':
  Change the resource path for fwd locked apps when scanning the fwd locked install
2009-07-30 16:05:33 -07:00
Suchi Amalapurapu
f2c1072a3b Change the resource path for fwd locked apps when scanning the fwd locked install
directory
2009-07-29 18:29:19 -07:00
Android (Google) Code Review
b3c82efb47 am 1dd6936a: Merge change 8728 into donut
Merge commit '1dd6936a862be97efca02e4b7582a9fca1fcc269'

* commit '1dd6936a862be97efca02e4b7582a9fca1fcc269':
  Fix resource code and version attributes
2009-07-28 10:21:45 -07:00
Suchi Amalapurapu
261e66acd1 Fix resource code and version attributes
Create a new package setting object for updated system apps rather than moving
around the same setting. This updates the resource, code and version correctly.
For updating system packages, disable the package first which removes the entry
from internal structures, create a new package setting, add it to list of user id's
then rest of installation steps, kill the process if needed via ActivityManager
then add this setting if everything was successful. This also fixes issues with
updating values prematurely.

When a new version of system package is available via OTA, just physically remove
entries for pkg. Note that the component and other info will be eventually updated
later on when scanning the package.
Also move certificate verification slightly ahead before scanning packages.

Some null checks

New api's in ActivityManager to kill an application pkg before finishing installation
2009-07-28 10:21:38 -07:00
Dianne Hackborn
c00c04d7d8 am 11b822d2: Simplify density compatibility to a boolean.
Merge commit '11b822d2a91ea17c34c0cb1c11e80a9a30d72864'

* commit '11b822d2a91ea17c34c0cb1c11e80a9a30d72864':
  Simplify density compatibility to a boolean.
2009-07-22 12:01:19 -07:00
Dianne Hackborn
11b822d2a9 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.
2009-07-22 11:58:31 -07:00
Android (Google) Code Review
a8339dfec9 am 9fc20b0e: Merge change 8126 into donut
Merge commit '9fc20b0e381b5fe00b7049ef357c839cd05a33bf'

* commit '9fc20b0e381b5fe00b7049ef357c839cd05a33bf':
  First pass at reworking screen density/size APIs.
2009-07-21 19:03:53 -07:00
Dianne Hackborn
c4db95c077 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.
2009-07-21 18:28:42 -07:00
Android (Google) Code Review
fe923cf2d6 am 2c25fac2: Merge change 8036 into donut
Merge commit '2c25fac23e5daafd62238f4c3dd031e3f4cd76f1'

* commit '2c25fac23e5daafd62238f4c3dd031e3f4cd76f1':
  * Disable compatibility mode for all cases.
2009-07-21 14:38:32 -07:00
Mitsuru Oshima
69fff4a72d * Disable compatibility mode for all cases. 2009-07-21 11:35:18 -07:00
Mitsuru Oshima
a065b01904 am 841f13c8: * 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,
Merge commit '841f13c8e9ff3f7695b6c18a8abcec3c947983ff'

* commit '841f13c8e9ff3f7695b6c18a8abcec3c947983ff':
  * Reverted the change in PackageParser that I checked by accident
2009-07-19 21:14:56 -07:00
Mitsuru Oshima
841f13c8e9 * 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
2009-07-19 19:17:06 -07:00
Suchi Amalapurapu
9ba6998b0b am ea5c0444: When apps switch between system and data partition the code and resource paths should also be updated based on which version is being picked up. update the code and resource paths when a path change is detected
Merge commit 'ea5c044412f6853d686e93b8bef07f4729b6ad26'

* commit 'ea5c044412f6853d686e93b8bef07f4729b6ad26':
  When apps switch between system and data partition the code and
2009-07-13 11:20:29 -07:00
Suchi Amalapurapu
ea5c044412 When apps switch between system and data partition the code and
resource paths should also be updated based on which version
is being picked up. update the code and resource paths when a path change
is detected
2009-07-13 10:57:50 -07:00
Dianne Hackborn
54a26bc85f resolved conflicts for merge of 889c2d37 to master 2009-07-10 16:05:59 -07:00
Dianne Hackborn
854060af30 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.
2009-07-09 18:14:31 -07:00
Android (Google) Code Review
4753ff4466 am 7e8cbfc2: Merge change 6143 into donut
Merge commit '7e8cbfc2bc3ea2334c38db7fd2b6a1e17eefcac6'

* commit '7e8cbfc2bc3ea2334c38db7fd2b6a1e17eefcac6':
  Fix the simulator.
2009-07-06 11:17:12 -07:00
Android (Google) Code Review
3042bb6238 am 9701b3d5: Merge change 5979 into donut
Merge commit '9701b3d594868bd6750d5887af560c6295ea091b'

* commit '9701b3d594868bd6750d5887af560c6295ea091b':
  Remove the constraint to assign new uid when code path changes for system packages
2009-07-06 11:02:59 -07:00
Marco Nelissen
d595c79cdd Fix the simulator. 2009-07-02 15:23:26 -07:00
Android (Google) Code Review
d96e0b0cf1 am 6e1647a2: Merge change 5829 into donut
Merge commit '6e1647a212317f4ee8bcc23948b6621a59172954'

* commit '6e1647a212317f4ee8bcc23948b6621a59172954':
  Fix issue #1673793: Theme styles don't apply.
2009-07-01 22:43:58 -07:00
Suchi Amalapurapu
b24a96701a Remove the constraint to assign new uid when code path changes for system packages 2009-07-01 16:16:56 -07:00
Dianne Hackborn
de7faf658c Fix issue #1673793: Theme styles don't apply.
It turns out this was not a problem in the resource code at all.  Rather,
the system process has a cache of pre-loaded attributes it uses to avoid
continually reloading things as it needs them.  Well it turns out this
cache wasn't flushed after a package was uninstalled or a configuration
changed, so you could re-install an app where you change its style resources
so its theme now points to one that is inconsistent in the cache.

This is mostly a problem for developers, where they continually install
new versions of an app where resources have changed.  This could possibly
show up when updating an app on a normal phone, although the problem would
eventually correct itself since this cache uses weak references.

Anyway, the cache is now reworked to be flushed appropriately.

This change also includes an update to aapt to be able to dump the
contents of bags in resources.
2009-06-30 13:27:30 -07:00
Android (Google) Code Review
ecf2b68d83 am 7941e903: Merge change 5091 into donut
Merge commit '7941e903c973af66075bbd4fa4bcadf021a61ccc'

* commit '7941e903c973af66075bbd4fa4bcadf021a61ccc':
  * new screen resolution support impl.
2009-06-24 17:56:05 -07:00
Mitsuru Oshima
64f59342d4 * new screen resolution support impl.
* use full window for activities, and shift & clip the content
  * refactored the compatibility code, and introdcued Translator class to handle cooridnate translations.
  * removed a workaround to handle an activity with configChagne=rotation in old implementation.
  * I'll fix background issue on rotation in next CL.

  * removed unnecessary scaling code in SurfaceView, which I forgot to remove when I changed SurfaceView
    not to scale the content.
2009-06-23 23:11:55 -07:00