diff options
author | Jeff Sharkey <jsharkey@android.com> | 2012-04-16 19:41:14 -0700 |
---|---|---|
committer | Jeff Sharkey <jsharkey@android.com> | 2012-04-16 20:42:03 -0700 |
commit | 79da2eaa800f889be5e5f5bd91121c2ecb55ce14 (patch) | |
tree | 27f9e4b158afdee8d1a143a154396634c87e12ef /src/com/android/packageinstaller/PackageInstallerActivity.java | |
parent | 250b43aeacc2edf80965a1b837b64daa50208f1d (diff) | |
download | android_packages_apps_PackageInstaller-79da2eaa800f889be5e5f5bd91121c2ecb55ce14.tar.gz android_packages_apps_PackageInstaller-79da2eaa800f889be5e5f5bd91121c2ecb55ce14.tar.bz2 android_packages_apps_PackageInstaller-79da2eaa800f889be5e5f5bd91121c2ecb55ce14.zip |
Stop advertising content://-style Uri support.
Internally using PackageParser, which needs raw files. Tried making
local copy of incoming files, but ran into 6347522. Instead, stop
advertising support for content://-style Uris.
Bug: 6343461
Change-Id: Ia57ffa56876f38db359e618d9a2c1116c71f56f2
Diffstat (limited to 'src/com/android/packageinstaller/PackageInstallerActivity.java')
-rw-r--r-- | src/com/android/packageinstaller/PackageInstallerActivity.java | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/src/com/android/packageinstaller/PackageInstallerActivity.java b/src/com/android/packageinstaller/PackageInstallerActivity.java index d4591601..ab9bb5a3 100644 --- a/src/com/android/packageinstaller/PackageInstallerActivity.java +++ b/src/com/android/packageinstaller/PackageInstallerActivity.java @@ -38,6 +38,8 @@ import android.widget.AppSecurityPermissions; import android.widget.Button; import android.widget.LinearLayout; +import java.io.File; + /* * This activity is launched when a new application is installed via side loading * The package is first parsed and the user is notified of parse errors via a dialog. @@ -270,14 +272,22 @@ public class PackageInstallerActivity extends Activity implements OnCancelListen @Override protected void onCreate(Bundle icicle) { super.onCreate(icicle); - //get intent information + + // get intent information final Intent intent = getIntent(); mPackageURI = intent.getData(); mPm = getPackageManager(); - mPkgInfo = PackageUtil.getPackageInfo(mPackageURI); - + + final String scheme = mPackageURI.getScheme(); + if (!"file".equals(scheme)) { + throw new IllegalArgumentException("unexpected scheme " + scheme); + } + + final File sourceFile = new File(mPackageURI.getPath()); + mPkgInfo = PackageUtil.getPackageInfo(sourceFile); + // Check for parse errors - if(mPkgInfo == null) { + if (mPkgInfo == null) { Log.w(TAG, "Parse error when parsing manifest. Discontinuing installation"); showDialogInner(DLG_PACKAGE_ERROR); setPmResult(PackageManager.INSTALL_FAILED_INVALID_APK); @@ -288,8 +298,8 @@ public class PackageInstallerActivity extends Activity implements OnCancelListen setContentView(R.layout.install_start); mInstallConfirm = findViewById(R.id.install_confirm_panel); mInstallConfirm.setVisibility(View.INVISIBLE); - PackageUtil.AppSnippet as = PackageUtil.getAppSnippet(this, - mPkgInfo.applicationInfo, mPackageURI); + final PackageUtil.AppSnippet as = PackageUtil.getAppSnippet( + this, mPkgInfo.applicationInfo, sourceFile); PackageUtil.initSnippetForNewApp(this, as, R.id.app_snippet); // Deal with install source. |