Merge "Unhide new PackageManager APIs for API 14" into ics-factoryrom

This commit is contained in:
Kenny Root
2011-09-21 16:35:52 -07:00
committed by Android (Google) Code Review
10 changed files with 59 additions and 23 deletions

View File

@ -759,6 +759,7 @@ package android {
field public static final int prompt = 16843131; // 0x101017b field public static final int prompt = 16843131; // 0x101017b
field public static final int propertyName = 16843489; // 0x10102e1 field public static final int propertyName = 16843489; // 0x10102e1
field public static final int protectionLevel = 16842761; // 0x1010009 field public static final int protectionLevel = 16842761; // 0x1010009
field public static final int publicKey = 16843686; // 0x10103a6
field public static final int queryActionMsg = 16843227; // 0x10101db field public static final int queryActionMsg = 16843227; // 0x10101db
field public static final int queryAfterZeroResults = 16843394; // 0x1010282 field public static final int queryAfterZeroResults = 16843394; // 0x1010282
field public static final int queryHint = 16843608; // 0x1010358 field public static final int queryHint = 16843608; // 0x1010358
@ -5454,6 +5455,7 @@ package android.content {
field public static final java.lang.String ACTION_PACKAGE_FIRST_LAUNCH = "android.intent.action.PACKAGE_FIRST_LAUNCH"; field public static final java.lang.String ACTION_PACKAGE_FIRST_LAUNCH = "android.intent.action.PACKAGE_FIRST_LAUNCH";
field public static final java.lang.String ACTION_PACKAGE_FULLY_REMOVED = "android.intent.action.PACKAGE_FULLY_REMOVED"; field public static final java.lang.String ACTION_PACKAGE_FULLY_REMOVED = "android.intent.action.PACKAGE_FULLY_REMOVED";
field public static final deprecated java.lang.String ACTION_PACKAGE_INSTALL = "android.intent.action.PACKAGE_INSTALL"; field public static final deprecated java.lang.String ACTION_PACKAGE_INSTALL = "android.intent.action.PACKAGE_INSTALL";
field public static final java.lang.String ACTION_PACKAGE_NEEDS_VERIFICATION = "android.intent.action.PACKAGE_NEEDS_VERIFICATION";
field public static final java.lang.String ACTION_PACKAGE_REMOVED = "android.intent.action.PACKAGE_REMOVED"; field public static final java.lang.String ACTION_PACKAGE_REMOVED = "android.intent.action.PACKAGE_REMOVED";
field public static final java.lang.String ACTION_PACKAGE_REPLACED = "android.intent.action.PACKAGE_REPLACED"; field public static final java.lang.String ACTION_PACKAGE_REPLACED = "android.intent.action.PACKAGE_REPLACED";
field public static final java.lang.String ACTION_PACKAGE_RESTARTED = "android.intent.action.PACKAGE_RESTARTED"; field public static final java.lang.String ACTION_PACKAGE_RESTARTED = "android.intent.action.PACKAGE_RESTARTED";
@ -6207,11 +6209,13 @@ package android.content.pm {
method public abstract void setApplicationEnabledSetting(java.lang.String, int, int); method public abstract void setApplicationEnabledSetting(java.lang.String, int, int);
method public abstract void setComponentEnabledSetting(android.content.ComponentName, int, int); method public abstract void setComponentEnabledSetting(android.content.ComponentName, int, int);
method public abstract void setInstallerPackageName(java.lang.String, java.lang.String); method public abstract void setInstallerPackageName(java.lang.String, java.lang.String);
method public abstract void verifyPendingInstall(int, int);
field public static final int COMPONENT_ENABLED_STATE_DEFAULT = 0; // 0x0 field public static final int COMPONENT_ENABLED_STATE_DEFAULT = 0; // 0x0
field public static final int COMPONENT_ENABLED_STATE_DISABLED = 2; // 0x2 field public static final int COMPONENT_ENABLED_STATE_DISABLED = 2; // 0x2
field public static final int COMPONENT_ENABLED_STATE_DISABLED_USER = 3; // 0x3 field public static final int COMPONENT_ENABLED_STATE_DISABLED_USER = 3; // 0x3
field public static final int COMPONENT_ENABLED_STATE_ENABLED = 1; // 0x1 field public static final int COMPONENT_ENABLED_STATE_ENABLED = 1; // 0x1
field public static final int DONT_KILL_APP = 1; // 0x1 field public static final int DONT_KILL_APP = 1; // 0x1
field public static final java.lang.String EXTRA_VERIFICATION_ID = "android.content.pm.extra.VERIFICATION_ID";
field public static final java.lang.String FEATURE_AUDIO_LOW_LATENCY = "android.hardware.audio.low_latency"; field public static final java.lang.String FEATURE_AUDIO_LOW_LATENCY = "android.hardware.audio.low_latency";
field public static final java.lang.String FEATURE_BLUETOOTH = "android.hardware.bluetooth"; field public static final java.lang.String FEATURE_BLUETOOTH = "android.hardware.bluetooth";
field public static final java.lang.String FEATURE_CAMERA = "android.hardware.camera"; field public static final java.lang.String FEATURE_CAMERA = "android.hardware.camera";
@ -6273,6 +6277,8 @@ package android.content.pm {
field public static final int SIGNATURE_NO_MATCH = -3; // 0xfffffffd field public static final int SIGNATURE_NO_MATCH = -3; // 0xfffffffd
field public static final int SIGNATURE_SECOND_NOT_SIGNED = -2; // 0xfffffffe field public static final int SIGNATURE_SECOND_NOT_SIGNED = -2; // 0xfffffffe
field public static final int SIGNATURE_UNKNOWN_PACKAGE = -4; // 0xfffffffc field public static final int SIGNATURE_UNKNOWN_PACKAGE = -4; // 0xfffffffc
field public static final int VERIFICATION_ALLOW = 1; // 0x1
field public static final int VERIFICATION_REJECT = -1; // 0xffffffff
} }
public static class PackageManager.NameNotFoundException extends android.util.AndroidException { public static class PackageManager.NameNotFoundException extends android.util.AndroidException {
@ -19834,6 +19840,7 @@ package android.test.mock {
method public void setApplicationEnabledSetting(java.lang.String, int, int); method public void setApplicationEnabledSetting(java.lang.String, int, int);
method public void setComponentEnabledSetting(android.content.ComponentName, int, int); method public void setComponentEnabledSetting(android.content.ComponentName, int, int);
method public void setInstallerPackageName(java.lang.String, java.lang.String); method public void setInstallerPackageName(java.lang.String, java.lang.String);
method public void verifyPendingInstall(int, int);
} }
public class MockResources extends android.content.res.Resources { public class MockResources extends android.content.res.Resources {

View File

@ -759,6 +759,7 @@ package android {
field public static final int prompt = 16843131; // 0x101017b field public static final int prompt = 16843131; // 0x101017b
field public static final int propertyName = 16843489; // 0x10102e1 field public static final int propertyName = 16843489; // 0x10102e1
field public static final int protectionLevel = 16842761; // 0x1010009 field public static final int protectionLevel = 16842761; // 0x1010009
field public static final int publicKey = 16843686; // 0x10103a6
field public static final int queryActionMsg = 16843227; // 0x10101db field public static final int queryActionMsg = 16843227; // 0x10101db
field public static final int queryAfterZeroResults = 16843394; // 0x1010282 field public static final int queryAfterZeroResults = 16843394; // 0x1010282
field public static final int queryHint = 16843608; // 0x1010358 field public static final int queryHint = 16843608; // 0x1010358
@ -5454,6 +5455,7 @@ package android.content {
field public static final java.lang.String ACTION_PACKAGE_FIRST_LAUNCH = "android.intent.action.PACKAGE_FIRST_LAUNCH"; field public static final java.lang.String ACTION_PACKAGE_FIRST_LAUNCH = "android.intent.action.PACKAGE_FIRST_LAUNCH";
field public static final java.lang.String ACTION_PACKAGE_FULLY_REMOVED = "android.intent.action.PACKAGE_FULLY_REMOVED"; field public static final java.lang.String ACTION_PACKAGE_FULLY_REMOVED = "android.intent.action.PACKAGE_FULLY_REMOVED";
field public static final deprecated java.lang.String ACTION_PACKAGE_INSTALL = "android.intent.action.PACKAGE_INSTALL"; field public static final deprecated java.lang.String ACTION_PACKAGE_INSTALL = "android.intent.action.PACKAGE_INSTALL";
field public static final java.lang.String ACTION_PACKAGE_NEEDS_VERIFICATION = "android.intent.action.PACKAGE_NEEDS_VERIFICATION";
field public static final java.lang.String ACTION_PACKAGE_REMOVED = "android.intent.action.PACKAGE_REMOVED"; field public static final java.lang.String ACTION_PACKAGE_REMOVED = "android.intent.action.PACKAGE_REMOVED";
field public static final java.lang.String ACTION_PACKAGE_REPLACED = "android.intent.action.PACKAGE_REPLACED"; field public static final java.lang.String ACTION_PACKAGE_REPLACED = "android.intent.action.PACKAGE_REPLACED";
field public static final java.lang.String ACTION_PACKAGE_RESTARTED = "android.intent.action.PACKAGE_RESTARTED"; field public static final java.lang.String ACTION_PACKAGE_RESTARTED = "android.intent.action.PACKAGE_RESTARTED";
@ -6207,11 +6209,13 @@ package android.content.pm {
method public abstract void setApplicationEnabledSetting(java.lang.String, int, int); method public abstract void setApplicationEnabledSetting(java.lang.String, int, int);
method public abstract void setComponentEnabledSetting(android.content.ComponentName, int, int); method public abstract void setComponentEnabledSetting(android.content.ComponentName, int, int);
method public abstract void setInstallerPackageName(java.lang.String, java.lang.String); method public abstract void setInstallerPackageName(java.lang.String, java.lang.String);
method public abstract void verifyPendingInstall(int, int);
field public static final int COMPONENT_ENABLED_STATE_DEFAULT = 0; // 0x0 field public static final int COMPONENT_ENABLED_STATE_DEFAULT = 0; // 0x0
field public static final int COMPONENT_ENABLED_STATE_DISABLED = 2; // 0x2 field public static final int COMPONENT_ENABLED_STATE_DISABLED = 2; // 0x2
field public static final int COMPONENT_ENABLED_STATE_DISABLED_USER = 3; // 0x3 field public static final int COMPONENT_ENABLED_STATE_DISABLED_USER = 3; // 0x3
field public static final int COMPONENT_ENABLED_STATE_ENABLED = 1; // 0x1 field public static final int COMPONENT_ENABLED_STATE_ENABLED = 1; // 0x1
field public static final int DONT_KILL_APP = 1; // 0x1 field public static final int DONT_KILL_APP = 1; // 0x1
field public static final java.lang.String EXTRA_VERIFICATION_ID = "android.content.pm.extra.VERIFICATION_ID";
field public static final java.lang.String FEATURE_AUDIO_LOW_LATENCY = "android.hardware.audio.low_latency"; field public static final java.lang.String FEATURE_AUDIO_LOW_LATENCY = "android.hardware.audio.low_latency";
field public static final java.lang.String FEATURE_BLUETOOTH = "android.hardware.bluetooth"; field public static final java.lang.String FEATURE_BLUETOOTH = "android.hardware.bluetooth";
field public static final java.lang.String FEATURE_CAMERA = "android.hardware.camera"; field public static final java.lang.String FEATURE_CAMERA = "android.hardware.camera";
@ -6273,6 +6277,8 @@ package android.content.pm {
field public static final int SIGNATURE_NO_MATCH = -3; // 0xfffffffd field public static final int SIGNATURE_NO_MATCH = -3; // 0xfffffffd
field public static final int SIGNATURE_SECOND_NOT_SIGNED = -2; // 0xfffffffe field public static final int SIGNATURE_SECOND_NOT_SIGNED = -2; // 0xfffffffe
field public static final int SIGNATURE_UNKNOWN_PACKAGE = -4; // 0xfffffffc field public static final int SIGNATURE_UNKNOWN_PACKAGE = -4; // 0xfffffffc
field public static final int VERIFICATION_ALLOW = 1; // 0x1
field public static final int VERIFICATION_REJECT = -1; // 0xffffffff
} }
public static class PackageManager.NameNotFoundException extends android.util.AndroidException { public static class PackageManager.NameNotFoundException extends android.util.AndroidException {
@ -19834,6 +19840,7 @@ package android.test.mock {
method public void setApplicationEnabledSetting(java.lang.String, int, int); method public void setApplicationEnabledSetting(java.lang.String, int, int);
method public void setComponentEnabledSetting(android.content.ComponentName, int, int); method public void setComponentEnabledSetting(android.content.ComponentName, int, int);
method public void setInstallerPackageName(java.lang.String, java.lang.String); method public void setInstallerPackageName(java.lang.String, java.lang.String);
method public void verifyPendingInstall(int, int);
} }
public class MockResources extends android.content.res.Resources { public class MockResources extends android.content.res.Resources {

View File

@ -954,9 +954,9 @@ final class ApplicationPackageManager extends PackageManager {
} }
@Override @Override
public void verifyPendingInstall(int id, boolean verified, String failureMessage) { public void verifyPendingInstall(int id, int response) {
try { try {
mPM.verifyPendingInstall(id, verified, failureMessage); mPM.verifyPendingInstall(id, response);
} catch (RemoteException e) { } catch (RemoteException e) {
// Should never happen! // Should never happen!
} }

View File

@ -1535,8 +1535,6 @@ public class Intent implements Parcelable, Cloneable {
* <p class="note"> * <p class="note">
* This is a protected intent that can only be sent by the system. * This is a protected intent that can only be sent by the system.
* </p> * </p>
*
* @hide
*/ */
@SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION) @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
public static final String ACTION_PACKAGE_NEEDS_VERIFICATION = "android.intent.action.PACKAGE_NEEDS_VERIFICATION"; public static final String ACTION_PACKAGE_NEEDS_VERIFICATION = "android.intent.action.PACKAGE_NEEDS_VERIFICATION";

View File

@ -359,7 +359,7 @@ interface IPackageManager {
int flags, in String installerPackageName, in Uri verificationURI, int flags, in String installerPackageName, in Uri verificationURI,
in ManifestDigest manifestDigest); in ManifestDigest manifestDigest);
void verifyPendingInstall(int id, boolean verified, in String message); void verifyPendingInstall(int id, int verificationCode);
VerifierDeviceIdentity getVerifierDeviceIdentity(); VerifierDeviceIdentity getVerifierDeviceIdentity();
} }

View File

@ -724,8 +724,23 @@ public abstract class PackageManager {
*/ */
public static final int MOVE_EXTERNAL_MEDIA = 0x00000002; public static final int MOVE_EXTERNAL_MEDIA = 0x00000002;
/**
* Used as the {@code verificationCode} argument for
* {@link PackageManager#verifyPendingInstall} to indicate that the calling
* package verifier allows the installation to proceed.
*/
public static final int VERIFICATION_ALLOW = 1;
/**
* Used as the {@code verificationCode} argument for
* {@link PackageManager#verifyPendingInstall} to indicate the calling
* package verifier does not vote to allow the installation to proceed.
*/
public static final int VERIFICATION_REJECT = -1;
/** /**
* Range of IDs allocated for a user. * Range of IDs allocated for a user.
*
* @hide * @hide
*/ */
public static final int PER_USER_RANGE = 100000; public static final int PER_USER_RANGE = 100000;
@ -1045,9 +1060,7 @@ public abstract class PackageManager {
/** /**
* Extra field name for the ID of a package pending verification. Passed to * Extra field name for the ID of a package pending verification. Passed to
* a package verifier and is used to call back to * a package verifier and is used to call back to
* {@link PackageManager#verifyPendingInstall(int, boolean)} * {@link PackageManager#verifyPendingInstall(int, int)}
*
* @hide
*/ */
public static final String EXTRA_VERIFICATION_ID = "android.content.pm.extra.VERIFICATION_ID"; public static final String EXTRA_VERIFICATION_ID = "android.content.pm.extra.VERIFICATION_ID";
@ -2156,16 +2169,17 @@ public abstract class PackageManager {
/** /**
* Allows a package listening to the * Allows a package listening to the
* {@link Intent#ACTION_PACKAGE_NEEDS_VERIFICATION package verification * {@link Intent#ACTION_PACKAGE_NEEDS_VERIFICATION package verification
* broadcast} to respond to the package manager. * broadcast} to respond to the package manager. The response must include
* the {@code verificationCode} which is one of
* {@link PackageManager#VERIFICATION_ALLOW} or
* {@link PackageManager#VERIFICATION_REJECT}.
* *
* @param id pending package identifier as passed via the * @param id pending package identifier as passed via the
* {@link PackageManager#EXTRA_VERIFICATION_ID} Intent extra * {@link PackageManager#EXTRA_VERIFICATION_ID} Intent extra
* @param verified whether the package was verified as valid * @param verificationCode either {@link PackageManager#VERIFICATION_ALLOW}
* @param failureMessage if verification was false, this is the error * or {@link PackageManager#VERIFICATION_REJECT}.
* message that may be shown to the user
* @hide
*/ */
public abstract void verifyPendingInstall(int id, boolean verified, String failureMessage); public abstract void verifyPendingInstall(int id, int verificationCode);
/** /**
* Change the installer associated with a given package. There are limitations * Change the installer associated with a given package. There are limitations

View File

@ -1562,6 +1562,19 @@
</attr> </attr>
</declare-styleable> </declare-styleable>
<!-- The attribute that holds a Base64-encoded public key. -->
<attr name="publicKey" format="string" />
<!-- Attributes relating to a package verifier -->
<declare-styleable name="AndroidManifestPackageVerifier" parent="AndroidManifest">
<!-- Specifies the Java-style package name that defines this
package verifier. -->
<attr name="name" />
<!-- The Base64 encoded public key of the package verifier's
signature. -->
<attr name="publicKey" />
</declare-styleable>
<!-- Declaration of an {@link android.content.Intent} object in XML. May <!-- Declaration of an {@link android.content.Intent} object in XML. May
also include zero or more {@link #IntentCategory <category> and also include zero or more {@link #IntentCategory <category> and

View File

@ -1768,6 +1768,7 @@
<public type="attr" name="listPreferredItemPaddingLeft" id="0x010103a3" /> <public type="attr" name="listPreferredItemPaddingLeft" id="0x010103a3" />
<public type="attr" name="listPreferredItemPaddingRight" id="0x010103a4" /> <public type="attr" name="listPreferredItemPaddingRight" id="0x010103a4" />
<public type="attr" name="requiresFadingEdge" id="0x010103a5" /> <public type="attr" name="requiresFadingEdge" id="0x010103a5" />
<public type="attr" name="publicKey" id="0x010103a6" />
<public type="style" name="TextAppearance.SuggestionHighlight" id="0x01030118" /> <public type="style" name="TextAppearance.SuggestionHighlight" id="0x01030118" />
<public type="style" name="Theme.Holo.Light.DarkActionBar" id="0x01030119" /> <public type="style" name="Theme.Holo.Light.DarkActionBar" id="0x01030119" />

View File

@ -4849,15 +4849,14 @@ public class PackageManagerService extends IPackageManager.Stub {
} }
@Override @Override
public void verifyPendingInstall(int id, boolean verified, String message) public void verifyPendingInstall(int id, int verificationCode)
throws RemoteException { throws RemoteException {
mContext.enforceCallingOrSelfPermission( mContext.enforceCallingOrSelfPermission(
android.Manifest.permission.PACKAGE_VERIFICATION_AGENT, null); android.Manifest.permission.PACKAGE_VERIFICATION_AGENT, null);
final Message msg = mHandler.obtainMessage(PACKAGE_VERIFIED); final Message msg = mHandler.obtainMessage(PACKAGE_VERIFIED);
msg.arg1 = id; msg.arg1 = id;
msg.arg2 = verified ? 1 : 0; msg.arg2 = verificationCode;
msg.obj = message;
mHandler.sendMessage(msg); mHandler.sendMessage(msg);
} }

View File

@ -546,11 +546,8 @@ public class MockPackageManager extends PackageManager {
throw new UnsupportedOperationException(); throw new UnsupportedOperationException();
} }
/**
* @hide
*/
@Override @Override
public void verifyPendingInstall(int id, boolean verified, String failureMessage) { public void verifyPendingInstall(int id, int verificationCode) {
throw new UnsupportedOperationException(); throw new UnsupportedOperationException();
} }