summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKenny Root <kroot@google.com>2013-03-14 09:41:18 -0700
committerPaul Kocialkowski <contact@paulk.fr>2015-08-30 23:14:21 +0200
commit6b57bfed9a7869d5b31d9e14536f3063dc0aa0f2 (patch)
treeccec818e2bf06fc2520f6a33dca8e82ee8db6a04
parenta4b300d057b74e848de622c33c2206281d0df631 (diff)
downloadpackages_apps_packageinstaller-replicant-4.2.zip
packages_apps_packageinstaller-replicant-4.2.tar.gz
packages_apps_packageinstaller-replicant-4.2.tar.bz2
Add manifest to verification paramsHEADreplicant-4.2-0004replicant-4.2
Change-Id: I088ab981cb56d4f156b6ff910d6a2270e3302dc4 Signed-off-by: Kenny Root <kroot@google.com> Tested-by: Moritz Bandemer <replicant@posteo.mx>
-rwxr-xr-xsrc/com/android/packageinstaller/InstallAppProgress.java6
-rw-r--r--src/com/android/packageinstaller/PackageInstallerActivity.java4
-rw-r--r--src/com/android/packageinstaller/PackageUtil.java1
3 files changed, 10 insertions, 1 deletions
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.DialogInterface.OnCancelListener;
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 @@ import java.util.List;
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 @@ public class InstallAppProgress extends Activity implements View.OnClickListener
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.DialogInterface.OnCancelListener;
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 @@ public class PackageInstallerActivity extends Activity implements OnCancelListen
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 @@ public class PackageInstallerActivity extends Activity implements OnCancelListen
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 @@ public class PackageInstallerActivity extends Activity implements OnCancelListen
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 @@ public class PackageUtil {
metrics.setToDefaults();
PackageParser.Package pkg = packageParser.parsePackage(sourceFile,
archiveFilePath, metrics, 0);
+ packageParser.collectCertificates(pkg, 0);
// Nuke the parser reference.
packageParser = null;
return pkg;