Merge "Add API to ApexManager for compressed APEX" am: 4890c80904 am: bce6d733a8 am: 9934485847

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1675675

Change-Id: Ief56104fae0b743e9e8a6e8ad169f97e1127c991
This commit is contained in:
Kelvin Zhang
2021-04-29 23:36:58 +00:00
committed by Automerger Merge Worker

View File

@@ -25,6 +25,7 @@ import android.apex.ApexInfo;
import android.apex.ApexInfoList;
import android.apex.ApexSessionInfo;
import android.apex.ApexSessionParams;
import android.apex.CompressedApexInfoList;
import android.apex.IApexService;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
@@ -373,6 +374,21 @@ public abstract class ApexManager {
*/
public abstract void markBootCompleted();
/**
* Estimate how much storage space is needed on /data/ for decompressing apexes
* @param infoList List of apexes that are compressed in target build.
* @return Size, in bytes, the amount of space needed on /data/
*/
public abstract long calculateSizeForCompressedApex(CompressedApexInfoList infoList)
throws RemoteException;
/**
* Reserve space on /data so that apexes can be decompressed after OTA
* @param infoList List of apexes that are compressed in target build.
*/
public abstract void reserveSpaceForCompressedApex(CompressedApexInfoList infoList)
throws RemoteException;
/**
* Dumps various state information to the provided {@link PrintWriter} object.
*
@@ -946,6 +962,18 @@ public abstract class ApexManager {
}
}
@Override
public long calculateSizeForCompressedApex(CompressedApexInfoList infoList)
throws RemoteException {
return waitForApexService().calculateSizeForCompressedApex(infoList);
}
@Override
public void reserveSpaceForCompressedApex(CompressedApexInfoList infoList)
throws RemoteException {
waitForApexService().reserveSpaceForCompressedApex(infoList);
}
/**
* Dump information about the packages contained in a particular cache
* @param packagesCache the cache to print information about.
@@ -1202,6 +1230,16 @@ public abstract class ApexManager {
// No-op
}
@Override
public long calculateSizeForCompressedApex(CompressedApexInfoList infoList) {
throw new UnsupportedOperationException();
}
@Override
public void reserveSpaceForCompressedApex(CompressedApexInfoList infoList) {
throw new UnsupportedOperationException();
}
@Override
void dump(PrintWriter pw, String packageName) {
// No-op