private void validateInstallLocked() throws PackageManagerException { mResolvedBaseFile = null; mResolvedStagedFiles.clear(); File[] addedFiles = this.mResolvedStageDir.listFiles(); if (addedFiles == null || addedFiles.length == 0) { throw new PackageManagerException(INSTALL_FAILED_INVALID_APK, "No packages staged"); } for (File addedFile : addedFiles) { if (!addedFile.isDirectory()) { final String targetName = "base.apk"; final File targetFile = new File(mResolvedStageDir, targetName); if (!addedFile.equals(targetFile)) { addedFile.renameTo(targetFile); } mResolvedBaseFile = targetFile; mResolvedStagedFiles.add(targetFile); } } if (mResolvedBaseFile == null) { throw new PackageManagerException(INSTALL_FAILED_INVALID_APK, "Full install must include a base package"); } }
private void commitLocked() throws PackageManagerException { if (mDestroyed) { throw new PackageManagerException(INSTALL_FAILED_INTERNAL_ERROR, "Session destroyed"); } if (!mSealed) { throw new PackageManagerException(INSTALL_FAILED_INTERNAL_ERROR, "Session not sealed"); } try { resolveStageDir(); } catch (IOException e) { e.printStackTrace(); } validateInstallLocked(); mInternalProgress = 0.5f; computeProgressLocked(true); // We've reached point of no return; call into PMS to install the stage. // Regardless of success or failure we always destroy session. final IPackageInstallObserver2 localObserver = new IPackageInstallObserver2.Stub() { @Override public void onUserActionRequired(Intent intent) { throw new IllegalStateException(); } @Override public void onPackageInstalled(String basePackageName, int returnCode, String msg, Bundle extras) { destroyInternal(); dispatchSessionFinished(returnCode, msg, extras); } }; }
private void commitLocked() throws PackageManagerException { if (mDestroyed) { throw new PackageManagerException(INSTALL_FAILED_INTERNAL_ERROR, "Session destroyed"); } if (!mSealed) { throw new PackageManagerException(INSTALL_FAILED_INTERNAL_ERROR, "Session not sealed"); } try { resolveStageDir(); } catch (IOException e) { e.printStackTrace(); } validateInstallLocked(); mInternalProgress = 0.5f; computeProgressLocked(true); // We've reached point of no return; call into PMS to install the stage. // Regardless of success or failure we always destroy session. final IPackageInstallObserver2 localObserver = new IPackageInstallObserver2.Stub() { @Override public void onUserActionRequired(Intent intent) { throw new IllegalStateException(); } @Override public void onPackageInstalled(String basePackageName, int returnCode, String msg, Bundle extras) { destroyInternal(); dispatchSessionFinished(returnCode, msg, extras); } }; }
private void validateInstallLocked() throws PackageManagerException { mResolvedBaseFile = null; mResolvedStagedFiles.clear(); File[] addedFiles = this.mResolvedStageDir.listFiles(); if (addedFiles == null || addedFiles.length == 0) { throw new PackageManagerException(INSTALL_FAILED_INVALID_APK, "No packages staged"); } for (File addedFile : addedFiles) { if (!addedFile.isDirectory()) { final String targetName = "base.apk"; final File targetFile = new File(mResolvedStageDir, targetName); if (!addedFile.equals(targetFile)) { addedFile.renameTo(targetFile); } mResolvedBaseFile = targetFile; mResolvedStagedFiles.add(targetFile); } } if (mResolvedBaseFile == null) { throw new PackageManagerException(INSTALL_FAILED_INVALID_APK, "Full install must include a base package"); } }
private void validateInstallLocked() throws PackageManagerException { mResolvedBaseFile = null; mResolvedStagedFiles.clear(); File[] addedFiles = this.mResolvedStageDir.listFiles(); if (addedFiles == null || addedFiles.length == 0) { throw new PackageManagerException(INSTALL_FAILED_INVALID_APK, "No packages staged"); } for (File addedFile : addedFiles) { if (!addedFile.isDirectory()) { final String targetName = "base.apk"; final File targetFile = new File(mResolvedStageDir, targetName); if (!addedFile.equals(targetFile)) { addedFile.renameTo(targetFile); } mResolvedBaseFile = targetFile; mResolvedStagedFiles.add(targetFile); } } if (mResolvedBaseFile == null) { throw new PackageManagerException(INSTALL_FAILED_INVALID_APK, "Full install must include a base package"); } }
private void commitLocked() throws PackageManagerException { if (mDestroyed) { throw new PackageManagerException(INSTALL_FAILED_INTERNAL_ERROR, "Session destroyed"); } if (!mSealed) { throw new PackageManagerException(INSTALL_FAILED_INTERNAL_ERROR, "Session not sealed"); } try { resolveStageDir(); } catch (IOException e) { e.printStackTrace(); } validateInstallLocked(); mInternalProgress = 0.5f; computeProgressLocked(true); // We've reached point of no return; call into PMS to install the stage. // Regardless of success or failure we always destroy session. final IPackageInstallObserver2 localObserver = new IPackageInstallObserver2.Stub() { @Override public void onUserActionRequired(Intent intent) { throw new IllegalStateException(); } @Override public void onPackageInstalled(String basePackageName, int returnCode, String msg, Bundle extras) { destroyInternal(); dispatchSessionFinished(returnCode, msg, extras); } }; }