diff options
author | Dianne Hackborn <hackbod@google.com> | 2011-06-29 14:05:01 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2011-06-29 14:05:01 -0700 |
commit | 2c22882181e867c9ba4e74ee973b87a71db3389f (patch) | |
tree | 6593873639d24d7fba98e9b7d9cad8f709bf8de9 /core | |
parent | 9e1fb41b4fbfbd190560cf48f24939703a13eca5 (diff) | |
parent | 292f8bc9d1b790ab975a87a842c7fabc908b97e0 (diff) | |
download | frameworks_base-2c22882181e867c9ba4e74ee973b87a71db3389f.zip frameworks_base-2c22882181e867c9ba4e74ee973b87a71db3389f.tar.gz frameworks_base-2c22882181e867c9ba4e74ee973b87a71db3389f.tar.bz2 |
Merge "Plumb information from the framework about asec container size."
Diffstat (limited to 'core')
-rwxr-xr-x | core/java/android/content/pm/PackageStats.java | 11 | ||||
-rw-r--r-- | core/java/android/os/storage/IMountService.java | 33 | ||||
-rw-r--r-- | core/java/com/android/internal/content/PackageHelper.java | 10 |
3 files changed, 54 insertions, 0 deletions
diff --git a/core/java/android/content/pm/PackageStats.java b/core/java/android/content/pm/PackageStats.java index 11068e5..1205da7 100755 --- a/core/java/android/content/pm/PackageStats.java +++ b/core/java/android/content/pm/PackageStats.java @@ -40,6 +40,12 @@ public class PackageStats implements Parcelable { public long cacheSize; /** + * Size of the secure container on external storage holding the + * application's code. + */ + public long externalCodeSize; + + /** * Size of the external data used by the application (e.g., * <sdcard>/Android/data/<app>) */ @@ -80,6 +86,8 @@ public class PackageStats implements Parcelable { sb.append(dataSize); sb.append(",cacheSize="); sb.append(cacheSize); + sb.append(",externalCodeSize="); + sb.append(externalCodeSize); sb.append(",externalDataSize="); sb.append(externalDataSize); sb.append(",externalCacheSize="); @@ -100,6 +108,7 @@ public class PackageStats implements Parcelable { codeSize = source.readLong(); dataSize = source.readLong(); cacheSize = source.readLong(); + externalCodeSize = source.readLong(); externalDataSize = source.readLong(); externalCacheSize = source.readLong(); externalMediaSize = source.readLong(); @@ -111,6 +120,7 @@ public class PackageStats implements Parcelable { codeSize = pStats.codeSize; dataSize = pStats.dataSize; cacheSize = pStats.cacheSize; + externalCodeSize = pStats.externalCodeSize; externalDataSize = pStats.externalDataSize; externalCacheSize = pStats.externalCacheSize; externalMediaSize = pStats.externalMediaSize; @@ -126,6 +136,7 @@ public class PackageStats implements Parcelable { dest.writeLong(codeSize); dest.writeLong(dataSize); dest.writeLong(cacheSize); + dest.writeLong(externalCodeSize); dest.writeLong(externalDataSize); dest.writeLong(externalCacheSize); dest.writeLong(externalMediaSize); diff --git a/core/java/android/os/storage/IMountService.java b/core/java/android/os/storage/IMountService.java index c2dc8ae..9302060 100644 --- a/core/java/android/os/storage/IMountService.java +++ b/core/java/android/os/storage/IMountService.java @@ -655,6 +655,26 @@ public interface IMountService extends IInterface { } return _result; } + + /* + * Returns the filesystem path of a mounted secure container. + */ + public String getSecureContainerFilesystemPath(String id) throws RemoteException { + Parcel _data = Parcel.obtain(); + Parcel _reply = Parcel.obtain(); + String _result; + try { + _data.writeInterfaceToken(DESCRIPTOR); + _data.writeString(id); + mRemote.transact(Stub.TRANSACTION_getSecureContainerFilesystemPath, _data, _reply, 0); + _reply.readException(); + _result = _reply.readString(); + } finally { + _reply.recycle(); + _data.recycle(); + } + return _result; + } } private static final String DESCRIPTOR = "IMountService"; @@ -719,6 +739,8 @@ public interface IMountService extends IInterface { static final int TRANSACTION_getVolumeList = IBinder.FIRST_CALL_TRANSACTION + 29; + static final int TRANSACTION_getSecureContainerFilesystemPath = IBinder.FIRST_CALL_TRANSACTION + 30; + /** * Cast an IBinder object into an IMountService interface, generating a * proxy if needed. @@ -1031,6 +1053,15 @@ public interface IMountService extends IInterface { reply.writeParcelableArray(result, 0); return true; } + case TRANSACTION_getSecureContainerFilesystemPath: { + data.enforceInterface(DESCRIPTOR); + String id; + id = data.readString(); + String path = getSecureContainerFilesystemPath(id); + reply.writeNoException(); + reply.writeString(path); + return true; + } } return super.onTransact(code, data, reply, flags); } @@ -1210,4 +1241,6 @@ public interface IMountService extends IInterface { * Returns list of all mountable volumes. */ public Parcelable[] getVolumeList() throws RemoteException; + + public String getSecureContainerFilesystemPath(String id) throws RemoteException; } diff --git a/core/java/com/android/internal/content/PackageHelper.java b/core/java/com/android/internal/content/PackageHelper.java index b57046c..ec64552 100644 --- a/core/java/com/android/internal/content/PackageHelper.java +++ b/core/java/com/android/internal/content/PackageHelper.java @@ -135,6 +135,16 @@ public class PackageHelper { return null; } + public static String getSdFilesystem(String cid) { + try { + return getMountService().getSecureContainerFilesystemPath(cid); + } catch (RemoteException e) { + Log.e(TAG, "Failed to get container path for " + cid + + " with exception " + e); + } + return null; + } + public static boolean finalizeSdDir(String cid) { try { int rc = getMountService().finalizeSecureContainer(cid); |