Add manifest to verification params

Change-Id: I088ab981cb56d4f156b6ff910d6a2270e3302dc4
diff --git a/src/com/android/packageinstaller/InstallAppProgress.java b/src/com/android/packageinstaller/InstallAppProgress.java
index fc82078..71c792e 100755
--- a/src/com/android/packageinstaller/InstallAppProgress.java
+++ b/src/com/android/packageinstaller/InstallAppProgress.java
@@ -24,6 +24,7 @@
 import android.content.Intent;
 import android.content.pm.ApplicationInfo;
 import android.content.pm.IPackageInstallObserver;
+import android.content.pm.ManifestDigest;
 import android.content.pm.PackageInfo;
 import android.content.pm.PackageManager;
 import android.content.pm.PackageManager.NameNotFoundException;
@@ -54,6 +55,8 @@
 public class InstallAppProgress extends Activity implements View.OnClickListener, OnCancelListener {
     private final String TAG="InstallAppProgress";
     private boolean localLOGV = false;
+    static final String EXTRA_MANIFEST_DIGEST =
+            "com.android.packageinstaller.extras.manifest_digest";
     private ApplicationInfo mAppInfo;
     private Uri mPackageURI;
     private ProgressBar mProgressBar;
@@ -254,8 +257,9 @@
         Uri referrer = getIntent().getParcelableExtra(Intent.EXTRA_REFERRER);
         int originatingUid = getIntent().getIntExtra(Intent.EXTRA_ORIGINATING_UID,
                 VerificationParams.NO_UID);
+        ManifestDigest manifestDigest = getIntent().getParcelableExtra(EXTRA_MANIFEST_DIGEST);
         VerificationParams verificationParams = new VerificationParams(null, originatingURI,
-                referrer, originatingUid, null);
+                referrer, originatingUid, manifestDigest);
         PackageInstallObserver observer = new PackageInstallObserver();
 
         if ("package".equals(mPackageURI.getScheme())) {
diff --git a/src/com/android/packageinstaller/PackageInstallerActivity.java b/src/com/android/packageinstaller/PackageInstallerActivity.java
index 4a6db21..4d7b0c0 100644
--- a/src/com/android/packageinstaller/PackageInstallerActivity.java
+++ b/src/com/android/packageinstaller/PackageInstallerActivity.java
@@ -26,6 +26,7 @@
 import android.content.Intent;
 import android.content.SharedPreferences;
 import android.content.pm.ApplicationInfo;
+import android.content.pm.ManifestDigest;
 import android.content.pm.PackageInfo;
 import android.content.pm.PackageManager;
 import android.content.pm.PackageUserState;
@@ -69,6 +70,7 @@
     private Uri mOriginatingURI;
     private Uri mReferrerURI;
     private int mOriginatingUid = VerificationParams.NO_UID;
+    private ManifestDigest mPkgDigest;
 
     private boolean localLOGV = false;
     PackageManager mPm;
@@ -520,6 +522,7 @@
             mPkgInfo = PackageParser.generatePackageInfo(parsed, null,
                     PackageManager.GET_PERMISSIONS, 0, 0, null,
                     new PackageUserState());
+            mPkgDigest = parsed.manifestDigest;
             as = PackageUtil.getAppSnippet(this, mPkgInfo.applicationInfo, sourceFile);
         }
         
@@ -656,6 +659,7 @@
                         mPkgInfo.applicationInfo);
                 newIntent.setData(mPackageURI);
                 newIntent.setClass(this, InstallAppProgress.class);
+                newIntent.putExtra(InstallAppProgress.EXTRA_MANIFEST_DIGEST, mPkgDigest);
                 String installerPackageName = getIntent().getStringExtra(
                         Intent.EXTRA_INSTALLER_PACKAGE_NAME);
                 if (mOriginatingURI != null) {
diff --git a/src/com/android/packageinstaller/PackageUtil.java b/src/com/android/packageinstaller/PackageUtil.java
index 8681bfc..20dce43 100644
--- a/src/com/android/packageinstaller/PackageUtil.java
+++ b/src/com/android/packageinstaller/PackageUtil.java
@@ -72,6 +72,7 @@
         metrics.setToDefaults();
         PackageParser.Package pkg =  packageParser.parsePackage(sourceFile,
                 archiveFilePath, metrics, 0);
+        packageParser.collectCertificates(pkg, 0);
         // Nuke the parser reference.
         packageParser = null;
         return pkg;