Skip to content

Commit 9c71128

Browse files
krutonAndroid (Google) Code Review
authored andcommitted
Merge "Unhide new PackageManager APIs for API 14" into ics-factoryrom
2 parents 22aa780 + 3a9b5fb commit 9c71128

File tree

10 files changed

+59
-23
lines changed

10 files changed

+59
-23
lines changed

api/14.txt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -759,6 +759,7 @@ package android {
759759
field public static final int prompt = 16843131; // 0x101017b
760760
field public static final int propertyName = 16843489; // 0x10102e1
761761
field public static final int protectionLevel = 16842761; // 0x1010009
762+
field public static final int publicKey = 16843686; // 0x10103a6
762763
field public static final int queryActionMsg = 16843227; // 0x10101db
763764
field public static final int queryAfterZeroResults = 16843394; // 0x1010282
764765
field public static final int queryHint = 16843608; // 0x1010358
@@ -5454,6 +5455,7 @@ package android.content {
54545455
field public static final java.lang.String ACTION_PACKAGE_FIRST_LAUNCH = "android.intent.action.PACKAGE_FIRST_LAUNCH";
54555456
field public static final java.lang.String ACTION_PACKAGE_FULLY_REMOVED = "android.intent.action.PACKAGE_FULLY_REMOVED";
54565457
field public static final deprecated java.lang.String ACTION_PACKAGE_INSTALL = "android.intent.action.PACKAGE_INSTALL";
5458+
field public static final java.lang.String ACTION_PACKAGE_NEEDS_VERIFICATION = "android.intent.action.PACKAGE_NEEDS_VERIFICATION";
54575459
field public static final java.lang.String ACTION_PACKAGE_REMOVED = "android.intent.action.PACKAGE_REMOVED";
54585460
field public static final java.lang.String ACTION_PACKAGE_REPLACED = "android.intent.action.PACKAGE_REPLACED";
54595461
field public static final java.lang.String ACTION_PACKAGE_RESTARTED = "android.intent.action.PACKAGE_RESTARTED";
@@ -6207,11 +6209,13 @@ package android.content.pm {
62076209
method public abstract void setApplicationEnabledSetting(java.lang.String, int, int);
62086210
method public abstract void setComponentEnabledSetting(android.content.ComponentName, int, int);
62096211
method public abstract void setInstallerPackageName(java.lang.String, java.lang.String);
6212+
method public abstract void verifyPendingInstall(int, int);
62106213
field public static final int COMPONENT_ENABLED_STATE_DEFAULT = 0; // 0x0
62116214
field public static final int COMPONENT_ENABLED_STATE_DISABLED = 2; // 0x2
62126215
field public static final int COMPONENT_ENABLED_STATE_DISABLED_USER = 3; // 0x3
62136216
field public static final int COMPONENT_ENABLED_STATE_ENABLED = 1; // 0x1
62146217
field public static final int DONT_KILL_APP = 1; // 0x1
6218+
field public static final java.lang.String EXTRA_VERIFICATION_ID = "android.content.pm.extra.VERIFICATION_ID";
62156219
field public static final java.lang.String FEATURE_AUDIO_LOW_LATENCY = "android.hardware.audio.low_latency";
62166220
field public static final java.lang.String FEATURE_BLUETOOTH = "android.hardware.bluetooth";
62176221
field public static final java.lang.String FEATURE_CAMERA = "android.hardware.camera";
@@ -6273,6 +6277,8 @@ package android.content.pm {
62736277
field public static final int SIGNATURE_NO_MATCH = -3; // 0xfffffffd
62746278
field public static final int SIGNATURE_SECOND_NOT_SIGNED = -2; // 0xfffffffe
62756279
field public static final int SIGNATURE_UNKNOWN_PACKAGE = -4; // 0xfffffffc
6280+
field public static final int VERIFICATION_ALLOW = 1; // 0x1
6281+
field public static final int VERIFICATION_REJECT = -1; // 0xffffffff
62766282
}
62776283

62786284
public static class PackageManager.NameNotFoundException extends android.util.AndroidException {
@@ -19834,6 +19840,7 @@ package android.test.mock {
1983419840
method public void setApplicationEnabledSetting(java.lang.String, int, int);
1983519841
method public void setComponentEnabledSetting(android.content.ComponentName, int, int);
1983619842
method public void setInstallerPackageName(java.lang.String, java.lang.String);
19843+
method public void verifyPendingInstall(int, int);
1983719844
}
1983819845

1983919846
public class MockResources extends android.content.res.Resources {

api/current.txt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -759,6 +759,7 @@ package android {
759759
field public static final int prompt = 16843131; // 0x101017b
760760
field public static final int propertyName = 16843489; // 0x10102e1
761761
field public static final int protectionLevel = 16842761; // 0x1010009
762+
field public static final int publicKey = 16843686; // 0x10103a6
762763
field public static final int queryActionMsg = 16843227; // 0x10101db
763764
field public static final int queryAfterZeroResults = 16843394; // 0x1010282
764765
field public static final int queryHint = 16843608; // 0x1010358
@@ -5454,6 +5455,7 @@ package android.content {
54545455
field public static final java.lang.String ACTION_PACKAGE_FIRST_LAUNCH = "android.intent.action.PACKAGE_FIRST_LAUNCH";
54555456
field public static final java.lang.String ACTION_PACKAGE_FULLY_REMOVED = "android.intent.action.PACKAGE_FULLY_REMOVED";
54565457
field public static final deprecated java.lang.String ACTION_PACKAGE_INSTALL = "android.intent.action.PACKAGE_INSTALL";
5458+
field public static final java.lang.String ACTION_PACKAGE_NEEDS_VERIFICATION = "android.intent.action.PACKAGE_NEEDS_VERIFICATION";
54575459
field public static final java.lang.String ACTION_PACKAGE_REMOVED = "android.intent.action.PACKAGE_REMOVED";
54585460
field public static final java.lang.String ACTION_PACKAGE_REPLACED = "android.intent.action.PACKAGE_REPLACED";
54595461
field public static final java.lang.String ACTION_PACKAGE_RESTARTED = "android.intent.action.PACKAGE_RESTARTED";
@@ -6207,11 +6209,13 @@ package android.content.pm {
62076209
method public abstract void setApplicationEnabledSetting(java.lang.String, int, int);
62086210
method public abstract void setComponentEnabledSetting(android.content.ComponentName, int, int);
62096211
method public abstract void setInstallerPackageName(java.lang.String, java.lang.String);
6212+
method public abstract void verifyPendingInstall(int, int);
62106213
field public static final int COMPONENT_ENABLED_STATE_DEFAULT = 0; // 0x0
62116214
field public static final int COMPONENT_ENABLED_STATE_DISABLED = 2; // 0x2
62126215
field public static final int COMPONENT_ENABLED_STATE_DISABLED_USER = 3; // 0x3
62136216
field public static final int COMPONENT_ENABLED_STATE_ENABLED = 1; // 0x1
62146217
field public static final int DONT_KILL_APP = 1; // 0x1
6218+
field public static final java.lang.String EXTRA_VERIFICATION_ID = "android.content.pm.extra.VERIFICATION_ID";
62156219
field public static final java.lang.String FEATURE_AUDIO_LOW_LATENCY = "android.hardware.audio.low_latency";
62166220
field public static final java.lang.String FEATURE_BLUETOOTH = "android.hardware.bluetooth";
62176221
field public static final java.lang.String FEATURE_CAMERA = "android.hardware.camera";
@@ -6273,6 +6277,8 @@ package android.content.pm {
62736277
field public static final int SIGNATURE_NO_MATCH = -3; // 0xfffffffd
62746278
field public static final int SIGNATURE_SECOND_NOT_SIGNED = -2; // 0xfffffffe
62756279
field public static final int SIGNATURE_UNKNOWN_PACKAGE = -4; // 0xfffffffc
6280+
field public static final int VERIFICATION_ALLOW = 1; // 0x1
6281+
field public static final int VERIFICATION_REJECT = -1; // 0xffffffff
62766282
}
62776283

62786284
public static class PackageManager.NameNotFoundException extends android.util.AndroidException {
@@ -19834,6 +19840,7 @@ package android.test.mock {
1983419840
method public void setApplicationEnabledSetting(java.lang.String, int, int);
1983519841
method public void setComponentEnabledSetting(android.content.ComponentName, int, int);
1983619842
method public void setInstallerPackageName(java.lang.String, java.lang.String);
19843+
method public void verifyPendingInstall(int, int);
1983719844
}
1983819845

1983919846
public class MockResources extends android.content.res.Resources {

core/java/android/app/ApplicationPackageManager.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -954,9 +954,9 @@ public void installPackageWithVerification(Uri packageURI, IPackageInstallObserv
954954
}
955955

956956
@Override
957-
public void verifyPendingInstall(int id, boolean verified, String failureMessage) {
957+
public void verifyPendingInstall(int id, int response) {
958958
try {
959-
mPM.verifyPendingInstall(id, verified, failureMessage);
959+
mPM.verifyPendingInstall(id, response);
960960
} catch (RemoteException e) {
961961
// Should never happen!
962962
}

core/java/android/content/Intent.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1535,8 +1535,6 @@ public static Intent createChooser(Intent target, CharSequence title) {
15351535
* <p class="note">
15361536
* This is a protected intent that can only be sent by the system.
15371537
* </p>
1538-
*
1539-
* @hide
15401538
*/
15411539
@SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
15421540
public static final String ACTION_PACKAGE_NEEDS_VERIFICATION = "android.intent.action.PACKAGE_NEEDS_VERIFICATION";

core/java/android/content/pm/IPackageManager.aidl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -359,7 +359,7 @@ interface IPackageManager {
359359
int flags, in String installerPackageName, in Uri verificationURI,
360360
in ManifestDigest manifestDigest);
361361

362-
void verifyPendingInstall(int id, boolean verified, in String message);
362+
void verifyPendingInstall(int id, int verificationCode);
363363

364364
VerifierDeviceIdentity getVerifierDeviceIdentity();
365365
}

core/java/android/content/pm/PackageManager.java

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -724,8 +724,23 @@ public NameNotFoundException(String name) {
724724
*/
725725
public static final int MOVE_EXTERNAL_MEDIA = 0x00000002;
726726

727+
/**
728+
* Used as the {@code verificationCode} argument for
729+
* {@link PackageManager#verifyPendingInstall} to indicate that the calling
730+
* package verifier allows the installation to proceed.
731+
*/
732+
public static final int VERIFICATION_ALLOW = 1;
733+
734+
/**
735+
* Used as the {@code verificationCode} argument for
736+
* {@link PackageManager#verifyPendingInstall} to indicate the calling
737+
* package verifier does not vote to allow the installation to proceed.
738+
*/
739+
public static final int VERIFICATION_REJECT = -1;
740+
727741
/**
728742
* Range of IDs allocated for a user.
743+
*
729744
* @hide
730745
*/
731746
public static final int PER_USER_RANGE = 100000;
@@ -1045,9 +1060,7 @@ public NameNotFoundException(String name) {
10451060
/**
10461061
* Extra field name for the ID of a package pending verification. Passed to
10471062
* a package verifier and is used to call back to
1048-
* {@link PackageManager#verifyPendingInstall(int, boolean)}
1049-
*
1050-
* @hide
1063+
* {@link PackageManager#verifyPendingInstall(int, int)}
10511064
*/
10521065
public static final String EXTRA_VERIFICATION_ID = "android.content.pm.extra.VERIFICATION_ID";
10531066

@@ -2156,16 +2169,17 @@ public abstract void installPackageWithVerification(Uri packageURI,
21562169
/**
21572170
* Allows a package listening to the
21582171
* {@link Intent#ACTION_PACKAGE_NEEDS_VERIFICATION package verification
2159-
* broadcast} to respond to the package manager.
2172+
* broadcast} to respond to the package manager. The response must include
2173+
* the {@code verificationCode} which is one of
2174+
* {@link PackageManager#VERIFICATION_ALLOW} or
2175+
* {@link PackageManager#VERIFICATION_REJECT}.
21602176
*
21612177
* @param id pending package identifier as passed via the
21622178
* {@link PackageManager#EXTRA_VERIFICATION_ID} Intent extra
2163-
* @param verified whether the package was verified as valid
2164-
* @param failureMessage if verification was false, this is the error
2165-
* message that may be shown to the user
2166-
* @hide
2179+
* @param verificationCode either {@link PackageManager#VERIFICATION_ALLOW}
2180+
* or {@link PackageManager#VERIFICATION_REJECT}.
21672181
*/
2168-
public abstract void verifyPendingInstall(int id, boolean verified, String failureMessage);
2182+
public abstract void verifyPendingInstall(int id, int verificationCode);
21692183

21702184
/**
21712185
* Change the installer associated with a given package. There are limitations

core/res/res/values/attrs_manifest.xml

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1561,8 +1561,21 @@
15611561
<enum name="xhdpi" value="320" />
15621562
</attr>
15631563
</declare-styleable>
1564-
1565-
1564+
1565+
<!-- The attribute that holds a Base64-encoded public key. -->
1566+
<attr name="publicKey" format="string" />
1567+
1568+
<!-- Attributes relating to a package verifier -->
1569+
<declare-styleable name="AndroidManifestPackageVerifier" parent="AndroidManifest">
1570+
<!-- Specifies the Java-style package name that defines this
1571+
package verifier. -->
1572+
<attr name="name" />
1573+
1574+
<!-- The Base64 encoded public key of the package verifier's
1575+
signature. -->
1576+
<attr name="publicKey" />
1577+
</declare-styleable>
1578+
15661579
<!-- Declaration of an {@link android.content.Intent} object in XML. May
15671580
also include zero or more {@link #IntentCategory <category> and
15681581
{@link #Extra <extra>} tags. -->

core/res/res/values/public.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1768,6 +1768,7 @@
17681768
<public type="attr" name="listPreferredItemPaddingLeft" id="0x010103a3" />
17691769
<public type="attr" name="listPreferredItemPaddingRight" id="0x010103a4" />
17701770
<public type="attr" name="requiresFadingEdge" id="0x010103a5" />
1771+
<public type="attr" name="publicKey" id="0x010103a6" />
17711772

17721773
<public type="style" name="TextAppearance.SuggestionHighlight" id="0x01030118" />
17731774
<public type="style" name="Theme.Holo.Light.DarkActionBar" id="0x01030119" />

services/java/com/android/server/pm/PackageManagerService.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4849,15 +4849,14 @@ public void installPackageWithVerification(Uri packageURI, IPackageInstallObserv
48494849
}
48504850

48514851
@Override
4852-
public void verifyPendingInstall(int id, boolean verified, String message)
4852+
public void verifyPendingInstall(int id, int verificationCode)
48534853
throws RemoteException {
48544854
mContext.enforceCallingOrSelfPermission(
48554855
android.Manifest.permission.PACKAGE_VERIFICATION_AGENT, null);
48564856

48574857
final Message msg = mHandler.obtainMessage(PACKAGE_VERIFIED);
48584858
msg.arg1 = id;
4859-
msg.arg2 = verified ? 1 : 0;
4860-
msg.obj = message;
4859+
msg.arg2 = verificationCode;
48614860
mHandler.sendMessage(msg);
48624861
}
48634862

test-runner/src/android/test/mock/MockPackageManager.java

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -546,11 +546,8 @@ public void installPackageWithVerification(Uri packageURI, IPackageInstallObserv
546546
throw new UnsupportedOperationException();
547547
}
548548

549-
/**
550-
* @hide
551-
*/
552549
@Override
553-
public void verifyPendingInstall(int id, boolean verified, String failureMessage) {
550+
public void verifyPendingInstall(int id, int verificationCode) {
554551
throw new UnsupportedOperationException();
555552
}
556553

0 commit comments

Comments
 (0)