Now old applications will automatically be granted it. Also renamed it from
SDCARD_WRITE to WRITE_SDCARD to be consistent with our other permissions,
and re-arranged how we do targetSdkVersion to actually be usuable for this
kind of stuff.
Note that right now this results in basically all apps being given the
WRITE_SDCARD permission, because their targetSdkVersion is not set. I will
be dealing with that in a future change.
Merge commit '5d6d773fab559fdc12e553d60d789f3991ac552c' into donut
* commit '5d6d773fab559fdc12e553d60d789f3991ac552c':
AI 148824: Fix issue #1851541 (sharedUserId requests not being checked for matching signatures on .apk).
To address issues where we could leave half-installed applications around if there was a failure during the install, we split getPackageLP() into two phases: the first would create the record, and only after doing all verification checks would we call insertPackageSettingLP() to do the remaining part of the original implementation and actually insert the record into the data structures.
Unfortunately it was only in insertPackageSettingLP() that we would set the sharedUser field of the PackageSetting structure, so when before that we went to verify certificates, we didn't think it had requested a shared user ID, and let it through without checking.
This fix simply sets the sharedUser field when the PackageSetting structure is first created, so we will actually check against its certs. We still also set this again in insertPackageSettingLP(), but there is no harm in this because the only time we call this function is in that big install func, which just passes in the same shared user that it had when first getting the package.
BUG=1851541
Automated import of CL 148824
You can now use android:testOnly="true" to not allow your .apk to be installed
as a normal app. The only way to do so is with the pm command and giving the
-t option, which sets a new INSTALL_ALLOW_TEST flag when installing.
I also used this to clean up the install API... actually, mostly to hide
it, since it is not accessible to apps so shouldn't be in the SDK. We
will be doing some more work on it, so this will prevent adding yet
another backwards-compatibility-for-no-reason version.
This adds new attributes for specifying a targetSdkVersion and maxSdkVersion.
There is a new ApplicationInfo flag that is set if the application has set
its targetSdkVersion to the current platform or later. Also you can now
use a string for minSdkVersion and targetSdkVerion, to indicate you are
building against a development tree instead of an official platform.
commit 85585eb0860e52a3dc3b8efe57ef8b30ee35c98d
Author: Suchi Amalapurapu <asuchitra@google.com>
Date: Thu May 7 11:59:24 2009 -0700
Remove new error code in PackageManager.
Remove version check in installation code path. Let the install continue irrespective of version number.
Check if data needs to be wiped(for downgrades only) in uninstallation code path.
Also remove only code and resources when checking for updated system packages(via ota)
Add version attribute when persisting package settings
commit f90797348c5170e6263d249e4fc77f1c0328eb27
Author: Suchi Amalapurapu <asuchitra@google.com>
Date: Thu May 7 10:54:07 2009 -0700
remove trailing white spaces
hide new install code in PackageManager
commit 397eb81265160f73caf9827d381ed6622041d54e
Author: Suchi Amalapurapu <asuchitra@google.com>
Date: Thu May 7 10:33:23 2009 -0700
Add version check in install and uninstall code paths.
New error code for invalid upgrades in PackageManager
There are three major classes of changes here:
- Avoid writing lines where their values are often empty, false, or some other typical thing.
- Use partial writes to the PrintWriter to avoid creating temporary strings.
- Use StringBuilder where we need to generate real String objects (and where possible cache the result).