resolved conflicts for merge of 181bb0ab to master
Change-Id: I2284e7c671d127da0d124fbabae8d887727fd5bf
This commit is contained in:
@@ -1400,7 +1400,7 @@ public abstract class Context {
|
||||
|
||||
/**
|
||||
* Use with {@link #getSystemService} to retrieve a {@link
|
||||
* android.os.storage.StorageManager} for accesssing system storage
|
||||
* android.os.storage.StorageManager} for accessing system storage
|
||||
* functions.
|
||||
*
|
||||
* @see #getSystemService
|
||||
|
||||
19
core/java/android/content/res/ObbInfo.aidl
Executable file
19
core/java/android/content/res/ObbInfo.aidl
Executable file
@@ -0,0 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2010 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package android.content.res;
|
||||
|
||||
parcelable ObbInfo;
|
||||
71
core/java/android/content/res/ObbInfo.java
Normal file
71
core/java/android/content/res/ObbInfo.java
Normal file
@@ -0,0 +1,71 @@
|
||||
/*
|
||||
* Copyright (C) 2010 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package android.content.res;
|
||||
|
||||
import android.os.Parcel;
|
||||
import android.os.Parcelable;
|
||||
|
||||
/**
|
||||
* Basic information about a Opaque Binary Blob (OBB) that reflects
|
||||
* the info from the footer on the OBB file.
|
||||
* @hide
|
||||
*/
|
||||
public class ObbInfo implements Parcelable {
|
||||
/**
|
||||
* The name of the package to which the OBB file belongs.
|
||||
*/
|
||||
public String packageName;
|
||||
|
||||
/**
|
||||
* The version of the package to which the OBB file belongs.
|
||||
*/
|
||||
public int version;
|
||||
|
||||
public ObbInfo() {
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
return "ObbInfo{"
|
||||
+ Integer.toHexString(System.identityHashCode(this))
|
||||
+ " packageName=" + packageName + ",version=" + version + "}";
|
||||
}
|
||||
|
||||
public int describeContents() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public void writeToParcel(Parcel dest, int parcelableFlags) {
|
||||
dest.writeString(packageName);
|
||||
dest.writeInt(version);
|
||||
}
|
||||
|
||||
public static final Parcelable.Creator<ObbInfo> CREATOR
|
||||
= new Parcelable.Creator<ObbInfo>() {
|
||||
public ObbInfo createFromParcel(Parcel source) {
|
||||
return new ObbInfo(source);
|
||||
}
|
||||
|
||||
public ObbInfo[] newArray(int size) {
|
||||
return new ObbInfo[size];
|
||||
}
|
||||
};
|
||||
|
||||
private ObbInfo(Parcel source) {
|
||||
packageName = source.readString();
|
||||
version = source.readInt();
|
||||
}
|
||||
}
|
||||
40
core/java/android/content/res/ObbScanner.java
Normal file
40
core/java/android/content/res/ObbScanner.java
Normal file
@@ -0,0 +1,40 @@
|
||||
/*
|
||||
* Copyright (C) 2010 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package android.content.res;
|
||||
|
||||
/**
|
||||
* Class to scan Opaque Binary Blob (OBB) files.
|
||||
* @hide
|
||||
*/
|
||||
public class ObbScanner {
|
||||
// Don't allow others to instantiate this class
|
||||
private ObbScanner() {}
|
||||
|
||||
public static ObbInfo getObbInfo(String filePath) {
|
||||
if (filePath == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
ObbInfo obbInfo = new ObbInfo();
|
||||
if (!getObbInfo_native(filePath, obbInfo)) {
|
||||
throw new IllegalArgumentException("Could not read OBB file: " + filePath);
|
||||
}
|
||||
return obbInfo;
|
||||
}
|
||||
|
||||
private native static boolean getObbInfo_native(String filePath, ObbInfo obbInfo);
|
||||
}
|
||||
@@ -152,4 +152,26 @@ interface IMountService
|
||||
* processing the media status update request.
|
||||
*/
|
||||
void finishMediaUpdate();
|
||||
|
||||
/**
|
||||
* Mounts an Opaque Binary Blob (OBB) with the specified decryption key and only
|
||||
* allows the calling process's UID access to the contents.
|
||||
*/
|
||||
int mountObb(String filename, String key);
|
||||
|
||||
/**
|
||||
* Unmounts an Opaque Binary Blob (OBB). When the force flag is specified, any
|
||||
* program using it will be forcibly killed to unmount the image.
|
||||
*/
|
||||
int unmountObb(String filename, boolean force);
|
||||
|
||||
/**
|
||||
* Checks whether the specified Opaque Binary Blob (OBB) is mounted somewhere.
|
||||
*/
|
||||
boolean isObbMounted(String filename);
|
||||
|
||||
/**
|
||||
* Gets the path to the mounted Opaque Binary Blob (OBB).
|
||||
*/
|
||||
String getMountedObbPath(String filename);
|
||||
}
|
||||
|
||||
@@ -288,4 +288,55 @@ public class StorageManager
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Mount an OBB file.
|
||||
*/
|
||||
public boolean mountObb(String filename, String key) {
|
||||
try {
|
||||
return mMountService.mountObb(filename, key)
|
||||
== StorageResultCode.OperationSucceeded;
|
||||
} catch (RemoteException e) {
|
||||
Log.e(TAG, "Failed to mount OBB", e);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Mount an OBB file.
|
||||
*/
|
||||
public boolean unmountObb(String filename, boolean force) {
|
||||
try {
|
||||
return mMountService.unmountObb(filename, force)
|
||||
== StorageResultCode.OperationSucceeded;
|
||||
} catch (RemoteException e) {
|
||||
Log.e(TAG, "Failed to mount OBB", e);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isObbMounted(String filename) {
|
||||
try {
|
||||
return mMountService.isObbMounted(filename);
|
||||
} catch (RemoteException e) {
|
||||
Log.e(TAG, "Failed to check if OBB is mounted", e);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check the mounted path of an OBB file.
|
||||
*/
|
||||
public String getMountedObbPath(String filename) {
|
||||
try {
|
||||
return mMountService.getMountedObbPath(filename);
|
||||
} catch (RemoteException e) {
|
||||
Log.e(TAG, "Failed to find mounted path for OBB", e);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,6 +19,7 @@ package com.android.internal.app;
|
||||
import android.net.Uri;
|
||||
import android.os.ParcelFileDescriptor;
|
||||
import android.content.pm.PackageInfoLite;
|
||||
import android.content.res.ObbInfo;
|
||||
|
||||
interface IMediaContainerService {
|
||||
String copyResourceToContainer(in Uri packageURI,
|
||||
@@ -28,4 +29,5 @@ interface IMediaContainerService {
|
||||
in ParcelFileDescriptor outStream);
|
||||
PackageInfoLite getMinimalPackageInfo(in Uri fileUri, int flags);
|
||||
boolean checkFreeStorage(boolean external, in Uri fileUri);
|
||||
}
|
||||
ObbInfo getObbInfo(in Uri fileUri);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user