[DO NOT MERGE] Only setSize if -s arg is specified am: b87a491de6

am: 7c9a91094d

Change-Id: I386176cef3812d13a0b5e1583e55b470e4fc312d
This commit is contained in:
Fyodor Kupolov
2016-10-28 00:30:43 +00:00
committed by android-build-merger
2 changed files with 30 additions and 17 deletions

View File

@@ -367,18 +367,24 @@ public final class Pm {
private int runInstall() throws RemoteException { private int runInstall() throws RemoteException {
final InstallParams params = makeInstallParams(); final InstallParams params = makeInstallParams();
final String inPath = nextArg(); final String inPath = nextArg();
boolean installExternal =
(params.sessionParams.installFlags & PackageManager.INSTALL_EXTERNAL) != 0;
if (params.sessionParams.sizeBytes < 0 && inPath != null) { if (params.sessionParams.sizeBytes < 0 && inPath != null) {
File file = new File(inPath); File file = new File(inPath);
if (file.isFile()) { if (file.isFile()) {
try { if (installExternal) {
ApkLite baseApk = PackageParser.parseApkLite(file, 0); try {
PackageLite pkgLite = new PackageLite(null, baseApk, null, null, null); ApkLite baseApk = PackageParser.parseApkLite(file, 0);
params.sessionParams.setSize( PackageLite pkgLite = new PackageLite(null, baseApk, null, null, null);
PackageHelper.calculateInstalledSize(pkgLite, false, params.sessionParams.setSize(
params.sessionParams.abiOverride)); PackageHelper.calculateInstalledSize(pkgLite, false,
} catch (PackageParserException | IOException e) { params.sessionParams.abiOverride));
System.err.println("Error: Failed to parse APK file : " + e); } catch (PackageParserException | IOException e) {
return 1; System.err.println("Error: Failed to parse APK file : " + e);
return 1;
}
} else {
params.sessionParams.setSize(file.length());
} }
} }
} }

View File

@@ -143,17 +143,24 @@ class PackageManagerShellCommand extends ShellCommand {
final PrintWriter pw = getOutPrintWriter(); final PrintWriter pw = getOutPrintWriter();
final InstallParams params = makeInstallParams(); final InstallParams params = makeInstallParams();
final String inPath = getNextArg(); final String inPath = getNextArg();
boolean installExternal =
(params.sessionParams.installFlags & PackageManager.INSTALL_EXTERNAL) != 0;
if (params.sessionParams.sizeBytes < 0 && inPath != null) { if (params.sessionParams.sizeBytes < 0 && inPath != null) {
File file = new File(inPath); File file = new File(inPath);
if (file.isFile()) { if (file.isFile()) {
try { if (installExternal) {
ApkLite baseApk = PackageParser.parseApkLite(file, 0); try {
PackageLite pkgLite = new PackageLite(null, baseApk, null, null, null); ApkLite baseApk = PackageParser.parseApkLite(file, 0);
params.sessionParams.setSize( PackageLite pkgLite = new PackageLite(null, baseApk, null, null, null);
PackageHelper.calculateInstalledSize(pkgLite,false, params.sessionParams.abiOverride)); params.sessionParams.setSize(
} catch (PackageParserException | IOException e) { PackageHelper.calculateInstalledSize(pkgLite, false,
pw.println("Error: Failed to parse APK file : " + e); params.sessionParams.abiOverride));
return 1; } catch (PackageParserException | IOException e) {
pw.println("Error: Failed to parse APK file : " + e);
return 1;
}
} else {
params.sessionParams.setSize(file.length());
} }
} }
} }