Merge "Incremental Delivery: Add device feature."

This commit is contained in:
TreeHugger Robot
2020-02-07 02:56:57 +00:00
committed by Android (Google) Code Review
5 changed files with 33 additions and 2 deletions

View File

@@ -2212,6 +2212,7 @@ package android.content.pm {
field public static final String EXTRA_REQUEST_PERMISSIONS_NAMES = "android.content.pm.extra.REQUEST_PERMISSIONS_NAMES";
field public static final String EXTRA_REQUEST_PERMISSIONS_RESULTS = "android.content.pm.extra.REQUEST_PERMISSIONS_RESULTS";
field public static final String FEATURE_BROADCAST_RADIO = "android.hardware.broadcastradio";
field public static final String FEATURE_INCREMENTAL_DELIVERY = "android.software.incremental_delivery";
field public static final String FEATURE_REBOOT_ESCROW = "android.hardware.reboot_escrow";
field public static final String FEATURE_TELEPHONY_CARRIERLOCK = "android.hardware.telephony.carrierlock";
field public static final int FLAGS_PERMISSION_RESERVED_PERMISSIONCONTROLLER = -268435456; // 0xf0000000

View File

@@ -60,6 +60,7 @@ import android.os.PersistableBundle;
import android.os.RemoteException;
import android.os.UserHandle;
import android.os.UserManager;
import android.os.incremental.IncrementalManager;
import android.os.storage.StorageManager;
import android.os.storage.VolumeInfo;
import android.util.AndroidException;
@@ -2996,6 +2997,18 @@ public abstract class PackageManager {
@SdkConstant(SdkConstantType.FEATURE)
public static final String FEATURE_REBOOT_ESCROW = "android.hardware.reboot_escrow";
/**
* Feature for {@link #getSystemAvailableFeatures} and {@link #hasSystemFeature}: The device has
* the requisite kernel support to support incremental delivery aka Incremental FileSystem.
*
* @see IncrementalManager#isEnabled
* @hide
*/
@SystemApi
@SdkConstant(SdkConstantType.FEATURE)
public static final String FEATURE_INCREMENTAL_DELIVERY =
"android.software.incremental_delivery";
/**
* Extra field name for the URI to a verification file. Passed to a package
* verifier.

View File

@@ -260,6 +260,13 @@ public final class IncrementalManager {
}
}
/**
* Checks if Incremental is enabled
*/
public static boolean isEnabled() {
return nativeIsEnabled();
}
/**
* Checks if path is mounted on Incremental File System.
*/
@@ -268,5 +275,6 @@ public final class IncrementalManager {
}
/* Native methods */
private static native boolean nativeIsEnabled();
private static native boolean nativeIsIncrementalPath(@NonNull String path);
}

View File

@@ -29,6 +29,7 @@ import android.os.FileUtils;
import android.os.Process;
import android.os.SystemProperties;
import android.os.Trace;
import android.os.incremental.IncrementalManager;
import android.os.storage.StorageManager;
import android.permission.PermissionManager.SplitPermissionInfo;
import android.text.TextUtils;
@@ -1156,6 +1157,10 @@ public class SystemConfig {
addFeature(PackageManager.FEATURE_RAM_NORMAL, 0);
}
if (IncrementalManager.isEnabled()) {
addFeature(PackageManager.FEATURE_INCREMENTAL_DELIVERY, 0);
}
for (String featureName : mUnavailableFeatures) {
removeFeature(featureName);
}

View File

@@ -26,6 +26,10 @@
namespace android {
static jboolean nativeIsEnabled(JNIEnv* env, jobject clazz) {
return IncFs_IsEnabled();
}
static jboolean nativeIsIncrementalPath(JNIEnv* env,
jobject clazz,
jstring javaPath) {
@@ -34,8 +38,8 @@ static jboolean nativeIsIncrementalPath(JNIEnv* env,
}
static const JNINativeMethod method_table[] = {
{"nativeIsIncrementalPath", "(Ljava/lang/String;)Z",
(void*)nativeIsIncrementalPath},
{"nativeIsEnabled", "()Z", (void*)nativeIsEnabled},
{"nativeIsIncrementalPath", "(Ljava/lang/String;)Z", (void*)nativeIsIncrementalPath},
};
int register_android_os_incremental_IncrementalManager(JNIEnv* env) {